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::BlendSpaceNode Class Referenceabstract

Inherits EMotionFX::AnimGraphNode.

Inherited by EMotionFX::BlendSpace1DNode, and EMotionFX::BlendSpace2DNode.

Classes

struct  BlendInfo
 
class  BlendSpaceMotion
 
struct  MotionInfo
 

Public Types

enum  EBlendSpaceEventMode : AZ::u8 { BSEVENTMODE_ALL_ACTIVE_MOTIONS = 0 , BSEVENTMODE_MOST_ACTIVE_MOTION = 1 , BSEVENTMODE_NONE = 2 }
 
enum  ECalculationMethod : AZ::u8 { AUTO = 0 , MANUAL = 1 }
 
- Public Types inherited from EMotionFX::AnimGraphObject
enum  { FLAG_DISABLED = 1 << 0 }
 
enum  ECategory {
  CATEGORY_SOURCES = 0 , CATEGORY_BLENDING = 1 , CATEGORY_CONTROLLERS = 2 , CATEGORY_PHYSICS = 3 ,
  CATEGORY_LOGIC = 4 , CATEGORY_MATH = 5 , CATEGORY_MISC = 6 , CATEGORY_TRANSITIONS = 10 ,
  CATEGORY_TRANSITIONCONDITIONS = 11 , CATEGORY_TRIGGERACTIONS = 12
}
 
enum  ESyncMode : AZ::u8 { SYNCMODE_DISABLED = 0 , SYNCMODE_TRACKBASED = 1 , SYNCMODE_CLIPBASED = 2 }
 
enum  EEventMode : AZ::u8 {
  EVENTMODE_LEADERONLY = 0 , EVENTMODE_FOLLOWERONLY = 1 , EVENTMODE_BOTHNODES = 2 , EVENTMODE_MOSTACTIVE = 3 ,
  EVENTMODE_NONE = 4
}
 
enum  EExtractionMode : AZ::u8 { EXTRACTIONMODE_BLEND = 0 , EXTRACTIONMODE_TARGETONLY = 1 , EXTRACTIONMODE_SOURCEONLY = 2 }
 

Public Member Functions

 BlendSpaceNode (AnimGraph *animGraph, const char *name)
 
virtual void ComputeMotionCoordinates (const AZStd::string &motionId, AnimGraphInstance *animGraphInstance, AZ::Vector2 &position)=0
 Compute the position of the motion in blend space.
 
virtual void RestoreMotionCoordinates (BlendSpaceMotion &motion, AnimGraphInstance *animGraphInstance)=0
 Restore the motion coordinates that are set to automatic mode back to the computed values.
 
virtual void SetMotions (const AZStd::vector< BlendSpaceMotion > &motions)=0
 Common interface to access the blend space motions regardless of the blend space dimension.
 
virtual const AZStd::vector< BlendSpaceMotion > & GetMotions () const =0
 
void SetInteractiveMode (bool enable)
 The node is in interactive mode when the user is interactively changing the current point.
 
bool IsInInteractiveMode () const
 
- Public Member Functions inherited from EMotionFX::AnimGraphNode
 AnimGraphNode (AnimGraph *animGraph, const char *name)
 
virtual void RecursiveReinit () override
 
bool InitAfterLoading (AnimGraph *animGraph) override
 
void InitTriggerActions ()
 
virtual bool GetSupportsVisualization () const
 
virtual bool GetSupportsPreviewMotion () const
 
virtual bool GetSupportsDisable () const
 
virtual bool GetHasVisualOutputPorts () const
 
virtual bool GetCanHaveOnlyOneInsideParent () const
 
virtual bool GetIsDeletable () const
 
virtual bool GetIsLastInstanceDeletable () const
 
virtual bool GetCanActAsState () const
 
virtual bool GetHasVisualGraph () const
 
virtual bool GetCanHaveChildren () const
 
virtual bool GetHasOutputPose () const
 
virtual bool GetCanBeInsideStateMachineOnly () const
 
virtual bool GetCanBeInsideChildStateMachineOnly () const
 
virtual bool GetNeedsNetTimeSync () const
 
virtual bool GetCanBeEntryNode () const
 
virtual AZ::Color GetVisualColor () const
 
virtual AZ::Color GetHasChildIndicatorColor () const
 
void OutputAllIncomingNodes (AnimGraphInstance *animGraphInstance)
 
void UpdateAllIncomingNodes (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void UpdateIncomingNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *node, float timePassedInSeconds)
 
AnimGraphObjectDataCreateUniqueData (AnimGraphInstance *animGraphInstance) override
 
virtual void RecursiveResetUniqueDatas (AnimGraphInstance *animGraphInstance)
 
void InvalidateUniqueData (AnimGraphInstance *animGraphInstance) override
 
void RecursiveInvalidateUniqueDatas (AnimGraphInstance *animGraphInstance) override
 
void OnRemoveNode (AnimGraph *animGraph, AnimGraphNode *nodeToRemove) override
 
void PerformOutput (AnimGraphInstance *animGraphInstance)
 
void PerformTopDownUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void PerformUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void PerformPostUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
virtual void SkipPostUpdate (AnimGraphInstance *animGraphInstance)
 
virtual void SkipOutput (AnimGraphInstance *animGraphInstance)
 
float GetDuration (AnimGraphInstance *animGraphInstance) const
 
virtual void SetCurrentPlayTime (AnimGraphInstance *animGraphInstance, float timeInSeconds)
 
virtual float GetCurrentPlayTime (AnimGraphInstance *animGraphInstance) const
 
size_t GetSyncIndex (AnimGraphInstance *animGraphInstance) const
 
void SetSyncIndex (AnimGraphInstance *animGraphInstance, size_t syncIndex)
 
virtual void SetPlaySpeed (AnimGraphInstance *animGraphInstance, float speedFactor)
 
virtual float GetPlaySpeed (AnimGraphInstance *animGraphInstance) const
 
virtual void SetCurrentPlayTimeNormalized (AnimGraphInstance *animGraphInstance, float normalizedTime)
 
virtual void Rewind (AnimGraphInstance *animGraphInstance)
 
void AutoSync (AnimGraphInstance *animGraphInstance, AnimGraphNode *leaderNode, float weight, ESyncMode syncMode, bool resync)
 
void SyncFullNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *leaderNode, float weight, bool modifyLeaderSpeed=true)
 
void SyncPlayTime (AnimGraphInstance *animGraphInstance, AnimGraphNode *leaderNode)
 
void SyncUsingSyncTracks (AnimGraphInstance *animGraphInstance, AnimGraphNode *syncWithNode, const AnimGraphSyncTrack *syncTrackA, const AnimGraphSyncTrack *syncTrackB, float weight, bool resync, bool modifyLeaderSpeed=true)
 
void SyncPlaySpeeds (AnimGraphInstance *animGraphInstance, AnimGraphNode *leaderNode, float weight, bool modifyLeaderSpeed=true)
 
virtual void HierarchicalSyncInputNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *inputNode, AnimGraphNodeData *uniqueDataOfThisNode)
 
void HierarchicalSyncAllInputNodes (AnimGraphInstance *animGraphInstance, AnimGraphNodeData *uniqueDataOfThisNode)
 
void RequestPoses (AnimGraphInstance *animGraphInstance)
 
void FreeIncomingPoses (AnimGraphInstance *animGraphInstance)
 
void IncreaseInputRefCounts (AnimGraphInstance *animGraphInstance)
 
void DecreaseRef (AnimGraphInstance *animGraphInstance)
 
void RequestRefDatas (AnimGraphInstance *animGraphInstance)
 
void FreeIncomingRefDatas (AnimGraphInstance *animGraphInstance)
 
void IncreaseInputRefDataRefCounts (AnimGraphInstance *animGraphInstance)
 
