Spline IK solver

Use spline IK for posing and animating long, sinuous joint chains like those for tails, tentacles, snakes, necks, spines, and similar objects.

Spline IK handles let you pose a joint chain using a NURBS curve. When you manipulate the curve, the handle’s spline IK solver rotates the joints in the chain accordingly.

See also Tips for working with spline IK handles .

Spline IK handle components

Advanced spline IK controls

With the spline IK twist control attributes, you can constrain the local rotation of the joints in a chain to a fixed worldspace vector. This vector is the orientation of the spline IK NURBS curve. For example, you can use the advanced spline IK twist controls to stabilize a snake character, the spine of a biped character, or the movements of a coil spring. Also, to fine-tune the twist along the chain, you can add additional twist to the joints with the Twist Value attributes.

By aligning the joints Up axes with a fixed worldspace vector before applying additional twist, you can achieve a more predictable and stable result than was previously possible.

See Example workflow: Use the advanced Spline IK twist controls to animate a snake and Add Advanced Twist Control Attributes.

Note: The Advanced Twist Control attributes are relevant only if your IK handle uses the ikSplineSolver.

IK handles with spline IK let you pose your joint chains using NURBS curves. When you manipulate the spline IK curve, you are moving and rotating all the joints in the target IK chain. An easy way to manipulate the spline NURBS curve is to create a cluster deformer for each of the curves CVs. See Cluster Curve in the Select menu.

Start joint flipping

The start joint of your spline IK joint chain can sometimes flip when you move or rotate the spline IK curve or its CVs, or when you slide the joint chain along its curve. The flipping is a normal result of the spline IK solver’s calculations.

Joint flipping occurs when the orientation of a joint is more than 90 degrees from its rotation value of 0. A joint’s rotation value is 0 when its Rotate X, Y, and Z values are 0, relative to its parent joint’s rotation values. Flipping is most pronounced when a joint nears 180 degrees rotation.

You can prevent start joint flipping by moving each of the joints after the start joint to roughly their rest positions. See Prevent flipping in the spline IK chain.

Unwanted start joint flipping can also occur when you animate a joint chain along its curve, for instance, when you slide a snake along a motion path.

If you have positioned joints appropriately and joint flipping still occurs, parent the start joint to another joint or to a transform node. See Auto Create Root Axis and Auto Parent Curve in the IK Spline Handle Tool.

Related topics