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

Inherits EMotionFX::AnimGraphNode.

Classes

class  UniqueData
 

Public Types

enum  { OUTPUTPORT_POSE = 0 }
 
enum  { PORTID_OUTPUT_POSE = 0 }
 
- 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

void RecursiveReinit () override
 
bool InitAfterLoading (AnimGraph *animGraph) override
 
AnimGraphObjectDataCreateUniqueData (AnimGraphInstance *animGraphInstance) override
 
void RecursiveInvalidateUniqueDatas (AnimGraphInstance *animGraphInstance) override
 
void OnRemoveNode (AnimGraph *animGraph, AnimGraphNode *nodeToRemove) override
 
void RecursiveOnChangeMotionSet (AnimGraphInstance *animGraphInstance, MotionSet *newMotionSet) override
 
void Rewind (AnimGraphInstance *animGraphInstance) override
 
void RecursiveResetUniqueDatas (AnimGraphInstance *animGraphInstance) override
 
void RecursiveResetFlags (AnimGraphInstance *animGraphInstance, uint32 flagsToDisable=0xffffffff) override
 
const char * GetPaletteName () const override
 
AnimGraphObject::ECategory GetPaletteCategory () const override
 
bool GetIsDeletable () const override
 
bool GetCanActAsState () const override
 
bool GetHasVisualGraph () const override
 
bool GetCanHaveChildren () const override
 
bool GetSupportsDisable () const override
 
bool GetSupportsVisualization () const override
 
bool GetHasOutputPose () const override
 
AZ::Color GetHasChildIndicatorColor () const override
 
AnimGraphPoseGetMainOutputPose (AnimGraphInstance *animGraphInstance) const override
 
void RecursiveCollectObjects (AZStd::vector< AnimGraphObject * > &outObjects) const override
 
void RecursiveCollectObjectsOfType (const AZ::TypeId &objectType, AZStd::vector< AnimGraphObject * > &outObjects) const override
 
void AddTransition (AnimGraphStateTransition *transition)
 
size_t GetNumTransitions () const
 
AnimGraphStateTransitionGetTransition (size_t index) const
 
void RemoveTransition (size_t transitionIndex, bool delFromMem=true)
 
void RemoveAllTransitions ()
 
void ReserveTransitions (size_t numTransitions)
 
AZ::Outcome< size_t > FindTransitionIndexById (AnimGraphConnectionId transitionId) const
 
AZ::Outcome< size_t > FindTransitionIndex (const AnimGraphStateTransition *transition) const
 
AnimGraphStateTransitionFindTransitionById (AnimGraphConnectionId transitionId) const
 
bool CheckIfHasWildcardTransition (AnimGraphNode *state) const
 
bool IsTransitioning (AnimGraphInstance *animGraphInstance) const
 
bool IsTransitionActive (const AnimGraphStateTransition *transition, AnimGraphInstance *animGraphInstance) const
 
AnimGraphStateTransitionGetLatestActiveTransition (AnimGraphInstance *animGraphInstance) const
 
const AZStd::vector< AnimGraphStateTransition * > & GetActiveTransitions (AnimGraphInstance *animGraphInstance) const
 
AnimGraphStateTransitionFindTransition (AnimGraphInstance *animGraphInstance, AnimGraphNode *currentState, AnimGraphNode *targetState) const
 
uint32 CalcNumIncomingTransitions (AnimGraphNode *state) const
 
uint32 CalcNumOutgoingTransitions (AnimGraphNode *state) const
 
uint32 CalcNumWildcardTransitions (AnimGraphNode *state) const
 
const AZStd::vector< AnimGraphNode * > & GetActiveStates (AnimGraphInstance *animGraphInstance) const
 
AnimGraphNodeGetEntryState ()
 
AZ_FORCE_INLINE AnimGraphNodeId GetEntryStateId () const
 
void SetEntryState (AnimGraphNode *entryState)
 
AnimGraphNodeGetCurrentState (AnimGraphInstance *animGraphInstance)
 
bool GetExitStateReached (AnimGraphInstance *animGraphInstance) const
 
void SwitchToState (AnimGraphInstance *animGraphInstance, AnimGraphNode *targetState)
 
void TransitionToState (AnimGraphInstance *animGraphInstance, AnimGraphNode *targetState)
 
void RecursiveSetUniqueDataFlag (AnimGraphInstance *animGraphInstance, uint32 flag, bool enabled) override
 
void RecursiveCollectActiveNodes (AnimGraphInstance *animGraphInstance, AZStd::vector< AnimGraphNode * > *outNodes, const AZ::TypeId &nodeType) const override
 
void RecursiveCollectActiveNetTimeSyncNodes (AnimGraphInstance *animGraphInstance, AZStd::vector< AnimGraphNode * > *outNodes) const override
 
void SetAlwaysStartInEntryState (bool alwaysStartInEntryState)
 
void SetEntryStateId (AnimGraphNodeId entryStateNodeId)
 
void EndAllActiveTransitions (AnimGraphInstance *animGraphInstance)
 
- 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 AZ::u32 GetMaxNumPasses ()
 
static AnimGraphStateMachineGetGrandParentStateMachine (const AnimGraphNode *state)
 
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)
 

Additional Inherited Members

- 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
 
- 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

◆ AddTransition()

void EMotionFX::AnimGraphStateMachine::AddTransition ( AnimGraphStateTransition transition)

Add the given transition to the state machine. The state machine will take care of destructing the memory of the transition once it gets destructed itself or by using the RemoveTransition() function.

Parameters
[in]transitionA pointer to the state machine transition to add.

◆ CheckIfHasWildcardTransition()

bool EMotionFX::AnimGraphStateMachine::CheckIfHasWildcardTransition ( AnimGraphNode state) const

Check if there is a wildcard transition with the given state as target node. Each state can only have one wildcard transition. The wildcard transition will be used in case there is no other connection between the current state and the given state.

Parameters
[in]stateA pointer to the state to check.
Returns
True in case the given state has a wildcard transition, false if not.

◆ CreateUniqueData()

AnimGraphObjectData * EMotionFX::AnimGraphStateMachine::CreateUniqueData ( AnimGraphInstance animGraphInstance)
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ FindTransitionById()

AnimGraphStateTransition * EMotionFX::AnimGraphStateMachine::FindTransitionById ( AnimGraphConnectionId  transitionId) const

Find the transition by the given transition id.

Parameters
[in]transitionIdThe identification number to search for.
Returns
A pointer to the transition. nullptr in case no transition has been found.

◆ FindTransitionIndex()

AZ::Outcome< size_t > EMotionFX::AnimGraphStateMachine::FindTransitionIndex ( const AnimGraphStateTransition transition) const

Find the transition index by comparing pointers.

Parameters
[in]transitionA pointer to the transition to search the index for.
Returns
The index of the transition.

◆ FindTransitionIndexById()

AZ::Outcome< size_t > EMotionFX::AnimGraphStateMachine::FindTransitionIndexById ( AnimGraphConnectionId  transitionId) const

Find the transition index for the given transition id.

Parameters
[in]transitionIdThe identification number to search for.
Returns
The index of the transition.

◆ GetActiveTransitions()

const AZStd::vector< AnimGraphStateTransition * > & EMotionFX::AnimGraphStateMachine::GetActiveTransitions ( AnimGraphInstance animGraphInstance) const

Get all currently active transitions.

Parameters
[in]animGraphInstanceThe anim graph instance to check.
Returns
Transition stack containing all active transitions. An empty stack means that there is no transition active currently.

◆ GetCanActAsState()

bool EMotionFX::AnimGraphStateMachine::GetCanActAsState ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetCanHaveChildren()

bool EMotionFX::AnimGraphStateMachine::GetCanHaveChildren ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetCurrentState()

