Example workflow: Use the advanced Spline IK twist controls to animate a snake

A snake character with Spline IK slithers across the forest floor. The snake is manipulated by translating and rotating the NURBS curve. The NURBS curve is driven by control objects (in this example, they are locators) at the beginning (head) and end (tail) of the curve.

  1. Select the snake character’s Spline IK handle.

    The Spline IK handle starts at the first joint and ends at the last joint of the snake’s skeleton, and its NURBS curve runs through all the joints and bones.

  2. In the Attribute Editor, select the ikHandle node.
  3. In the IK Solver Attributes, click the Add Advanced Twist Control button.
    The advanced Spline IK twist control attributes appear.
  4. Set the World Up Type to Object Rotation Up (Start/End).
  5. Choose Positive X and Positive Y from the Up Axis and Forward Axis drop-down lists, respectively.

    This constrains the start and end joint Up vectors of the snake's joints to the X and Y-axes of the locators used to drive the NURBS curve.

    Note: The Forward Axis and Up Axis attributes specify what local joint axes are aligned with the Up Object vectors specified in the Up Vector fields.
  6. Type the name of the head locator in the World Up Object field and the tail locator in the World Up Object 2 field.

    The positive Y orientation of the locators is used to calculate the Up vectors of the joints in the snake’s skeleton.

    Note: You can specify a specific vector offset for the joints with the Up Vector and Up Vector 2 fields.
  7. Select and move the head locator.

    This moves all the joints and bones in the snake’s skeleton. Notice that the joints and bones also now respect the orientation of the manipulation objects.

Related topics