Character Rig User Documentation

(Tommy, et al)

(last update: 2/18/07)

Rig Download

FTP

Within the designated directory is a zipped folder called: "tommy". Click on the folder and download it to your local disk.

Unzip

Once downloaded, unzip the folder. The Tommy rig file ("tommy _lores_rig") and associated GUI file folder ("tommy_ html"), should be placed together within the following directory branch on your system: "C:/projects/shadow/production/current/char/".

Maya Version

The "My Friend Shadow" rigs are currently configured for Maya 7.0.

Rig Setup

Script Nodes

The "My Friend Shadow" character rigs utilize internal encrypted script nodes which should be transparent to the user (apart from the fact that they cause a slight delay when the rig is first loaded). Should you encounter a problem with use of the rigs, please contact us at: help@simplisticpictures.com. :-)

User Defined Colors

Our rig control objects will correspond visually to the Web Browser GUI buttons when the following User Defined colors are set in Maya:

displayRGBColor -c userDefined1 0 0 0;
displayRGBColor -c userDefined2 0.7 0.5 0;
displayRGBColor -c userDefined3 0.6 0.6 0;
displayRGBColor -c userDefined4 0.65 0 0;
displayRGBColor -c userDefined5 0.2 0.6 0.5;
displayRGBColor -c userDefined6 0.4 0.3 0;
displayRGBColor -c userDefined7 0 0.6 0;
displayRGBColor -c userDefined8 0 0 0.7;

Web Browser

Our character rigs make use of Maya's Web Browser interface, accessed under the Panels menu: "Panels > Panel > Web Browser". Within the Web Browser, use "File > Open..." to load the "tomy_rig" HTML interface (more on this below). You can bookmark this HTML page as "Tommy GUI" , and then add similar bookmarks later on for other characters, accessories and props in order to quickly switch between their respective GUIs while animating.

Camera Settings

As a starting point, set your scene camera to the following "real-world" settings:

Horizontal Film Aperture = 0.864
Vertical Film Aperture = 0.472
Focal Length = 45

Or, execute this MEL code:

camera -displayFilmGate on -displayResolution off -ff overscan -ncp 1.0 -fcp 100000 -hfa .864 -vfa .472 -overscan 1.0 -fl 45

Rig Interface

Control Objects

Provided that your User Defined colors are set as prescribed above, the rig control objects will be color coded so that the central controls are represented with orange, right with red, and left with green. FK joints are represented with blue, while secondary controls (spine clusters, sleeves, cuffs...) use violet. Most of the controls should be fairly intuitive. The large, cubic controls transform the main masses and appendages of the body, with a locator at the base of the character for general placement and movement within the scene. There are pole vector controls for the limbs (when in IK mode), as well as various secondary controls for spine, neck, clavicle, hips, sleeves & cuffs, fingers & toes, etc. A look-at control drives the eye motion. The jaw and other facial controls may be manipulated when the rig geometry is set to "hi" mode.

The transforms available for manipulation on any given control object will appear in the Channel Box. The control objects can be animated and keyed directly, but the real power and flexibility of our rigs comes from using these controls in concert with the Helm GUI, accessed through the Maya Web Browser.

Helm

The Helm GUI is a high-level rig interface that allows you to do everything you can with the control objects, but much more. The iconic Helm layout is similar from character to character, with selection buttons that correspond to the associated control objects in color and location (pick a few buttons to see the relationship to the rig). As an example of the higher-level functionality, note how Helm automatically places you into the appropriate rotational transform node when FK joints are selected. Also note that not all buttons can be manipulated at all times. For example, the FK joints on the legs can only be manipulated when those limbs are toggled from IK mode to FK mode (more on this in the next section).

The body also features some special-function selection buttons. The finger joints can be picked by row, either length-wise or cross-wise, with the purple selection buttons. The light blue buttons within the back of the hand select the carpal bones for more organic hand shaping. In addition, a large purple button in the crook of the thumb & forefinger selects all finger, thumb and carpal joints for quick, simultaneous keying of every joint in the hand (except the wrist).

While the body masses & limbs can be scaled (see "Squash & Stretch" below), the darker buttons at the corners of the hands and feet are required to scale those appendages, due to their constraint at the ends of the limbs.

The three orange buttons near the bottom of the Helm GUI are used for general transformation purposes. The "TRS" (translate/rotate/scale) button corresponds to the large orange locator at the base of the character, and is used for general placement, sizing and movement within the scene. The "ORT" (orientation) button sits above the "TRS" in the rig hierarchy, and is used for general orientation of the character, or as a place to constrain the character to a moving object (skateboard, etc...). The "ROT" node sits below the "TRS" , and can be used to address gimbal lock.

Note that Helm supports a general multi-select which is achieved by holding down the Shift key while picking multiple buttons.

Facial & Clothing

In addition to the main rig interface GUI, there are two additional Helm pages for each character, accessible via the buttons in the upper right corner. They are:

The facial control page...

And the clothing control page...

Rig Functionality

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.

Accessories

Backpack

Although a separate rig file, Tommy's backpack is fitted specifically to his character. To apply the backpack, you must import the rig file (make sure that "Use Namespaces" is OFF in the "Import..." options), load the backpack GUI into the Web Browser, and then click on the "Tommy back" button in the upper right corner of the backpack GUI. The backpack rig will be constrained to a locator on Tommy's back.

To export animation (such as when updating rigs), you must export animation from both Tommy and the backpack (using their respective GUIs), import the new rigs (with "Use Namespaces" OFF in the "Import..." options), re-constrain the backpack, and then import the animation for both.

Umbrella

The umbrella rig is similar to the backpack in that it must be imported separately, along with its GUI. The umbrella GUI features constrain buttons for either of Tommy's hands (which have constraint locators on the palms and index fingers). As a more generic accessory, the umbrella may also be constrained to the hands of other characters, such as Shadow. Here is an example of the MEL command to do so: myFriendShadow_constrain("umbr", "shad_right_hand");

To see the constraint locators on Tommy, in the Command Line type: select -r "*Constrain_LOC"; showHidden -a;

The export/import animation procedure for the umbrella rig is similar to that of the backpack.

Shadow

Shadow's rig and GUI are based upon the same architecture as Tommy's:

back