AnimGraphNode * EMotionFX::AnimGraphStateMachine::GetCurrentState ( AnimGraphInstance animGraphInstance)

Get the currently active state.

Parameters
[in]animGraphInstanceThe anim graph instance to use.
Returns
A pointer to the currently active state. In case the state machine is transitioning this will be the source state.

◆ GetEntryState()

AnimGraphNode * EMotionFX::AnimGraphStateMachine::GetEntryState ( )

Get the initial state of the state machine. The start state is usually shown drawn with an arrow "pointing at it from any where".

Returns
A pointer to the start state of the state machine.

◆ GetExitStateReached()

bool EMotionFX::AnimGraphStateMachine::GetExitStateReached ( AnimGraphInstance animGraphInstance) const

Check if the state machine has reached an exit state.

Parameters
[in]animGraphInstanceThe anim graph instance to check.
Returns
True in case the state machine has reached an exit state, false in case not.

◆ GetHasChildIndicatorColor()

AZ::Color EMotionFX::AnimGraphStateMachine::GetHasChildIndicatorColor ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetHasOutputPose()

bool EMotionFX::AnimGraphStateMachine::GetHasOutputPose ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetHasVisualGraph()

bool EMotionFX::AnimGraphStateMachine::GetHasVisualGraph ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetIsDeletable()

bool EMotionFX::AnimGraphStateMachine::GetIsDeletable ( ) const
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetLatestActiveTransition()

AnimGraphStateTransition * EMotionFX::AnimGraphStateMachine::GetLatestActiveTransition ( AnimGraphInstance animGraphInstance) const

Get the latest active transition. The latest active transition is the one that got started most recently, is still transitioning and defines where the state machine is actually going. All other transitions on the transition stack got interrupted.

Parameters
[in]animGraphInstanceThe instance for the state machine to check.
Returns
The latest active transition.

◆ GetMainOutputPose()

AnimGraphPose * EMotionFX::AnimGraphStateMachine::GetMainOutputPose ( AnimGraphInstance animGraphInstance) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetMaxNumPasses()

static AZ::u32 EMotionFX::AnimGraphStateMachine::GetMaxNumPasses ( )
static

In case blend times are set to 0.0, there are scenarios where the state machine starts and ends multiple transitions, going forward multiple states within a single frame. This function returns the maximum number of possible passes.

◆ GetNumTransitions()

size_t EMotionFX::AnimGraphStateMachine::GetNumTransitions ( ) const
inline

Get the number of transitions inside this state machine. This includes all kinds of transitions, so also wildcard transitions.

Returns
The number of transitions inside the state machine.

◆ GetPaletteCategory()

AnimGraphObject::ECategory EMotionFX::AnimGraphStateMachine::GetPaletteCategory ( ) const
inlineoverridevirtual

◆ GetPaletteName()

const char * EMotionFX::AnimGraphStateMachine::GetPaletteName ( ) const
inlineoverridevirtual

◆ GetSupportsDisable()

bool EMotionFX::AnimGraphStateMachine::GetSupportsDisable ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetSupportsVisualization()

bool EMotionFX::AnimGraphStateMachine::GetSupportsVisualization ( ) const
inlineoverridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ GetTransition()

AnimGraphStateTransition * EMotionFX::AnimGraphStateMachine::GetTransition ( size_t  index) const
inline

Get a pointer to the state machine transition of the given index.

Parameters
[in]indexThe index of the transition to return.
Returns
A pointer to the state machine transition at the given index.

◆ InitAfterLoading()

bool EMotionFX::AnimGraphStateMachine::InitAfterLoading ( AnimGraph animGraph)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ IsTransitionActive()

bool EMotionFX::AnimGraphStateMachine::IsTransitionActive ( const AnimGraphStateTransition transition,
AnimGraphInstance animGraphInstance 
) const

Check if the given transition is currently active.

