Navigation
API > API/Runtime > API/Runtime/Engine
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
| Name | FAnimNode_Base |
| Type | struct |
| Header File | /Engine/Source/Runtime/Engine/Classes/Animation/AnimNodeBase.h |
| Include Path | #include "Animation/AnimNodeBase.h" |
Syntax
USTRUCT ()
struct FAnimNode_Base
Derived Classes
FAnimNode_Base derived class hierarchy
- FAnimNode_AssetPlayerRelevancyBase
- FAnimNode_SkeletalControlBase
- FAnimNode_ApplyAdditive
- FAnimNode_ApplyMeshSpaceAdditive
- FAnimNode_BlendBoneByChannel
- FAnimNode_BlendListBase
- FAnimNode_BlendProfileLayeredBlend
- FAnimNode_BlendSpaceGraphBase
- FAnimNode_BlendStackInput
- FAnimNode_CallFunction
- FAnimNode_ConvertComponentToLocalSpace
- FAnimNode_ConvertLocalToComponentSpace
- FAnimNode_CopyPoseFromMesh
- FAnimNode_CurveSource
- FAnimNode_CustomProperty
- FAnimNode_DeadBlending
- FAnimNode_Inertialization
- FAnimNode_LayeredBoneBlend
- FAnimNode_LinkedInputPose
- FAnimNode_LiveLinkPose
- FAnimNode_MakeDynamicAdditive
- FAnimNode_MeshSpaceRefPose
- FAnimNode_MirrorBase
- FAnimNode_ModifyCurve
- FAnimNode_MultiWayBlend
- FAnimNode_OffsetRootBone
- FAnimNode_OverrideRootMotion
- FAnimNode_PoseSearchHistoryCollector_Base
- FAnimNode_PoseSnapshot
- FAnimNode_RefPose
- FAnimNode_RemapCurvesBase
- FAnimNode_RetargetPoseFromMesh
- FAnimNode_RigLogic
- FAnimNode_RigMapper
- FAnimNode_Root
- FAnimNode_RotateRootBone
- FAnimNode_SaveCachedPose
- FAnimNode_ScaleChainLength
- FAnimNode_SequencerMixerTarget
- FAnimNode_SingleNode
- FAnimNode_Slot
- FAnimNode_StateMachine
- FAnimNode_Sync
- FAnimNode_TransitionPoseEvaluator
- FAnimNode_TransitionResult
- FAnimNode_TwoWayBlend
- FAnimNode_UseCachedPose
- FAnimNode_WarpTest
- FAnimNode_PreviewRetargetPose
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FAnimNode_Base() |
Animation/AnimNodeBase.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BecomeRelevantFunction | FAnimNodeFunctionRef | Function called on become relevant. | Animation/AnimNodeBase.h |
|
| InitialUpdateFunction | FAnimNodeFunctionRef | Function called on initial update. | Animation/AnimNodeBase.h |
|
| NodeData | const FAnimNodeData * | Reference to the constant/folded data for this node. | Animation/AnimNodeBase.h | |
| UpdateFunction | FAnimNodeFunctionRef | Function called on update. | Animation/AnimNodeBase.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void CacheBones_AnyThread
(
const FAnimationCacheBonesContext& Context |
Called to cache any bones that this node needs to track (e.g. in a FBoneReference). | Animation/AnimNodeBase.h | |
virtual bool CanUpdateInWorkerThread () |
Whether this node can run its Update() call on a worker thread. | Animation/AnimNodeBase.h | |
virtual void Evaluate_AnyThread
(
FPoseContext& Output |
Called to evaluate local-space bones transforms according to the weights set up in Update(). | Animation/AnimNodeBase.h | |
virtual void EvaluateComponentSpace_AnyThread
(
FComponentSpacePoseContext& Output |
Called to evaluate component-space bone transforms according to the weights set up in Update(). | Animation/AnimNodeBase.h | |
virtual void GatherDebugData
(
FNodeDebugData& DebugData |
Called to gather on-screen debug data. This is called on the game thread. | Animation/AnimNodeBase.h | |
const IAnimClassInterface * GetAnimClassInterface() |
Get the anim class that this node is hosted within. | Animation/AnimNodeBase.h | |
const FExposedValueHandler & GetEvaluateGraphExposedInputs() |
The default handler for graph-exposed inputs: | Animation/AnimNodeBase.h | |
int32 GetNodeIndex() |
Get this node's index. The node index provides a unique key into its location within the class data. | Animation/AnimNodeBase.h | |
virtual 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. | Animation/AnimNodeBase.h | |
virtual void Initialize_AnyThread
(
const FAnimationInitializeContext& Context |
Called when the node first runs. | Animation/AnimNodeBase.h | |
virtual bool NeedsDynamicReset () |
For nodes that implement some kind of simulation, return true here so ResetDynamics() gets called when things like teleports, time skips etc. | Animation/AnimNodeBase.h | |
virtual 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. | Animation/AnimNodeBase.h | |
virtual void OnUpdatesSkipped
(
TArrayView< const FAnimationUpdateContext* > SkippedUpdateContexts |
Animation/AnimNodeBase.h | ||
virtual void OverrideAsset
(
UAnimationAsset* NewAsset |
Animation/AnimNodeBase.h | ||
virtual void PostCompile
(
const USkeleton* InSkeleton |
Called after compilation | Animation/AnimNodeBase.h | |
virtual void PreUpdate
(
const UAnimInstance* InAnimInstance |
Override this to perform game-thread work prior to non-game thread Update() being called | Animation/AnimNodeBase.h | |
virtual void ResetDynamics () |
Deprecated functions | Animation/AnimNodeBase.h | |
virtual void ResetDynamics
(
ETeleportType InTeleportType |
Called to help dynamics-based updates to recover correctly from large movements/teleports | Animation/AnimNodeBase.h | |
void SetExposedValueHandler
(
const FExposedValueHandler* Handler |
Initialization function for the default handler for graph-exposed inputs, used only by instancing code: | Animation/AnimNodeBase.h | |
virtual void Update_AnyThread
(
const FAnimationUpdateContext& Context |
Called to update the state of the graph relative to this node. | Animation/AnimNodeBase.h | |
virtual bool WantsSkippedUpdates() |
Animation/AnimNodeBase.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const DataType & GetData
(
UE::Anim::FNodeDataId InId, |
Get anim node constant/folded data of the specified type given the identifier. Do not use directly - use GET_ANIM_NODE_DATA. | Animation/AnimNodeBase.h | |
DataType * GetInstanceDataPtr
(
UE::Anim::FNodeDataId InId, |
Get anim node mutable data of the specified type given the identifier. | Animation/AnimNodeBase.h | |
virtual int32 GetLODThreshold () |
Get the LOD level at which this node is enabled. | Animation/AnimNodeBase.h | |
DataType & GetMutableData
(
UE::Anim::FNodeDataId InId, |
Get anim node constant/folded data of the specified type given the identifier. | Animation/AnimNodeBase.h | |
bool IsLODEnabled
(
FAnimInstanceProxy* AnimInstanceProxy |
Return true if enabled, otherwise, return false. | Animation/AnimNodeBase.h | |
virtual void OnInitializeAnimInstance
(
const FAnimInstanceProxy* InProxy, |
Called once, from game thread as the parent anim instance is created | Animation/AnimNodeBase.h |