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

#include <AnimNode_LayeredBoneBlend.h>

+ Inheritance diagram for FAnimNode_LayeredBoneBlend:

Public Member Functions

 FAnimNode_LayeredBoneBlend ()
 
virtual ANIMGRAPHRUNTIME_API void Initialize_AnyThread (const FAnimationInitializeContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void CacheBones_AnyThread (const FAnimationCacheBonesContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void Update_AnyThread (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
 
void AddPose ()
 
void RemovePose (int32 PoseIndex)
 
ANIMGRAPHRUNTIME_API void SetBlendMask (int32 InPoseIndex, UBlendProfile *InBlendMask)
 
void InvalidatePerBoneBlendWeights ()
 
void InvalidateCachedBoneData ()
 
- 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 BasePose
 
TArray< FPoseLinkBlendPoses
 
ELayeredBoneBlendMode BlendMode
 
TArray< TObjectPtr< UBlendProfile > > BlendMasks
 
TArray< FInputBlendPoseLayerSetup
 
TArray< floatBlendWeights
 
int32 LODThreshold
 
bool bMeshSpaceRotationBlend
 
bool bRootSpaceRotationBlend
 
bool bMeshSpaceScaleBlend
 
TEnumAsByte< enum ECurveBlendOption::TypeCurveBlendOption
 
bool bBlendRootMotionBasedOnRootBone
 
bool bHasRelevantPoses
 

Protected Attributes

TArray< FPerBoneBlendWeightDesiredBoneBlendWeights
 
TArray< FPerBoneBlendWeightCurrentBoneBlendWeights
 
TArray< FPerBoneBlendWeightPerBoneBlendWeights
 
TBaseBlendedCurve< FDefaultAllocator, UE::Anim::FCurveElementIndexedCurvePoseSourceIndices
 
FGuid SkeletonGuid
 
FGuid VirtualBoneGuid
 
uint16 RequiredBonesSerialNumber
 

Friends

class UAnimGraphNode_LayeredBoneBlend
 

Additional Inherited Members

- 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)
 

Constructor & Destructor Documentation

◆ FAnimNode_LayeredBoneBlend()

FAnimNode_LayeredBoneBlend::FAnimNode_LayeredBoneBlend ( )
inline

Member Function Documentation

◆ AddPose()

void FAnimNode_LayeredBoneBlend::AddPose ( )
inline

◆ CacheBones_AnyThread()

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

◆ Evaluate_AnyThread()

void FAnimNode_LayeredBoneBlend::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_LayeredBoneBlend::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.

◆ GetLODThreshold()

virtual int32 FAnimNode_LayeredBoneBlend::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.

◆ Initialize_AnyThread()

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

◆ InvalidateCachedBoneData()

void FAnimNode_LayeredBoneBlend::InvalidateCachedBoneData ( )
inline

◆ InvalidatePerBoneBlendWeights()

void FAnimNode_LayeredBoneBlend::InvalidatePerBoneBlendWeights ( )
inline

◆ RemovePose()

void FAnimNode_LayeredBoneBlend::RemovePose ( int32  PoseIndex)
inline

◆ SetBlendMask()

void FAnimNode_LayeredBoneBlend::SetBlendMask ( int32  InPoseIndex,
UBlendProfile InBlendMask 
)

◆ Update_AnyThread()

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

Friends And Related Symbol Documentation

◆ UAnimGraphNode_LayeredBoneBlend

friend class UAnimGraphNode_LayeredBoneBlend
friend

Member Data Documentation

◆ BasePose

FPoseLink FAnimNode_LayeredBoneBlend::BasePose

The source pose

◆ bBlendRootMotionBasedOnRootBone

bool FAnimNode_LayeredBoneBlend::bBlendRootMotionBasedOnRootBone

Whether to incorporate the per-bone blend weight of the root bone when lending root motion

◆ bHasRelevantPoses

bool FAnimNode_LayeredBoneBlend::bHasRelevantPoses

◆ BlendMasks

TArray<TObjectPtr<UBlendProfile> > FAnimNode_LayeredBoneBlend::BlendMasks

The blend masks to use for our layer inputs. Allows the use of per-bone alphas. Blend masks are used when BlendMode is BlendMask.

◆ BlendMode

ELayeredBoneBlendMode FAnimNode_LayeredBoneBlend::BlendMode

Whether to use branch filters or a blend mask to specify an input pose per-bone influence

◆ BlendPoses

TArray<FPoseLink> FAnimNode_LayeredBoneBlend::BlendPoses

Each layer's blended pose

◆ BlendWeights

TArray<float> FAnimNode_LayeredBoneBlend::BlendWeights

The weights of each layer

◆ bMeshSpaceRotationBlend

bool FAnimNode_LayeredBoneBlend::bMeshSpaceRotationBlend

Whether to blend bone rotations in mesh space or in local space

◆ bMeshSpaceScaleBlend

bool FAnimNode_LayeredBoneBlend::bMeshSpaceScaleBlend

Whether to blend bone scales in mesh space or in local space

◆ bRootSpaceRotationBlend

bool FAnimNode_LayeredBoneBlend::bRootSpaceRotationBlend

Whether to blend bone rotations in root space or in mesh space

◆ CurrentBoneBlendWeights

TArray<FPerBoneBlendWeight> FAnimNode_LayeredBoneBlend::CurrentBoneBlendWeights
protected

◆ CurveBlendOption

TEnumAsByte<enum ECurveBlendOption::Type> FAnimNode_LayeredBoneBlend::CurveBlendOption

How to blend the layers together

◆ CurvePoseSourceIndices

TBaseBlendedCurve<FDefaultAllocator, UE::Anim::FCurveElementIndexed> FAnimNode_LayeredBoneBlend::CurvePoseSourceIndices
protected

◆ DesiredBoneBlendWeights

TArray<FPerBoneBlendWeight> FAnimNode_LayeredBoneBlend::DesiredBoneBlendWeights
protected

◆ LayerSetup

TArray<FInputBlendPose> FAnimNode_LayeredBoneBlend::LayerSetup

Configuration for the parts of the skeleton to blend for each layer. Allows certain parts of the tree to be blended out or omitted from the pose. LayerSetup is used when BlendMode is BranchFilter.

◆ LODThreshold

int32 FAnimNode_LayeredBoneBlend::LODThreshold

◆ PerBoneBlendWeights

TArray<FPerBoneBlendWeight> FAnimNode_LayeredBoneBlend::PerBoneBlendWeights
protected

◆ RequiredBonesSerialNumber

uint16 FAnimNode_LayeredBoneBlend::RequiredBonesSerialNumber
protected

◆ SkeletonGuid

FGuid FAnimNode_LayeredBoneBlend::SkeletonGuid
protected

◆ VirtualBoneGuid

FGuid FAnimNode_LayeredBoneBlend::VirtualBoneGuid
protected

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