Setting up FK - first, let me explain some basic stuff about rigging a character. The goal here is to create a rig that'll allow the animator to create a very broad range of expressive motions, while using very simple and well-laid out controls. The animator should have everything setup, so his work will flow steadily, quickly and, why not, pleasantly. I think I have been able to build a pretty decent rig, packed with lots of power and lots of ease. Nuff said, let's get to it.
We'll first set up FK-animated hierarchies, since it'll be easier to do. Let's start with the spine.
Remember my ol' rotator helper objects? (now available in the scripts section). They're back! In new orange flavor! And you'll need some of them for your character (or any other helper object). Ok. I've set two of them at the root of the spine chain. One is orange, and one is red. One will control the hips rotation (red), and the other one will controls the spine's initial rotation. I also use three more, set at different levels of the chain (every two bones). Now, link the bone before each rotator object to the rotator, and the rotator to the following bone (in an upwards direction). The thing is to 'insert' the rotators into the chain. The first rotator should be the parent of the whole chain. The others should be inserted into the chain at their proper levels. Just link them to the bone below them, and link the bone above to them. I named mines something like 'Rotator_spinelow', 'Rotator_spinemid', and 'Rotator_spineup'.
These are pretty easy. Just create a rotator, align it with the clavicle bone (pivot-pivot and orientation), and link the clavicle bone (each) to its corresponding rotator. I named mines Rotator_clavRT and Rotator_clavLT (From now on, everytime I mention node names, I'll just mention the generic name. Add the RT or LT suffix as supposed). Then, link both to the last bone in the spine chain (Bone_spine06). I made mines larger and slightly deformed only to make them easier to select.
Create another rotator (I made mine slightly bigger and colored in red), Align it with the Rotator_spinelow (align it both in position and orientation). Link the little bones at the beginning of the leg chains (the ones used for skinning) to it.
THE MASTER SPINE CONTROL
Now, create a really big rotator, and align it with the other two. We'll use this one to drive the spine's rotations automatically. The other ones will only be used to fine-tune posing. Name it 'Torso Rotator_autocontrol'.
WIRING THE SPINE UP
Alright. Let's wire the spine up. Please first verify that every rotator, and all of the bones in the spine chain, are correctly aligned. By this, I mean that all of them must have exactly the same local coords. If one is misaligned, it might throw off all of the others. Euler rotation controllers (which are the ones I use by default, with the occasional Local Euler in some nodes) are parent-dependant, so please check your alignments. You can correct any misalignment, by selecting the offending node, going to the hierarchy panel, pivot tab, turning on the 'Don't affect children button', and aligining the node. You can also use this button to move bones to their proper positions after creation. That said, let's get on.
Select all three spine rotators, and assign list controllers to their rotation tracks. Assign another euler rotation controller to the 'available' tracks. Name this new euler track something like 'eulerXYZ_auto'. This way, you'll know this controller is a 'driven' controller you can't touch. Set as active the original Euler tracks. Great. Now, select the huge autocontrol rotator, go to the animation menu (I use my quads for this), and select 'Wire parameters-wire parameter'. Select its X rotation track. Drag to the first spine rotator, click on it, and select its X rotation track under the EulerXYZ_auto controller (if you don't know how to wire parameters, please refer to your max docs). The wire parameters dialogue will appear.
On one side, you'll see the tracks for the autocontrol rotator, while on the other you'll see the tracks for the spine rotator object. In both sides, the X Rotation track should be selected already. Click on the arrow going from the autocontrol side to the spine rotator side (the autocontrol will be the 'driver', while the spine rotator will be the 'driven', if you pardon me using another 3d app's terminology). You'll see an expression in the bottom of the dialogue box. Leave it as it is. Click the 'Connect' button. That's it. Now, both nodes should be connected. Without closing the dialogue, select the autorotator object and rotate it in X. The smaller spine rotator should rotate with it. Now, select both Y tracks, and repeat the same operation. Same for the Z tracks.
Once done, close the transform track for the spine rotator object. Navigate down the hierarchy to the next rotator object (this is a track-view like window), open its transform tracks, go to the second Euler controller (EulerXYZ_auto), and select the X track. Select the original X track of the autocontrol object again. Set again the autocontrol object as 'driver', and the spine rotator as 'driven'. Repeat wiring the corresponding tracks of each object (X-X, Y-Y, Z-Z). Repeat ell this with the third rotator. You're done. If you like, you can check the spine now. If everything went ok, when you rotate the autocontrol object in any axis, the spine will bend with it, in a realistci manner. This is what this object is for. However, you can go into the spine rotators and rotate them to fine-tune the pose (that's why we needed two euler tracks. One for automatic rotation, one for manual).
Now, wasn't that easy? The spine is all set up. It's the only part that will be FK animated.(the arms and legs use an IK/FK approach). Let's continue with the arms