dimanche 27 janvier 2013

Semaine 03 - Script

Autant le dire tout de suite, je suis mauvaise en script.

Mais, avec l'aide de JR, Karen et Steve, notre informaticien adoré, nous avons pu arranger la vitesse de Gollum qui allait bien trop vite au début, et le maintenir au sol.
C'est aussi avec le code que nous avons pu modifier sa collision et faire en sorte qu'il puisse passer dans les couloirs.

Je post ici en premier les scripts que nous avions fait par nous-même, et que même Jocelyn ne comprenait pas pourquoi ils ne fonctionnaient pas :


LOTRGameInfo :
class LOTRGameInfo extends UTGame;

DefaultProperties
{
 PlayerControllerClass=class'LOTRPlayerController'
 DefaultPawnClass=class'LOTRPlayerPawn'
 bDelayedStart=false
 Name="LOTRGameInfo"
} 

LOTRPlayerController :
class LOTRPlayerController extends UTPlayerController;

DefaultProperties
{
 bBehindView=true
 bForceBehindView=true
}

LOTRPlayerPawn :
class LOTRPlayerPawn extends UTPawn;
  
DefaultProperties
{
 Begin Object class=SkeletalMeshComponent Name=SkeletalMeshComponent0
  SkeletalMesh=SkeletalMesh'equipea_contrainte1_jr-gp.SkeletalMesh.SK_Gollum'
  AnimSets(0)=AnimSet'equipea_contrainte1_jr-gp.AnimSet.Gollum_AnimSet'
  AnimTreeTemplate=AnimTree'EquipeA_Contrainte1_jr-gp.AnimTree.Gollum_AnimTree'
  PhysicsAsset=PhysicsAsset'equipea_contrainte1_jr-gp.SK_Gollum_Physics'
  
 End Object
 
 Mesh=SkeletalMeshComponent0
 Components.Add(SkeletalMeshComponent0)
}



Puis, enfin, les scripts que Jocelyn nous a passé et que l'on a modifié pour les ajuster à notre jeu.

MyGame :
class MyGame extends UDKGame
config(MyGame);

DefaultProperties
{
PlayerControllerClass=class'MyGame.MyPlayerController'
DefaultPawnClass=class'MyGame.MyPawn'
// comment out the line below if you want to use UTGame character sounds
//bUseClassicHUD=true
//HUDType=class'MyGame.MyHUD'

}

MyPlayerController :
class MyPlayerController extends UTPlayerController;

//simulated function PostBeginPlay() {
//super.PostBeginPlay();
//SetCameraMode('ThirdPerson');
//}

//public function rSetCameraMode(name cameraSetting){
//SetCameraMode(cameraSetting);
//}

DefaultProperties
{
bBehindView=True
}

MyPawn :
class MyPawn extends UTPawn
config(MyGame);

//These are here in case you decide to extend from UDKPawn.uc instead of UTPawn.uc
//var float CameraZOffset;
//var float CameraScale, CurrentCameraScale;
var float CamOffsetDistance;

simulated function bool CalcCamera( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
{
super.CalcCamera(fDeltaTime, out_CamLoc, out_Camrot, out_FOV);
out_CamLoc.y += CamOffsetDistance;
return true;
}



DefaultProperties
{

Begin Object class=SkeletalMeshComponent Name=SkeletalMeshComponent0
 //---------------------------------------------------------------
 //Les lignes suivantes sont à modifier afin d'y mettre vos assets
  SkeletalMesh=SkeletalMesh'equipea_contrainte1_jr-gp.SkeletalMesh.SK_Gollum'
  AnimSets(0)=AnimSet'equipea_contrainte1_jr-gp.AnimSet.Gollum_AnimSet'
  AnimTreeTemplate=AnimTree'EquipeA_Contrainte1_jr-gp.AnimTree.Gollum_AnimTree'
  PhysicsAsset=PhysicsAsset'equipea_contrainte1_jr-gp.SK_Gollum_Physics'
 //---------------------------------------------------------------
  bEnableSoftBodySimulation=True
  bSoftBodyAwakeonStartup=True
  bAcceptsLights=True
  bHasPhysicsAssetInstance=true
  
End Object

Begin Object Name=CollisionCylinder
  CollisionRadius=+0007.000000
  CollisionHeight=+0016.000000
 End Object


GroundSpeed=44.0
Mesh=SkeletalMeshComponent0
Components.Add(SkeletalMeshComponent0)

DrawScale=0.9
//CameraZOffset=-80
CameraScale = 30

bPushesRigidBodies=true
//SoundGroupClass = class'MyGame.MyPawnSoundGroup'
}

Tout ça dans un dossier nommé Classes, lui-même dans un dossier nommé MyGame et LOTRGame.
(C:\UDK\UDK-2012-10\Development\Src\MyGame\Classes).

Puis, dans C:\UDK\UDK-2012-10\UDKGame\Config ouvrir le fichier .ini appelé DefaultEngine et rajouter 2 lignes de codes :
+EditPackages=LOTRGame
+EditPackages=MyGame

Ce qui donne :
[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+EditPackages=LOTRGame
+EditPackages=MyGame

Ceci permet à UDK de prendre en compte les scripts créés. Ne pas oublier de le refaire à chaque changement d'ordinateur... 

DefaultEngine


Dernier truc pour que cela fonctionne : Lors de l'ouverture d'UDK, aller dans View / World Properties / Game Type / Default Game Type = mygame (qui est le nom relié aux scripts).
Mettre aussi dans Game Type For PIE = mygame.

World Properties 





Aucun commentaire:

Enregistrer un commentaire