struct ISkeletonAnim { enum { LayerCount = 16 }; };
ICryAnimation.h
<> required for Interfuscator
virtual ~ISkeletonAnim();
virtual f32 CalculateCompleteBlendSpaceDuration(const CAnimation& rAnimation) const = 0;
Calculates duration of blend space up to the point where it starts to repeat, that is a Least Common Multiple of a number of segments of different examples. For instance, if segments of caf1: A B C, caf2: 1 2. The whole duration will be calculated for sequence A1 B2 C1 A2 B1 C2.
virtual QuatT CalculateRelativeMovement(const float deltaTime, const bool CurrNext = 0) const = 0;
This function will move outside of this interface. Use at your own risk.
virtual void ClearFIFOLayer(uint32 nLayer) = 0;
virtual CAnimation* FindAnimInFIFO(uint32 nUserToken, int nLayer = 1) = 0;
Parameters |
Description |
uint32 nUserToken |
User token that identify an animation to search for. |
int nLayer = 1 |
Layer of FIFO where to search for animation, if -1 all layers are searched. |
Find an animation with a given user token.
virtual uint32 GetAnimationDrivenMotion() = 0;
virtual f32 GetAnimationNormalizedTime(const CAnimation* pAnimation) const = 0;
! Get the time for the animation in position index for the given layer. The return value is in the range [0..1
virtual CAnimation& GetAnimFromFIFO(uint32 nLayer, uint32 num) = 0;
virtual const CAnimation& GetAnimFromFIFO(uint32 nLayer, uint32 num) const = 0;
virtual Vec3 GetCurrentVelocity() = 0;
return values
virtual bool GetDesiredMotionParam(EMotionParamID id, float& value) const = 0;
virtual AnimEventInstance GetLastAnimEvent() = 0;
virtual f32 GetLayerNormalizedTime(uint32 layer) const = 0;
virtual f32 GetLayerPlaybackScale(uint32 nLayer) = 0;
! NOTE: It does NOT override the overall animation speed, but it's multiplies it
virtual int GetNumAnimsInFIFO(uint32 nLayer) const = 0;
virtual const QuatT& GetRelMovement() const = 0;
virtual uint32 GetTrackViewStatus() = 0;
virtual f32 GetUserData(int i) = 0;
virtual void ManualSeekAnimationInFIFO(uint32 nLayer, uint32 num, float time, bool triggerAnimEvents) = 0;
If manual update is set for anim, then set anim time and handle anim events.
virtual bool PushPoseModifier(uint32 layer, IAnimationPoseModifierPtr poseModifier, const char* name = NULL) = 0;
virtual bool RemoveAnimFromFIFO(uint32 nLayer, uint32 num, bool forceRemove = false) = 0;
Parameters |
Description |
uint32 nLayer |
Animation layer to remove from. |
uint32 num |
Transition queue index to remove at. |
bool forceRemove = false |
Ignore special conditions and force a removal from the layer. |
Remove an animation with a given index and given layer.
virtual void RemoveTransitionDelayConditions(uint32 nLayer) = 0;
makes sure there's no anim in this layer's queue that could cause a delay (useful when you want to play an animation that you want to be 100% sure is going to be transitioned to immediately)
virtual void SetAnimationDrivenMotion(uint32 ts) = 0;
virtual void SetAnimationNormalizedTime(CAnimation* pAnimation, f32 normalizedTime, bool entireClip = true) = 0;
! Set the time for the animation in position index for the given layer to a value in the range [0..1
virtual void SetDebugging(uint32 flags) = 0;
Enable special debug text for this skeleton
virtual void SetDesiredMotionParam(EMotionParamID id, f32 value, f32 frametime) = 0;
Updates the given parameter (will perform clamping and clearing as needed)
virtual void SetEventCallback(CallBackFuncType func, void * pdata) = 0;
virtual void SetLayerBlendWeight(int32 nLayer, f32 fMult) = 0;
virtual void SetLayerNormalizedTime(uint32 layer, f32 normalizedTime) = 0;
virtual void SetLayerPlaybackScale(int32 nLayer, f32 fSpeed) = 0;
virtual void SetMirrorAnimation(uint32 ts) = 0;
motion initialization
virtual void SetTrackViewExclusive(uint32 i) = 0;
virtual void SetTrackViewMixingWeight(uint32 layer, f32 weight) = 0;
virtual bool StartAnimation(const char* szAnimName0, const CryCharAnimationParams& Params) = 0;
motion playback and blending
virtual bool StartAnimationById(int32 id, const CryCharAnimationParams& Params) = 0;
virtual bool StopAnimationInLayer(int32 nLayer, f32 BlendOutTime) = 0;
virtual bool StopAnimationsAllLayers() = 0;