UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FAnimNode_StateMachine Struct Reference

#include <AnimNode_StateMachine.h>

+ Inheritance diagram for FAnimNode_StateMachine:

Public Member Functions

int32 GetCurrentState () const
 
float GetCurrentStateElapsedTime () const
 
ENGINE_API FName GetCurrentStateName () const
 
ENGINE_API bool IsTransitionActive (int32 TransIndex) const
 
 FAnimNode_StateMachine ()
 
virtual ENGINE_API void Initialize_AnyThread (const FAnimationInitializeContext &Context) override
 
virtual ENGINE_API void CacheBones_AnyThread (const FAnimationCacheBonesContext &Context) override
 
virtual ENGINE_API void Update_AnyThread (const FAnimationUpdateContext &Context) override
 
virtual ENGINE_API void Evaluate_AnyThread (FPoseContext &Output) override
 
virtual ENGINE_API void GatherDebugData (FNodeDebugData &DebugData) override
 
ENGINE_API void ConditionallyCacheBonesForState (int32 StateIndex, FAnimationBaseContext Context)
 
ENGINE_API float GetStateWeight (int32 StateIndex) const
 
ENGINE_API const FBakedAnimationStateGetStateInfo (int32 StateIndex) const
 
ENGINE_API const FAnimationTransitionBetweenStatesGetTransitionInfo (int32 TransIndex) const
 
ENGINE_API bool IsValidTransitionIndex (int32 TransitionIndex) const
 
ENGINE_API void CacheMachineDescription (IAnimClassInterface *AnimBlueprintClass)
 
ENGINE_API void SetState (const FAnimationBaseContext &Context, int32 NewStateIndex, bool bAllowReEntry)
 
ENGINE_API void TransitionToState (const FAnimationUpdateContext &Context, const FAnimationTransitionBetweenStates &TransitionInfo, const FAnimationPotentialTransition *BakedTransitionInfo=nullptr)
 
ENGINE_API const int32 GetStateIndex (FName StateName) const
 
- Public Member Functions inherited from FAnimNode_Base
virtual ENGINE_API void EvaluateComponentSpace_AnyThread (FComponentSpacePoseContext &Output)
 
virtual bool CanUpdateInWorkerThread () const
 
virtual bool HasPreUpdate () const
 
virtual void PreUpdate (const UAnimInstance *InAnimInstance)
 
virtual bool NeedsDynamicReset () const
 
virtual ENGINE_API void ResetDynamics (ETeleportType InTeleportType)
 
virtual void PostCompile (const class USkeleton *InSkeleton)
 
virtual bool NeedsOnInitializeAnimInstance () const
 
virtual ~FAnimNode_Base ()
 
virtual void ResetDynamics ()
 
virtual bool WantsSkippedUpdates () const
 
virtual void OnUpdatesSkipped (TArrayView< const FAnimationUpdateContext * > SkippedUpdateContexts)
 
virtual void OverrideAsset (class UAnimationAsset *NewAsset)
 
ENGINE_API const FExposedValueHandlerGetEvaluateGraphExposedInputs () const
 
void SetExposedValueHandler (const FExposedValueHandler *Handler)
 
int32 GetNodeIndex () const
 
const IAnimClassInterfaceGetAnimClassInterface () const
 

Public Attributes

int32 StateMachineIndexInClass
 
int32 MaxTransitionsPerFrame
 
int32 MaxTransitionsRequests = 32
 
bool bSkipFirstUpdateTransition
 
bool bReinitializeOnBecomingRelevant
 
bool bCreateNotifyMetaData
 
bool bAllowConduitEntryStates
 

Protected Member Functions

ENGINE_API const FBakedAnimationStateMachineGetMachineDescription () const
 
ENGINE_API void SetStateInternal (int32 NewStateIndex)
 
ENGINE_API const FBakedAnimationStateGetStateInfo () const
 
ENGINE_API const int32 GetStateIndex (const FBakedAnimationState &StateInfo) const
 
ENGINE_API bool FindValidTransition (const FAnimationUpdateContext &Context, const FBakedAnimationState &StateInfo, FAnimationPotentialTransition &OutPotentialTransition, TArray< int32, TInlineAllocator< 4 > > &OutVisitedStateIndices)
 
ENGINE_API void UpdateTransitionStates (const FAnimationUpdateContext &Context, FAnimationActiveTransitionEntry &Transition)
 
ENGINE_API bool IsAConduitState (int32 StateIndex) const
 
ENGINE_API void UpdateState (int32 StateIndex, const FAnimationUpdateContext &Context)
 
ENGINE_API const FPoseContextEvaluateState (int32 StateIndex, const FPoseContext &Context)
 
ENGINE_API void EvaluateTransitionStandardBlend (FPoseContext &Output, FAnimationActiveTransitionEntry &Transition, bool bIntermediatePoseIsValid)
 
ENGINE_API void EvaluateTransitionStandardBlendInternal (FPoseContext &Output, FAnimationActiveTransitionEntry &Transition, const FPoseContext &PreviousStateResult, const FPoseContext &NextStateResult)
 
ENGINE_API void EvaluateTransitionCustomBlend (FPoseContext &Output, FAnimationActiveTransitionEntry &Transition, bool bIntermediatePoseIsValid)
 
ENGINE_API float GetRelevantAnimTimeRemaining (const FAnimInstanceProxy *InAnimInstanceProxy, int32 StateIndex) const
 
float GetRelevantAnimTimeRemaining (const FAnimationUpdateContext &Context, int32 StateIndex) const
 
ENGINE_API float GetRelevantAnimTimeRemainingFraction (const FAnimInstanceProxy *InAnimInstanceProxy, int32 StateIndex) const
 
float GetRelevantAnimTimeRemainingFraction (const FAnimationUpdateContext &Context, int32 StateIndex) const
 
const FAnimNode_AssetPlayerBaseGetRelevantAssetPlayerFromState (const FAnimInstanceProxy *InAnimInstanceProxy, const FBakedAnimationState &StateInfo) const
 
const FAnimNode_AssetPlayerBaseGetRelevantAssetPlayerFromState (const FAnimationUpdateContext &Context, const FBakedAnimationState &StateInfo) const
 
ENGINE_API const FAnimNode_AssetPlayerRelevancyBaseGetRelevantAssetPlayerInterfaceFromState (const FAnimInstanceProxy *InAnimInstanceProxy, const FBakedAnimationState &StateInfo) const
 
const FAnimNode_AssetPlayerRelevancyBaseGetRelevantAssetPlayerInterfaceFromState (const FAnimationUpdateContext &Context, const FBakedAnimationState &StateInfo) const
 
virtual ENGINE_API void LogInertializationRequestError (const FAnimationUpdateContext &Context, int32 PreviousState, int32 NextState)
 
ENGINE_API bool RequestTransitionEvent (const FTransitionEvent &InTransitionEvent)
 
ENGINE_API void ClearTransitionEvents (const FName &EventName)
 
ENGINE_API void ClearAllTransitionEvents ()
 
ENGINE_API bool QueryTransitionEvent (const int32 TransitionIndex, const FName &EventName) const
 
ENGINE_API bool QueryAndMarkTransitionEvent (const int32 TransitionIndex, const FName &EventName)
 
ENGINE_API void ConsumeMarkedTransitionEvents ()
 
- Protected Member Functions inherited from FAnimNode_Base
template<typename DataType >
const DataType & GetData (UE::Anim::FNodeDataId InId, const UObject *InObject=nullptr) const
 
template<typename DataType >
DataType * GetInstanceDataPtr (UE::Anim::FNodeDataId InId, UObject *InObject=nullptr)
 
ENGINE_API bool IsLODEnabled (FAnimInstanceProxy *AnimInstanceProxy)
 
virtual int32 GetLODThreshold () const
 
virtual ENGINE_API void OnInitializeAnimInstance (const FAnimInstanceProxy *InProxy, const UAnimInstance *InAnimInstance)
 

Protected Attributes

int32 CurrentState
 
float ElapsedTime
 
int32 EvaluatingTransitionIndex
 
const FBakedAnimationStateMachinePRIVATE_MachineDescription
 
TArray< FAnimationActiveTransitionEntryActiveTransitionArray
 
TArray< FPoseLinkStatePoseLinks
 
TArray< int32StatesUpdated
 
TArray< FOnGraphStateChangedOnGraphStatesEntered
 
TArray< FOnGraphStateChangedOnGraphStatesExited
 
TArray< FTransitionEventQueuedTransitionEvents
 

Friends

struct FAnimInstanceProxy
 
class UAnimationStateMachineLibrary
 
class FAnimationBlueprintEditor
 

Constructor & Destructor Documentation

◆ FAnimNode_StateMachine()

FAnimNode_StateMachine::FAnimNode_StateMachine ( )
inline

Member Function Documentation

◆ CacheBones_AnyThread()

void FAnimNode_StateMachine::CacheBones_AnyThread ( const FAnimationCacheBonesContext Context)
overridevirtual

Called to cache any bones that this node needs to track (e.g. in a FBoneReference). This is usually called at startup when LOD switches occur. This can be called on any thread.

Parameters
ContextContext structure providing access to relevant data

Reimplemented from FAnimNode_Base.

◆ CacheMachineDescription()

void FAnimNode_StateMachine::CacheMachineDescription ( IAnimClassInterface AnimBlueprintClass)

Cache the internal machine description

◆ ClearAllTransitionEvents()

void FAnimNode_StateMachine::ClearAllTransitionEvents ( )
protected

Removes all queued transition requests

◆ ClearTransitionEvents()

void FAnimNode_StateMachine::ClearTransitionEvents ( const FName EventName)
protected

Removes all queued transition requests with the given event name

◆ ConditionallyCacheBonesForState()

void FAnimNode_StateMachine::ConditionallyCacheBonesForState ( int32  StateIndex,
FAnimationBaseContext  Context 
)

◆ ConsumeMarkedTransitionEvents()

void FAnimNode_StateMachine::ConsumeMarkedTransitionEvents ( )
protected

Removes all marked events that are queued

◆ Evaluate_AnyThread()

void FAnimNode_StateMachine::Evaluate_AnyThread ( FPoseContext Output)
overridevirtual

Called to evaluate local-space bones transforms according to the weights set up in Update(). You should implement either Evaluate or EvaluateComponentSpace, but not both of these. This can be called on any thread.

Parameters
OutputOutput structure to write pose or curve data to. Also provides access to relevant data as a context.

Reimplemented from FAnimNode_Base.

◆ EvaluateState()

const FPoseContext & FAnimNode_StateMachine::EvaluateState ( int32  StateIndex,
const FPoseContext Context 
)
protected

◆ EvaluateTransitionCustomBlend()

void FAnimNode_StateMachine::EvaluateTransitionCustomBlend ( FPoseContext Output,
FAnimationActiveTransitionEntry Transition,
bool  bIntermediatePoseIsValid 
)
protected

◆ EvaluateTransitionStandardBlend()

void FAnimNode_StateMachine::EvaluateTransitionStandardBlend ( FPoseContext Output,
FAnimationActiveTransitionEntry Transition,
bool  bIntermediatePoseIsValid 
)
protected

◆ EvaluateTransitionStandardBlendInternal()

void FAnimNode_StateMachine::EvaluateTransitionStandardBlendInternal ( FPoseContext Output,
FAnimationActiveTransitionEntry Transition,
const FPoseContext PreviousStateResult,
const FPoseContext NextStateResult 
)
protected

◆ FindValidTransition()

bool FAnimNode_StateMachine::FindValidTransition ( const FAnimationUpdateContext Context,
const FBakedAnimationState StateInfo,
FAnimationPotentialTransition OutPotentialTransition,
TArray< int32, TInlineAllocator< 4 > > &  OutVisitedStateIndices 
)
protected

◆ GatherDebugData()

void FAnimNode_StateMachine::GatherDebugData ( FNodeDebugData DebugData)
overridevirtual

Called to gather on-screen debug data. This is called on the game thread.

Parameters
DebugDataDebug data structure used to output any relevant data

Reimplemented from FAnimNode_Base.

◆ GetCurrentState()

int32 FAnimNode_StateMachine::GetCurrentState ( ) const
inline

◆ GetCurrentStateElapsedTime()

float FAnimNode_StateMachine::GetCurrentStateElapsedTime ( ) const
inline

◆ GetCurrentStateName()

FName FAnimNode_StateMachine::GetCurrentStateName ( ) const

◆ GetMachineDescription()

const FBakedAnimationStateMachine * FAnimNode_StateMachine::GetMachineDescription ( ) const
protected

◆ GetRelevantAnimTimeRemaining() [1/2]

float FAnimNode_StateMachine::GetRelevantAnimTimeRemaining ( const FAnimationUpdateContext Context,
int32  StateIndex 
) const
inlineprotected

◆ GetRelevantAnimTimeRemaining() [2/2]

float FAnimNode_StateMachine::GetRelevantAnimTimeRemaining ( const FAnimInstanceProxy InAnimInstanceProxy,
int32  StateIndex 
) const
protected

◆ GetRelevantAnimTimeRemainingFraction() [1/2]

float FAnimNode_StateMachine::GetRelevantAnimTimeRemainingFraction ( const FAnimationUpdateContext Context,
int32  StateIndex 
) const
inlineprotected

◆ GetRelevantAnimTimeRemainingFraction() [2/2]

float FAnimNode_StateMachine::GetRelevantAnimTimeRemainingFraction ( const FAnimInstanceProxy InAnimInstanceProxy,
int32  StateIndex 
) const
protected

◆ GetRelevantAssetPlayerFromState() [1/2]

const FAnimNode_AssetPlayerBase * FAnimNode_StateMachine::GetRelevantAssetPlayerFromState ( const FAnimationUpdateContext Context,
const FBakedAnimationState StateInfo 
) const
inlineprotected

◆ GetRelevantAssetPlayerFromState() [2/2]

const FAnimNode_AssetPlayerBase * FAnimNode_StateMachine::GetRelevantAssetPlayerFromState ( const FAnimInstanceProxy InAnimInstanceProxy,
const FBakedAnimationState StateInfo 
) const
inlineprotected

◆ GetRelevantAssetPlayerInterfaceFromState() [1/2]

const FAnimNode_AssetPlayerRelevancyBase * FAnimNode_StateMachine::GetRelevantAssetPlayerInterfaceFromState ( const FAnimationUpdateContext Context,
const FBakedAnimationState StateInfo 
) const
inlineprotected

◆ GetRelevantAssetPlayerInterfaceFromState() [2/2]

const FAnimNode_AssetPlayerRelevancyBase * FAnimNode_StateMachine::GetRelevantAssetPlayerInterfaceFromState ( const FAnimInstanceProxy InAnimInstanceProxy,
const FBakedAnimationState StateInfo 
) const
protected

◆ GetStateIndex() [1/2]

const int32 FAnimNode_StateMachine::GetStateIndex ( const FBakedAnimationState StateInfo) const
protected

◆ GetStateIndex() [2/2]

const int32 FAnimNode_StateMachine::GetStateIndex ( FName  StateName) const

◆ GetStateInfo() [1/2]

const FBakedAnimationState & FAnimNode_StateMachine::GetStateInfo ( ) const
protected

◆ GetStateInfo() [2/2]

const FBakedAnimationState & FAnimNode_StateMachine::GetStateInfo ( int32  StateIndex) const

◆ GetStateWeight()

float FAnimNode_StateMachine::GetStateWeight ( int32  StateIndex) const

◆ GetTransitionInfo()

const FAnimationTransitionBetweenStates & FAnimNode_StateMachine::GetTransitionInfo ( int32  TransIndex) const

◆ Initialize_AnyThread()

void FAnimNode_StateMachine::Initialize_AnyThread ( const FAnimationInitializeContext Context)
overridevirtual

Called when the node first runs. If the node is inside a state machine or cached pose branch then this can be called multiple times. This can be called on any thread.

Parameters
ContextContext structure providing access to relevant data

Reimplemented from FAnimNode_Base.

◆ IsAConduitState()

bool FAnimNode_StateMachine::IsAConduitState ( int32  StateIndex) const
protected

◆ IsTransitionActive()

bool FAnimNode_StateMachine::IsTransitionActive ( int32  TransIndex) const

◆ IsValidTransitionIndex()

bool FAnimNode_StateMachine::IsValidTransitionIndex ( int32  TransitionIndex) const

◆ LogInertializationRequestError()

void FAnimNode_StateMachine::LogInertializationRequestError ( const FAnimationUpdateContext Context,
int32  PreviousState,
int32  NextState 
)
protectedvirtual

◆ QueryAndMarkTransitionEvent()

bool FAnimNode_StateMachine::QueryAndMarkTransitionEvent ( const int32  TransitionIndex,
const FName EventName 
)
protected

