Doc: Pose Sym

Pose Sym is a tool for general purpose pose mirroring.  It should work on any rig and can be scripted to integrate with any rigging pipeline as well.  This help page should give you a brief introduction on how to use the tool.


Basic Overview

The tool works by setting up “relationships” between controls.  So basically to set it up, you need to tell the tool which control corresponds to which other control.  There is an auto setup that will attempt to automatically set these relationships up that may work well for you if you have a naming convention the tool can figure out.  See below for details.


Initial Setup

When setting up the relationships between controls its important to make sure the controls mirror one another.  The easiest way to do this is to reset all keyable attributes on all controls for the given character.  Ideally you should do this setup in the character rig and reference that rig into your scenes.

Setup only needs to be done once.

To setup a relationship between two controls, simply select them both and in the Pose Sym window go to Setup->Create Paired Relationship.

For central controls like a head control or a spine control, simply select the control (or controls) and in the Pose Sym window go to Setup->Create Singular Relationship On Selected.

Once you have setup all the relationships you can look at the configuration for the pairs by looking for the “controlPair” node in the channel box or attribute editor.  You can tell particular control pairs to never mirror translation, rotation or other attributes as well as a few other options.


Auto Setup Naming Convention

If the controls for your rig use “L” or “left” tokens to identify left sided controls then the auto setup will most likely setup all the pairing relationships for you automatically.  Similarly your right sided controls should use “R” or “right”.  The tool tokenizes names using the “_” character as well as on camel case boundaries.  So for example the following control names would be automatically found and setup:

armControlL, arm_control_right

leg_control_L, legControlRight

NOTE: case is ignored once the control name has been tokenized.