struct IAnimatedCharacter : public IGameObjectExtension { };
IAnimatedCharacter.h
virtual void AddMovement(const SCharacterMoveRequest&) = 0;
movement related - apply some physical impulse/movement request to an object and make sure it syncs correctly with animation
virtual void AllowAimIk(bool allow) = 0;
aim IK is allowed by default. use this to disallow it
virtual void AllowLookIk(bool allow, int layer = -1) = 0;
look IK is allowed by default. use this to disallow it
virtual void ChangeGraph(const char * graph, int layer) = 0;
virtual void ClearForcedStates() = 0;
virtual void DisableLandBob() = 0;
virtual void DisableRigidCollider() = 0;
virtual void EnableLandBob(const SLandBobParams & landBobParams) = 0;
Procedural landing bounce effect that works in conjunction with the leg IK
virtual void EnableRigidCollider(float radius) = 0;
virtual float FilterView(SViewParams & viewParams) const = 0;
virtual void ForceMovement(const QuatT & relativeMovement) = 0;
Add movement to the animated character - used to force movement when the character is in animation controlled movement Multiple calls will accumulate the forced movement until it is applied
virtual void ForceOverrideRotation(const Quat & qWorldRotation) = 0;
Override rotation the animated character will apply - used to force rotation when the character is in animation controlled movement
virtual void ForceRefreshPhysicalColliderMode() = 0;
virtual IActionController * GetActionController() = 0;
virtual const IActionController * GetActionController() const = 0;
virtual float GetAngularSpeedHorizontal() const = 0;
virtual IAnimationGraphState * GetAnimationGraphState() = 0;
virtual CAnimationPlayerProxy * GetAnimationPlayerProxy(int layer) = 0;
virtual const QuatT& GetAnimLocation() const = 0;
virtual int GetCurrentStance() = 0;
stance helper functions
virtual const Vec2& GetEntityAccelerationHorizontal() const = 0;
virtual const Vec2& GetEntityMovementDirHorizontal() const = 0;
virtual const float GetEntitySpeed() const = 0;
virtual const float GetEntitySpeedHorizontal() const = 0;
virtual const float GetEntityTangentialAcceleration() const = 0;
virtual const Vec2& GetEntityVelocityHorizontal() const = 0;
virtual const Vec3& GetExpectedEntMovement() const = 0;
virtual int GetFacialAlertnessLevel() = 0;
virtual SGroundAlignmentParams& GetGroundAlignmentParams() = 0;
virtual EMovementControlMethod GetMCMH() const = 0;
virtual EMovementControlMethod GetMCMV() const = 0;
virtual const SPredictedCharacterStates& GetOverriddenMotionParameters() const = 0;
virtual const SAnimatedCharacterParams& GetParams() = 0;
virtual EColliderMode GetPhysicalColliderMode() const = 0;
virtual float GetSlopeDegree() const = 0;
virtual float GetSlopeDegreeMoveDir() const = 0;
Returns the angle (in degrees) of the ground below the character. Zero is flat ground (along facing direction), positive when character facing uphill, negative when character facing downhill.
virtual bool InStanceTransition() = 0;
virtual bool IsAimIkAllowed() const = 0;
virtual bool IsLookIkAllowed() const = 0;
virtual void PushForcedState(const char * state) = 0;
virtual void RequestPhysicalColliderMode(EColliderMode mode, EColliderModeLayer layer, const char* tag = NULL) = 0;
virtual void RequestStance(int stanceID, const char * name) = 0;
virtual void ResetInertiaCache() = 0;
virtual void ResetState() = 0;
virtual void SetAnimationPlayerProxy(CAnimationPlayerProxy * proxy, int layer) = 0;
virtual void SetCharacterCollisionFlags(unsigned int flags) = 0;
virtual void SetDoMotionParams(bool doMotionParams) = 0;
virtual void SetEntityRotation(const Quat & rot) = 0;
virtual void SetFacialAlertnessLevel(int alertness) = 0;
virtual void MakePushable(bool enable) = 0;
virtual void SetInGrabbedState(bool bEnable) = 0;
Set Animated Character in a special state (grabbed) This state requires special handling regarding animation processing order
virtual void SetMovementControlMethods(EMCMSlot slot, EMovementControlMethod horizontal, EMovementControlMethod vertical, const char* tag = NULL) = 0;
virtual void SetMovementControlMethods(EMovementControlMethod horizontal, EMovementControlMethod vertical) = 0;
Deprecated, please use the version of this function that requires the slot parameter.
virtual void SetNoMovementOverride(bool external) = 0;
virtual void SetOverriddenMotionParameters(const SPredictedCharacterStates& motionParameters) = 0;
virtual void SetParams(const SAnimatedCharacterParams& params) = 0;
virtual void SetShadowCharacterSlot(int id) = 0;
virtual void SetWeaponRaisedPose(EWeaponRaisedPose pose) = 0;
deprecated
virtual void TriggerRecoil(float duration, float kinematicImpact, float kickIn = 0.8f, EAnimatedCharacterArms arms = eACA_BothArms) = 0;
virtual void UpdateCharacterPtrs() = 0;
virtual void UseAnimationMovementForEntity(bool xyMove, bool zMove, bool rotation) = 0;
! Override for the entity's desired movement -> replace it with animation movement components