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

#include <AnimNode_TwoBoneIK.h>

+ Inheritance diagram for FAnimNode_TwoBoneIK:

Public Member Functions

ANIMGRAPHRUNTIME_API FAnimNode_TwoBoneIK ()
 
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
 
- 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
 

Static Public Member Functions

static ANIMGRAPHRUNTIME_API FTransform GetTargetTransform (const FTransform &InComponentTransform, FCSPose< FCompactPose > &MeshBases, FBoneSocketTarget &InTarget, EBoneControlSpace Space, const FVector &InOffset)
 

Public Attributes

FBoneReference IKBone
 
double StartStretchRatio
 
double MaxStretchScale
 
FVector EffectorLocation
 
FCompactPoseBoneIndex CachedUpperLimbIndex
 
FBoneSocketTarget EffectorTarget
 
FVector JointTargetLocation
 
FCompactPoseBoneIndex CachedLowerLimbIndex
 
FBoneSocketTarget JointTarget
 
FAxis TwistAxis
 
TEnumAsByte< enum EBoneControlSpaceEffectorLocationSpace
 
TEnumAsByte< enum EBoneControlSpaceJointTargetLocationSpace
 
uint8 bAllowStretching:1
 
uint8 bTakeRotationFromEffectorSpace: 1
 
uint8 bMaintainEffectorRelRot: 1
 
uint8 bAllowTwist: 1
 
- 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)
 

Detailed Description

Simple 2 Bone IK Controller.

Constructor & Destructor Documentation

◆ FAnimNode_TwoBoneIK()

FAnimNode_TwoBoneIK::FAnimNode_TwoBoneIK ( )

Member Function Documentation

◆ EvaluateSkeletalControl_AnyThread()

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

Reimplemented from FAnimNode_SkeletalControlBase.

◆ GatherDebugData()

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

◆ GetTargetTransform()

FTransform FAnimNode_TwoBoneIK::GetTargetTransform ( const FTransform InComponentTransform,
FCSPose< FCompactPose > &  MeshBases,
FBoneSocketTarget InTarget,
EBoneControlSpace  Space,
const FVector InOffset 
)
static

◆ Initialize_AnyThread()

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

Reimplemented from FAnimNode_SkeletalControlBase.

Member Data Documentation

◆ bAllowStretching

uint8 FAnimNode_TwoBoneIK::bAllowStretching

Should stretching be allowed, to be prevent over extension

◆ bAllowTwist

uint8 FAnimNode_TwoBoneIK::bAllowTwist

Whether or not to apply twist on the chain of joints. This clears the twist value along the TwistAxis

◆ bMaintainEffectorRelRot

uint8 FAnimNode_TwoBoneIK::bMaintainEffectorRelRot

Keep local rotation of end bone

◆ bTakeRotationFromEffectorSpace

uint8 FAnimNode_TwoBoneIK::bTakeRotationFromEffectorSpace

Set end bone to use End Effector rotation

◆ CachedLowerLimbIndex

FCompactPoseBoneIndex FAnimNode_TwoBoneIK::CachedLowerLimbIndex

◆ CachedUpperLimbIndex

FCompactPoseBoneIndex FAnimNode_TwoBoneIK::CachedUpperLimbIndex

◆ EffectorLocation

FVector FAnimNode_TwoBoneIK::EffectorLocation

Effector Location. Target Location to reach.

◆ EffectorLocationSpace

TEnumAsByte<enum EBoneControlSpace> FAnimNode_TwoBoneIK::EffectorLocationSpace

Reference frame of Effector Location.

◆ EffectorTarget

FBoneSocketTarget FAnimNode_TwoBoneIK::EffectorTarget

◆ IKBone

FBoneReference FAnimNode_TwoBoneIK::IKBone

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

◆ JointTarget

FBoneSocketTarget FAnimNode_TwoBoneIK::JointTarget

◆ JointTargetLocation

FVector FAnimNode_TwoBoneIK::JointTargetLocation

Joint Target Location. Location used to orient Joint bone.

◆ JointTargetLocationSpace

TEnumAsByte<enum EBoneControlSpace> FAnimNode_TwoBoneIK::JointTargetLocationSpace

Reference frame of Joint Target Location.

◆ MaxStretchScale

double FAnimNode_TwoBoneIK::MaxStretchScale

Limits to use if stretching is allowed. This value determins what is the max stretch scale. For example, 1.5 means it will stretch until 150 % of the whole length of the limb.

◆ StartStretchRatio

double FAnimNode_TwoBoneIK::StartStretchRatio

Limits to use if stretching is allowed. This value determines when to start stretch. For example, 0.9 means once it reaches 90% of the whole length of the limb, it will start apply.

◆ TwistAxis

FAxis FAnimNode_TwoBoneIK::TwistAxis

Specify which axis it's aligned. Used when removing twist


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