Open 3D Engine EMotionFX Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
EMotionFX::RagdollInstance Class Reference

Public Types

typedef const AZStd::function< void(const AZ::Vector3 &, const AZ::Color &, const AZ::Vector3 &, const AZ::Color &, float)> & DrawLineFunction
 

Public Member Functions

 RagdollInstance (Physics::Ragdoll *ragdoll, ActorInstance *actorInstance)
 
void PostPhysicsUpdate (float timeDelta)
 
void PostAnimGraphUpdate (float timeDelta)
 
void SetRagdollRootNode (Node *node)
 
NodeGetRagdollRootNode () const
 
const AZ::Outcome< size_t > GetRootRagdollNodeIndex () const
 
Physics::Ragdoll * GetRagdoll () const
 
AzPhysics::SceneHandle GetRagdollSceneHandle () const
 
void SetRagdollUsed ()
 
const AZ::Outcome< size_t > GetRagdollNodeIndex (size_t jointIndex) const
 
size_t GetJointIndex (size_t ragdollNodeIndex) const
 
const AZ::Vector3 & GetCurrentPos () const
 
const AZ::Vector3 & GetLastPos () const
 
const AZ::Quaternion & GetCurrentRot () const
 
const AZ::Quaternion & GetLastRot () const
 
const Physics::RagdollState & GetCurrentState () const
 
const Physics::RagdollState & GetLastState () const
 
const Physics::RagdollState & GetTargetState () const
 
const AZ::Vector3 & GetTrajectoryDeltaPos () const
 
const AZ::Quaternion & GetTrajectoryDeltaRot () const
 
void ResetTrajectoryDelta ()
 
void SetVelocityEvaluator (RagdollVelocityEvaluator *evaluator)
 
RagdollVelocityEvaluatorGetVelocityEvaluator () const
 
void GetWorldSpaceTransform (const Pose *pose, size_t jointIndex, AZ::Vector3 &outPosition, AZ::Quaternion &outRotation)
 
void FindNextRagdollParentForJoint (Node *joint, Node *&outParentJoint, AZ::Outcome< size_t > &outRagdollParentNodeIndex) const
 
void DebugDraw (DrawLineFunction drawLine) const
 

Member Function Documentation

◆ PostPhysicsUpdate()

void EMotionFX::RagdollInstance::PostPhysicsUpdate ( float  timeDelta)

Accumulate motion extraction delta position and rotation. As the physics system updates with fixed time steps, we sometimes update the animation system multiple times without updating physics while when framerate is low it could happen that we update physics multiple times within one frame. Any time the physics system updates, this function gets called, calculates the delta position and rotation of the ragdoll between the last and the current physics update and store the accumulated delta.

◆ ResetTrajectoryDelta()

void EMotionFX::RagdollInstance::ResetTrajectoryDelta ( )

Reset the accumulated position and rotation motion extraction deltas.


The documentation for this class was generated from the following file: