Your Ad Here

Creating Neutral Poses for Skeletons

When you’re creating a skeleton, it’s a good idea to save it in a default position (pose) before it’s animated or enveloped. This way you have a solid reference point to revert to when enveloping and animating the skeleton. This pose is known as the neutral pose, reference pose, or base pose, and is often the character with outstretched arms and legs, making it easy to weight the envelope and adjust its textures.

 

A neutral pose that’s useful for envelope weighting and texturing doesn’t always give the best values for animating the skeleton’s position and rotation. To set the neutral pose for optimum animation, see the section below, Creating a Neutral Pose for Animation.

As well, you can store the skeleton’s neutral pose in an action source (Store Skeleton Pose) so that you can easily reapply it to your character any time you want—see Storing a Skeleton Pose in an Action Source for information.

Creating a Neutral Pose for Animation

When you’re animating the character, this default pose does not always give you local transformation values that are easy to key. For example, let’s say that you load the default skeleton and want to rotate the finger bones from their outstretched position into a clenched fist. If you look at their local rotation values, you’ll see that they are difficult numbers to use.

To overcome this problem, you can create a neutral pose which uses zero for its local transformation values (0 for rotation and translation, 1 for scaling). When you set a neutral pose, the object’s actual local transformation values are not changed: the neutral pose simply adds a transformation layer that lets you specify certain conditions for keying. Basically, the neutral pose acts as an offset for the object’s local transformation values, as if there was an intermediate null between the object and its parent in the hierarchy.

When you key the character’s values, they reflect the relative difference from zero, and not a value that’s difficult to use. For example, when you key a hand bone at coordinates (0, 3, 0), you know that it’s 3 units in the Y axis above the neutral pose, so that pose becomes a local reference point for the fcurve values of the bone.

 

With a neutral pose set, you can select a chain element and enter zero for its local rotation, for example (often referred to as “zeroing out”), and it returns to this neutral pose.

Not only do neutral poses make keying easier, you can also reduce the number of extra nodes in a rig because you don’t need any “spacer” or “parent” nodes that helped you set zero as the value for the bones’ neutral pose.

You can create neutral poses for any type of object, not just chain elements in a skeleton. This means that you can zero out control objects in a rig.

Setting the Neutral Pose

You can set neutral poses using either menu commands or an object’s Local Transform property editor.

To set neutral poses with menu commands

1. Select or branch-select one or more chain elements (such as a bone) or rig control objects.

2. Position the selected objects into the pose you want to use as the neutral pose.

3. Choose either the Transform > Set Neutral Pose command from the main command panel or the Create > Skeleton > Set Neutral Pose command from the Animate toolbar.

Both these commands set the neutral values for the object’s total pose: scaling, rotation, and translation values.

You can also set the scaling, rotation, and translation values separately using these commands on the Transform menu:

- Set Neutral Scaling stores the current scaling values in the neutral pose and sets the local scaling values to (1, 1, 1).

- Set Neutral Rotation stores the current rotation values in the neutral pose and sets the local rotation values to (0, 0, 0).

- Set Neutral Translation stores the current translation values in the neutral pose and sets the local translation values to (0, 0, 0).

4. Transform the selected object as you like and key the transformation values. Because you’re starting at a base of 0, the values that you enter are offset against it: it’s these values that are displayed in the fcurves.

 

5. To return to the neutral pose (zero out the transformation), use the Transform > Reset commands or enter 0 for the rotation and translation values and 1 for the scaling values.

To set neutral poses in the Local Transform property editor

1. Select or branch-select one or more chain elements (such as a bone) or rig control objects.

2. Position the selected objects into the pose you want to use as the neutral pose.

3. Open the Local Transform property editor for the selected objects (press Ctrl+k) and click the Neutral Pose tab.

4. Click the Use Current Pose button to set this pose as the neutral pose.

The object’s current transformation values are stored on the Neutral Pose page and the local transformation values (as you can see on the SRT page in this property editor or in the Transform panel) are set to zero (1 for scaling).

 

5. Transform the selected object as you like and key the transformation values as found on the SRT page in the Local Transform property editor or in the Transform panel.

Because you’re starting at a base of 0, the values that you enter are offset against it: it’s these values that are displayed in the fcurves.

Removing Neutral Poses

When you remove the neutral pose, the object’s transformation values return to what they were before creating the neutral pose. The neutral pose values are added to the local transformation before being reset to the defaults. As a result, the object does not move in global space.

To remove neutral poses

• Select one or more objects or branches that have a neutral pose set and do either of the following:

- Choose the Transform > Remove Neutral Pose or Create > Skeleton > Remove Neutral Pose commands.

or

- Open the Local Transform property editor and click Reset on the Neutral Pose page.

The object returns to the same position it was before you set the neutral pose.



SOFTIMAGE|XSI v.6.01     

Return to Softimage XSI Index


Your Ad Here