T-Pose Panel


  • Source T-pose: The T-pose used by source armatures. The Default T-pose works for most armatures.
  • Target T-pose: The T-pose used by target armatures. The Default T-pose works for most armatures.
  • Put In T-pose (Source): Put the active armature in the Source T-pose.
  • Put In T-pose (Target): Put the active armature in the Target T-pose.
  • Load T-Pose: Load a T-pose from a json file.
  • Save T-Pose: Save the current pose as a json file.
  • Current Pose => Rest Pose: Change the rest pose of the active armature to the current pose.
When one of the Put In T-pose buttons is pressed, a pop-up appears. If Auto Rig is enabled, the Source or Target armature is identified using bone names. If not, we can choose which armature and T-pose types to use. The Automatic rig identifies bones by looking at the bone hierarchy and the location of the bones in the reference T-pose.
In most cases Auto Rig works well. Here are some examples of source rigs in rest pose and the reference T-pose; the armatures were loaded with the Load BVH button.
ACCAD Female, rest pose and T-pose

CMU, rest pose and T-pose
Eyes Japan, rest pose and T-pose
Note the twist of the leg bones. An armature is put in T-pose by bending limbs without twisting them, starting from the rest pose. Since all bones loaded from a bvh file has roll angle zero, the bones are twisted differently in T-pose. Maintaining this difference is essential for good retargeting.

However, some bvh files define armatures with weird rest poses. The animations still come in correctly, because the poses compensate for the rest pose, but this problem prevents automatic identification of the bone hierarchy and the rest pose.

An example is the Male files from ACCAD, https://accad.osu.edu/research/motion-lab/mocap-system-and-data. Here is the rest pose and the T-pose that we obtain with Auto Rig enabled.
ACCAD Male, rest pose and T-pose with Auto Rig enabled
To retarget these bvh files, we turn off Auto Rig and set Source Rig to ACCAD (for identifying the bone names) and T-Pose Source to ACCAD Male. The Source Rig could also be set to Automatic, because the bones are identified after the armature has been put in the reference T-pose.
Here is the armature rest pose and T-pose.
ACCAD Male, rest pose and T-pose with Auto Rig disabled and T-Pose Source set to ACCAD Male.
 Put In T-pose (Target) is analogous, but is used for target armatures instead.
We can also load a T-pose file directly.  Let us return to the ACCAD Male armature.
Press Load T-Pose. A file selector appears.

Navigate to the T-pose json file that you want to load. The armature is posed as the T-pose file prescribes.
Save T-Pose saves the current pose as a json file. Specify the path to the file in the file selector.

The combination of these buttons is useful to create a new T-pose file for a new rig with a non-standard rest pose. Load the bvh file and choose a point in the animation where the armature is as close to T-pose as possible. Then pose the character in T-pose, and Save T-Pose with a descriptive name.

You can now edit the json file in a text editor. The name field is displayed in the drop-down lists, so you may want to change that. For each bone the local rotation is listed, described as XYZ Euler angles.

After you have finished editing the file, use Load T-Pose to check the result. Repeat the process until you are satisfied with the T-pose.
The Current Pose => Rest Pose button applies the current pose as rest pose, and update all child meshes as well (for target rigs).
We can confirm that the rest pose has changed in edit mode. Of course, the pose has changed, because the bone rotations compensate for the weird rest pose that we just eliminated.