MotionBuilder: Character
Last updated 9/22/2013

We have looked at how to apply a motion to an intermediate skeleton Actor in MotionBuilder (MB). Character is what the motion is ultimately attached to in MB. While the Actor's proportion has been matched to the proportion of the capture subject, a Character must have the proportion of the 3D character that you build. You need to make a link between an Actor and a Character. Changing this relationship changes the results that you get. This is another layer of motion capture, and there are at least one or two other layers after this.

Step 1. Preparing a skeleton in Maya
Step 2.
Preparing an Actor
Step 3.
Bringing a skeleton into MotionBuilder
Step 4.
Scaling down the skeleton
Step 5.
Bringing in a Character
Step 6.
Correlating the skeleton and Character
Step 7.
Characterizing.
Step 8. Activating Actor and Character
Step 9. Editing motion

Step 10. Exporting the skeleton to Maya
Step 11. Importing the skeleton back into Maya
Step 12. Editing in Maya


1. Preparing a skeleton in Maya. Model your 3D character in a T-pose and then use Mocap Rig Builder Script to create a skeleton for the character. The script creates and names joints using MotionBuilder's naming conventions. After you generate a skeleton using the script, you may need/want to edit the skeleton -- Read VERY important notes 1 and 2Then, go to Step d).

If you are not using the script, go through Steps a) through c) below:

a). Importing a sample skeleton into Maya.
Here is a sample skeleton with the joints named using MotionBuilder's naming conventions as a maya binary file and a fbx file. If you use a skeleton with the joints named using the naming conventions, you can skip Step 6 in this handout. So, you may want to import the sample skeleton and modify it. To import a .fbx file into Maya, you need a plug-in (read note below). In Maya, go to File -> Import...

Note on Plug-in Manager: If Fbx (*.*) is not one of the options of File type, in Maya go to Window -> Settings/Preferences -> Plug-in Manager. Find fbxmaya.mll and turn on loaded and auto load for the plug-in.

b). Correcting the proportion of the skeleton.
Prior to modeling a skin for your character, you may match the proportion of the sample skeleton to that of the capture subject by bringing marker data of the performer in a T-pose into Maya. Here is a sample marker data of a T-pose (.fbx file). (Read the bottom note on exporting a T-pose in MotionBuilder: Actor for more details on a T-pose). Select all the marker data by selecting ViconRoot. Rotate, translate, and scale the marker data so that they overlap with the skeleton. Move the skeleton's joints to match the proportions.

c). Scaling down the skeleton. The sample skeleton is very large in Maya. If you want to scale it down, use reference_node above the top joint hips.

VERY important note 1: MotionBuilder messes things up if you have any scaling on reference_node of the skeleton you import into MotionBuilder. Therefore, if you need to scale the skeleton, do so before you:

  • bind a skin to the skeleton,
  • apply IKs to the skeleton, or
  • export the skeleton

by selecting reference_node AND all the joints in Hypergraph, and applying Freeze Transformations under Modify. You can't apply Freeze Transformations after you bind skin to the skeleton (unless you unbind the skin temporarily). So, do it now.

VERY Important note 2: MotionBuilder likes the skeleton with joints that have the rotation axes parallel to the world coordinate system. So, before you bind skin to the skeleton, apply IKs to the skeleton, or export the skeleton, look at joints rotation axes by selecting all the joints and go to Display -> Component Display -> Local Rotation Axes. If you see any joints that need to be oriented, select the joints and open the Freeze Transformation Options window by selecting the small box next to Freeze Transformations under Modify. Select Joint Orient and apply.

Bad joint rotation axes
Good joint rotation axes

d). Modeling, texturing, and binding a skin. At this point you may finish model, texture and bind a skin to the skeleton. Also apply IKs to the skeleton if needed. Save the skin-bound rigged character into a .mb file.  If you used the sample skeleton, you need to lock the rotations of the following joints -- LeftForeArmRoll, RightForeArmRoll, LeftArmRoll, RightArmRoll, LeftUpLegRoll, RightUpLegRoll, LeftLegRoll and RightLegRoll -- so that when IKs are used, the arms and legs won't bend at these joints.

e). Exporting the skeleton. To export your skeleton from Maya into a .fbx file, select all the joints and reference_node, and go to File -> Export Selections.  Then, select FBX export as File type under General Options and click on Export Selection.


2. Preparing an Actor. The first thing to do is bring in a motion file. Go to File -> Import… and select Vicon (*.c3d) as the file type and select the .c3D file you want to process. Next drag an Actor into our space (See Step 2 in MB: Actor) and import a maker set (.hik file) (See Step 7 in MB: Actor). Select ALL of the optical data points (including the optical root which is a green sphere), alt-drag, and drop them into Model part of the Reference section of the Actor. (See Step 7 in MB: Actor). Click Active on and the Actor should pop into place and move with your markers. Deactivate the Actor by de-selecting Active in Actor Settings before moving to the next step.

Note: If you don't have an Actor with motion data applied to but want to practice the character setup process, either go through the actor setup process detailed in MB: Actor to create one, or open a sample .fbx file and deactivate the Actor before moving to the next step.

3. Importing the skeleton into to MotionBuilder. To import the skeleton saved as .fbx file, go to File -> Merge in MotionBuilder.  If any Take is selected in Merge Options, deselect it. 


4. Scaling the skeleton. If your character walks or runs and if the Actor and your character have different proportions, scale your character's skeleton so that the length of your character's legs match the Actor's. If arms are more important, e.g., your character's hand reaches a prop, it is wise to scale the character's skeleton so that the the length of the character's arms and that of the Actor's match. If you need to change the skeleton's proportion, go back to Step 1. Don not change proportion in MotionBuilder.

To scale the whole skeleton, go to Navigator and click open Scene. Select reference_node. Properties in Asset Browser pane show the scaling factors of reference_node while reference_node is selected. You can change the scale of reference_node by changing the numbers in Properties.

Scene in Navigator
referene_node's scaling factors

If you need to scale joints, select all joints, open Skeleton Node Settings in Properties, and change Size.

Tips:

  • Ctrl-w lets you switch between the 3D view and the schematic (hierarchical) view. Often it's easy to use the schematic view to select certain items, e.g., your skeleton joints.
  • Ctrl-click adds new items to selection.
  • The selection mask for skeleton joints (highlighted in yellow in the captured image below) on the right side of the Viewer makes it easier to pick joints.


    Section mask for skeleton joints


5. Bringing in Character. Go to Asset Browser and find the Character in the Templates - > Characters.

If you are using a skeleton with joints named using MotionBuilder's naming conventions, turn off selection masks, use Ctrl+w to go to Schematic in Viewer, drag the Character onto the skeleton's Hips, characterize as Biped, and go to Step 7.

If you are not using a skeleton with joints named using MotionBuilder's naming conventions, drag the Character into Viewer, and go to Step 6.

Character in Asset Browser
Hips in Schematic

Note: If the selection mask for skeleton joints is on, you won't have a problem dropping a Character on top of the skeleton's Hips, but if a selection mask for another type of objects, e.g., markers, is on you can't drop a Character on the Hips to characterize it. So, turn the mask(s) off.

6. Correlating the skeleton and Character. If you have a skeleton with joints that have names different from what MotionBuilder expects, you need to make correlations between the Character's joints and your skeleton joints manually. You need to tell the Character what the root/hip joint is called, what the right arm is called, etc. Go to Navigator and select Character in the Characters directory (see the left side of the screen capture below). Select the Character Definition tab. Drag each joint into the appropriate segment of the Character. Below is a partial listing of these different names and different segments of the skeleton that the Character is looking for. You need to drag each joint into the appropriate segment in the Model column.

If you have named your skeleton joints in Maya the same as what the Character expects, then this automatically matches up. In this case, you'd drag the entire skeleton and drop it into the Model column. MotionBuilder would then make all the correct correlations.

In addition to the Base (required number of joints), there are also extras for the back, neck, props, etc. So if you have multiple back segments, add them into the spine section. Make as many correlations as possible.


7. Characterizing. Now that you have filled out the Character Definition section, it's time to click the Characterize box. (See the captured screen above). This will tell you if you have all your required joints identified as well as tell you to remember to have your skeleton oriented down the Z-axis.


8. Activating Actor and Character. To activate the Character, select the Character under Characters in the left side of Navigator, click on the Character Settings tab, and choose Actor Input as Input Type. Turn on Active. (See the screen capture below).

To re-activate the Actor, select the Actor under Actors in the left side of Navigator, click on the Actor Settings tab and click on Activate. If you scrub through the time line, you should now see your Actor moving your Character.


9. Edit motions. You may edit motions by using a rigid body, blending, and retargeting.


10. Exporting the skeleton to Maya. When you are happy about what you see, it's time to bring the motion to Maya. In the image above, find the button to the left of the input source dialog box called Plot Character... Press this button and then choose to apply the motion to skeleton. This will apply all the motion to the skeleton that you imported.

Scale the character back to the original size by changing the x-, y-, and z- scaling of reference_node back to 1, 1, 1. (Reverse what we did in Step 4.)

To export the skeleton with motion baked on it into a file, choose the entire skeleton, and then go into Save selection... Choose *.fbx (Binary) as type. 


11. Importing the skeleton back into Maya. Now, in Maya, bring up the Maya scene file with your skin bound character.

If you are sending the skeleton directly from MotionBuilder to Maya, in MotionBuilder select the skeleton and go to Send To Maya... -> Update Current Scene

If you are importing the skeleton with motion into Maya, go to File -> Import... and select FBX as File type.

This step should add the mocap data to your character's skeleton in Maya.

Important note: In the following way, you will need to bind skin to your skeleton just once:
i). In Maya bind a skin to your skeleton in a T-pose. -- See Step 1. d).
ii). Export the skeleton without (or with) skin and import it into MotionBuilder. -- See Step 3 for a direct method (or Step 1. e) for an indirect method via a .fbx file.)
iii). In MotionBuilder apply motion data to your skeleton in the way described above. -- See Steps 2 - 9
iv). Plot Character and export the skeleton (joints) alone (leave the skin!) -- See Step 10.
v). Import the skeleton with motion data back into Maya by merging it into the skin bound character in a T-pose. -- See Step 11.

You may try this Step11 using a sample character with skin (.mb file) and a sample skeleton with motion data (.fbx).


12. Editing in Maya. In Maya, you may use Trax Editor to blend and edit motion data.

Data for demo & practice: