Broken Hierarchy
The term "broken hierarchy" refers to the modularly constrained nature of our character rigs, which provides the ability to work with the character in a manner that is conceptually similar to the way one might draw: blocking out the placement of the large masses, establishing the lines of action of the limbs, and finishing with the minor details. Contrast this with the standard manipulation of a unified hierarchy, and you can quickly see the benefits of the "broken" hierarchy - especially when it comes to minimizing counter-animation (for example, if you want to shift the hips without the chest moving). The "broken hierarchy" of our rigs is comprised of two main paradigms: the parent switching which is available on the torso, and the FK/IK switching which is available on the limbs.
Parent Switching
By default, the central masses of the head, chest and hips are parented to one another at frame -10 (head to chest, and chest to hips). Accordingly, the chest and head follow when you translate or rotate the hips, and the head follows when you translate or rotate the chest. Click the "switchChestParent" button in the Helm GUI. Text appears in the scene window to indicate that the chest is in a detached state (this can be hidden by disabling "Dimensions" in the Show menu). Now translate and rotate the hips. Note that doing so no longer affects the chest or head. Working in this mode can be very powerful, but there are trade-offs. The "detached" state is great for adjustments among the masses, and also for squash & stretch. But while it minimizes counter-animation, it can complicate torso rotations (moving the "detached" chest in a manner consistent with the rotating hips can be a challenge).
The recommended workflow is to decide up front what mode you would like the body masses to be in, depending on the needs of the scene. For example, if your character is twirling around you may want to work with the torso masses parented together, where if your character is shifting around in his seat you may want to work with the torso hierarchy in a "broken" state. Although you can switch and key the parenting of the head/chest/hips in the middle of a shot, this can get tricky. In most cases, you're better off setting the "switchChestParent" buttons to the desired mode, clicking each "key____Parent" button at -10, and then working with those settings for the entire scene (ie. - "set 'em and forget 'em"). However, if you must... here is an example of how to switch states in the middle of a shot:
| 1.) begin with the default of chest parented to hips at frame -10 |
| 2.) rotate the hips forward at frame 1, and key the hip transforms* |
| 3.) click the "switchChestParent" button, and then "keyChestParent" |
| 4.) rotate the hips again at frame 10, and key the hip transforms* |
| 5.) playback the result |
* If you notice the chest control shifting in an unanticipated manner, check its animation curve tangents in the Graph Editor for spline overshoot. Setting the tangents to "Flat" should correct the problem.
In short: this can be a powerful animation tool, but you can also get yourself into a heap of trouble if you over-do it. :-)
FK/IK Switching
The FK/IK switching on the arms and legs is a little more straightforward, but must still be used with care. By default, the arms and legs are keyed in IK mode at frame -10. To switch to FK mode (and back again), simply click on the "fkIkSwitch" buttons which point to the elbows and knees in the Helm GUI. Note that the selection object and transform context will update in a corresponding manner from mode to mode. For example, if you have the hand translation selected in IK mode, the elbow rotation will be selected when you switch to FK mode. Likewise, if you have the shoulder rotation selected in FK mode, the elbow's pole vector constraint translation will be selected when you switch to IK mode. As you can see, the control object visibility will also change appropriately from mode to mode. (Also note that the pole vector controls snap to the elbows and knees by default when switching back to IK mode.) Following is a simple example of how to use the FK/IK switch:
| 1.) begin with the default of arms in IK mode at frame -10 |
| 2.) with the arms still in IK mode, move the hand and key the hand transforms at frame 1 |
| 3.) click the "fkIKSwitch" button, and then "key fkIK" |
| 4.) rotate the elbow at frame 10, and key the elbow transforms |
| 5.) playback the result |
In this case, the arm will utilize inverse kinematics between frame -10 and frame 1, and forward kinematics between frame 1 and frame 10, switching seamlessly between the two modes at frame 1. The IK-mode hand control object stays visible throughout the range of -10 to 1, and manipulating the elbow's pole vector constraint between frames -10 and 1 does not affect the hand. This binary switch between IK and FK is accomplished through the default use of stepped tangents on the FK/IK switch's "Ik Blend" attribute ("1" = IK, while "0" = FK). If for some reason you desired interpolation between FK and IK, you would need to select the hand cube control and then change the tangency of the "Ik Blend" animation curve from "Stepped" to "Flat" in the Graph Editor.
In addition to the FK/IK switches on the arms and legs, there is another set of FK/IK switches (pointing to the shoulders in the Helm GUI). These are used to toggle between a translational shoulder "pin" and a rotational clavicle control. When set to IK mode, the "pinned" shoulder will not move with the chest. This can be useful when Tommy is leaning on something, propped up on his hands while playing, etc.
As with the parent switching, the FK/IK switches are most effective when set to the desired mode at the beginning of the shot, and then left in that mode for the duration of the scene. Consider yourself warned. :-)
Squash & Stretch
Tommy's rig supports squash & stretch in a few ways. One is through use of the "broken" torso hierarchy, which allows the animator to pull the masses of the body apart like taffy. Another is through scaling the body masses of head, chest and hips. Furthermore, Tommy's limbs may be squashed & stretched in both FK and IK mode (with faithful retention of scale when switching between kinematic states). In FK mode, squash & stretch is a simple matter of picking the relevant joints and scaling them. In IK mode, the amount of squash & stretch is regulated by the cubic limb control's "Stretchyness" attribute (the default of "1" = a stretchy limb, while "0" = a non-stretchy limb). The "Joint Scale Multiply" attribute is used to increase/decrease the amount of limb bend during squash & stretch.
By design, the hands and feet will not automatically squash & stretch with the limbs. As mentioned in the "Rig Interface" section above, these appendages can be scaled separately with the darker buttons at the corners of the hands and feet (due to nature of their constraint, scaling the cubic controls will have no effect).
Twin/Swap
The "TWIN" and "SWAP" buttons in the upper left corner of the Helm GUI are meant to facilitate the creation of walk cycles and the like. In short, these buttons mirror and swap the transforms of selected objects (you will still need to keyframe the results). To quickly get a sense of how these buttons may be used, move the character's right hand and click "SWAP" . Now pick the left hand, and click "TWIN". Now rotate the chest to the right, and click "SWAP". Cool, huh? :-) But be careful...
Note that the results of "TWIN" and "SWAP" will be modified by the state of your rig. For example, if the arms are both in IK mode but the elbow constraints are in different places, twinning the hands will not produce a mirror of both arms unless the elbows are also twinned. Likewise, care needs to be taken when one limb is in FK mode while the other is in IK mode, as counterintuitive results may occur. Using the "SWAP" button on the masses of the head/chest/hips will also produce different results depending on the hierarchical state of these objects. Applying "SWAP" to the hip mass affects rotations only. Applying "SWAP" to the masses of the chest and head affects both rotations and translations when these masses are parented, but rotations only when they are detached.
Poses
Character rig and facial poses may be created with the "MFS Poses " tool, invoked by clicking on the "POSE" button on any character GUI page.
Keyframing
The "select ALL* page " button selects all animatable character transform nodes (NOT INCLUDING the FK/IK and parent switches). The "key ALL* page " button sets keys on all animatable transform nodes (NOT INCLUDING the FK/Ik and parent switches, which must be keyed separately), and does not require object pre-selection. As implied by the name, the "key selected" button sets keys on the selected object(s).
A neutral keyframe exists on our character rigs at frame -10, and may be overwritten if need be.
Anim Import/Export
The "export ALL Anim" button exports all character animation on a particular Helm page to a user-specified file and directory. Meaning, that if you have a control page for the body and a control page for the face, that you will have to export animation for each page separately, to a different file name. The "export Selected Anim" button exports the animation of selected objects only.
IMPORTANT: You must disable any referenced files in the Maya Reference Editor prior to exporting character animation. Otherwise, your export animation file may contain reference information which will cause problems later on, including the inability to save files properly.
The "import Anim" button retrieves exported animation from a user-specified file and directory. These buttons are primarily used for transferring animation during rig updates. When no rig nodes are selected, the "importAnim" button will import all animation from the specified file. However, when rig nodes are selected, the "importAnim" button will import animation from the specified file for those nodes only. This is to provide the flexibility of exporting all animation, while retaining the option to import selectively. Also, remember that animation which has been exported separately for the body and the face must also be imported separately.
IMPORTANT: The "export/import" buttons will only work on the elements associated with their respective GUI. Constrained objects (including Tommy's backpack and umbrella, require their own animation import and export*).
IMPORTANT: scenes with older rigs which have the old-style "anim import/export" scripts embedded in them will automatically export animation to a file labeled "tomy" in "C:\Temp". Furthermore, new rigs imported into the same Maya session will also make use of the old-style "anim import/export" scripts (grabbing the "tomy" file automatically from "C:\Temp"), since these scripts are only invoked once per session.
* The workflow for updating both Tommy and a constrained backpack is as follows:
- export Tommy rig animation
- export backpack rig animation
- delete "tomy*" and "pack*" from the Command Line
- delete any unused shading groups in the Multilister
- import the latest Tommy rig and backpack rig (make sure that "Use Namespaces" is OFF in the "Import..." options)
- constrain the backpack rig to Tommy using the Helm button
- import the Tommy rig animation
- import the backpack rig animation
(IN ADDITION TO THE BASIC ANIMATION IMPORT/EXPORT UTILITY CONTAINED WITHIN THE HELM GUI, THERE IS A MORE ADVANCED ANIMATION TRANSFER UTILITY IN THE MAYA "ANIMATE" SHELF, WHICH ALLOWS KEYS TO BE SPLICED, TIME-SHIFTED, ETC.)
Geometry Visibility and Resolution
The buttons in the lower right corner of the Helm GUI enable the user to swap between different visibility and resolution states. Clicking on the body region names ("HEAD_vis", etc...) will toggle the overall visibility of that region. Clicking on the "lo" buttons displays lores, segmented character geometry. Clicking on the "hi" buttons displays the hires character geometry. Facial animation is only visible when the hires geometry is enabled.
Head Cam
The facial control page features a dedicated head cam, for use in viewing the facial animation close-up and "locked off" within any given scene.