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

#include <AnimNode_SplineIK.h>

+ Inheritance diagram for FAnimNode_SplineIK:

Public Member Functions

ANIMGRAPHRUNTIME_API FAnimNode_SplineIK ()
 
virtual ANIMGRAPHRUNTIME_API void GatherDebugData (FNodeDebugData &DebugData) override
 
virtual ANIMGRAPHRUNTIME_API void OnInitializeAnimInstance (const FAnimInstanceProxy *InProxy, const UAnimInstance *InAnimInstance) override
 
virtual bool NeedsOnInitializeAnimInstance () const 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
 
const FSplineCurvesGetSplineCurves () const
 
const FSplineCurvesGetTransformedSplineCurves () const
 
ANIMGRAPHRUNTIME_API FTransform GetTransformedSplinePoint (int32 TransformIndex) const
 
ANIMGRAPHRUNTIME_API FTransform GetControlPoint (int32 TransformIndex) const
 
ANIMGRAPHRUNTIME_API void SetControlPoint (int32 TransformIndex, const FTransform &InTransform)
 
ANIMGRAPHRUNTIME_API void SetControlPointLocation (int32 TransformIndex, const FVector &InLocation)
 
ANIMGRAPHRUNTIME_API void SetControlPointRotation (int32 TransformIndex, const FQuat &InRotation)
 
ANIMGRAPHRUNTIME_API void SetControlPointScale (int32 TransformIndex, const FVector &InScale)
 
int32 GetNumControlPoints () const
 
ANIMGRAPHRUNTIME_API void GatherBoneReferences (const FReferenceSkeleton &RefSkeleton)
 
- Public Member Functions inherited from FAnimNode_SkeletalControlBase
 FAnimNode_SkeletalControlBase ()
 
virtual ~FAnimNode_SkeletalControlBase ()
 
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) 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 ~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 StartBone
 
FBoneReference EndBone
 
ESplineBoneAxis BoneAxis
 
bool bAutoCalculateSpline
 
int32 PointCount
 
TArray< FTransformControlPoints
 
float Roll
 
float TwistStart
 
float TwistEnd
 
FAlphaBlend TwistBlend
 
float Stretch
 
float Offset
 
- 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
 

Protected Member Functions

ANIMGRAPHRUNTIME_API void BuildBoneSpline (const FReferenceSkeleton &RefSkeleton)
 
ANIMGRAPHRUNTIME_API void TransformSpline ()
 
ANIMGRAPHRUNTIME_API float FindParamAtFirstSphereIntersection (const FVector &InOrigin, float InRadius, int32 &StartingLinearIndex)
 
- 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)
 

Constructor & Destructor Documentation

◆ FAnimNode_SplineIK()

FAnimNode_SplineIK::FAnimNode_SplineIK ( )

Member Function Documentation

◆ BuildBoneSpline()

void FAnimNode_SplineIK::BuildBoneSpline ( const FReferenceSkeleton RefSkeleton)
protected

Build spline from reference pose

◆ EvaluateSkeletalControl_AnyThread()

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

Reimplemented from FAnimNode_SkeletalControlBase.

◆ FindParamAtFirstSphereIntersection()

float FAnimNode_SplineIK::FindParamAtFirstSphereIntersection ( const FVector InOrigin,
float  InRadius,
int32 StartingLinearIndex 
)
protected

Use our linear approximation to determine the earliest intersection with a sphere

◆ GatherBoneReferences()

void FAnimNode_SplineIK::GatherBoneReferences ( const FReferenceSkeleton RefSkeleton)

Build bone references & reallocate transforms from the supplied ref skeleton

◆ GatherDebugData()

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

◆ GetControlPoint()

FTransform FAnimNode_SplineIK::GetControlPoint ( int32  TransformIndex) const

Get specified handle transform (in component space) for the spline

◆ GetNumControlPoints()

int32 FAnimNode_SplineIK::GetNumControlPoints ( ) const
inline

Get the number of spline transforms we are using

◆ GetSplineCurves()

