Adverti horiz upsell
HUMAN INDIRECT SKINNING WITH FREE-FORM DEFORMERS I
HUMAN INDIRECT SKINNING WITH FREE-FORM DEFORMERS I
sdb1987, added 2005-10-04 11:27:48 UTC 65,090 views  Rating:
(1 rating)
Page 3 of 5

QUICK TEST OF JOINT PLACEMENTS

Before getting too much farther, you want to make sure that your skeleton�s joints are in the right locations for the character�s surface. Pay special attention to the shoulder and hip areas. These tend to be the hardest areas to deform correctly. The best way to test this is to do a quick bind and deformation test. Don�t be too picky about the overall deformations just yet, this is just a test since you still have a bit of editing to do on the skeleton before you do the final bind.

1. Bind the poly surface to the skeleton.

Highlight the Poly layer in the Layer Editor and make it a Standard layer. (If you forget to do this, you won�t be able to select the poly surface in the camera view.) Select polySurface, SHIFT select the ROOT of the skeleton, and Skin > Bind Skin > Smooth Bind options.

In the options box, hit the RESET button to use the default settings.

2. Test the joint rotations to see if their locations are correct.

Do some simple deformation tests, by rotating key joints to see if the bound surface deforms correctly. Mainly focus on the shoulders and hips, since these are the hardest areas to get good deformations in a humanistic character.

In the front view, select the left_humerus joint and rotate up and down. Watch the deformation of the surrounding surfaces. Actually understanding what is happening here without weight editing may take you awhile to get used to�but don�t worry�you�ll get it. What you are looking for is to make sure that the surrounding surface is deforming around the right pivot point in space (the joint). If not, you�ll have to do some �joint editing�.�

Notice on these deformations of the shoulder (below), that on the up rotation the deltoid gets �sucked� to far into the surface, and on the down rotation the under arm and upper rib cage get pushed in. This is actually fine. You�ll edit the surface weights to adjust �problems� like this.





3. Test the other major joints on the model.

Select the rest of the major joints in the model and test their rotational deformations. (I.e. the other shoulder, the hips, the knees, and elbows, etc.) Don�t forget to check them in different camera views also!

4. Edit joints that cause bad deformation due to their pivot location.

If all your major joints seem fine with their deformations and weight editing is all you think you need, skip on to the next step. Now, if you get something like this (below), where the rotated surface intersects too far into the rest of itself, you�ll have to detach the poly surface, move the joint (by translating/ rotating the joint and/ or surrounding joints), and reattach the surface to the skeleton.



Select polySurface and Skin > Detach Skin.

Translate, rotate, and/ or scale the joint(s) you wish to edit. Keep in mind that what you do to one joint may have negative effects on joints down the hierarchy chain.

Repeat the steps 1 through 3 until satisfied.

5. Paint weights on the poly surface to ensure that your joints are located in the correct positions.

When you deform some of the joints, the surface will look as if it is not fully following the rotation of it�s corresponding joint. This is because in the default smooth bind feature we have the five closest joints influencing the surface deformation. Here you may want to do some quick weight editing to make sure that the surface will deform to your liking�.

In the top view, select and rotate the left_elbow joint to roughly a 90-degree angle.



Fig. Note 1.17 Rotate the elbow in the top view. When the skin weights are at the default settings for smooth bind, the five closest joints influence each deformation. Notice that the elbow has a smooth bend to it? For an elbow this is NOT what you want�you�re looking for more of a crease in this area. To fix it, use the Paint Weights tool.

Select the polySurface, and Skin > Edit Smooth Skin > Paint Skin Weights Tool Options. In the window view, turn on Smooth Shading All (or hit the number key 5). This will turn the display to a grayscale representation of the weights of the poly surface, black for zero and white for one.

In the Paint Skin Weights Tool options window, go down to the Influence section under the Skin Paint tab. Find the left_elbow and highlight it.

Edit the surface deformations by �painting� directly on the mesh using the following functions:



Fig. Note 1.18 When painting weights, keep the tool options open, you�ll change the radius, value, operation, and influences continuously in the Skin Paint tab.

Change the Stamp Profile - Radius to a size applicable to the character. (I usually have the radius so small I only paint one vertex at a time.)

Use the Smooth Operation to smooth out the deformation. Be careful with this one, you�ll almost always want to smooth out the �edges,� but watch what happens when you do�. The smooth feature spreads the weights out�sometimes giving you undesirable results (just undo if that happens). Notice below, how the lower arm starts to round and cave in on itself too much?





Use the Replace Operation and under Stamp Profile � Value to manually change the weight value from 0.0 (no deformation) to 1.0 (full deformation).

NOTE: Don�t get too involved with the weighting just yet. You�ll want to do some more skeletal editing before hand. So consider this just a �roughing out� of the skin weights.

