Checking the Rotational Axis

One of the most important stages in character rigging, particularly in Maya, is to check the rotational axes. The way a joint rotates depends on how the axis is aligned. This is particularly important when you are using joint chains as we have done in Kila and Grae.

Look at Figure 11.23, left. Here we have our current hand for Kila, which looks fine. To get the fingers to bend and make a fist, we would select the root of each finger, then its hierarchy, and do a global rotation around the Z axis.

Figure 11.23. Rotating the fingers around the Z axis demonstrates that the rotational axes are not correctly aligned.

Figure 11.23, right, shows the result. Because all of the rotational axes are out of line at this point, the fingers are all bending in random directions.

You'll find this misalignment in a number of areas around the skeleton as it is currently constructed, so let's fix them.

This gives us the opportunity to look at two more of the tools located on the GCDM shelf: rsJnt and orJnt.

  • The rsJnt tool will reset a joint's axis to match the one above it in the hierarchy. If no joint exists above the joint being reset, rsJnt will match the world axis.

  • The orJnt tool attempts to reorient each joint using the default xyz setting (in this case, X pointing down the bone, with Y and Z perpendicular to it).


Maya does have its own tool for reorienting joints (Skeleton > Orient Joint). I've found, however, that this tool doesn't operate as I'd expect when more than one joint is selected. Feel free to use the Maya command if you prefer.


Select the root of Kila's skeleton. Then select the rest of the joints below it by going to Edit > Select Hierarchy.


With the joints now selected, go to Display > Component Display > Local Rotation Axis. As you can see in Figure 11.24, right, each joint's axis is now visible.

Figure 11.24. Make all the joints' rotational axes visible.

Now that we can see each axis, we can realign them.


To start, reset the spine joints. Select the main root joint and continue selecting your way up the spine, right up to the Head_Tip joint. Make sure you select the joints in order.


It can be a little confusing having all the rotational axes displayed at once. I recommend hiding the ones you are not currently working on. Select a joint and go to Display > Component Display > Local Rotation Axis. You can go a step further by hiding the inactive joints, too, but be warned that hiding one will also hide all the ones beneath it in the hierarchy.


Figure 11.25, left, shows the current orientation of the axes. Click rsJnt, and these will be reset as seen in Figure 11.25, rightall nice and neat, with Z pointing forward.

Figure 11.25. Reset the rotational axes on the spine.


Next, perform the same resetting process on the breast, eye, and hair joints (Figure 11.26).

Figure 11.26. Reset the breast, eye, and hair joints.


Normally, a joint's rotation should match the orientation of the joint itself, with one axis pointing directly down the bone. We are ignoring this principle for the breast, eye, and hair joints, however, because we want the rotations to match Maya's world pivot. In Chapter 12, we will be assigning rigging controls to these joints, so having the axes at this default state will make them easier to control.

That's the center of the body complete, now, so let's proceed to the arms and hands.

To orient the arms correctly, we first need to temporarily reset the clavicles. We do this because the orientation of the arm joints will be based on their parent joints. If we simply fixed the clavicle without resetting, the shoulder's Y axis would not point directly up, and the arm's rotation would be off. Resetting the clavicle will allow the shoulders, and then the rest of the arm's axes, to orient correctly.


Select the clavicle joints and click on the rsJnt button.


Select the shoulder and elbow joints; this time click on the orJnt button.


Because the wrist joint has lots of children, we can't tell it to adjust the axis so that X points down one bone toward the next one. In this case, our hand is oriented the same as the upper arm, so we can use the rsJnt tool which will copy the previous joint's orientation.

You can see the arm orientations in Figure 11.27.

Figure 11.27. Reset the clavicle and then reorient the rest of the arm.


Think about how you want the hand to bend before you jump in and reset the orientation. If the alignment process described here is not going to work, then you will have to edit the rotational axis manually, which we will look into shortly.


For the fingers, simply select each joint and press orJnt (Figure 11.28, middle).

Figure 11.28. Fix the orientation of the fingers and thumb.

Now the thumb will have the same orientation as the fingers, but if you rotate your own thumb you'll notice it works on a different axis. To rectify this, the GCDM shelf has another button labeled rot45. This tool will rotate the joint's rotational pivot around the X axis at 45-unit intervals.


On the left hand, select the thumb joints, and press the rot45 button seven times (Figure 11.28, right).


For the right hand, you only need to press this once because the orientations are mirrored.


Make sure to double-check against your own hand to verify the proper effect is achieved, particularly for the thumb.

The last joints to tackle are in the legs. Starting from the hip, select each joint and press orJnt. As you can see in Figure 11.29, this works well on the legs. The feet, however, are at an angle. We want the pivots to be flat (an axis flat and parallel relative to the grid) while also being aligned with the foot; otherwise, when we rotate the feet, they will skew off to one side.

Figure 11.29. Reorient the rotational axes on the legs.

We could try resetting the ankle joints, but this won't work; they will only inherit the previous joint's pivot. So what we do is this:


Select the ankle joints and unparent them from the knees (Edit > Unparent); see Figure 11.30b.

Figure 11.30. Fix the orientation of the feet.


Now reset the ankle joints. They will inherit the world pivot, making them nice and flat.


With the ankles set, you can select the rest of the foot joints and run orJnt on them (Figure 11.30c).


Parent the ankles back to the knees (Figure 11.30d).

The feet aren't finished yetwe still need to fine-tune them. Look from the top view, as seen in Figure 11.31, top. Although the axes are flat, which is how we want them, they don't match the orientation of the foot. Each foot points slightly outward, whereas the axis is pointing dead ahead. We need the axis to match that shown in Figure 11.31, bottom.

Figure 11.31. We now need to adjust the orientation from the top view.


Go up to the status line and select the Select By Component Type button, the second button from the left in Figure 11.32.

Figure 11.32. Choose Select By Component Type then right-click the question mark in the status line.

You are now in Component mode, but you still need to tell Maya what components you want to edit.


Right-click on the question mark toward the right end of the status line (Figure 11.32). On the menu that appears, select Local Rotation Axis.


Now physically select the ankles' rotation axes and rotate them to match the joints, as demonstrated in Figure 11.33. Make sure to restrict your rotation to the Y axis, so that X remains flat relative to the ground/grid.

Figure 11.33. Fine-tune the rotational axes on the ankles.


Press F8 when you are done to return to Object mode.

With the rotational axes cleaned up, the skeleton is complete (Figure 11.34). Save your work, updating the Kila_Skeleton.mb file.

Figure 11.34. Kila's completed skeleton with the cleaned-up rotational axes.

Grae's skeleton can be adjusted in exactly the same way as Kila's. Go ahead and work on this next, updating the file Grae_Skeleton.mb.

    Game Character Development with Maya
    Game Character Development with Maya
    ISBN: 073571438X
    EAN: 2147483647
    Year: 2004
    Pages: 169
    Authors: Antony Ward

    Similar book on Amazon © 2008-2017.
    If you may any questions please contact us: