FAnimNode_Base

This is the base of all runtime animation nodes

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

FAnimNode_Base

FAnimNode_ApplyAdditive

FAnimNode_ApplyMeshSpaceAdditive

FAnimNode_AssetPlayerBase

FAnimNode_BlendSpacePlayer

FAnimNode_AimOffsetLookAt

FAnimNode_BlendSpaceEvaluator

FAnimNode_RotationOffsetBlendSpace

FAnimNode_MotionMatching

FAnimNode_PoseHandler

FAnimNode_PoseBlendNode

FAnimNode_PoseByName

FAnimNode_PoseDriver

FAnimNode_SequenceEvaluatorBase

FAnimNode_SequenceEvaluator

FAnimNode_SequenceEvaluator_Standalone

FAnimNode_SequencePlayerBase

FAnimNode_SequencePlayer

FAnimNode_SequencePlayer_Standalone

FAnimNode_BlendBoneByChannel

FAnimNode_BlendListBase

FAnimNode_BlendListByBool

FAnimNode_BlendListByEnum

FAnimNode_BlendListByInt

FAnimNode_BlendSpaceGraphBase

FAnimNode_BlendSpaceGraph

FAnimNode_RotationOffsetBlendSpaceGraph

FAnimNode_CallFunction

FAnimNode_ConvertComponentToLocalSpace

FAnimNode_ConvertLocalToComponentSpace

FAnimNode_CopyPoseFromMesh

FAnimNode_CurveSource

FAnimNode_CustomProperty

FAnimNode_ControlRigBase

FAnimNode_ControlRig

FAnimNode_ControlRig_ExternalSource

FAnimNode_IKRig

FAnimNode_LinkedAnimGraph

FAnimNode_LinkedAnimLayer

FAnimNode_Inertialization

FAnimNode_LayeredBoneBlend

FAnimNode_LinkedInputPose

FAnimNode_LiveLinkPose

FAnimNode_MakeDynamicAdditive

FAnimNode_MeshSpaceRefPose

FAnimNode_MirrorBase

FAnimNode_Mirror

FAnimNode_Mirror_Standalone

FAnimNode_ModifyCurve

FAnimNode_MultiWayBlend

FAnimNode_PoseSearchHistoryCollector

FAnimNode_PoseSnapshot

FAnimNode_RandomPlayer

FAnimNode_RefPose

FAnimNode_RetargetPoseFromMesh

FAnimNode_Root

FAnimNode_BlendSpaceSampleResult

FAnimNode_StateResult

FAnimNode_RotateRootBone

FAnimNode_SaveCachedPose

FAnimNode_ScaleChainLength

FAnimNode_SingleNode

FAnimNode_SkeletalControlBase

FAnimNode_AnimDynamics

FAnimNode_ApplyLimits

FAnimNode_BoneDrivenController

FAnimNode_CCDIK

FAnimNode_Constraint

FAnimNode_CopyBone

FAnimNode_CopyBoneDelta

FAnimNode_Fabrik

FAnimNode_HandIKRetargeting

FAnimNode_LegIK

FAnimNode_LookAt

FAnimNode_ModifyBone

FAnimNode_ObserveBone

FAnimNode_OrientationWarping

FAnimNode_ResetRoot

FAnimNode_RigidBody

FAnimNode_RotationMultiplier

FAnimNode_SlopeWarping

FAnimNode_SplineIK

FAnimNode_SpringBone

FAnimNode_StageCoachWheelController

FAnimNode_StrideWarping

FAnimNode_Trail

FAnimNode_TwistCorrectiveNode

FAnimNode_TwoBoneIK

FAnimNode_WheelController

FAnimNode_WheelHandler

FAnimNode_Slot

FAnimNode_StateMachine

FAnimNode_SteamVRInputAnimPose

FAnimNode_SteamVRSetWristTransform

FAnimNode_Sync

FAnimNode_TransitionPoseEvaluator

FAnimNode_TransitionResult

FAnimNode_TwoWayBlend

FAnimNode_UseCachedPose

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Animation/AnimNodeBase.h

Include

#include "Animation/AnimNodeBase.h"

Syntax

struct FAnimNode_Base

Remarks

This is the base of all runtime animation nodes

To create a new animation node: Create a struct derived from FAnimNode_Base - this is your runtime node Create a class derived from UAnimGraphNode_Base, containing an instance of your runtime node as a member - this is your visual/editor-only node

Destructors

Name Description

Public function Virtual

~FAnimNode_Base()

Functions

Name Description

Public function Virtual

void

 

CacheBones_AnyThread

(
    const FAnimationCacheBonesContext&...
)

Called to cache any bones that this node needs to track (e.g. in a FBoneReference).

Public function Virtual Const

bool

 

CanUpdateInWorkerThread()

Whether this node can run its Update() call on a worker thread.

Public function Virtual

void

 

Evaluate_AnyThread

(
    FPoseContext& Output
)

Called to evaluate local-space bones transforms according to the weights set up in Update().

Public function Virtual

void

 

EvaluateComponentSpace_AnyThread

(
    FComponentSpacePoseContext& Output
)

Called to evaluate component-space bone transforms according to the weights set up in Update().

Public function Virtual

void

 

GatherDebugData

(
    FNodeDebugData& DebugData
)

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

Public function Const

const IAnimC...

 

GetAnimClassInterface()

Get the anim class that this node is hosted within.

Protected function Const

const DataTy...

 

GetData

(
    UE::Anim::FNodeDataId InId,
    const UObject* InObject
)

Get anim node constant/folded data of the specified type given the identifier. Do not use directly - use GET_ANIM_NODE_DATA.

Public function Const

const FExpos...

 

GetEvaluateGraphExposedInputs()

The default handler for graph-exposed inputs:

Protected function

DataType ...

 

GetInstanceDataPtr

(
    UE::Anim::FNodeDataId InId,
    UObject* InObject
)

Get anim node mutable data of the specified type given the identifier.

Protected function Virtual Const

int32

 

GetLODThreshold()

Get the LOD threshold at which this node is enabled.

Protected function

DataType &

 

GetMutableData

(
    UE::Anim::FNodeDataId InId,
    UObject* InObject
)

Get anim node constant/folded data of the specified type given the identifier. Do not use directly - use GET_MUTABLE_ANIM_NODE_DATA.

Public function Const

int32

 

GetNodeIndex()

Get this node's index. The node index provides a unique key into its location within the class data.

Public function Virtual Const

bool

 

HasPreUpdate()

Override this to indicate that PreUpdate() should be called on the game thread (usually to gather non-thread safe data) before Update() is called.

Public function Virtual

void

 

Initialize_AnyThread

(
    const FAnimationInitializeContext&...
)

Called when the node first runs.

Protected function

bool

 

IsLODEnabled

(
    FAnimInstanceProxy* AnimInstan...
)

Return true if enabled, otherwise, return false.

Public function Virtual Const

bool

 

NeedsDynamicReset()

For nodes that implement some kind of simulation, return true here so ResetDynamics() gets called when things like teleports, time skips etc.

Public function Virtual Const

bool

 

NeedsOnInitializeAnimInstance()

For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here.

Protected function Virtual

void

 

OnInitializeAnimInstance

(
    const FAnimInstanceProxy* InPr...,
    const UAnimInstance* InAnimIns...
)

Called once, from game thread as the parent anim instance is created

Public function Virtual

void

 

PostCompile

(
    const USkeleton* InSkeleton
)

Called after compilation

Public function Virtual

void

 

PreUpdate

(
    const UAnimInstance* InAnimIns...
)

Override this to perform game-thread work prior to non-game thread Update() being called

Public function Virtual

void

 

ResetDynamics

(
    ETeleportType InTeleportType
)

Called to help dynamics-based updates to recover correctly from large movements/teleports

Public function Virtual

void

 

Update_AnyThread

(
    const FAnimationUpdateContext& Con...
)

Called to update the state of the graph relative to this node.

Deprecated Functions

Name Description

Public function Virtual

void

 

CacheBones

(
    const FAnimationCacheBonesContext&...
)

Please use CacheBones_AnyThread instead

Public function Virtual

void

 

Evaluate

(
    FPoseContext& Output
)

Please use Evaluate_AnyThread instead

Public function Virtual

void

 

EvaluateComponentSpace

(
    FComponentSpacePoseContext& Output
)

Please use EvaluateComponentSpace_AnyThread instead

Public function Virtual

void

 

Initialize

(
    const FAnimationInitializeContext&...
)

Please use Initialize_AnyThread instead

Public function Virtual

void

 

OnUpdatesSkipped

(
    TArrayView< const FAnimationUpdateC...
)

Please use IGraphMessage instead

Public function Virtual

void

 

OverrideAsset

(
    UAnimationAsset* NewAsset
)

Please use the OverrideAssets API on UAnimGraphNode_Base to opt-in to child anim BP override functionality, or per-node specific asset override calls.

Public function Virtual

void

 

ResetDynamics()

Please use ResetDynamics with an ETeleportPhysics flag instead

Protected function Virtual

void

 

RootInitialize

(
    const FAnimInstanceProxy* InPr...
)

Please use OnInitializeAnimInstance instead

Public function

void

 

SetExposedValueHandler

(
    const FExposedValueHandler* Ha...
)

Exposed value handlers are now accessed via FAnimNodeConstantData

Public function Virtual

void

 

Update

(
    const FAnimationUpdateContext& Con...
)

Please use Update_AnyThread instead

Public function Virtual Const

bool

 

WantsSkippedUpdates()

Please use IGraphMessage instead