![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <AnimNodeBase.h>
Inheritance diagram for FAnimNode_Base:Protected Member Functions | |
| 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) |
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
|
inlinevirtual |
|
virtual |
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.
| Context | Context structure providing access to relevant data |
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_ApplyAdditive, FAnimNode_BlendBoneByChannel, FAnimNode_BlendListBase, FAnimNode_BlendSpaceGraphBase, FAnimNode_BlendSpacePlayerBase, FAnimNode_CallFunction, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_LayeredBoneBlend, FAnimNode_MakeDynamicAdditive, FAnimNode_MirrorBase, FAnimNode_ModifyCurve, FAnimNode_MultiWayBlend, FAnimNode_PoseBlendNode, FAnimNode_PoseDriver, FAnimNode_PoseHandler, FAnimNode_RotateRootBone, FAnimNode_RotationOffsetBlendSpace, FAnimNode_SequenceEvaluatorBase, FAnimNode_Slot, FAnimNode_TwoWayBlend, FAnimNode_ScaleChainLength, FAnimNode_SkeletalControlBase, FAnimNode_SpringBone, FAnimNode_TwistCorrectiveNode, FAnimNode_ApplyMeshSpaceAdditive, FAnimNode_DeadBlending, FAnimNode_Inertialization, FAnimNode_LinkedAnimGraph, FAnimNode_Root, FAnimNode_SaveCachedPose, FAnimNode_SequencePlayerBase, FAnimNode_StateMachine, FAnimNode_TransitionPoseEvaluator, FAnimNode_TransitionResult, FAnimNode_UseCachedPose, FAnimNode_ConvertComponentToLocalSpace, FAnimNode_ConvertLocalToComponentSpace, and FAnimNode_LiveLinkPose.
Whether this node can run its Update() call on a worker thread. This is called on the game thread. If any node in a graph returns false from this function, then ALL nodes will update on the game thread.
|
virtual |
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.
| Output | Output structure to write pose or curve data to. Also provides access to relevant data as a context. |
Reimplemented in FAnimNode_CallFunction, FAnimNode_AimOffsetLookAt, FAnimNode_ApplyAdditive, FAnimNode_BlendBoneByChannel, FAnimNode_BlendListBase, FAnimNode_BlendSpaceGraphBase, FAnimNode_BlendSpacePlayerBase, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_LayeredBoneBlend, FAnimNode_MakeDynamicAdditive, FAnimNode_MirrorBase, FAnimNode_ModifyCurve, FAnimNode_MultiWayBlend, FAnimNode_PoseBlendNode, FAnimNode_PoseByName, FAnimNode_PoseDriver, FAnimNode_PoseSnapshot, FAnimNode_RandomPlayer, FAnimNode_RefPose, FAnimNode_RotateRootBone, FAnimNode_RotationOffsetBlendSpace, FAnimNode_SequenceEvaluatorBase, FAnimNode_Slot, FAnimNode_TwoWayBlend, FAnimNode_ScaleChainLength, FAnimNode_ApplyMeshSpaceAdditive, FAnimNode_DeadBlending, FAnimNode_Inertialization, FAnimNode_LinkedAnimGraph, FAnimNode_LinkedInputPose, FAnimNode_Root, FAnimNode_SaveCachedPose, FAnimNode_SequencePlayerBase, FAnimNode_StateMachine, FAnimNode_TransitionPoseEvaluator, FAnimNode_TransitionResult, FAnimNode_UseCachedPose, FAnimNode_ConvertComponentToLocalSpace, FAnimNode_SingleNode, and FAnimNode_LiveLinkPose.
|
virtual |
Called to evaluate component-space bone 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.
| Output | Output structure to write pose or curve data to. Also provides access to relevant data as a context. |
Reimplemented in FAnimNode_MeshSpaceRefPose, FAnimNode_SkeletalControlBase, and FAnimNode_ConvertLocalToComponentSpace.
|
inlinevirtual |
Called to gather on-screen debug data. This is called on the game thread.
| DebugData | Debug data structure used to output any relevant data |
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_ApplyAdditive, FAnimNode_BlendBoneByChannel, FAnimNode_BlendListBase, FAnimNode_BlendSpaceEvaluator, FAnimNode_BlendSpaceGraphBase, FAnimNode_BlendSpacePlayerBase, FAnimNode_CallFunction, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_LayeredBoneBlend, FAnimNode_MakeDynamicAdditive, FAnimNode_MirrorBase, FAnimNode_ModifyCurve, FAnimNode_MultiWayBlend, FAnimNode_PoseBlendNode, FAnimNode_PoseByName, FAnimNode_PoseDriver, FAnimNode_PoseHandler, FAnimNode_PoseSnapshot, FAnimNode_RandomPlayer, FAnimNode_RefPose, FAnimNode_RotateRootBone, FAnimNode_RotationOffsetBlendSpace, FAnimNode_SequenceEvaluatorBase, FAnimNode_Slot, FAnimNode_TwoWayBlend, 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_ResetRoot, FAnimNode_RigidBody, FAnimNode_RotationMultiplier, FAnimNode_ScaleChainLength, FAnimNode_SplineIK, FAnimNode_SpringBone, FAnimNode_Trail, FAnimNode_TwistCorrectiveNode, FAnimNode_TwoBoneIK, FAnimNode_ApplyMeshSpaceAdditive, FAnimNode_DeadBlending, FAnimNode_Inertialization, FAnimNode_LinkedAnimGraph, FAnimNode_LinkedInputPose, FAnimNode_Root, FAnimNode_SaveCachedPose, FAnimNode_SequencePlayerBase, FAnimNode_StateMachine, FAnimNode_TransitionPoseEvaluator, FAnimNode_TransitionResult, FAnimNode_UseCachedPose, FAnimNode_ConvertComponentToLocalSpace, FAnimNode_ConvertLocalToComponentSpace, and FAnimNode_LiveLinkPose.
|
inline |
|
inlineprotected |
| FORCENOINLINE const FExposedValueHandler & FAnimNode_Base::GetEvaluateGraphExposedInputs | ( | ) | const |
|
inlineprotected |
Get the LOD level at which this node is enabled. Node is enabled if the current LOD is less than or equal to this threshold.
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_ApplyAdditive, FAnimNode_LayeredBoneBlend, FAnimNode_PoseDriver, FAnimNode_RotationOffsetBlendSpace, FAnimNode_AnimDynamics, FAnimNode_RigidBody, FAnimNode_SkeletalControlBase, and FAnimNode_ApplyMeshSpaceAdditive.
|
inline |
Override this to indicate that PreUpdate() should be called on the game thread (usually to gather non-thread safe data) before Update() is called. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime. This is called on the game thread.
Reimplemented in FAnimNode_LiveLinkPose, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_PoseSnapshot, FAnimNode_AnimDynamics, FAnimNode_RigidBody, and FAnimNode_SpringBone.
|
virtual |
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.
| Context | Context structure providing access to relevant data |
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_ApplyAdditive, FAnimNode_BlendBoneByChannel, FAnimNode_BlendListBase, FAnimNode_BlendSpaceGraphBase, FAnimNode_BlendSpacePlayerBase, FAnimNode_CallFunction, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_LayeredBoneBlend, FAnimNode_MakeDynamicAdditive, FAnimNode_MirrorBase, FAnimNode_ModifyCurve, FAnimNode_MultiWayBlend, FAnimNode_PoseBlendNode, FAnimNode_PoseByName, FAnimNode_PoseDriver, FAnimNode_PoseHandler, FAnimNode_RandomPlayer, FAnimNode_RotateRootBone, FAnimNode_RotationOffsetBlendSpace, FAnimNode_SequenceEvaluatorBase, FAnimNode_Slot, FAnimNode_TwoWayBlend, FAnimNode_AnimDynamics, FAnimNode_Fabrik, FAnimNode_LegIK, FAnimNode_LookAt, FAnimNode_RigidBody, FAnimNode_ScaleChainLength, FAnimNode_SkeletalControlBase, FAnimNode_SpringBone, FAnimNode_Trail, FAnimNode_TwistCorrectiveNode, FAnimNode_TwoBoneIK, FAnimNode_ApplyMeshSpaceAdditive, FAnimNode_AssetPlayerBase, FAnimNode_DeadBlending, FAnimNode_Inertialization, FAnimNode_LinkedAnimGraph, FAnimNode_Root, FAnimNode_SaveCachedPose, FAnimNode_SequencePlayerBase, FAnimNode_StateMachine, FAnimNode_TransitionPoseEvaluator, FAnimNode_TransitionResult, FAnimNode_UseCachedPose, FAnimNode_ConvertComponentToLocalSpace, FAnimNode_ConvertLocalToComponentSpace, and FAnimNode_LiveLinkPose.
|
protected |
return true if enabled, otherwise, return false. This is utility function that can be used per node level
For nodes that implement some kind of simulation, return true here so ResetDynamics() gets called when things like teleports, time skips etc. occur that might require special handling. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime. This is called on the game thread.
Reimplemented in FAnimNode_AnimDynamics, FAnimNode_RigidBody, FAnimNode_DeadBlending, and FAnimNode_Inertialization.
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. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime.
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_CallFunction, FAnimNode_ApplyLimits, FAnimNode_ResetRoot, FAnimNode_RigidBody, FAnimNode_SplineIK, FAnimNode_LinkedAnimGraph, and FAnimNode_LinkedAnimLayer.
|
protectedvirtual |
Called once, from game thread as the parent anim instance is created
Reimplemented in FAnimNode_AimOffsetLookAt, FAnimNode_CallFunction, FAnimNode_ApplyLimits, FAnimNode_ResetRoot, FAnimNode_RigidBody, FAnimNode_SplineIK, FAnimNode_LinkedAnimGraph, FAnimNode_LinkedAnimLayer, and FAnimNode_LiveLinkPose.
|
inlinevirtual |
|
inlinevirtual |
Called after compilation
|
inlinevirtual |
Override this to perform game-thread work prior to non-game thread Update() being called
Reimplemented in FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_PoseSnapshot, FAnimNode_AnimDynamics, FAnimNode_RigidBody, FAnimNode_SpringBone, and FAnimNode_LiveLinkPose.
|
virtual |
Called to help dynamics-based updates to recover correctly from large movements/teleports
Reimplemented in FAnimNode_AnimDynamics, FAnimNode_RigidBody, and FAnimNode_Inertialization.
|
inline |
|
virtual |
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.
| Context | Context structure providing access to relevant data |
Reimplemented in FAnimNode_SkeletalControlBase, FAnimNode_AssetPlayerBase, FAnimNode_ApplyAdditive, FAnimNode_BlendBoneByChannel, FAnimNode_BlendListBase, FAnimNode_BlendSpaceGraphBase, FAnimNode_CallFunction, FAnimNode_CopyPoseFromMesh, FAnimNode_CurveSource, FAnimNode_LayeredBoneBlend, FAnimNode_MakeDynamicAdditive, FAnimNode_MirrorBase, FAnimNode_ModifyCurve, FAnimNode_MultiWayBlend, FAnimNode_PoseSnapshot, FAnimNode_RandomPlayer, FAnimNode_RotateRootBone, FAnimNode_Slot, FAnimNode_TwoWayBlend, FAnimNode_ScaleChainLength, FAnimNode_ApplyMeshSpaceAdditive, FAnimNode_DeadBlending, FAnimNode_Inertialization, FAnimNode_LinkedAnimGraph, FAnimNode_LinkedInputPose, FAnimNode_Root, FAnimNode_SaveCachedPose, FAnimNode_StateMachine, FAnimNode_TransitionPoseEvaluator, FAnimNode_TransitionResult, FAnimNode_UseCachedPose, FAnimNode_ConvertComponentToLocalSpace, FAnimNode_ConvertLocalToComponentSpace, FAnimNode_SingleNode, and FAnimNode_LiveLinkPose.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |