//============================================================================= // KFAnim_PhysFalling //============================================================================= // AnimNodeBlendList for Jump/Fall/Land animations //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC // - Andrew "Strago" Ladenberger //============================================================================= class KFAnim_PhysFalling extends AnimNodeBlendList native(Anim); enum EJumpBlendChild { EJBC_Walk, EJBC_Jump, EJBC_Fall, EJBC_Land }; /** Custom blend in time for each child */ var() editfixedsize array ChildBlendInTime; /** If > 0, then always play the land anim (move/slide) for a short time */ var() float MinLandPlayTime; /** Set when fall is started. If time passed is small don't play land */ var transient float SkipLandTimeLeft; /** Set by InitAnimTree if land child is valid */ var transient AnimNodeSequence LandNodeSeq; cpptext { virtual void InitAnim(USkeletalMeshComponent* MeshComp, UAnimNodeBlendBase* Parent); virtual void TickAnim(FLOAT DeltaSeconds); virtual void OnChildAnimEnd(UAnimNodeSequence* Child, FLOAT PlayedTime, FLOAT ExcessTime); } defaultproperties { bFixNumChildren=true bPlayActiveChild=true bSkipBlendWhenNotRendered=TRUE // Need to disable this (particularly for PHYS_Falling) to avoid a .33s // blend back to walk whenever we get an 'instant' walk->fall->walk loop bForceChildFullWeightWhenBecomingRelevant=FALSE Children(0)=(Name="Walking") Children(1)=(Name="Jump Up") Children(2)=(Name="Falling") Children(3)=(Name="Land") ChildBlendInTime(0)=0.33f ChildBlendInTime(1)=0.33f ChildBlendInTime(2)=0.33f ChildBlendInTime(3)=0.1f MinLandPlayTime=0.0f }