Adding the relax post
Creating the relaxed pose is a similar process to creating the curl pose except the thumb was not included. Bring in all the _auto nodes for all the fingers and it's pretty much a softened version of a fist. If you imagine, relaxing your pinky finger on your hand, you'll notice it slightly brings along with it the ring and the middle finger. This was the pose I had when I set the value of the Relax pose to 10. For -10, I pretty much did the opposite. So, if you imagine relaxing the index finger, the middle and ring also come along for the ride slightly. Again, have a look at the images that should give a clearer idea of the poses.
The fingers in the relaxed pose states
Copying the Set Driven Keys
What I'd like to do next is extrapolate the SDKs that we have created for the entire hand and pop them onto each individual finger control. This will allow the animator to pose each finger independently if desired. Now there are many ways to do this. For example, we could simply note down the values we used to create the poses beforehand and feed them into the new controls. Or better still, we could use a script that handles this repetitive task for us. The latter is usually what I do but as I have not been given permission to share the script that handles this for me, we will do it a third way. Using a combination of the SDK window and the Graph Editor, we will first create an SDK for our new Driver object and then we will copy the animation curve data from one control (l_fingers_ctrl) and paste it onto another control. It may sound a little confusing and be a little unorthodox, but once you get into the swing of this method, you should be able to pretty quickly get everything working.
I'll give you a working example now and then you can employ this process for the rest of the controls. So let's copy the SDKs from the Curl attribute of l_fingers_ctrl and paste them to the Curl attribute of l_index_ctrl. Start by opening up the SDK window and set l_index_ctrl as the Driver object. Then select l_indexA_ctrl_auto, l_indexB_ctrl_auto, l_indexC_ctrl_auto, l_indexD_ctrl_auto and load them in as the Driven objects. Highlight Curl in the top-right box, highlight all 4 _auto nodes in the bottom-left box, Rotate X in the bottom-right window and hit Key to set the initial pose.
Setting the initial Set Driven Key for l_index_ctrl
Now with l_indexA_ctrl_auto, l_indexB_ctrl_auto, l_indexC_ctrl_auto, l_indexD_ctrl_auto selected, pop into the Graph Editor (Windows > Animation Editors). In here, you should see all the animation data for the SDKs we have created in the previous steps. On the left-hand side, you will also see the attributes driving the motion. Have a look under l_indexA_ctrl_auto and you will see 3 different attributes are driving the Rotate X. They are the l_fingers_ctrl.Curl, l_fingers_ctrl.Relax and the attribute we just added, l_index_ctrl.Curl. What we want to do now is copy the animation data from l_fingers_ctrl.Curl to l_index_ctrl.Curl, but before we do that, we need to edit a few settings in the Graph Editor. So in the Graph Editor window, go Edit > Paste (Options). In here, set the Time range to Clipboard, the Paste method to Replace and the Replace region to Entire curve.
Now, highlight l_fingers_ctrl.Curl and select the animation curve. Hit Ctrl+C on the keyboard to copy it. Then highlight l_index_ctrl.Curl and hit Ctrl+V to paste the animation curve into here. If you use the Curl attribute now on the l_index_ctrl, you should see that it is now also creating the same motion as l_fingers_ctrl.Curl. Now all we need to do is copy and paste the animation for the rest of the controls. It may seem like quite a long winded process but once you've done it a few times, you should be able to get through it pretty quickly.
Once complete, you should now have 3 levels of controls. You can use the l_fingers_ctrl to drive all the fingers at once, the individual finger controls allow you to make broad changes to each finger and lastly, the control curves around each phalange allow you to add minute changes to the fingers.
Using the Graph Editor to copy the Set Driven Keys from l_fingers_ctrl to l_index_ctrl
The last thing I've done is add some joints and controls to drive the toes. This will be useful for adding extra detail to the foot as it is animated. For example, as weight is put onto the foot, we can spread the toes slightly to illustrate that weight coming down. Or it will be very useful if you need to do an animation where a little piggy goes to the market. I'm not going to go into detail of how I created this as it is pretty much the finger setup but just for the toes instead, so do please check the previous tutorials if you are having any trouble.
Using a similar setup to the fingers to add extra control to the toes
Make it fit for purpose
For the fingers, we've added a set of controls that should give the animator plenty of flexibility to get the hand into a wide range of poses. What we are trying to do here though is create a rig that will be suitable for as many scenarios as possible. Sometimes you may find it is best and also more efficient to create a rig that fulfills the set task at hand. For example, if you have a character that sits behind a desk, never stands up and for the sake of it, let's presume we hardly see his legs in any of the shots. Do you need to rig his legs? I'm guessing not. You may be tempted to, or you may need a very simplified rig to add some subtle movement, but other than that, it would be more worthwhile to spend time on areas of the rig that will be seen or will need to be animated in shot.
Check out the previous chapters:
Maya rigging: Introduction to rigging
Maya rigging: Introduction to rigging a human torso
Maya rigging: Introduction to rigging the neck and the head
Maya rigging: Introduction to rigging the shoulder and the arms
Maya rigging: Introduction to rigging the hands
Maya rigging: Introduction to rigging the legs
Maya rigging: Introduction to rigging the feet
Check out Jahirul's site