const FSplineCurves & FAnimNode_SplineIK::GetSplineCurves ( ) const
inline

Read-only access to spline curves

◆ GetTransformedSplineCurves()

const FSplineCurves & FAnimNode_SplineIK::GetTransformedSplineCurves ( ) const
inline

Read-only access to transformed curves

◆ GetTransformedSplinePoint()

FTransform FAnimNode_SplineIK::GetTransformedSplinePoint ( int32  TransformIndex) const

Get transformed spline point (in component space) for the spline

◆ IsValidToEvaluate()

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

Reimplemented from FAnimNode_SkeletalControlBase.

◆ NeedsOnInitializeAnimInstance()

virtual bool FAnimNode_SplineIK::NeedsOnInitializeAnimInstance ( ) const
inlineoverridevirtual

For nodes that need some kind of initialization that is not dependent on node relevancy (i.e. it is insufficient or inefficient to use Initialize_AnyThread), return true here. Note that this is called at load on the UAnimInstance CDO to avoid needing to call this at runtime.

Reimplemented from FAnimNode_Base.

◆ OnInitializeAnimInstance()

void FAnimNode_SplineIK::OnInitializeAnimInstance ( const FAnimInstanceProxy InProxy,
const UAnimInstance InAnimInstance 
)
overridevirtual

Called once, from game thread as the parent anim instance is created

Reimplemented from FAnimNode_Base.

◆ SetControlPoint()

void FAnimNode_SplineIK::SetControlPoint ( int32  TransformIndex,
const FTransform InTransform 
)

Set specified handle transform (in component space) for the spline

◆ SetControlPointLocation()

void FAnimNode_SplineIK::SetControlPointLocation ( int32  TransformIndex,
const FVector InLocation 
)

Set specified handle location (in component space) for the spline

◆ SetControlPointRotation()

void FAnimNode_SplineIK::SetControlPointRotation ( int32  TransformIndex,
const FQuat InRotation 
)

Set specified handle rotation (in component space) for the spline

◆ SetControlPointScale()

void FAnimNode_SplineIK::SetControlPointScale ( int32  TransformIndex,
const FVector InScale 
)

Set specified handle scale (in component space) for the spline

◆ TransformSpline()

void FAnimNode_SplineIK::TransformSpline ( )
protected

Transform the spline using our control points

Member Data Documentation

◆ bAutoCalculateSpline

bool FAnimNode_SplineIK::bAutoCalculateSpline

The number of points in the spline if we are specifying it directly

◆ BoneAxis

ESplineBoneAxis FAnimNode_SplineIK::BoneAxis

Axis of the controlled bone (ie the direction of the spline) to use as the direction for the curve.

◆ ControlPoints

TArray<FTransform> FAnimNode_SplineIK::ControlPoints

Transforms applied to spline points

◆ EndBone

FBoneReference FAnimNode_SplineIK::EndBone

Name of bone at the end of the spline chain. Bones after this will not be altered by the controller.

◆ Offset

float FAnimNode_SplineIK::Offset

The distance along the spline from the start from which bones are constrained

◆ PointCount

int32 FAnimNode_SplineIK::PointCount

The number of points in the spline if we are not auto-calculating

◆ Roll

float FAnimNode_SplineIK::Roll

Overall roll of the spline, applied on top of other rotations along the direction of the spline

◆ StartBone

FBoneReference FAnimNode_SplineIK::StartBone

Name of root bone from which the spline extends

◆ Stretch

float FAnimNode_SplineIK::Stretch

The maximum stretch allowed when fitting bones to the spline. 0.0 means bones do not stretch their length, 1.0 means bones stretch to the length of the spline

◆ TwistBlend

FAlphaBlend FAnimNode_SplineIK::TwistBlend

How to interpolate twist along the length of the spline

◆ TwistEnd

float FAnimNode_SplineIK::TwistEnd

The twist of the end bone. Twist is interpolated along the spline according to Twist Blend.

◆ TwistStart

float FAnimNode_SplineIK::TwistStart

The twist of the start bone. Twist is interpolated along the spline according to Twist Blend.


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