This past week has actually been a relaxing change of pace from what I have become used to through this semester. With the pressure from the homework questions finally lifted off my shoulders, as well as not having a whole lot of other assignment to complete, I have been able to just sit back and work at my own free will. So for the past week I have been focused entirely on rigging the main character for our GDW game. Since there’s nothing else engine wise to talk about, I though I’d take this time to explain how to do a basic rig setup that can be used to animate a character in Maya. Keep in mind though that I am just a beginner myself.
Obviously the first step in the process would be to model a character. The one I will be using here is actually my first ever attempt at modelling a humanoid character. It’s not perfect, but I’m mostly happy with how it came out. Some of his features are a little off, like his face and the proportions of some of his limbs, but like always you learn from your mistakes. So anyways once you’ve modelled a character, the next step is to create a skeleton. This involves placing joints throughout the mesh that will later be used to morph it. I would recommend using the perspective views when placing the joints. In the Animation menus, go to Skeleton->Joint Tool. There are a bunch of options that I wont explain because frankly it would take way too long, but the default settings should be fine. Once selected you can begin placing joints. The first one you place will be your root, so you’re going to want to place it in the middle region of the character where all other joints stem off of. In humanoid characters it will be in the pelvis region. Once you have placed the root joint, start by making the spine. One mistake I made was not having enough spine joints, so I would recommend placing atleast 4 or 5 evenly up to the chest so that you can achieve a more natural bend in the back. When you’ve reached the chest, you’re going to want to add more joints stemming from the chest and root so that you can make the arms, legs, etc. To do so just select the Joint Tool again, click directly on the root or chest joint without accidentally placing a new joint, and continue. When you’re done it should look something like this.
The last step in setting up the skeleton is adding IK Handles. In this particular model, I only used IK Handles in the arms and legs. To make an IK Handle go to Skeleton->IK Handle Tool. To place one, click a joint and then click one if it’s children. As an example, you can setup an IK Handle from the shoulder to the wrist so that when you move the wrist around, the elbow and shoulder will also rotate to allow for easy simulation of limbs. One thing to keep in mind however is that before you create an IK Handle, in order to make sure it works correctly, you will first have to bend the limb in the correct fashion and then right click the skeleton and select “Set Preferred Angle.” This will tell Maya the proper way you want the IK to bend the limb.
So anyways once you have the model with a skeleton inside, the next step is sort of optional. You can either go straight to setting up a Control Rig, or you can do the skinning. I guess it would be more a matter of preference. I have seen tutorials where people do the rig first and skin second, but I don’t see how it would really make too much of a difference. I chose to do the skinning first so that’s what I’ll explain first.
Skinning in my opinion is the worst part of rigging. It definitely requires a lot of patience. But essentially what you’re doing is assigning weight values to each individual vertex on the mesh. Each vertex can be influenced by multiple joints (usually about 4 at the most) and depending how high the weight value is, the more that vertex will morph when the joint is moved. To attach the mesh to the skeleton you’re going to want to first select the root joint on the skeleton, select the mesh, then go to Skin->Bind Skin->Smooth Bind options. The options here are important. If you choose the wrong settings, when you go to paint the skin weights later on, you will have a much more difficult time. The two options to look out for would be Bind to and Bind method. Make sure they are set to Joint hierarchy and Closest in hierarchy for the best results. Also, down below where it says Max influences and Dropoff rate, I would recommend setting them to 4 and 2.0. Max influences is the maximum amount of joints that can effect a vertex, and Dropoff rate is essentially the rate at which further and further vertices will receive lesser weight values. I would also highly recommend unchecking Maintain max influences, otherwise some very strange things could happen, such as a leg being influences by an arm.
If you’ve done all that correctly, you should be able to rotate the joints and have the mesh follow. You may notice some very strange things happening to the skin, but don’t worry this is normal. Maya doesn’t know exactly how the vertices should morph. This is where the fun starts. The next step is to paint the skin weights. First select the mesh and then go to Skin->Edit Smooth Skin->Paint Skin Weights Tool options. You’ll notice that the mesh turns black. In the options menu, there is a list of all the joints in the skeleton that the mesh is affected by. Clicking on any one of them will cause vertices on the mesh that are affected by the joint to turn white. The brighter they are, the more they are influenced. Underneath the joint menu there are also options to change the paint operation. Replace will set the weight value of the selected vertices to whichever value you set the slider to, Add will add the value on the slider to selected vertices, scale will multiply the vertices by the slider value (essentially a subtraction), and Smooth will try to average out the selected vertices on the mesh to produce a gradient like effect. All of them are useful in certain situation. Beyond that there isn’t too much else I can say besides just giving some general tips that really helped me out. The entire process of painting skin weights is tiresome and at times very frustrating, but it has to be done. Anyways here are some good ways to speed things up:
– As a starting point, go through every single end joint on the skeleton and remove all weighted vertices from them. End joints are really not needed at all in terms of skinning and Maya likes to do weird things with end joints like assigning vertices on the hips to the tips of fingers. Select replace and set the value to 0.
– At the bottom of the options menu, you will see a Display tab. Inside you will see a slider for Max. value. Setting this to 0 causes all affected vertices to show as if they are at the maximum weight, meaning they will show as bright white. This is very helpful in seeing all the affected vertices on the mesh. You may notice notice that vertices in the chest are being affected by the elbow which you would have otherwise missed because they appeared to be entirely black. Of course you won’t always want to have this, so set it back to 1 when you no longer need it.
– Before beginning to paint the vertices on a particular joint, bend or rotate it into a desirable position, that way you can simultaneously see as your painting whether or not it looks right.
– If you find that you’ve managed to completely screw up a portion of the mesh and you can’t get it to look right, using the weight hammer could do you wonders. The button is located underneath the radius sliders. Select a bunch of vertices on the mesh and click the hammer. Sometimes it works, sometimes not so much.
– There is a tool to mirror skin weights, but I found it to just simply not work. The only time it did work was when I manually selected all vertices in one arm and all vertices in the opposite and then did the mirror. However on the destination side, all vertices that I didn’t select during the mirror still had their previous weights. So for example vertices in the chest were still affected. Once I removed the weights on them though it turned out good. If you are attempting to use this tool my advice would be to do it this way, but be cautious and save before trying!
The last step is to setup the Control Rig. I would say this is definitely less painful than skinning, but can still be somewhat frustrating. For this character I kept it fairly simple. I stuck to Point, Orient, and Pole Vector Constraints. To select a constraint, go to the Constrain tab at the top. To apply a contraint, you will have to first create an object to act as the controller. I would recommend using NURBS curves and locaters. To create a curve go to Create->NURBS Primitives->Circle or whichever shape you prefer. Place the circle over whichever joint you want it to affect. Once you have done that, select the circle followed by the joint or IK Handle, and then choose the constraint you wish to apply.
Point Contraint – Allows you to translate a joint. An example would be on IK Handles.
Orient Constraint – Allows you to rotate a joint. An example would be on shoulder and wrist joints.
Pole Vector – Allows you to orient an IK Handle. An example would be on an arm IK, to move the elbow up and down.
Like I said, those are the only three I used through the entire rig. I essentially just went through each individual joint and IK Handle in the skeleton and applied one of these three constraints to them. Not all joints have constraints however, for example some joints in the spine and the two joints in the head, as well as all the end joints. In the option menus for the Constraints, I would recommend selecting Maintain offset unless your curve is placed directly on top of the joint it’s affecting. There are also options to chose which axis to constrain. For the Control Rig process I would recommend just experimenting with different constraints until you find what you feel works the best. There are many different ways you can set it up. I know I didn’t do the best job with mine, but I learned a lot from doing it and next time I’ll be able to start over using better techniques.
So that’s it for character rigging in Maya. I just wanted to give a basic run through of how you can go about doing the whole process. It definitely takes time, but it’s worth it in the end. Now you can finally start crafting some cool animations.