Behaves like QueryTransitionEvent but additionally marks the event for consumption

◆ QueryTransitionEvent()

bool FAnimNode_StateMachine::QueryTransitionEvent ( const int32  TransitionIndex,
const FName EventName 
) const
protected

Returns whether or not the given event transition request has been queued

◆ RequestTransitionEvent()

bool FAnimNode_StateMachine::RequestTransitionEvent ( const FTransitionEvent InTransitionEvent)
protected

Queues a new transition request, returns true if the transition request was successfully queued

◆ SetState()

void FAnimNode_StateMachine::SetState ( const FAnimationBaseContext Context,
int32  NewStateIndex,
bool  bAllowReEntry 
)

◆ SetStateInternal()

void FAnimNode_StateMachine::SetStateInternal ( int32  NewStateIndex)
protected

◆ TransitionToState()

void FAnimNode_StateMachine::TransitionToState ( const FAnimationUpdateContext Context,
const FAnimationTransitionBetweenStates TransitionInfo,
const FAnimationPotentialTransition BakedTransitionInfo = nullptr 
)

◆ Update_AnyThread()

void FAnimNode_StateMachine::Update_AnyThread ( const FAnimationUpdateContext Context)
overridevirtual

Called to update the state of the graph relative to this node. Generally this should configure any weights (etc.) that could affect the poses that will need to be evaluated. This function is what usually executes EvaluateGraphExposedInputs. This can be called on any thread.

Parameters
ContextContext structure providing access to relevant data

Reimplemented from FAnimNode_Base.

◆ UpdateState()

void FAnimNode_StateMachine::UpdateState ( int32  StateIndex,
const FAnimationUpdateContext Context 
)
protected

◆ UpdateTransitionStates()

void FAnimNode_StateMachine::UpdateTransitionStates ( const FAnimationUpdateContext Context,
FAnimationActiveTransitionEntry Transition 
)
protected

Friends And Related Symbol Documentation

◆ FAnimationBlueprintEditor

friend class FAnimationBlueprintEditor
friend

◆ FAnimInstanceProxy

◆ UAnimationStateMachineLibrary

Member Data Documentation

◆ ActiveTransitionArray

TArray<FAnimationActiveTransitionEntry> FAnimNode_StateMachine::ActiveTransitionArray
protected

◆ bAllowConduitEntryStates

bool FAnimNode_StateMachine::bAllowConduitEntryStates

◆ bCreateNotifyMetaData

bool FAnimNode_StateMachine::bCreateNotifyMetaData

◆ bReinitializeOnBecomingRelevant

bool FAnimNode_StateMachine::bReinitializeOnBecomingRelevant

◆ bSkipFirstUpdateTransition

bool FAnimNode_StateMachine::bSkipFirstUpdateTransition

◆ CurrentState

int32 FAnimNode_StateMachine::CurrentState
protected

◆ ElapsedTime

float FAnimNode_StateMachine::ElapsedTime
protected

◆ EvaluatingTransitionIndex

int32 FAnimNode_StateMachine::EvaluatingTransitionIndex
protected

◆ MaxTransitionsPerFrame

int32 FAnimNode_StateMachine::MaxTransitionsPerFrame

◆ MaxTransitionsRequests

int32 FAnimNode_StateMachine::MaxTransitionsRequests = 32

◆ OnGraphStatesEntered

TArray<FOnGraphStateChanged> FAnimNode_StateMachine::OnGraphStatesEntered
protected

◆ OnGraphStatesExited

TArray<FOnGraphStateChanged> FAnimNode_StateMachine::OnGraphStatesExited
protected

◆ PRIVATE_MachineDescription

const FBakedAnimationStateMachine* FAnimNode_StateMachine::PRIVATE_MachineDescription
protected

◆ QueuedTransitionEvents

TArray<FTransitionEvent> FAnimNode_StateMachine::QueuedTransitionEvents
protected

◆ StateMachineIndexInClass

int32 FAnimNode_StateMachine::StateMachineIndexInClass

◆ StatePoseLinks

TArray<FPoseLink> FAnimNode_StateMachine::StatePoseLinks
protected

◆ StatesUpdated

TArray<int32> FAnimNode_StateMachine::StatesUpdated
protected

The documentation for this struct was generated from the following files: