Quick answer: Configure root_bone, tip_bone, and target_node. Call start() on the SkeletonIK3D. Verify interpolation > 0 and the target is within chain reach.

A character’s hand should reach for a door handle via SkeletonIK3D. Target node moves correctly but the arm doesn’t follow. IK chain never activated.

Configure the Chain

$SkeletonIK3D.root_bone = "Shoulder.R"
$SkeletonIK3D.tip_bone = "Hand.R"
$SkeletonIK3D.target_node = $HandleTarget.get_path()
$SkeletonIK3D.start()

Both bones must exist in the Skeleton3D. tip_bone is what reaches; root_bone anchors the chain.

Interpolation

$SkeletonIK3D.interpolation = 1.0   # full IK influence

0.0 disables; 1.0 full influence. Animate this for IK fade-in/out (e.g. blend hand-reach into walk cycle).

Reachability

The chain has a maximum length (sum of bone lengths). Target beyond reach — the tip points toward target but doesn’t connect. Closer target solves.

Order vs Animation

IK runs in process_physics. AnimationPlayer also poses bones. Set IK to override or compose with animation by tweaking the interpolation curve.

Verifying

Move target node; arm follows. Hand reaches plausibly. Combined with body animation, the upper body adapts to door height naturally.

“Configure chain, start it, set influence. Three steps for runtime IK in Godot.”

For two-bone leg IK (foot placement on uneven ground), pair SkeletonIK3D with raycast hit position — foot always lands on geometry.