Parameters
[in]transitionThe transition to check.
[in]animGraphInstanceThe anim graph instance to check.
Returns
True in case the transition is active, on the transition stack and currently transitioning, false if not.

◆ IsTransitioning()

bool EMotionFX::AnimGraphStateMachine::IsTransitioning ( AnimGraphInstance animGraphInstance) const

Check if the state machine is transitioning at the moment.

Parameters
[in]animGraphInstanceThe anim graph instance to check.
Returns
True in case the state machine is transitioning at the moment, false in case a state is fully active and blended in.

◆ OnRemoveNode()

void EMotionFX::AnimGraphStateMachine::OnRemoveNode ( AnimGraph animGraph,
AnimGraphNode nodeToRemove 
)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveCollectActiveNetTimeSyncNodes()

void EMotionFX::AnimGraphStateMachine::RecursiveCollectActiveNetTimeSyncNodes ( AnimGraphInstance animGraphInstance,
AZStd::vector< AnimGraphNode * > *  outNodes 
) const
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveCollectActiveNodes()

void EMotionFX::AnimGraphStateMachine::RecursiveCollectActiveNodes ( AnimGraphInstance animGraphInstance,
AZStd::vector< AnimGraphNode * > *  outNodes,
const AZ::TypeId &  nodeType 
) const
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveCollectObjects()

void EMotionFX::AnimGraphStateMachine::RecursiveCollectObjects ( AZStd::vector< AnimGraphObject * > &  outObjects) const
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveCollectObjectsOfType()

void EMotionFX::AnimGraphStateMachine::RecursiveCollectObjectsOfType ( const AZ::TypeId &  objectType,
AZStd::vector< AnimGraphObject * > &  outObjects 
) const
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveInvalidateUniqueDatas()

void EMotionFX::AnimGraphStateMachine::RecursiveInvalidateUniqueDatas ( AnimGraphInstance animGraphInstance)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveOnChangeMotionSet()

void EMotionFX::AnimGraphStateMachine::RecursiveOnChangeMotionSet ( AnimGraphInstance animGraphInstance,
MotionSet newMotionSet 
)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveReinit()

void EMotionFX::AnimGraphStateMachine::RecursiveReinit ( )
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveResetFlags()

void EMotionFX::AnimGraphStateMachine::RecursiveResetFlags ( AnimGraphInstance animGraphInstance,
uint32  flagsToDisable = 0xffffffff 
)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveResetUniqueDatas()

void EMotionFX::AnimGraphStateMachine::RecursiveResetUniqueDatas ( AnimGraphInstance animGraphInstance)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RecursiveSetUniqueDataFlag()

void EMotionFX::AnimGraphStateMachine::RecursiveSetUniqueDataFlag ( AnimGraphInstance animGraphInstance,
uint32  flag,
bool  enabled 
)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ RemoveAllTransitions()

void EMotionFX::AnimGraphStateMachine::RemoveAllTransitions ( )

Remove all transitions from the state machine and also get rid of the allocated memory. This will automatically be called in the state machine destructor.

◆ RemoveTransition()

void EMotionFX::AnimGraphStateMachine::RemoveTransition ( size_t  transitionIndex,
bool  delFromMem = true 
)

Remove the state machine transition at the given index.

Parameters
[in]transitionIndexThe index of the transition to remove.
delFromMemSet to true (default) when you wish to also delete the specified transition from memory.

◆ Rewind()

void EMotionFX::AnimGraphStateMachine::Rewind ( AnimGraphInstance animGraphInstance)
overridevirtual

Reimplemented from EMotionFX::AnimGraphNode.

◆ SetEntryState()

void EMotionFX::AnimGraphStateMachine::SetEntryState ( AnimGraphNode entryState)

Set the initial state of the state machine. The start state is usually shown drawn with an arrow "pointing at it from any where".

Parameters
[in]entryStateA pointer to the start state of the state machine.

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