Using the MagdalenaMonster as our base monster that we made in a previous tutorial this will show you how to turn your monster into a flying monster. The magdalena base class can be downloaded from here:Magdalana Base Class
Making your monster fly is easy! To make it look convincing you will need to change some animations. Just set bCanFly=true in the monsters defaultproperties. Like this.
defaultproperties
{
bCanFly=true
}
Now your monster will fly off ledges and things like that.
When a flying monster takes damage you need to make sure it plays a good animation that makes sense. So your monster doesn’t appear to walk in mid air for a second. Magdalena doesn’t have any good flying-take hit animations so instead I will just over ride that function and leave it blank.
simulated function PlayDirectionalHit(Vector HitLoc)
{
}
Excellent. Now for the remaining defaultproperties. We just need to change some animations to some “flying” ones. Magadlenas best flying animation is her “Swim_Thread” animation. So I will use this. Find the best ones for your skin.
defaultproperties
{
AirStillAnim="Swim_Thread"
AirAnims(0)="Swim_Thread"
AirAnims(1)="Swim_Thread"
AirAnims(2)="Swim_Thread"
AirAnims(3)="Swim_Thread"
TakeoffStillAnim="Swim_Thread"
TakeoffAnims(0)="Swim_Thread"
TakeoffAnims(1)="Swim_Thread"
TakeoffAnims(2)="Swim_Thread"
TakeoffAnims(3)="Swim_Thread"
}
Thats it! Your monster class should look similar to this.
class MagdalenaMonster extends Monster;
simulated function PlayDirectionalDeath(Vector HitLoc)
{
local float Decision;
Decision = fRand();
if(Decision < 0.25)
{
PlayAnim('DeathF',, 0.1);
}
else if ( Decision > 0.25 && Decision < 0.50)
{
PlayAnim('DeathB',, 0.1);
}
else if ( Decision > 0.50 && Decision < 0.75)
{
PlayAnim('DeathL',, 0.1);
}
else
{
PlayAnim('DeathR',, 0.1);
}
}
simulated function PlayDirectionalHit(Vector HitLoc)
{
}
defaultproperties
{
bCanFly=true
Mesh=SkeletalMesh'Magdalena.Magdalena'
Skins(0)=Texture'MagdalenaTextures.magdalena_body'
Skins(1)=Texture'MagdalenaTextures.magdalena_head'
IdleWeaponAnim="Idle_Biggun"
IdleHeavyAnim="Idle_Biggun"
IdleRifleAnim="Idle_Rifle"
TurnRightAnim="TurnR"
TurnLeftAnim="TurnL"
CrouchAnims(0)="CrouchF"
CrouchAnims(1)="CrouchB"
CrouchAnims(2)="CrouchL"
CrouchAnims(3)="CrouchR"
CrouchTurnRightAnim="Crouch_TurnR"
CrouchTurnLeftAnim="Crouch_TurnL"
AirStillAnim="Swim_Thread"
AirAnims(0)="Swim_Thread"
AirAnims(1)="Swim_Thread"
AirAnims(2)="Swim_Thread"
AirAnims(3)="Swim_Thread"
TakeoffStillAnim="Swim_Thread"
TakeoffAnims(0)="Swim_Thread"
TakeoffAnims(1)="Swim_Thread"
TakeoffAnims(2)="Swim_Thread"
TakeoffAnims(3)="Swim_Thread"
LandAnims(0)="JumpF_Land"
LandAnims(1)="JumpB_Land"
LandAnims(2)="JumpL_Land"
LandAnims(3)="JumpR_Land"
DodgeAnims(0)="DodgeF"
DodgeAnims(1)="DodgeB"
DodgeAnims(2)="DodgeL"
DodgeAnims(3)="DodgeR"
DoubleJumpAnims(0)="DoubleJumpF"
DoubleJumpAnims(1)="DoubleJumpB"
DoubleJumpAnims(2)="DoubleJumpL"
DoubleJumpAnims(3)="DoubleJumpR"
MovementAnims(0)="RunF"
MovementAnims(1)="RunB"
MovementAnims(2)="RunL"
MovementAnims(3)="RunR"
SwimAnims(0)="SwimF"
SwimAnims(1)="SwimB"
SwimAnims(2)="SwimL"
SwimAnims(3)="SwimR"
WalkAnims(0)="WalkF"
WalkAnims(1)="WalkB"
WalkAnims(2)="WalkL"
WalkAnims(3)="WalkR"
WallDodgeAnims(0)="WallDodgeF"
WallDodgeAnims(1)="WallDodgeB"
WallDodgeAnims(2)="WallDodgeL"
WallDodgeAnims(3)="WallDodgeR"
IdleRestAnim="Idle_Rest"
IdleCrouchAnim="Crouch"
IdleSwimAnim="Swim_Thread"
IdleChatAnim="idle_chat"
FireHeavyRapidAnim="Biggun_Aimed"
FireHeavyBurstAnim="Biggun_Burst"
FireRifleRapidAnim="Rifle_Aimed"
FireRifleBurstAnim="Rifle_Burst"
HitSound(0)=Sound'SkaarjPack_rc.injur1sk'
HitSound(1)=Sound'SkaarjPack_rc.injur1sk'
HitSound(2)=Sound'SkaarjPack_rc.injur1sk'
HitSound(3)=Sound'SkaarjPack_rc.injur1sk'
DeathSound(0)=Sound'SkaarjPack_rc.death1br'
DeathSound(1)=Sound'SkaarjPack_rc.death1br'
DeathSound(2)=Sound'SkaarjPack_rc.death1br'
DeathSound(3)=Sound'SkaarjPack_rc.death1br'
ChallengeSound(0)=Sound'SkaarjPack_rc.scuttle1pp'
ChallengeSound(1)=Sound'SkaarjPack_rc.scuttle1pp'
ChallengeSound(2)=Sound'SkaarjPack_rc.scuttle1pp'
ChallengeSound(3)=Sound'SkaarjPack_rc.scuttle1pp'
}
TIP – Appliances in Standby mode still use a significant amount of electricity. Turn them off at the wall!
Recent Comments