Alright. Let's start this new series of character rigging tutorials. Again, and in the name of simplicity, we'll be using my ol' trusty bipedal character, Astro.
He gladly voluntaired for re-boning, skinning and IK setup (I must mention I also re-modeled his torso, arms and legs. He's now a patch guy). A task that wasn't easy on itself, but very enlighting (in terms of r4's new character features). This experience was made less painful thanks to the invaluable help of some people.
CREDIT WHERE CREDIT IS DUE
A couple of people who contribuited to this IK setup with invaluable information are Paul Neale and Michael B.Comet. Both contributed with a lot of ideas and designs regarding character setup. I'll continue to mention them as it becomes necessary.
WORDS OF CAUTION
One thing. I'll be constantly mentioning I align certain objects to other objects. Usually, when I do this, I align both the position AND the orientation. This is extremely important, due to the way rotations work. Refer to the pictures if in doubt.
Also, as a suggestion, as I'm working I constantly set locks on my objects. For example, in my rotator objects, I always turn on the move and scale locks in all axes. This is to prevent doing unwanted transformations on my objects (rotators are supposed to only rotate). This is a good working habit, and although I don't mention my lock setting throughout the tutorial, you should to easily inferr which locks to turn on per object.
One more thing you should remember THROUGHOUT the whole tutorial... ALL of the IK solvers used in this tutorial have their parent space set to Start Joint. This prevents gimble locking on the chain. REMEMBER to set this one for each solver created UNLESS NOTED OTHERWISE.
I use sometimes local euler controllers. These are helpful under certain situations. To determine when you need them, perform the following test. Grab the object you'll rotate. Animate the rotation. Playback. If you notice the object wobbles instead of rotating on the axis its supposed to, you'll be better off using local eulers. Local eulers are no longer supported as part of the UI, but they can be assigned via maxscript. Just copy the following text onto the listener, select it, and drag it onto a toolbar...
local objetos = selection as array
for i = 1 to objetos.count do
objetos[i].rotation.controller = Local_Euler_XYZ()
To use it, just select the object(s) you'll be assigning local euler controllers, and hit the button. It'll instantly assign local euler controllers to those objects. Swami also wrote a similar script and posted it in the forum, so you might want to check it out. A WARNING HERE! Local euler controllers behave strangely a lot of times. Some of the things you'll notice are gimble locking and reverse-rotations. These, however, can be easily taken care of, and the benefits justify them. There is also another script at scriptspot that changes the axis order for euler controllers. That'd give you a local euler behavior, without the drawbacks. I haven't tried that, but you might want to.
OK. So, let's get started.
For Astro's skeleton, I decided to use R4's new bone objects. If you're importing a character made in previous versions of the software (as I did), first delete all skin modifiers before deleting the old bones. I won't go into much detail about the skeleton design, since it's pretty straightforward. In general, create your bones and joints as close as possible to the real thing. If you're building a human skeleton, look into anatomy charts to see where bones lie and how they should be connected. The same for animals, etc. Let's take a look at Astro's skeleton...
SPINE AND NECK
As you can see, the spine was created using a bottom-up approach. That means I started with the joint at the waist, and proceeded towards the neck. You can create the neck and 'head bone' as part of the same chain. The spine will be animated using FK, with some custom controls to aid in the process. Draw the spine in any viewport. Then, turn on the bone's fins to see which way they're facing, and rotate them if necessary (the 'front' fins should be pointing towards the chest, and the 'back' fins towards the back). You may want to use snaps to ensure the spine is really straight. It doesn't matter, since we'll be using FK to animate it. You can delete the small bone created at the tip of it (you won't be using IK with it, so it's not necessary). Remember, always use a clear naming convention here. It's very important to keep cleanliness in your projects, or you'll be VERY sorry later when we start setting up controls for the character. I named my bones like this (from top to bottom): Bone_Spine01 - Bone_Spine02 - ..... - Bone_Spine06. To create the neck, just continue upwards creating two more bones. Mines are A_Bone_neck and A_Bone_head (The A_ prefix I should continue to use refers to this character in particular. This is to avoid confusion when merging more characters onto the scene). The fins you see coming out from the back of the character are used for visual refernce of the character's actual volume (he's got a backpack).
The arms are pretty straightforward. Just Draw them from the shoulder to the wrist. It's best to do it in the top viewport.
Then, add a small bone that goes from the middle-top of the chest to the shoulder. This will be the 'clavicle' bone. Draw it somewhere away from the other bones, so that it doesn't become auto-linked to the other chains, and move it to its proper position. I named these bones like this: Bone_clavicleRT - Bone_armRT - Bone_forearmRT. (RT stands for right side. I name the left side bones in the same way but with a LT suffix).
Another simple setup. It uses three (ok, four) bones. The ususal three for the leg (thigh, calf, and the small 'tip' bone we need for the IK solver to work), and a bone that goes on top of the chain. This bone will not move, and is only there for skinning purposes, so link the thigh bone to it. I named them A_Bone_skinleg, A_Bone_thigh and A_Bone_calf.
The feet have a very straight-forward bone setup. Just create one bone from the ankle to the ball of the foot, another from the ball to the toes, and leave the small tip bone there. Just make sure NOT to auto-link the first bone to the leg's calf bone or the IKterminator bone. They're named A_Bone_foot, A_Bone_toes, and A_Bone_IKterminator_foot.
I used several bone chains here, one for each finger. The chains are born at the wrist, and go all the way up to the fingertips, going through each knuckle (I mean to create a new bone there). The fingers will also be animated with FK, with some automated, pre-made poses. Check the picture to see the complete names for this bones.
That covers pretty much the bone setup. Now, we'll get into the ugly stuff... IK.