void DecreaseRefDataRef (AnimGraphInstance *animGraphInstance)
 
void * GetCustomData () const
 
void SetCustomData (void *dataPointer)
 
virtual AnimGraphPoseGetMainOutputPose (AnimGraphInstance *animGraphInstance) const
 
virtual void RecursiveCollectActiveNodes (AnimGraphInstance *animGraphInstance, AZStd::vector< AnimGraphNode * > *outNodes, const AZ::TypeId &nodeType=AZ::TypeId::CreateNull()) const
 
virtual void RecursiveCollectActiveNetTimeSyncNodes (AnimGraphInstance *animGraphInstance, AZStd::vector< AnimGraphNode * > *outNodes) const
 
virtual bool RecursiveDetectCycles (AZStd::unordered_set< const AnimGraphNode * > &nodes) const
 
void CollectChildNodesOfType (const AZ::TypeId &nodeType, AZStd::vector< AnimGraphNode * > *outNodes) const
 
void CollectChildNodesOfType (const AZ::TypeId &nodeType, AZStd::vector< AnimGraphNode * > &outNodes) const
 
void RecursiveCollectNodesOfType (const AZ::TypeId &nodeType, AZStd::vector< AnimGraphNode * > *outNodes) const
 
void RecursiveCollectTransitionConditionsOfType (const AZ::TypeId &conditionType, AZStd::vector< AnimGraphTransitionCondition * > *outConditions) const
 
virtual void RecursiveCollectObjectsOfType (const AZ::TypeId &objectType, AZStd::vector< AnimGraphObject * > &outObjects) const
 
virtual void RecursiveCollectObjectsAffectedBy (AnimGraph *animGraph, AZStd::vector< AnimGraphObject * > &outObjects) const
 
virtual void OnStateEntering (AnimGraphInstance *animGraphInstance, AnimGraphNode *previousState, AnimGraphStateTransition *usedTransition)
 
virtual void OnStateEnter (AnimGraphInstance *animGraphInstance, AnimGraphNode *previousState, AnimGraphStateTransition *usedTransition)
 
virtual void OnStateExit (AnimGraphInstance *animGraphInstance, AnimGraphNode *targetState, AnimGraphStateTransition *usedTransition)
 
virtual void OnStateEnd (AnimGraphInstance *animGraphInstance, AnimGraphNode *newState, AnimGraphStateTransition *usedTransition)
 
void RecursiveOnChangeMotionSet (AnimGraphInstance *animGraphInstance, MotionSet *newMotionSet) override
 
const char * GetName () const
 
const AZStd::string & GetNameString () const
 
void SetName (const char *name)
 
MCORE_INLINE AnimGraphNodeId GetId () const
 
void SetId (AnimGraphNodeId id)
 
const MCore::AttributeGetInputValue (AnimGraphInstance *instance, size_t inputPort) const
 
size_t FindInputPortByID (uint32 portID) const
 
size_t FindOutputPortByID (uint32 portID) const
 
PortFindInputPortByName (const AZStd::string &portName)
 
PortFindOutputPortByName (const AZStd::string &portName)
 
bool ValidateConnections () const
 
BlendTreeConnectionAddConnection (AnimGraphNode *sourceNode, uint16 sourcePort, uint16 targetPort)
 
BlendTreeConnectionAddUnitializedConnection (AnimGraphNode *sourceNode, uint16 sourcePort, uint16 targetPort)
 
void RemoveConnection (BlendTreeConnection *connection, bool delFromMem=true)
 
void RemoveConnection (AnimGraphNode *sourceNode, uint16 sourcePort, uint16 targetPort)
 
bool RemoveConnectionById (AnimGraphConnectionId connectionId, bool delFromMem=true)
 
void RemoveAllConnections ()
 
TriggerActionSetupGetTriggerActionSetup ()
 
const TriggerActionSetupGetTriggerActionSetup () const
 
void CollectOutgoingConnections (AZStd::vector< AZStd::pair< BlendTreeConnection *, AnimGraphNode * > > &outConnections) const
 
void CollectOutgoingConnections (AZStd::vector< AZStd::pair< BlendTreeConnection *, AnimGraphNode * > > &outConnections, const size_t portIndex) const
 
MCORE_INLINE bool GetInputNumberAsBool (AnimGraphInstance *animGraphInstance, size_t inputPortNr) const
 
MCORE_INLINE float GetInputNumberAsFloat (AnimGraphInstance *animGraphInstance, size_t inputPortNr) const
 
MCORE_INLINE int32 GetInputNumberAsInt32 (AnimGraphInstance *animGraphInstance, size_t inputPortNr) const
 
MCORE_INLINE uint32 GetInputNumberAsUint32 (AnimGraphInstance *animGraphInstance, size_t inputPortNr) const
 
MCORE_INLINE AnimGraphNodeGetInputNode (size_t portNr)
 
MCORE_INLINE MCore::AttributeGetInputAttribute (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeFloatGetInputFloat (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeInt32GetInputInt32 (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeStringGetInputString (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeBoolGetInputBool (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE bool TryGetInputVector4 (AnimGraphInstance *animGraphInstance, size_t portNr, AZ::Vector4 &outResult) const
 
MCORE_INLINE bool TryGetInputVector2 (AnimGraphInstance *animGraphInstance, size_t portNr, AZ::Vector2 &outResult) const
 
MCORE_INLINE bool TryGetInputVector3 (AnimGraphInstance *animGraphInstance, size_t portNr, AZ::Vector3 &outResult) const
 
MCORE_INLINE MCore::AttributeQuaternionGetInputQuaternion (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeColorGetInputColor (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE AttributeMotionInstanceGetInputMotionInstance (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE AttributePoseGetInputPose (AnimGraphInstance *animGraphInstance, size_t portNr) const
 
MCORE_INLINE MCore::AttributeGetOutputAttribute (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeFloatGetOutputNumber (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeFloatGetOutputFloat (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeInt32GetOutputInt32 (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeStringGetOutputString (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeBoolGetOutputBool (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeVector2GetOutputVector2 (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeVector3GetOutputVector3 (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeVector4GetOutputVector4 (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeQuaternionGetOutputQuaternion (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE MCore::AttributeColorGetOutputColor (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE AttributePoseGetOutputPose (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
MCORE_INLINE AttributeMotionInstanceGetOutputMotionInstance (AnimGraphInstance *animGraphInstance, size_t outputPortIndex) const
 
void SetupInputPortAsNumber (const char *name, size_t inputPortNr, uint32 portID)
 
void SetupInputPortAsBool (const char *name, size_t inputPortNr, uint32 portID)
 
void SetupInputPort (const char *name, size_t inputPortNr, uint32 attributeTypeID, uint32 portID)
 
void SetupInputPortAsVector3 (const char *name, size_t inputPortNr, uint32 portID)
 
void SetupInputPortAsVector2 (const char *name, size_t inputPortNr, uint32 portID)
 
void SetupInputPortAsVector4 (const char *name, size_t inputPortNr, uint32 portID)
 
void SetupInputPort (const char *name, size_t inputPortNr, const AZStd::vector< uint32 > &attributeTypeIDs, uint32 portID)
 
void SetupOutputPort (const char *name, size_t portIndex, uint32 attributeTypeID, uint32 portID)
 
void SetupOutputPortAsPose (const char *name, size_t outputPortNr, uint32 portID)
 
void SetupOutputPortAsMotionInstance (const char *name, size_t outputPortNr, uint32 portID)
 
bool GetHasConnection (AnimGraphNode *sourceNode, uint16 sourcePort, uint16 targetPort) const
 
BlendTreeConnectionFindConnection (const AnimGraphNode *sourceNode, uint16 sourcePort, uint16 targetPort) const
 
bool HasConnectionAtInputPort (AZ::u32 inputPortNr) const
 
BlendTreeConnectionFindConnection (uint16 port) const
 
BlendTreeConnectionFindConnectionById (AnimGraphConnectionId connectionId) const
 
bool CheckIfIsInputPortConnected (uint16 inputPort) const
 
AnimGraphNodeRecursiveFindNodeByName (const char *nodeName) const
 
bool RecursiveIsNodeNameUnique (const AZStd::string &newNameCandidate, const AnimGraphNode *forNode) const
 
AnimGraphNodeRecursiveFindNodeById (AnimGraphNodeId nodeId) const
 
virtual void RecursiveResetFlags (AnimGraphInstance *animGraphInstance, uint32 flagsToReset=0xffffffff)
 
const AZStd::vector< AnimGraphNode::Port > & GetInputPorts () const
 
const AZStd::vector< AnimGraphNode::Port > & GetOutputPorts () const
 
void SetInputPorts (const AZStd::vector< AnimGraphNode::Port > &inputPorts)
 
void SetOutputPorts (const AZStd::vector< AnimGraphNode::Port > &outputPorts)
 
void InitInputPorts (size_t numPorts)
 
void InitOutputPorts (size_t numPorts)
 
void SetInputPortName (size_t portIndex, const char *name)
 
void SetOutputPortName (size_t portIndex, const char *name)
 
size_t FindOutputPortIndex (const AZStd::string &name) const
 
size_t FindInputPortIndex (const AZStd::string &name) const
 
size_t AddOutputPort ()
 
size_t AddInputPort ()
 
virtual bool GetIsStateTransitionNode () const
 
MCORE_INLINE MCore::AttributeGetOutputValue (AnimGraphInstance *animGraphInstance, size_t portIndex) const
 
MCORE_INLINE PortGetInputPort (size_t index)
 
MCORE_INLINE PortGetOutputPort (size_t index)
 
MCORE_INLINE const PortGetInputPort (size_t index) const
 
MCORE_INLINE const PortGetOutputPort (size_t index) const
 
void RelinkPortConnections ()
 
MCORE_INLINE size_t GetNumConnections () const
 
MCORE_INLINE BlendTreeConnectionGetConnection (size_t index) const
 
const AZStd::vector< BlendTreeConnection * > & GetConnections () const
 
AZ_FORCE_INLINE AnimGraphNodeGetParentNode () const
 
AZ_FORCE_INLINE void SetParentNode (AnimGraphNode *node)
 
virtual bool RecursiveIsParentNode (const AnimGraphNode *node) const
 
bool RecursiveIsChildNode (AnimGraphNode *node) const
 
AnimGraphNodeFindChildNode (const char *name) const
 
AnimGraphNodeFindChildNodeById (AnimGraphNodeId childId) const
 
size_t FindChildNodeIndex (const char *name) const
 
size_t FindChildNodeIndex (AnimGraphNode *node) const
 
AnimGraphNodeFindFirstChildNodeOfType (const AZ::TypeId &nodeType) const
 
bool HasChildNodeOfType (const AZ::TypeId &nodeType) const
 
size_t RecursiveCalcNumNodes () const
 
size_t RecursiveCalcNumNodeConnections () const
 
void CopyBaseNodeTo (AnimGraphNode *node) const
 
MCORE_INLINE size_t GetNumChildNodes () const
 
MCORE_INLINE AnimGraphNodeGetChildNode (size_t index) const
 
const AZStd::vector< AnimGraphNode * > & GetChildNodes () const
 
void SetNodeInfo (const AZStd::string &info)
 
const AZStd::string & GetNodeInfo () const
 
void AddChildNode (AnimGraphNode *node)
 
void ReserveChildNodes (size_t numChildNodes)
 
void RemoveChildNode (size_t index, bool delFromMem=true)
 
void RemoveChildNodeByPointer (AnimGraphNode *node, bool delFromMem=true)
 
void RemoveAllChildNodes (bool delFromMem=true)
 
bool CheckIfHasChildOfType (const AZ::TypeId &nodeType) const
 
void MarkConnectionVisited (AnimGraphNode *sourceNode)
 
void OutputIncomingNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *nodeToOutput)
 
MCORE_INLINE AnimGraphNodeDataFindOrCreateUniqueNodeData (AnimGraphInstance *animGraphInstance) const
 
bool GetIsEnabled () const
 
void SetIsEnabled (bool enabled)
 
bool GetIsCollapsed () const
 
void SetIsCollapsed (bool collapsed)
 
void SetVisualizeColor (const AZ::Color &color)
 
const AZ::Color & GetVisualizeColor () const
 
void SetVisualPos (int32 x, int32 y)
 
int32 GetVisualPosX () const
 
int32 GetVisualPosY () const
 
bool GetIsVisualizationEnabled () const
 
void SetVisualization (bool enabled)
 
bool HierarchicalHasError (AnimGraphObjectData *uniqueData, bool onlyCheckChildNodes=false) const
 
void SetHasError (AnimGraphObjectData *uniqueData, bool hasError)
 
void RecursiveCollectObjects (AZStd::vector< AnimGraphObject * > &outObjects) const override
 
virtual void RecursiveSetUniqueDataFlag (AnimGraphInstance *animGraphInstance, uint32 flag, bool enabled)
 
void FilterEvents (AnimGraphInstance *animGraphInstance, EEventMode eventMode, AnimGraphNode *nodeA, AnimGraphNode *nodeB, float localWeight, AnimGraphRefCountedData *refData)
 
void FilterEvents (AnimGraphInstance *animGraphInstance, EEventMode eventMode, AnimGraphRefCountedData *refDataNodeA, AnimGraphNode *nodeB, float localWeight, AnimGraphRefCountedData *refData)
 
bool GetCanVisualize (AnimGraphInstance *animGraphInstance) const
 
MCORE_INLINE size_t GetNodeIndex () const
 
MCORE_INLINE void SetNodeIndex (size_t index)
 
void ResetPoseRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE void IncreasePoseRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE void DecreasePoseRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE uint32 GetPoseRefCount (AnimGraphInstance *animGraphInstance) const
 
void ResetRefDataRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE void IncreaseRefDataRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE void DecreaseRefDataRefCount (AnimGraphInstance *animGraphInstance)
 
MCORE_INLINE uint32 GetRefDataRefCount (AnimGraphInstance *animGraphInstance) const
 
virtual void GetAttributeStringForAffectedNodeIds (const AZStd::unordered_map< AZ::u64, AZ::u64 > &convertedIds, AZStd::string &attributesString) const
 
- Public Member Functions inherited from EMotionFX::AnimGraphObject
 AnimGraphObject (AnimGraph *animGraph)
 
virtual void Reinit ()
 
virtual void RecursiveReinit ()
 
virtual AnimGraphObjectDataCreateUniqueData (AnimGraphInstance *animGraphInstance)
 
void InvalidateUniqueDatas ()
 Calls InvalidateUniqueData() for the given object for all anim graph instances. (Used by reflection context)
 
virtual void InvalidateUniqueData (AnimGraphInstance *animGraphInstance)
 
virtual void RecursiveInvalidateUniqueDatas (AnimGraphInstance *animGraphInstance)
 
void ResetUniqueDatas ()
 
void ResetUniqueData (AnimGraphInstance *animGraphInstance)
 
virtual bool InitAfterLoading (AnimGraph *animGraph)=0
 
virtual void RegisterAttributes ()
 
virtual void Unregister ()
 
virtual const char * GetPaletteName () const =0
 
virtual void GetSummary (AZStd::string *outResult) const
 
virtual void GetTooltip (AZStd::string *outResult) const
 
virtual const char * GetHelpUrl () const
 
virtual ECategory GetPaletteCategory () const =0
 
virtual void Update (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
virtual void OnChangeMotionSet (AnimGraphInstance *animGraphInstance, MotionSet *newMotionSet)
 
virtual void OnRemoveNode (AnimGraph *animGraph, AnimGraphNode *nodeToRemove)
 
virtual void RecursiveOnChangeMotionSet (AnimGraphInstance *animGraphInstance, MotionSet *newMotionSet)
 
virtual void OnActorMotionExtractionNodeChanged ()
 
MCORE_INLINE size_t GetObjectIndex () const
 
MCORE_INLINE void SetObjectIndex (size_t index)
 
MCORE_INLINE AnimGraphGetAnimGraph () const
 
MCORE_INLINE void SetAnimGraph (AnimGraph *animGraph)
 
size_t SaveUniqueData (AnimGraphInstance *animGraphInstance, uint8 *outputBuffer) const
 
size_t LoadUniqueData (AnimGraphInstance *animGraphInstance, const uint8 *dataBuffer)
 
virtual void RecursiveCollectObjects (AZStd::vector< AnimGraphObject * > &outObjects) const
 
bool GetHasErrorFlag (AnimGraphInstance *animGraphInstance) const
 
void SetHasErrorFlag (AnimGraphInstance *animGraphInstance, bool hasError)
 
void SyncVisualObject ()
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 
- Static Public Member Functions inherited from EMotionFX::AnimGraphNode
static AZStd::tuple< float, float, float > SyncPlaySpeeds (float playSpeedA, float durationA, float playSpeedB, float durationB, float weight)
 
static void CalcSyncFactors (AnimGraphInstance *animGraphInstance, const AnimGraphNode *leaderNode, const AnimGraphNode *followerNode, ESyncMode syncMode, float weight, float *outLeaderFactor, float *outFollowerFactor, float *outPlaySpeed)
 
static void CalcSyncFactors (float leaderPlaySpeed, const AnimGraphSyncTrack *leaderSyncTrack, size_t leaderSyncTrackIndex, float leaderDuration, float followerPlaySpeed, const AnimGraphSyncTrack *followerSyncTrack, size_t followerSyncTrackIndex, float followerDuration, ESyncMode syncMode, float weight, float *outLeaderFactor, float *outFollowerFactor, float *outPlaySpeed)
 
static bool VersionConverter (AZ::SerializeContext &context, AZ::SerializeContext::DataElementNode &classElement)
 
static void Reflect (AZ::ReflectContext *context)
 
- Static Public Member Functions inherited from EMotionFX::AnimGraphObject
static const char * GetCategoryName (ECategory category)
 
static void CalculateMotionExtractionDelta (EExtractionMode extractionMode, AnimGraphRefCountedData *sourceRefData, AnimGraphRefCountedData *targetRefData, float weight, bool hasMotionExtractionNodeInMask, Transform &outTransform, Transform &outTransformMirrored)
 
static void CalculateMotionExtractionDeltaAdditive (EExtractionMode extractionMode, AnimGraphRefCountedData *sourceRefData, AnimGraphRefCountedData *targetRefData, const Transform &basePoseTransform, float weight, bool hasMotionExtractionNodeInMask, Transform &outTransform, Transform &outTransformMirrored)
 
static void Reflect (AZ::ReflectContext *context)
 

Protected Types

using MotionInfos = AZStd::vector< MotionInfo >
 
using BlendInfos = AZStd::vector< BlendInfo >
 

Protected Member Functions

size_t FindMotionIndexByMotionId (const AZStd::vector< BlendSpaceMotion > &motions, const AZStd::string &motionId) const
 
void DoUpdate (float timePassedInSeconds, const BlendInfos &blendInfos, ESyncMode syncMode, AZ::u32 leaderIdx, MotionInfos &motionInfos)
 
void DoTopDownUpdate (AnimGraphInstance *animGraphInstance, ESyncMode syncMode, AZ::u32 leaderIdx, MotionInfos &motionInfos, bool motionsHaveSyncTracks)
 
void DoPostUpdate (AnimGraphInstance *animGraphInstance, AZ::u32 leaderIdx, BlendInfos &blendInfos, MotionInfos &motionInfos, EBlendSpaceEventMode eventFilterMode, AnimGraphRefCountedData *data, bool inPlace)
 
void RewindMotions (MotionInfos &motionInfos)
 
- Protected Member Functions inherited from EMotionFX::AnimGraphNode
void PostUpdateIncomingNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *node, float timePassedInSeconds)
 
void TopDownUpdateIncomingNode (AnimGraphInstance *animGraphInstance, AnimGraphNode *node, float timePassedInSeconds)
 
virtual void Output (AnimGraphInstance *animGraphInstance)
 
virtual void TopDownUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
virtual void PostUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void Update (AnimGraphInstance *animGraphInstance, float timePassedInSeconds) override
 
void RecursiveCountChildNodes (size_t &numNodes) const
 
void RecursiveCountNodeConnections (size_t &numConnections) const
 

Static Protected Member Functions

static size_t GetIndexOfMotionInBlendInfos (const BlendInfos &blendInfos, size_t motionIndex)
 
static void ClearMotionInfos (MotionInfos &motionInfos)
 
static void AddMotionInfo (MotionInfos &motionInfos, MotionInstance *motionInstance)
 
static bool DoAllMotionsHaveSyncTracks (const MotionInfos &motionInfos)
 
static void DoClipBasedSyncOfMotionsToLeader (AZ::u32 leaderIdx, MotionInfos &motionInfos)
 
static void DoEventBasedSyncOfMotionsToLeader (AZ::u32 leaderIdx, MotionInfos &motionInfos)
 
static void SyncMotionToNode (AnimGraphInstance *animGraphInstance, ESyncMode syncMode, MotionInfo &motionInfo, AnimGraphNode *srcNode)
 

Protected Attributes

bool m_interactiveMode = false
 
bool m_retarget = true
 
bool m_inPlace = false
 
- Protected Attributes inherited from EMotionFX::AnimGraphNode
size_t m_nodeIndex
 
AZ::u64 m_id
 
AZStd::vector< BlendTreeConnection * > m_connections
 
AZStd::vector< Portm_inputPorts
 
AZStd::vector< Portm_outputPorts
 
AZStd::vector< AnimGraphNode * > m_childNodes
 
TriggerActionSetup m_actionSetup
 
AnimGraphNodem_parentNode
 
void * m_customData
 
AZ::Color m_visualizeColor
 
AZStd::string m_name
 
AZStd::string m_nodeInfo
 
int32 m_posX
 
int32 m_posY
 
bool m_disabled
 
bool m_visEnabled
 
bool m_isCollapsed
 
- Protected Attributes inherited from EMotionFX::AnimGraphObject
AnimGraphm_animGraph
 
size_t m_objectIndex
 

Member Function Documentation

◆ ComputeMotionCoordinates()

virtual void EMotionFX::BlendSpaceNode::ComputeMotionCoordinates ( const AZStd::string &  motionId,
AnimGraphInstance animGraphInstance,
AZ::Vector2 &  position 
)
pure virtual

Compute the position of the motion in blend space.

Implemented in EMotionFX::BlendSpace1DNode, and EMotionFX::BlendSpace2DNode.

◆ RestoreMotionCoordinates()

virtual void EMotionFX::BlendSpaceNode::RestoreMotionCoordinates ( BlendSpaceMotion motion,
AnimGraphInstance animGraphInstance 
)
pure virtual

Restore the motion coordinates that are set to automatic mode back to the computed values.

Implemented in EMotionFX::BlendSpace1DNode, and EMotionFX::BlendSpace2DNode.

◆ SetMotions()

virtual void EMotionFX::BlendSpaceNode::SetMotions ( const AZStd::vector< BlendSpaceMotion > &  motions)
pure virtual

Common interface to access the blend space motions regardless of the blend space dimension.

Implemented in EMotionFX::BlendSpace1DNode, and EMotionFX::BlendSpace2DNode.


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