Skeleton Creation In Maya:


1. First import the c3d marker data from a mocap file. I did this by bringing the c3d data into Motion Builder and saving it as an .fbx file. I then could use the Kaydara Plug-in to import the .fbx file into Maya 5. This file must be completely cleaned – all gaps filled. If the gaps are not all filled, you’ll have markers that should have been on the body, flying off the body, laying far from the body, or traveling in a direction 180 from the direction the rest of the markers are moving. You should see markers moving through space that were on your mocap subject at the time of capture.

View an example of the 12th thoracic vertebra marker laying on the ground and not traveling with the other dog markers through space. It wasn't set to "done" in Motion Builder. It is the small green dot in the lower left corner. It should be on the dog's back. Note the other dot on the floor is the "Reference" node that Motion Builder requires above all other joint nodes. It is supposed to be on the floor. It doesn't matter.

2. Find a frame in which most joints are extended.

3. Make sure you are in "Animation" mode. Start creating joints/bones of an animation skeleton with Maya’s Skeleton > Joint Tool. You’ll want to face the character toward the z direction (another Motion Builder Requirement). You will have to pick your local rotation axis for each bone that is created at this time. One of Motion Builder’s video training modules showed a skeleton created with the x axis down the bone, thus the order at creation was xyz. However, because Motion Builder uses Quaternion rotation system and Maya uses Euler, you can encounter Gimble Lock, if two rotation axes line up at a point in time. This will show up on your animated character as a knee, elbow, or hip suddenly twisting in an unnatural manner (90* or 180* off of what it should be). I had this problem a lot with the skeleton I created in Diva. So, I was very concerned with this happening in Motion Builder. I built a skeleton with the local rotation axes set to xyz with x down the bone, but it didn’t fit the marker data very well in Motion Builder. So, I went back to Maya and set every one of my local rotation axes to zxy, with z down the bone. The exception was the hip or root joint of the skeleton. This, the paper recommended, should have the z-axis pointing straight up in world space. So, this is what I did. This skeleton, unfortunately, didn’t follow the marker data that well, either.

4. After your skeleton is created to match the marker data, you’ll want to rotate the joints so that the skeleton has all leg and foot joints extended. This is how Motion Builder requires the skeleton to be imported in order for it to “characterize” properly.

View example of extended skeleton.

5. Freeze Transformations on the joints to zero out your rotations before importing back into Motion Builder.

6. Make sure you have a group node above all of your skeleton nodes, specifically above the root or hip node, called “Reference.”

7. Make sure you have named all of your joints in Maya according to Motion Builder’s naming convention.

8. Select all your nodes, and export the data as an .fbx file.

Back to main Design 950 page.