Character Tutorial

Basic Skeletion Set-Up for "The Chicken" 
by Kris Kapp

Who or what is "The Chicken"? If this is your first time in the Maya kitchen with Kris Kapp, tie on your apron and catch up by clicking here.

Start by building a spine structure. The first joint will be where the base of the spine would start. When creating the joint structure for the legs and spine I like to use the Auto Orient option on the joint tool set to none. This is different for the arms, where I like to have the Auto Joint Orient set to XYZ. The first joint, the root, should start at the base of the spine. Place the next joint, LumbarTwist, right above it. Add the remaining joints up to where the neck would join the shoulders.


Backbone structure.

One thing to remember is that the spine gets less flexible the farther up it goes. You can simulate this by placing each joint farther apart as you create each one. When we create custom attributes for animating the backbone, we’ll separate the spine action into two sections, lumbar and thorax. I tried to follow the curve of the spine in placing the joints, but this guy is so fat there isn’t much of a curve to worry about. Next, build out the ribs. These extra joints will give some volume to the structure and make it a little easier to weight the skin when we bind it.


Front view of ribs


Side view of ribs.

When positioning the ribs, try to imagine how they will move when the skeleton is posed. To further flesh out the rib cage, add a bone structure that extends toward the front of the character to add volume for his gut. We’ll add a couple of joints that will give us control over how the stomach is squashed and stretched when he bends forward. We’ll use these joints when we set up the Set Driven Keys on the spine to help define how the stomach deforms when the character bends.


Side view of the extra stomach joints.

Next, we’ll create the pelvis structure. Place a joint just below the Root joint. This will be the PelvisTwist and it will act just like the LumbarTwist joint. Parent it to the Root joint.


Side view of PelvisTwist joint.

Add the following three joints, PelvisBase, PelvisPivot, PelvisEnd and parent them to the PelvisTwist joint. These joints will make it easier to weight the skin when we bind it, as well as give us a little flexibility in setting up how the stomach deforms, just like the extra rib joints we previously added.


Side view of Pelvis structure

Next, we construct the sides of the pelvis. Create a joint toward  the side/hip area of the pelvis. From there, place another joint toward the back of the model. These joints are going to drive the buttocks of the chicken. This is so when he walks we can give him a little jiggle in the behind. Parent the joint chain to the PelvisBase. Make one for both sides, left and right. This might seem a little complicated for just setting up the pelvis and hips, but in the long run, it’s easier to animate and we get more control of the deformations. We are going to set up controls that drive the pelvis and spine so we don’t actually key frame the joints anyway.


Building out the sides of the pelvis


Showing the sides of the pelvis structure


Another view of the pelvis setup

Parent the hips to the PelvisBase. The rotation axis on all the joints so far should be the same. They should correspond to the world XYZ coordinates.


The rotation axis for the body and legs

When creating the joints for the arms, set the Auto Orient Option on the Joint Tool to XYZ. I am going to set up the arms like Chris Landreth did in his video Mastering the Human Character from Alias|Wavefront. Since this info is presented in other places on the net, I’ll go over it fairly quickly. Basically, you want the arm joints to line up in a straight line. If you hold down the shift key when creating joints, it will do this for you. Create the joints for the arm in front view and name them Shoulder, ElbowTwist, Elbow, WristTwist, and Wrist. The separate joints for the ElbowTwist and WristTwist enable us to mimic the action of how the wrist and shoulder rotate on a real skeleton and make for better deformations.


Creating the arm

Next, add a joint for the clavicle. Position it so that it is slightly lower and a little bit in front of the Shoulder joint. Call it Clavicle_Auto.


Clavicle_Auto front view


Clavicle_Auto side view

How I set up the shoulder blades is to make a joint that automatically rotates a little bit when the shoulder rotates. I also set up a joint next to it so if you need more movement out of the shoulder blade then you have this bit of control. So add another joint next to the Clavicle_Auto, but name this one Clavicle. When you create the Clavicle, set the Auto Orient Option to None just like it was when we created the spine. Parent the shoulder to the Clavicle_Auto, the Clavicle_Auto to the Clavicle, and the Clavicle to the Thorax2. Later on we’ll write an expression for the Clavicle_Auto joint to make it rotate automatically.


The two clavicle joints

I have all of the rotation axis for the joints in the arm aligned the same way, except for the clavicle and the elbow. The Clavicle joint is aligned with the world axis and the Elbow joint is set up so that it rotates around the Y axis.


Rotation axis for the arm

The hand skeleton is just a standard hand. I hate setting up the rotations and custom attributes so I cheat a little by importing in a pre-made hand skeleton. I have a locator that is Point Constrained to the wrist and parent the wrist of the new hand to the WristTwist Joint and delete the old Wrist Joint. There is a pretty good tutorial at Highend3d on setting up the custom attributes and rotation axis. The main thing I do that is different is to put all of my custom attributes onto a Locator that I have point constrained to the wrist bone.


Hand joints with rotations axis


Locator with custom Attributes

Repeat this process for the right side to complete the body setup. The next thing to do is to bind the body to the skeleton and setup the custom attributes for the spine actions. I decided to make a low poly mesh by extracting the polygons from the Sub-D Surface and using that to bind to the skeleton. I also extracted the polygons from the legs and combined the body and leg polygons into one mesh. Next, scale the mesh up a little by selecting all the vertexes and using the Normal Option of the move tool to move them in the direction of the normals. Select the mesh and the root skeleton and bind the skin using the smooth bind option with the default settings. Do a quick test of the joint rotations, paying special attention to the shoulder and hip rotations. These are the hardest areas to get right. You might have to detach the skin and adjust the placement of the joints. Weighting the mesh to deform right is my least favorite thing to do when setting up a character. The paint weight tool helps out quite a bit. Also, the ability to mirror the weights from one side to the other is pretty handy. Go ahead and add the custom attributes for the back and pelvis. I like to place these custom attributes on the Root joint. That way I only need to select the one object to have access to all the back and pelvis controls. Using Set Driven Key, you can make a virtual slider for controlling the skeleton. Remember the extra joints we added to stomach area? Now, we will add them to the normal back controls to help out with the stomach deformations. I don’t want to repeat work others have done so I’ll only go over the changes that I’ve added to the character setup.


Extra stomach joints normal position


Joints extended (not too much)


Joints contracting (more of a difference)

Using the Set Driven Key box, add the rotations of the additional joints to the custom attributes that you created earlier. For example, if you made a custom attribute for bending forward and back, add a Set Driven Key to the additional joints in the stomach, so when you make the chicken bend over, the joints automatically rotate to help deform the stomach. These extra joints also help out in the side-to-side rotations. Don’t forget you can always go into the Graph Editor to modify the curves controlling the Set Driven Key to get the motion you want.


Joint rotation with torso twist

I also added the two custom attributes R_Ham and L_Ham. I am going to tie these attributes in with the extra joints I had created earlier to give me a little control in getting the chicken’s rear end to shake a little when he moves. I could have wired these joints to the leg movement with the hip joint rotation but I this way I have more control over them.


List of root skeleton controls


Ham joint rotation for cheek jiggle

This is the basic skeleton. I’ll add a FK to IK switch for the hands and controllers for the head, wattles and tail. I’ll go over how to do that in the next tutorial. I’ll also show how to make the collar bone rotate when the shoulder is moved. If things are a little foggy, I can be reached at spudk@texas.net 

 

 

GIGnews is a publication of GIGnews.com, Inc.
"Get In the Game" is a registered trademark used with permission.

© 1
999- 2005 GIGnews.com, Inc.
Legal