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

#include <AnimNode_LegIK.h>

+ Inheritance diagram for FAnimNode_LegIK:

Public Member Functions

ANIMGRAPHRUNTIME_API FAnimNode_LegIK ()
 
virtual ANIMGRAPHRUNTIME_API void GatherDebugData (FNodeDebugData &DebugData) override
 
virtual ANIMGRAPHRUNTIME_API void Initialize_AnyThread (const FAnimationInitializeContext &Context) 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
 
ANIMGRAPHRUNTIME_API bool OrientLegTowardsIK (FAnimLegIKData &InLegData)
 
ANIMGRAPHRUNTIME_API bool DoLegReachIK (FAnimLegIKData &InLegData)
 
ANIMGRAPHRUNTIME_API bool AdjustKneeTwist (FAnimLegIKData &InLegData)
 
- Public Member Functions inherited from FAnimNode_SkeletalControlBase
 FAnimNode_SkeletalControlBase ()
 
virtual ~FAnimNode_SkeletalControlBase ()
 
virtual ANIMGRAPHRUNTIME_API void CacheBones_AnyThread (const FAnimationCacheBonesContext &Context) override
 
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 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

float ReachPrecision
 
int32 MaxIterations
 
float SoftPercentLength
 
float SoftAlpha
 
TArray< FAnimLegIKDefinitionLegsDefinition
 
TArray< FAnimLegIKDataLegsData
 
FAnimInstanceProxyMyAnimInstanceProxy
 
- 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 UpdateInternal (const FAnimationUpdateContext &Context)
 
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)
 

Constructor & Destructor Documentation

◆ FAnimNode_LegIK()

FAnimNode_LegIK::FAnimNode_LegIK ( )

Member Function Documentation

◆ AdjustKneeTwist()

bool FAnimNode_LegIK::AdjustKneeTwist ( FAnimLegIKData InLegData)

◆ DoLegReachIK()

bool FAnimNode_LegIK::DoLegReachIK ( FAnimLegIKData InLegData)

◆ EvaluateSkeletalControl_AnyThread()

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

Reimplemented from FAnimNode_SkeletalControlBase.

◆ GatherDebugData()

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

◆ Initialize_AnyThread()

void FAnimNode_LegIK::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_LegIK::IsValidToEvaluate ( const USkeleton Skeleton,
const FBoneContainer RequiredBones 
)
overridevirtual

Reimplemented from FAnimNode_SkeletalControlBase.

◆ OrientLegTowardsIK()

bool FAnimNode_LegIK::OrientLegTowardsIK ( FAnimLegIKData InLegData)

Member Data Documentation

◆ LegsData

TArray<FAnimLegIKData> FAnimNode_LegIK::LegsData

◆ LegsDefinition

TArray<FAnimLegIKDefinition> FAnimNode_LegIK::LegsDefinition

◆ MaxIterations

int32 FAnimNode_LegIK::MaxIterations

Max Number of Iterations.

◆ MyAnimInstanceProxy

FAnimInstanceProxy* FAnimNode_LegIK::MyAnimInstanceProxy

◆ ReachPrecision

float FAnimNode_LegIK::ReachPrecision

Tolerance for reaching IK Target, in unreal units.

◆ SoftAlpha

float FAnimNode_LegIK::SoftAlpha

Default is 1.0 (full). Range is 0 to 1. Blends the effect of the "softness" on/off.

◆ SoftPercentLength

float FAnimNode_LegIK::SoftPercentLength

Default is 1.0 (off). Range is 0.1 to 1.0. When set to a value less than 1, will "softly" approach full extension starting when the effector distance from the root of the chain is greater than this percent length of the bone chain. Typical values are around 0.97. This is useful for preventing the knee from "popping" when approaching full extension.


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