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::UniformMotionData Class Reference

Inherits EMotionFX::MotionData.

Classes

struct  InitSettings
 

Public Member Functions

void InitFromNonUniformData (const NonUniformMotionData *motionData, bool keepSameSampleRate=true, float newSampleRate=30.0f, bool updateDuration=false) override
 
bool Read (MCore::Stream *stream, const ReadSettings &readSettings) override
 
bool Save (MCore::Stream *stream, const SaveSettings &saveSettings) const override
 
size_t CalcStreamSaveSizeInBytes (const SaveSettings &saveSettings) const override
 
AZ::u32 GetStreamSaveVersion () const override
 
bool GetSupportsOptimizeSettings () const override
 
const char * GetSceneSettingsName () const override
 
Transform SampleJointTransform (const MotionDataSampleSettings &settings, size_t jointSkeletonIndex) const override
 
void SamplePose (const MotionDataSampleSettings &settings, Pose *outputPose) const override
 
float SampleMorph (float sampleTime, size_t morphDataIndex) const override
 
float SampleFloat (float sampleTime, size_t floatDataIndex) const override
 
Transform SampleJointTransform (float sampleTime, size_t jointDataIndex) const override
 
AZ::Vector3 SampleJointPosition (float sampleTime, size_t jointDataIndex) const override
 
AZ::Quaternion SampleJointRotation (float sampleTime, size_t jointDataIndex) const override
 
void Init (const InitSettings &settings)
 
void AllocateJointPositionSamples (size_t jointDataIndex)
 
void AllocateJointRotationSamples (size_t jointDataIndex)
 
void AllocateMorphSamples (size_t morphDataIndex)
 
void AllocateFloatSamples (size_t floatDataIndex)
 
void ClearAllJointTransformSamples () override
 
void ClearAllMorphSamples () override
 
void ClearAllFloatSamples () override
 
void ClearJointPositionSamples (size_t jointDataIndex) override
 
void ClearJointRotationSamples (size_t jointDataIndex) override
 
void ClearJointTransformSamples (size_t jointDataIndex) override
 
void ClearMorphSamples (size_t morphDataIndex) override
 
void ClearFloatSamples (size_t floatDataIndex) override
 
Vector3Key GetJointPositionSample (size_t jointDataIndex, size_t sampleIndex) const
 
QuaternionKey GetJointRotationSample (size_t jointDataIndex, size_t sampleIndex) const
 
FloatKey GetMorphSample (size_t morphDataIndex, size_t sampleIndex) const
 
FloatKey GetFloatSample (size_t floatDataIndex, size_t sampleIndex) const
 
bool IsJointPositionAnimated (size_t jointDataIndex) const override
 
bool IsJointRotationAnimated (size_t jointDataIndex) const override
 
bool IsJointAnimated (size_t jointDataIndex) const override
 
bool IsMorphAnimated (size_t morphDataIndex) const override
 
bool IsFloatAnimated (size_t floatDataIndex) const override
 
void SetJointPositionSample (size_t jointDataIndex, size_t sampleIndex, const AZ::Vector3 &position)
 
void SetJointRotationSample (size_t jointDataIndex, size_t sampleIndex, const AZ::Quaternion &rotation)
 
void SetMorphSample (size_t morphDataIndex, size_t sampleIndex, float value)
 
void SetFloatSample (size_t floatDataIndex, size_t sampleIndex, float value)
 
void SetJointPositionSamples (size_t jointDataIndex, const AZStd::vector< AZ::Vector3 > &positions)
 
void SetJointRotationSamples (size_t jointDataIndex, const AZStd::vector< AZ::Quaternion > &rotations)
 
void AllocateJointScaleSamples (size_t jointDataIndex)
 
void ClearJointScaleSamples (size_t jointDataIndex) override
 
Vector3Key GetJointScaleSample (size_t jointDataIndex, size_t sampleIndex) const
 
bool IsJointScaleAnimated (size_t jointDataIndex) const override
 
void SetJointScaleSample (size_t jointDataIndex, size_t sampleIndex, const AZ::Vector3 &scale)
 
