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

#include <AnimNode_PoseDriver.h>

+ Inheritance diagram for FAnimNode_PoseDriver:

Public Member Functions

virtual ANIMGRAPHRUNTIME_API void Initialize_AnyThread (const FAnimationInitializeContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void CacheBones_AnyThread (const FAnimationCacheBonesContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void UpdateAssetPlayer (const FAnimationUpdateContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void Evaluate_AnyThread (FPoseContext &Output) override
 
virtual ANIMGRAPHRUNTIME_API void GatherDebugData (FNodeDebugData &DebugData) override
 
virtual int32 GetLODThreshold () const override
 
ANIMGRAPHRUNTIME_API FAnimNode_PoseDriver ()
 
ANIMGRAPHRUNTIME_API float GetRadiusForTarget (const FRBFTarget &Target) const
 
ANIMGRAPHRUNTIME_API bool IsBoneDriven (FName BoneName) const
 
ANIMGRAPHRUNTIME_API void GetRBFTargets (TArray< FRBFTarget > &OutTargets, const FBoneContainer *BoneContainer) const
 
virtual ANIMGRAPHRUNTIME_API void RebuildPoseList (const FBoneContainer &InBoneContainer, const UPoseAsset *InPoseAsset) override
 
- Public Member Functions inherited from FAnimNode_PoseHandler
 FAnimNode_PoseHandler ()
 
virtual float GetCurrentAssetTime () const
 
virtual float GetCurrentAssetLength () const
 
virtual float GetAccumulatedTime () const
 
virtual void SetAccumulatedTime (float NewTime)
 
virtual UAnimationAssetGetAnimAsset () const
 
- Public Member Functions inherited from FAnimNode_AssetPlayerBase
 FAnimNode_AssetPlayerBase ()=default
 
virtual ENGINE_API void Update_AnyThread (const FAnimationUpdateContext &Context) final override
 
ENGINE_API void CreateTickRecordForNode (const FAnimationUpdateContext &Context, UAnimSequenceBase *Sequence, bool bLooping, float PlayRate, bool bIsEvaluator)
 
virtual FName GetGroupName () const
 
virtual EAnimGroupRole::Type GetGroupRole () const
 
virtual EAnimSyncMethod GetGroupMethod () const
 
virtual bool GetOverridePositionWhenJoiningSyncGroupAsLeader () const
 
virtual bool SetGroupName (FName InGroupName)
 
virtual bool SetGroupRole (EAnimGroupRole::Type InRole)
 
virtual bool SetGroupMethod (EAnimSyncMethod InMethod)
 
virtual bool SetOverridePositionWhenJoiningSyncGroupAsLeader (bool InOverridePositionWhenJoiningSyncGroupAsLeader)
 
virtual ENGINE_API float GetCachedBlendWeight () const override
 
virtual ENGINE_API void ClearCachedBlendWeight () override
 
virtual ENGINE_API float GetCurrentAssetTimePlayRateAdjusted () const override
 
virtual ENGINE_API const FDeltaTimeRecordGetDeltaTimeRecord () const override
 
- Public Member Functions inherited from FAnimNode_AssetPlayerRelevancyBase
virtual ENGINE_API bool IsLooping () const
 
virtual ENGINE_API bool GetIgnoreForRelevancyTest () const
 
virtual ENGINE_API bool SetIgnoreForRelevancyTest (bool bInIgnoreForRelevancyTest)
 
- 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

FPoseLink SourcePose
 
TArray< FBoneReferenceSourceBones
 
FBoneReference EvalSpaceBone
 
bool bEvalFromRefPose = false
 
TArray< FBoneReferenceOnlyDriveBones
 
TArray< FPoseDriverTargetPoseTargets
 
FRBFParams RBFParams
 
EPoseDriverSource DriveSource
 
EPoseDriverOutput DriveOutput
 
TArray< FRBFOutputWeightOutputWeights
 
TArray< FTransformSourceBoneTMs
 
bool bHasOnlyDriveBones = false
 
TArray< FCompactPoseBoneIndexBonesToFilter
 
uint8 bCachedDrivenIDsAreDirty: 1
 
int32 LODThreshold
 
- Public Attributes inherited from FAnimNode_PoseHandler
TObjectPtr< UPoseAssetPoseAsset
 

Additional Inherited Members

- Protected Member Functions inherited from FAnimNode_PoseHandler
virtual void OnPoseAssetChange ()
 
ANIMGRAPHRUNTIME_API void CacheBoneBlendWeights (FAnimInstanceProxy *InstanceProxy)
 
- Protected Member Functions inherited from FAnimNode_AssetPlayerBase
ENGINE_API UE::Anim::FAnimSyncParams GetSyncParams (bool bRequestedInertialization) const
 
- 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 ENGINE_API void OnInitializeAnimInstance (const FAnimInstanceProxy *InProxy, const UAnimInstance *InAnimInstance)
 
- Protected Attributes inherited from FAnimNode_PoseHandler
TWeakObjectPtr< UPoseAssetCurrentPoseAsset
 
FAnimExtractContext PoseExtractContext
 
TArray< floatBoneBlendWeights
 
- Protected Attributes inherited from FAnimNode_AssetPlayerBase
FMarkerTickRecord MarkerTickRecord
 
float BlendWeight = 0.0f
 
float InternalTimeAccumulator = 0.0f
 
FDeltaTimeRecord DeltaTimeRecord
 
bool bHasBeenFullWeight = false
 

Detailed Description

RBF based orientation driver

Constructor & Destructor Documentation

◆ FAnimNode_PoseDriver()

FAnimNode_PoseDriver::FAnimNode_PoseDriver ( )

Member Function Documentation

◆ CacheBones_AnyThread()

void FAnimNode_PoseDriver::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_PoseHandler.

◆ Evaluate_AnyThread()

void FAnimNode_PoseDriver::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.

◆ GatherDebugData()

void FAnimNode_PoseDriver::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_PoseHandler.

◆ GetLODThreshold()

virtual int32 FAnimNode_PoseDriver::GetLODThreshold ( ) const
inlineoverridevirtual

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 from FAnimNode_Base.

◆ GetRadiusForTarget()

float FAnimNode_PoseDriver::GetRadiusForTarget ( const FRBFTarget Target) const

Returns the radius for a given target

◆ GetRBFTargets()

void FAnimNode_PoseDriver::GetRBFTargets ( TArray< FRBFTarget > &  OutTargets,
const FBoneContainer BoneContainer 
) const

Return array of FRBFTarget structs, derived from PoseTargets array and DriveSource setting

◆ Initialize_AnyThread()

void FAnimNode_PoseDriver::Initialize_AnyThread ( const FAnimationInitializeContext Context)
overridevirtual

Initialize function for setup purposes

Reimplemented from FAnimNode_PoseHandler.

◆ IsBoneDriven()

bool FAnimNode_PoseDriver::IsBoneDriven ( FName  BoneName) const

Util for seeing if BoneName is in the list of driven bones (and bFilterDrivenBones is true)

◆ RebuildPoseList()

void FAnimNode_PoseDriver::RebuildPoseList ( const FBoneContainer InBoneContainer,
const UPoseAsset InPoseAsset 
)
overridevirtual

Reimplemented from FAnimNode_PoseHandler.

◆ UpdateAssetPlayer()

void FAnimNode_PoseDriver::UpdateAssetPlayer ( const FAnimationUpdateContext Context)
overridevirtual

Update method for the asset player, to be implemented by derived classes

Reimplemented from FAnimNode_PoseHandler.

Member Data Documentation

◆ bCachedDrivenIDsAreDirty

uint8 FAnimNode_PoseDriver::bCachedDrivenIDsAreDirty

If true, will recalculate DrivenUID values in PoseTargets array on next eval

◆ bEvalFromRefPose

bool FAnimNode_PoseDriver::bEvalFromRefPose = false

Evaluate SourceBone transform relative from its Reference Pose. This is recommended when using Swing and Twist Angle as Distance Method, since the twist will be computed from RefPose.

If not specified, the local space of SourceBone will be used. (ie relative to parent bone) This mode won't work in conjunction with EvalSpaceBone;

◆ bHasOnlyDriveBones

bool FAnimNode_PoseDriver::bHasOnlyDriveBones = false

Checks if there are valid bones in OnlyDriveBones, since some entries can be None

◆ BonesToFilter

TArray<FCompactPoseBoneIndex> FAnimNode_PoseDriver::BonesToFilter

This array lists bones that we should filter out (ie have a track in the PoseAsset, but are not listed in OnlyDriveBones)

◆ DriveOutput

EPoseDriverOutput FAnimNode_PoseDriver::DriveOutput

Whether we should drive poses or curves

◆ DriveSource

EPoseDriverSource FAnimNode_PoseDriver::DriveSource

Which part of the transform is read

◆ EvalSpaceBone

FBoneReference FAnimNode_PoseDriver::EvalSpaceBone

Optional other bone space to use when reading SourceBone transform. If not specified, the local space of SourceBone will be used. (ie relative to parent bone)

◆ LODThreshold

int32 FAnimNode_PoseDriver::LODThreshold

◆ OnlyDriveBones

TArray<FBoneReference> FAnimNode_PoseDriver::OnlyDriveBones

List of bones that will modified by this node. If no list is provided, all bones bones with a track in the PoseAsset will be modified

◆ OutputWeights

TArray<FRBFOutputWeight> FAnimNode_PoseDriver::OutputWeights

Last set of output weights from RBF solve

◆ PoseTargets

TArray<FPoseDriverTarget> FAnimNode_PoseDriver::PoseTargets

Targets used to compare with current pose and drive morphs/poses

◆ RBFParams

FRBFParams FAnimNode_PoseDriver::RBFParams

Parameters used by RBF solver

◆ SourceBones

TArray<FBoneReference> FAnimNode_PoseDriver::SourceBones

Bone to use for driving parameters based on its orientation

◆ SourceBoneTMs

TArray<FTransform> FAnimNode_PoseDriver::SourceBoneTMs

Input source bone TM, used for debug drawing

◆ SourcePose

FPoseLink FAnimNode_PoseDriver::SourcePose

Bones to use for driving parameters based on their transform


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