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

#include <AnimNode_SpringBone.h>

+ Inheritance diagram for FAnimNode_SpringBone:

Public Member Functions

ANIMGRAPHRUNTIME_API FAnimNode_SpringBone ()
 
virtual ANIMGRAPHRUNTIME_API void Initialize_AnyThread (const FAnimationInitializeContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void CacheBones_AnyThread (const FAnimationCacheBonesContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void UpdateInternal (const FAnimationUpdateContext &Context) override
 
virtual ANIMGRAPHRUNTIME_API void GatherDebugData (FNodeDebugData &DebugData) override
 
virtual bool HasPreUpdate () const override
 
virtual ANIMGRAPHRUNTIME_API void PreUpdate (const UAnimInstance *InAnimInstance) override
 
virtual ANIMGRAPHRUNTIME_API void EvaluateSkeletalControl_AnyThread (FComponentSpacePoseContext &Output, TArray< FBoneTransform > &OutBoneTransforms) override
 
virtual ANIMGRAPHRUNTIME_API bool IsValidToEvaluate (const USkeleton *Skeleton, const FBoneContainer &RequiredBones) override
 
- Public Member Functions inherited from FAnimNode_SkeletalControlBase
 FAnimNode_SkeletalControlBase ()
 
virtual ~FAnimNode_SkeletalControlBase ()
 
virtual ANIMGRAPHRUNTIME_API void Update_AnyThread (const FAnimationUpdateContext &Context) final
 
virtual ANIMGRAPHRUNTIME_API void EvaluateComponentSpace_AnyThread (FComponentSpacePoseContext &Output) final
 
virtual int32 GetLODThreshold () const override
 
ANIMGRAPHRUNTIME_API void SetAlpha (float InAlpha)
 
ANIMGRAPHRUNTIME_API float GetAlpha () const
 
ANIMGRAPHRUNTIME_API void InitializeAndValidateBoneRef (FBoneReference &BoneRef, const FBoneContainer &RequiredBones)
 
- Public Member Functions inherited from FAnimNode_Base
virtual ENGINE_API void Evaluate_AnyThread (FPoseContext &Output)
 
virtual bool CanUpdateInWorkerThread () const
 
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

FBoneReference SpringBone
 
double MaxDisplacement
 
double SpringStiffness
 
double SpringDamping
 
double ErrorResetThresh
 
FVector BoneLocation
 
FVector BoneVelocity
 
FVector OwnerVelocity
 
FVector LocalBoneTransform
 
float RemainingTime
 
float FixedTimeStep
 
float TimeDilation
 
uint8 bLimitDisplacement: 1
 
uint8 bTranslateX: 1
 
uint8 bTranslateY: 1
 
uint8 bTranslateZ: 1
 
uint8 bRotateX: 1
 
uint8 bRotateY: 1
 
uint8 bRotateZ: 1
 
uint8 bHadValidStrength: 1
 
uint8 bOverrideOwnerVelocity: 1
 
FVector OwnerVelocityOverride
 
- Public Attributes inherited from FAnimNode_SkeletalControlBase
FComponentSpacePoseLink ComponentPose
 
int32 LODThreshold
 
float ActualAlpha
 
EAnimAlphaInputType AlphaInputType
 
bool bAlphaBoolEnabled
 
float Alpha
 
FInputScaleBias AlphaScaleBias
 
FInputAlphaBoolBlend AlphaBoolBlend
 
FName AlphaCurveName
 
FInputScaleBiasClamp AlphaScaleBiasClamp
 

Additional Inherited Members

- Protected Member Functions inherited from FAnimNode_SkeletalControlBase
virtual ANIMGRAPHRUNTIME_API void UpdateComponentPose_AnyThread (const FAnimationUpdateContext &Context)
 
virtual ANIMGRAPHRUNTIME_API void EvaluateComponentPose_AnyThread (FComponentSpacePoseContext &Output)
 
virtual ANIMGRAPHRUNTIME_API void EvaluateComponentSpaceInternal (FComponentSpacePoseContext &Context)
 
ANIMGRAPHRUNTIME_API void AddDebugNodeData (FString &OutDebugData)
 
- 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)
 

Detailed Description

Simple controller that replaces or adds to the translation/rotation of a single bone.

Constructor & Destructor Documentation

◆ FAnimNode_SpringBone()

FAnimNode_SpringBone::FAnimNode_SpringBone ( )

Member Function Documentation

◆ CacheBones_AnyThread()

void FAnimNode_SpringBone::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_SkeletalControlBase.

◆ EvaluateSkeletalControl_AnyThread()

void FAnimNode_SpringBone::EvaluateSkeletalControl_AnyThread ( FComponentSpacePoseContext Output,
TArray< FBoneTransform > &  OutBoneTransforms 
)
overridevirtual

Reimplemented from FAnimNode_SkeletalControlBase.

◆ GatherDebugData()

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

◆ HasPreUpdate()

virtual bool FAnimNode_SpringBone::HasPreUpdate ( ) const
inlineoverridevirtual

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

◆ Initialize_AnyThread()

void FAnimNode_SpringBone::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_SkeletalControlBase.

◆ IsValidToEvaluate()

bool FAnimNode_SpringBone::IsValidToEvaluate ( const USkeleton Skeleton,
const FBoneContainer RequiredBones 
)
overridevirtual

Reimplemented from FAnimNode_SkeletalControlBase.

◆ PreUpdate()

void FAnimNode_SpringBone::PreUpdate ( const UAnimInstance InAnimInstance)
overridevirtual

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

Reimplemented from FAnimNode_Base.

◆ UpdateInternal()

void FAnimNode_SpringBone::UpdateInternal ( const FAnimationUpdateContext Context)
overridevirtual

Reimplemented from FAnimNode_SkeletalControlBase.

Member Data Documentation

◆ bHadValidStrength

uint8 FAnimNode_SpringBone::bHadValidStrength

Did we have a non-zero ControlStrength last frame.

◆ bLimitDisplacement

uint8 FAnimNode_SpringBone::bLimitDisplacement

Limit the amount that a bone can stretch from its ref-pose length.

◆ BoneLocation

FVector FAnimNode_SpringBone::BoneLocation

World-space location of the bone.

◆ BoneVelocity

FVector FAnimNode_SpringBone::BoneVelocity

World-space velocity of the bone.

◆ bOverrideOwnerVelocity

uint8 FAnimNode_SpringBone::bOverrideOwnerVelocity

Option to override owner velocity used by spring controller.

◆ bRotateX

uint8 FAnimNode_SpringBone::bRotateX

If true take the spring calculation for rotation in X

◆ bRotateY

uint8 FAnimNode_SpringBone::bRotateY

If true take the spring calculation for rotation in Y

◆ bRotateZ

uint8 FAnimNode_SpringBone::bRotateZ

If true take the spring calculation for rotation in Z

◆ bTranslateX

uint8 FAnimNode_SpringBone::bTranslateX

If true take the spring calculation for translation in X

◆ bTranslateY

uint8 FAnimNode_SpringBone::bTranslateY

If true take the spring calculation for translation in Y

◆ bTranslateZ

uint8 FAnimNode_SpringBone::bTranslateZ

If true take the spring calculation for translation in Z

◆ ErrorResetThresh

double FAnimNode_SpringBone::ErrorResetThresh

If spring stretches more than this, reset it. Useful for catching teleports etc

◆ FixedTimeStep

float FAnimNode_SpringBone::FixedTimeStep

Internal use - Current timestep

◆ LocalBoneTransform

FVector FAnimNode_SpringBone::LocalBoneTransform

Cache of previous frames local bone transform so that when we cannot simulate (timestep == 0) we can still update bone location

◆ MaxDisplacement

double FAnimNode_SpringBone::MaxDisplacement

If bLimitDisplacement is true, this indicates how long a bone can stretch beyond its length in the ref-pose.

◆ OwnerVelocity

FVector FAnimNode_SpringBone::OwnerVelocity

Velocity of the owning actor

◆ OwnerVelocityOverride

FVector FAnimNode_SpringBone::OwnerVelocityOverride

◆ RemainingTime

float FAnimNode_SpringBone::RemainingTime

Internal use - Amount of time we need to simulate.

◆ SpringBone

FBoneReference FAnimNode_SpringBone::SpringBone

Name of bone to control. This is the main bone chain to modify from.

◆ SpringDamping

double FAnimNode_SpringBone::SpringDamping

Damping of spring

◆ SpringStiffness

double FAnimNode_SpringBone::SpringStiffness

Stiffness of spring

◆ TimeDilation

float FAnimNode_SpringBone::TimeDilation

Internal use - Current time dilation


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