void SetJointScaleSamples (size_t jointDataIndex, const AZStd::vector< AZ::Vector3 > &scales)
 
AZ::Vector3 SampleJointScale (float sampleTime, size_t jointDataIndex) const override
 
size_t GetNumSamples () const
 
float GetSampleSpacing () const
 
void SetSampleRate (float sampleRate) override
 
void UpdateDuration () override
 
- Public Member Functions inherited from EMotionFX::MotionData
 MotionData (const MotionData &)=delete
 
 MotionData (MotionData &&)=delete
 
MotionDataoperator= (const MotionData &)=delete
 
MotionDataoperator= (MotionData &&)=delete
 
virtual void InitFromNonUniformData (const NonUniformMotionData *motionData, bool keepSameSampleRate=true, float newSampleRate=30.0f, bool updateDuration=false)=0
 
virtual void Optimize (const OptimizeSettings &settings)
 
virtual bool Read (MCore::Stream *stream, const ReadSettings &readSettings)=0
 
virtual bool Save (MCore::Stream *stream, const SaveSettings &saveSettings) const =0
 
virtual size_t CalcStreamSaveSizeInBytes (const SaveSettings &saveSettings) const =0
 
virtual AZ::u32 GetStreamSaveVersion () const =0
 
virtual bool GetSupportsOptimizeSettings () const
 
virtual const char * GetSceneSettingsName () const =0
 
virtual Transform SampleJointTransform (const MotionDataSampleSettings &settings, size_t jointSkeletonIndex) const =0
 
virtual void SamplePose (const MotionDataSampleSettings &settings, Pose *outputPose) const =0
 
virtual float SampleMorph (float sampleTime, size_t morphDataIndex) const =0
 
virtual float SampleFloat (float sampleTime, size_t morphDataIndex) const =0
 
virtual Transform SampleJointTransform (float sampleTime, size_t jointIndex) const =0
 
virtual AZ::Vector3 SampleJointPosition (float sampleTime, size_t jointDataIndex) const =0
 
virtual AZ::Quaternion SampleJointRotation (float sampleTime, size_t jointDataIndex) const =0
 
bool SampleJointPosition (float sampleTime, AZ::u32 jointNameId, AZ::Vector3 &resultValue) const
 
bool SampleJointRotation (float sampleTime, AZ::u32 jointNameId, AZ::Quaternion &resultValue) const
 
bool SampleMorph (float sampleTime, AZ::u32 id, float &resultValue) const
 
bool SampleFloat (float sampleTime, AZ::u32 id, float &resultValue) const
 
virtual void ClearAllJointTransformSamples ()=0
 
virtual void ClearAllMorphSamples ()=0
 
virtual void ClearAllFloatSamples ()=0
 
virtual void ClearJointPositionSamples (size_t jointDataIndex)=0
 
virtual void ClearJointRotationSamples (size_t jointDataIndex)=0
 
virtual void ClearJointTransformSamples (size_t jointDataIndex)=0
 
virtual void ClearMorphSamples (size_t morphDataIndex)=0
 
virtual void ClearFloatSamples (size_t floatDataIndex)=0
 
virtual bool IsJointPositionAnimated (size_t jointDataIndex) const =0
 
virtual bool IsJointRotationAnimated (size_t jointDataIndex) const =0
 
virtual bool IsJointAnimated (size_t jointDataIndex) const =0
 
virtual bool IsMorphAnimated (size_t morphDataIndex) const =0
 
virtual bool IsFloatAnimated (size_t floatDataIndex) const =0
 
virtual void UpdateDuration ()
 
virtual bool VerifyIntegrity () const
 
void Resize (size_t numJoints, size_t numMorphs, size_t numFloats)
 
void Clear ()
 
size_t AddJoint (const AZStd::string &name, const Transform &poseTransform, const Transform &bindPoseTransform)
 
size_t AddMorph (const AZStd::string &name, float poseValue)
 
size_t AddFloat (const AZStd::string &name, float poseValue)
 