6. Repeat the above steps in this section until happy with the key joint locations.

7. When finished, reset the skeleton to the bind pose.

Before you do anymore editing, you want the skeleton in its �bind pose,� the position in which you performed the skin feature.

Select any joint on the skeleton and Skin > Go to Bind Pose.

CONTINUE WITH THE SKELETON CONTROLS

Now, that the majority of the skeleton is built, you�ll have to edit the axis� that each joint rotates on. This way, when it comes to animating the character, you�ll have greater control and easier editing ability. (We�ll just say, everyone down the �pipeline��including yourself�will be much happier in the long run if you spend time doing this!)

MAKE A MEL SHELF BUTTON

This is one of the areas where Maya just shines, the ability to create custom �buttons� for continually repeated tasks.

1. Create the select �hi; button.

Select an object, use this command, and Maya will �automatically� select everything down the hierarchy chain as well. I find this command comes in quite handy�.

In the Command Line, type: select �hi;



Highlight the line and MMB drag it up to the shelf.



Here you can leave the button as is, or you can add a �label name� to each button by Options > Customize > Shelves, finding the right �button� in the Shelves Customize Window and giving it an Overlay Label name.

2. Create the joint -e -oj xyz �zso -ch; button.

This button takes the selected joints and adjusts their local rotational axes so that the X-axis points down the bone. Which, in most cases, is what you want. (The ending of the line actually means that you only need to select the beginning of the chain.)

In the Command Line, type joint �e �oj xyz �zso -ch;

Highlight the line and MMB drag it up into the shelf.

EDIT ROTATIONAL AXES

During the creation of the skeleton, you editing some of the joints and, in turn, changed some of the rotation and scale attributes to a non-zero value. You�ll find that down the pipeline, it�s easier to have a zero value for joints rotation values to begin with. It also helps keep the model �clean,� by just being able to zero out an attribute to negate any transformation.

1. Freeze transformations on all the skeletal joints.

This will reset all the rotation attributes of the joints to zero�making it easier to edit the joints in the animation process.

Select the ROOT node of the skeleton, and Modify > Freeze Transformations. This will zero out all the rotate and scale attributes on all the joints down the hierarchy chain.

2. Display all the local rotational axis of the skeleton.

You�ll find that most of the joints axes aren�t in the orientation that you want (they don�t rotate in a certain direction around a certain axis). So we�ll edit most (if not all) of these by hand.

With the ROOT node selected, use the select �hi; MEL button.

Display > Object Components > Local Rotational Axis.



3. Make the local rotational axis� point in X down the joint chains.

When you froze transformations, the X-axis will most likely not be pointed down the joint anymore. It�s easy to modify this�just use the MEL button you created earlier.

Select the ROOT node and use the MEL button for joint �e �oj xyz �zso -ch;



4. Manually edit each joint�s Y and Z-axes.

Select each joints local rotational axes and rotate them so they �point� in the correct directions.

Switch to Component Mode (F8), and turn the selection mask to All Components Off. Right click on the question mark and select Local Rotation Axes.



Select each local rotation axes and rotate them into the �correct� positions. (Remember, you won�t have to edit ends of chains since they won�t ever be animated.)

Start with the back. The ROOT should be �inline� with the world XYZ coordinates. For the spine, you�ll want all the y-axis pointing out the back and the z-axis all pointing off to one direction. See the images below.



Move on to the lower body. With the pelvis, I�ll typically have it the exact reverse of the ROOT--meaning Y pointing straight down�a mirror of the ROOT�s axes. On the legs, again, have all the Y-axis pointing out the back and all the Z-axis pointing in one direction. See the images below as a reference.



Now the arms. You want the elbow to rotate around the Y-axis, so in my model, Y is up. You�ll want the same rotation through out the arm, so make all the axes the same on all the joints of the arm. (Notice by the pictures below, that my model has the left arm�s Z-axis pointing forward and the right has them pointing back. Nothing too important about that�just pointing out that they will be in different directions.) Do take notice of the clavicle�s axis though�the Z-axis is inline with the bone that connects it to the spine.

click for larger version






Lastly the hands. Start with the left hand and make sure all the Y-axis point down (Z pointing out the back of the hand). Watch the thumb. If your character has hands like the one below, where the thumb is �twisted,� you�ll have to edit the axis so that the thumbs joints rotate around Y, and Z is pointing out the back of the joint. Take notice of the �thumbPalm and �pinkyPalm joints. Rotate the axis of those joints so that X points towards the fingers (notice that Z is down on both of the hands below). Use the pictures below as reference.







5. Hide all the Local Rotation Axes.

With all the editing done, you can hide all the local rotation axis handles.

Switch back to Object Mode (F8).

Select the ROOT node and use the select �hi; MEL button to select everything down the hierarchy chain.

Display > Object Components > Local Rotation Axes. This is a toggle on or off.