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

Inherits EMotionFX::AnimGraphNode.

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 Reinit () override
 
bool InitAfterLoading (AnimGraph *animGraph) override
 
const char * GetPaletteName () const override
 
AnimGraphObject::ECategory GetPaletteCategory () const override
 
bool GetCanActAsState () const override
 
bool GetHasVisualGraph () const override
 
bool GetCanHaveChildren () const override
 
bool GetSupportsDisable () const override
 
bool GetSupportsVisualization () const override
 
AZ::Color GetVisualColor () const override
 
AZ::Color GetHasChildIndicatorColor () const override
 
void Rewind (AnimGraphInstance *animGraphInstance) override
 
bool GetHasOutputPose () const override
 
void SetVirtualFinalNode (AnimGraphNode *node)
 
MCORE_INLINE AnimGraphNodeGetVirtualFinalNode () const
 
void SetFinalNodeId (const AnimGraphNodeId finalNodeId)
 
AZ_FORCE_INLINE AnimGraphNodeId GetFinalNodeId () const
 
AZ_FORCE_INLINE BlendTreeFinalNodeGetFinalNode ()
 
void OnRemoveNode (AnimGraph *animGraph, AnimGraphNode *nodeToRemove) override
 
AnimGraphPoseGetMainOutputPose (AnimGraphInstance *animGraphInstance) const override
 
void RecursiveSetUniqueDataFlag (AnimGraphInstance *animGraphInstance, uint32 flag, bool enabled) override
 
AnimGraphNodeGetRealFinalNode () const
 
void GetAttributeStringForAffectedNodeIds (const AZStd::unordered_map< AZ::u64, AZ::u64 > &convertedIds, AZStd::string &attributesString) const override
 
AZStd::unordered_set< AZStd::pair< BlendTreeConnection *, AnimGraphNode * > > FindCycles () const
 
bool ConnectionWillProduceCycle (AnimGraphNode *sourceNode, AnimGraphNode *targetNode) const
 
- Public Member Functions inherited from EMotionFX::AnimGraphNode
 AnimGraphNode (AnimGraph *animGraph, const char *name)
 
virtual void RecursiveReinit () override
 
void InitTriggerActions ()
 
virtual bool GetSupportsPreviewMotion () const
 
virtual bool GetHasVisualOutputPorts () const
 
virtual bool GetCanHaveOnlyOneInsideParent () const
 
virtual bool GetIsDeletable () const
 
virtual bool GetIsLastInstanceDeletable () const
 
virtual bool GetCanBeInsideStateMachineOnly () const
 
virtual bool GetCanBeInsideChildStateMachineOnly () const
 
virtual bool GetNeedsNetTimeSync () const
 
virtual bool GetCanBeEntryNode () 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 PerformOutput (AnimGraphInstance *animGraphInstance)
 
void PerformTopDownUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void PerformUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
void PerformPostUpdate (AnimGraphInstance *animGraphInstance, float timePassedInSeconds)
 
virtual void SkipPostUpdate ([[maybe_unused]] AnimGraphInstance *animGraphInstance)
 
virtual void SkipOutput ([[maybe_unused]] 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)
 
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 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
 
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
 
- Public Member Functions inherited from EMotionFX::AnimGraphObject
 AnimGraphObject (AnimGraph *animGraph)
 
void InvalidateUniqueDatas ()
 Calls InvalidateUniqueData() for the given object for all anim graph instances. (Used by reflection context)
 
void ResetUniqueDatas ()
 
void ResetUniqueData (AnimGraphInstance *animGraphInstance)
 
virtual void RegisterAttributes ()
 
virtual void Unregister ()
 
virtual void GetSummary (AZStd::string *outResult) const
 
virtual void GetTooltip (AZStd::string *outResult) const
 
virtual const char * GetHelpUrl () const
 
virtual void OnChangeMotionSet (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)
 
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)
 

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

◆ ConnectionWillProduceCycle()

bool EMotionFX::BlendTree::ConnectionWillProduceCycle ( AnimGraphNode sourceNode,
AnimGraphNode targetNode 
) const

Indicates if creating a connection from sourceNode to target will produce a cycle. param[in] sourceNode source node of the connection param[in] targetNdoe target node of the connection

Returns
true if creating the connection will produce a cycle. False otherwise

◆ FindCycles()

AZStd::unordered_set<AZStd::pair<BlendTreeConnection*, AnimGraphNode*> > EMotionFX::BlendTree::FindCycles ( ) const

Find cycles in this blend tree.

Returns
If cycles are not found, an empty vector is returned. If cycles are found, connections that break the cycles are returned. The pair being returned contains the connection and the target node (since BlendTreeConnection does not contain the target node)

◆ Reinit()

void EMotionFX::BlendTree::Reinit ( )
overridevirtual

Reinitialize the object. Some anim graph objects might have additional member variables which are not reflected. These are mostly used for optimizations, e.g. a condition that stores a parameter name which is reflected but the runtime uses a cached parameter index to prevent runtime lookups. These cached values need to be updated on given events like when e.g. a parameter gets removed or changed or the whole anim graph object gets constructed by a copy and paste operation.

Reimplemented from EMotionFX::AnimGraphObject.


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