void RemoveJoint (size_t jointDataIndex)
 
void RemoveMorph (size_t morphDataIndex)
 
void RemoveFloat (size_t floatDataIndex)
 
void Scale (float scaleFactor)
 
float GetDuration () const
 
float GetSampleRate () const
 
void SetDuration (float duration)
 
virtual void SetSampleRate (float sampleRate)
 
AZ::Outcome< size_t > FindJointIndexByNameId (size_t nameId) const
 
AZ::Outcome< size_t > FindMorphIndexByNameId (AZ::u32 nameId) const
 
AZ::Outcome< size_t > FindFloatIndexByNameId (AZ::u32 nameId) const
 
size_t GetNumJoints () const
 
size_t GetNumMorphs () const
 
size_t GetNumFloats () const
 
const AZStd::string & GetJointName (size_t jointDataIndex) const
 
const AZStd::string & GetMorphName (size_t morphDataIndex) const
 
const AZStd::string & GetFloatName (size_t floatDataIndex) const
 
AZ::Vector3 GetJointStaticPosition (size_t jointDataIndex) const
 
AZ::Quaternion GetJointStaticRotation (size_t jointDataIndex) const
 
Transform GetJointStaticTransform (size_t jointDataIndex) const
 
AZ::Vector3 GetJointBindPosePosition (size_t jointDataIndex) const
 
AZ::Quaternion GetJointBindPoseRotation (size_t jointDataIndex) const
 
Transform GetJointBindPoseTransform (size_t jointDataIndex) const
 
float GetMorphStaticValue (size_t morphDataIndex) const
 
float GetFloatStaticValue (size_t floatDataIndex) const
 
AZ::u32 GetJointNameId (size_t jointDataIndex) const
 
AZ::u32 GetMorphNameId (size_t morphDataIndex) const
 
AZ::u32 GetFloatNameId (size_t floatDataIndex) const
 
AZ::Outcome< size_t > FindJointIndexByName (const AZStd::string &name) const
 
AZ::Outcome< size_t > FindMorphIndexByName (const AZStd::string &name) const
 
AZ::Outcome< size_t > FindFloatIndexByName (const AZStd::string &name) const
 
void SetJointName (size_t jointDataIndex, const AZStd::string &name)
 
void SetMorphName (size_t morphDataIndex, const AZStd::string &name)
 
void SetFloatName (size_t floatDataIndex, const AZStd::string &name)
 
void SetJointNameId (size_t jointDataIndex, AZ::u32 id)
 
void SetMorphNameId (size_t morphDataIndex, AZ::u32 id)
 
void SetFloatNameId (size_t floatDataIndex, AZ::u32 id)
 
void SetJointStaticTransform (size_t jointDataIndex, const Transform &transform)
 
void SetJointStaticPosition (size_t jointDataIndex, const AZ::Vector3 &position)
 
void SetJointStaticRotation (size_t jointDataIndex, const AZ::Quaternion &rotation)
 
void SetJointBindPoseTransform (size_t jointDataIndex, const Transform &transform)
 
void SetJointBindPosePosition (size_t jointDataIndex, const AZ::Vector3 &position)
 
void SetJointBindPoseRotation (size_t jointDataIndex, const AZ::Quaternion &rotation)
 
void SetMorphStaticValue (size_t morphDataIndex, float poseValue)
 
void SetFloatStaticValue (size_t floatDataIndex, float poseValue)
 
const MotionLinkDataFindMotionLinkData (const Actor *actor) const
 
size_t GetNumMotionLinkCacheEntries () const
 
void BasicRetarget (const ActorInstance *actorInstance, const MotionLinkData *motionLinkData, size_t jointIndex, Transform &inOutTransform) const
 
bool IsAdditive () const
 
void SetAdditive (bool isAdditive)
 
virtual AZ::Vector3 SampleJointScale (float sampleTime, size_t jointDataIndex) const =0
 
bool SampleJointScale (float sampleTime, AZ::u32 jointNameId, AZ::Vector3 &resultValue) const
 
virtual void ClearJointScaleSamples (size_t jointDataIndex)=0
 
virtual bool IsJointScaleAnimated (size_t jointDataIndex) const =0
 
AZ::Vector3 GetJointStaticScale (size_t jointDataIndex) const
 
AZ::Vector3 GetJointBindPoseScale (size_t jointDataIndex) const
 
void SetJointStaticScale (size_t jointDataIndex, const AZ::Vector3 &scale)
 
void SetJointBindPoseScale (size_t jointDataIndex, const AZ::Vector3 &scale)
 
virtual void ExtractRootMotion (size_t sampleJointDataIndex, size_t rootJointDataIndex, const RootMotionExtractionData &data)
 

Additional Inherited Members

- Public Types inherited from EMotionFX::MotionData
using Vector3Key = Key< AZ::Vector3 >
 
using QuaternionKey = Key< AZ::Quaternion >
 
using FloatKey = Key< float >
 
- Static Public Member Functions inherited from EMotionFX::MotionData
static void CalculateSampleInformation (float duration, float &inOutSampleRate, size_t &numSamples, float &sampleSpacing)
 
static size_t CalculateNumRequiredSamples (float duration, float sampleSpacing)
 
static void CalculateInterpolationIndicesNonUniform (const AZStd::vector< float > &timeValues, float sampleTime, size_t &indexA, size_t &indexB, float &t)
 
static void CalculateInterpolationIndicesUniform (float sampleTime, float sampleSpacing, float duration, size_t numSamples, size_t &indexA, size_t &indexB, float &t)
 
static AZStd::string ReadStringFromStream (MCore::Stream *stream, MCore::Endian::EEndianType sourceEndianType)
 
- Protected Member Functions inherited from EMotionFX::MotionData
virtual void ResizeSampleData (size_t numJoints, size_t numMorphs, size_t numFloats)=0
 
virtual void AddJointSampleData (size_t jointDataIndex)=0
 
virtual void AddMorphSampleData (size_t morphDataIndex)=0
 
virtual void AddFloatSampleData (size_t floatDataIndex)=0
 
virtual void RemoveJointSampleData (size_t jointDataIndex)=0
 
virtual void RemoveMorphSampleData (size_t morphDataIndex)=0
 
virtual void RemoveFloatSampleData (size_t floatDataIndex)=0
 
virtual void ClearAllData ()=0
 
virtual void ScaleData (float scaleFactor)=0
 
virtual AZStd::unique_ptr< const MotionLinkDataCreateMotionLinkData (const Actor *actor) const
 
void CopyBaseMotionData (const MotionData *motionData)
 
- Static Protected Member Functions inherited from EMotionFX::MotionData
static AZ::Outcome< size_t > FindFloatDataIndexById (const AZStd::vector< StaticFloatData > &data, AZ::u32 id)
 
- Protected Attributes inherited from EMotionFX::MotionData
AZStd::vector< StaticJointDatam_staticJointData
 
AZStd::vector< StaticFloatDatam_staticMorphData
 
AZStd::vector< StaticFloatDatam_staticFloatData
 
float m_duration = 0.0f
 
float m_sampleRate = 30.0f
 
bool m_additive = false
 
bool m_rootMotionExtracted = false
 

Member Function Documentation

◆ CalcStreamSaveSizeInBytes()

size_t EMotionFX::UniformMotionData::CalcStreamSaveSizeInBytes ( const SaveSettings saveSettings) const
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearAllFloatSamples()

void EMotionFX::UniformMotionData::ClearAllFloatSamples ( )
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearAllJointTransformSamples()

void EMotionFX::UniformMotionData::ClearAllJointTransformSamples ( )
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearAllMorphSamples()

void EMotionFX::UniformMotionData::ClearAllMorphSamples ( )
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearFloatSamples()

void EMotionFX::UniformMotionData::ClearFloatSamples ( size_t  floatDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearJointPositionSamples()

void EMotionFX::UniformMotionData::ClearJointPositionSamples ( size_t  jointDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearJointRotationSamples()

void EMotionFX::UniformMotionData::ClearJointRotationSamples ( size_t  jointDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearJointScaleSamples()

void EMotionFX::UniformMotionData::ClearJointScaleSamples ( size_t  jointDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearJointTransformSamples()

void EMotionFX::UniformMotionData::ClearJointTransformSamples ( size_t  jointDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ ClearMorphSamples()

void EMotionFX::UniformMotionData::ClearMorphSamples ( size_t  morphDataIndex)
overridevirtual

Implements EMotionFX::MotionData.

◆ GetSceneSettingsName()

const char * EMotionFX::UniformMotionData::GetSceneSettingsName ( ) const
overridevirtual

Implements EMotionFX::MotionData.

◆ GetStreamSaveVersion()

AZ::u32 EMotionFX::UniformMotionData::GetStreamSaveVersion ( ) const
overridevirtual

Implements EMotionFX::MotionData.

◆ GetSupportsOptimizeSettings()

bool EMotionFX::UniformMotionData::GetSupportsOptimizeSettings ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::MotionData.

◆ InitFromNonUniformData()

void EMotionFX::UniformMotionData::InitFromNonUniformData ( const NonUniformMotionData motionData,
bool  keepSameSampleRate = true,
float  newSampleRate = 30.0f,
bool  updateDuration = false 
)
overridevirtual

Implements EMotionFX::MotionData.

◆ IsFloatAnimated()

bool EMotionFX::UniformMotionData::IsFloatAnimated ( size_t  floatDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ IsJointAnimated()

bool EMotionFX::UniformMotionData::IsJointAnimated ( size_t  jointDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ IsJointPositionAnimated()

bool EMotionFX::UniformMotionData::IsJointPositionAnimated ( size_t  jointDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ IsJointRotationAnimated()

bool EMotionFX::UniformMotionData::IsJointRotationAnimated ( size_t  jointDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ IsJointScaleAnimated()

bool EMotionFX::UniformMotionData::IsJointScaleAnimated ( size_t  jointDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ IsMorphAnimated()

bool EMotionFX::UniformMotionData::IsMorphAnimated ( size_t  morphDataIndex) const
overridevirtual

Implements EMotionFX::MotionData.

◆ Read()

bool EMotionFX::UniformMotionData::Read ( MCore::Stream stream,
const ReadSettings readSettings 
)
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleFloat()

float EMotionFX::UniformMotionData::SampleFloat ( float  sampleTime,
size_t  floatDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleJointPosition()

AZ::Vector3 EMotionFX::UniformMotionData::SampleJointPosition ( float  sampleTime,
size_t  jointDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleJointRotation()

AZ::Quaternion EMotionFX::UniformMotionData::SampleJointRotation ( float  sampleTime,
size_t  jointDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleJointScale()

AZ::Vector3 EMotionFX::UniformMotionData::SampleJointScale ( float  sampleTime,
size_t  jointDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleJointTransform() [1/2]

Transform EMotionFX::UniformMotionData::SampleJointTransform ( const MotionDataSampleSettings settings,
size_t  jointSkeletonIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleJointTransform() [2/2]

Transform EMotionFX::UniformMotionData::SampleJointTransform ( float  sampleTime,
size_t  jointDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SampleMorph()

float EMotionFX::UniformMotionData::SampleMorph ( float  sampleTime,
size_t  morphDataIndex 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SamplePose()

void EMotionFX::UniformMotionData::SamplePose ( const MotionDataSampleSettings settings,
Pose outputPose 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ Save()

bool EMotionFX::UniformMotionData::Save ( MCore::Stream stream,
const SaveSettings saveSettings 
) const
overridevirtual

Implements EMotionFX::MotionData.

◆ SetSampleRate()

void EMotionFX::UniformMotionData::SetSampleRate ( float  sampleRate)
overridevirtual

Reimplemented from EMotionFX::MotionData.

◆ UpdateDuration()

void EMotionFX::UniformMotionData::UpdateDuration ( )
overridevirtual

Reimplemented from EMotionFX::MotionData.


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