reckfellENGINE

SkeletonIK3D

A node used to rotate all bones of a Skeleton3D bone chain a way that places the end bone at a desired 3D position.

On this page
class SkeletonIK3DReckfellSharpInherits SkeletonModifier3D

A node used to rotate all bones of a Skeleton3D bone chain a way that places the end bone at a desired 3D position.

SkeletonIK3D is used to rotate all bones of a Skeleton3D bone chain a way that places the end bone at a desired 3D position. A typical scenario for IK in games is to place a character's feet on the ground or a character's hands on a currently held object. SkeletonIK uses FabrikInverseKinematic internally to solve the bone chain and applies the results to the Skeleton3D bones_global_pose_override property for all affected bones in the chain. If fully applied, this overwrites any bone transform from Animations or bone custom poses set by users. The applied amount can be controlled with the SkeletonModifier3D.Influence property.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

SkeletonIK3DConstructor
# SkeletonIK3D
C#
public SkeletonIK3D();

Properties10

InterpolationProperty · Deprecated
# Interpolation
C#
public float Interpolation { get; set; }

Interpolation value for how much the IK results are applied to the current skeleton bone chain. A value of 1.0 will overwrite all skeleton bone transforms completely while a value of 0.0 will visually disable the SkeletonIK.

MagnetProperty
# Magnet
C#
public Vector3 Magnet { get; set; }

Secondary target position (first is SkeletonIK3D.Target property or target_node) for the IK chain. Use magnet position (pole target) to control the bending of the IK chain. Only works if the bone chain has more than 2 bones. The middle chain bone position will be linearly interpolated with the magnet position.

MaxIterationsProperty
# MaxIterations
C#
public int MaxIterations { get; set; }

Number of iteration loops used by the IK solver to produce more accurate (and elegant) bone chain results.

MinDistanceProperty
# MinDistance
C#
public float MinDistance { get; set; }

The minimum distance between bone and goal target. If the distance is below this value, the IK solver stops further iterations.

OverrideTipBasisProperty
# OverrideTipBasis
C#
public bool OverrideTipBasis { get; set; }

If true overwrites the rotation of the tip bone with the rotation of the SkeletonIK3D.Target (or target_node if defined).

RootBoneProperty
# RootBone
C#
public StringName RootBone { get; set; }

The name of the current root bone, the first bone in the IK chain.

TargetProperty
# Target
C#
public Transform3D Target { get; set; }

The first target of the IK chain where the tip bone is placed and, if SkeletonIK3D.OverrideTipBasis is true, how the tip bone is rotated. If target_node points to a valid node, that node's transform is used instead and this property is ignored.

TargetEntityProperty
# TargetEntity
C#
public EntityPath TargetEntity { get; set; }

Target node EntityPath for the IK chain. If available, the node's current Transform3D is used instead of the SkeletonIK3D.Target property.

TipBoneProperty
# TipBone
C#
public StringName TipBone { get; set; }

The name of the current tip bone, the last bone in the IK chain placed at the SkeletonIK3D.Target transform (or target_node if defined).

UseMagnetProperty
# UseMagnet
C#
public bool UseMagnet { get; set; }

If true, instructs the IK solver to consider the secondary magnet target (pole target) when calculating the bone chain. Use the magnet position (pole target) to control the bending of the IK chain.

Methods24

GetInterpolationfloat
# GetInterpolation
C#
public float GetInterpolation();
Returns float
GetMagnetPositionVector3
# GetMagnetPosition
C#
public Vector3 GetMagnetPosition();
Returns Vector3
GetMaxIterationsint
# GetMaxIterations
C#
public int GetMaxIterations();
Returns int
GetMinDistancefloat
# GetMinDistance
C#
public float GetMinDistance();
Returns float
GetParentSkeletonSkeleton3D
# GetParentSkeleton
C#
public Skeleton3D GetParentSkeleton();

Returns the parent Skeleton3D node that was present when SkeletonIK entered the scene tree. Returns null if the parent node was not a Skeleton3D node when SkeletonIK3D entered the scene tree.

Returns Skeleton3D
GetRootBoneStringName
# GetRootBone
C#
public StringName GetRootBone();
Returns StringName
GetTargetEntityEntityPath
# GetTargetEntity
C#
public EntityPath GetTargetEntity();
Returns EntityPath
GetTargetTransformTransform3D
# GetTargetTransform
C#
public Transform3D GetTargetTransform();
Returns Transform3D
GetTipBoneStringName
# GetTipBone
C#
public StringName GetTipBone();
Returns StringName
IsOverrideTipBasisbool
# IsOverrideTipBasis
C#
public bool IsOverrideTipBasis();
Returns bool
IsRunningbool
# IsRunning
C#
public bool IsRunning();

Returns true if SkeletonIK is applying IK effects on continues frames to the Skeleton3D bones. Returns false if SkeletonIK is stopped or SkeletonIK3D.Start was used with the one_time parameter set to true.

Returns bool
IsUsingMagnetbool
# IsUsingMagnet
C#
public bool IsUsingMagnet();
Returns bool
SetInterpolationvoid
# SetInterpolation
C#
public void SetInterpolation(float interpolation);
Parameters
NameTypeDefault
interpolationfloat—
SetMagnetPositionvoid
# SetMagnetPosition
C#
public void SetMagnetPosition(Vector3 localPosition);
Parameters
NameTypeDefault
localPositionVector3—
SetMaxIterationsvoid
# SetMaxIterations
C#
public void SetMaxIterations(int iterations);
Parameters
NameTypeDefault
iterationsint—
SetMinDistancevoid
# SetMinDistance
C#
public void SetMinDistance(float minDistance);
Parameters
NameTypeDefault
minDistancefloat—
SetOverrideTipBasisvoid
# SetOverrideTipBasis
C#
public void SetOverrideTipBasis(bool @override);
Parameters
NameTypeDefault
overridebool—
SetRootBonevoid
# SetRootBone
C#
public void SetRootBone(StringName rootBone);
Parameters
NameTypeDefault
rootBoneStringName—
SetTargetEntityvoid
# SetTargetEntity
C#
public void SetTargetEntity(EntityPath node);
Parameters
NameTypeDefault
nodeEntityPath—
SetTargetTransformvoid
# SetTargetTransform
C#
public void SetTargetTransform(Transform3D target);
Parameters
NameTypeDefault
targetTransform3D—
SetTipBonevoid
# SetTipBone
C#
public void SetTipBone(StringName tipBone);
Parameters
NameTypeDefault
tipBoneStringName—
SetUseMagnetvoid
# SetUseMagnet
C#
public void SetUseMagnet(bool use);
Parameters
NameTypeDefault
usebool—
Startvoid
# Start
C#
public void Start(bool oneTime = false);

Starts applying IK effects on each frame to the Skeleton3D bones but will only take effect starting on the next frame. If one_time is true, this will take effect immediately but also reset on the next frame.

Parameters
NameTypeDefault
oneTimeboolfalse
Stopvoid
# Stop
C#
public void Stop();

Stops applying IK effects on each frame to the Skeleton3D bones and also calls Skeleton3D.ClearBonesGlobalPoseOverride to remove existing overrides on all bones.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.