Motion Builder’s Workflow:
1. Import the .c3d data cleaned in Workstation.
2. Define rigid bodies. These are sets of markers that are located on a bone.
For example the markers for the shoulder, elbow, and wrist would make up one
rigid body. Motion Builder uses the rigid body definitions to “guess”
where a missing marker would be in space within a gap.
View an
example of the dog rigid bodies in MB. The white lines represent the rigid
bodies.
3. Optional: Motion Builder documentation recommends mapping an Actor to the
marker data before cleaning the gaps. However, they only have a Human Actor.
I worked very hard at bending and scaling the body parts of this human actor
to look like a dog in hopes that I could use it later during the mapping of
the marker data to an animation skeleton. I did this for about 3 of the 6 dogs
before I realized that it was futile. I can’t get an animation skeleton
to perfectly follow the marker data. So, I eventually skipped this step and
concentrated on cleaning the marker data.
View and
example of how the Actor initially comes into your take.
View an example
of the human actor model mapped to my dog marker data.
View a static screen shot
of the human actor mapped to a very large chested female labrador. I tried
to save time by importing the scaled down and bent actor from a previous dog,
but it didn't work so well. Note the neck sticking out in a direction different
from the head.
4. Next, work on filling the gaps
in the maker data. The default is to fill based on the interpolated position
from the rigid body. This isn’t always the best. The markers can be off.
View an example
of the Left Side Elbow marker in the floor when set to fill based on rigid body.
5. Check them off as done when you are certain you are happy with the gap filling
method. Note, if you check one as done, then uncheck it, you’ll loose
all the work you did before in filling that gap if key frames were set. I learned
this the hard way.
6. Filter the motion capture data. Run the “Peak Removal” filter
on all markers. Run “Gimble Killer” and “Unroll Rotations”
filters on all markers. If the marker data is wobbly or noisy, run the "Smooth
Translation" filter on that portion, or all of it. You can run filters
on one channel only, e.g. the x translation, as well as on all channels. This
is somewhat advantageous when you have noise on one channel only and do not
want to delete the data on all three channels to fix a problem on one. You can
also run the "Smooth" filter on tough spots that the "Smooth
Translation" filter doesn't fix.
View an example of noise
on one channel. Look at where the time line slider is located within the
green graph. It is at the beginning of a zig-zagged line on the x-axis. This
would show up as a quick jerking back and forth of the green paw marker that
is selected. View
the movie file of this.
7. Create a skeleton in Maya to be imported into Motion Builder. You can also
build a 3-D model and bind this model to the skeleton before importing it into
Motion Builder. However, I chose to just do the skeleton, to see if I could
get it to follow the marker data. Go
to link that explains how to build this skeleton.
8. Import the animation skeleton into Motion Builder 5 and “Characterize”
it. This should go smoothly as long as you have followed Motion
Builder’s naming convention for naming your joints/bones. It is at
this point that you have the option of using a Quadruped solving method for
your character.
9. Map the character to the “Actor Data” in Motion Builder.
10. Tweak the Character Settings until you get the skeleton to align properly
with the marker data. Futile for quadruped motion capture data. I wasted
several days on this.
11. Plot the skeleton
12. Save the Motion Builder file with the extension .fbx.
13. Import that fbx file with the animation skeleton back into Maya. At this
point, the skeleton should be animated – following the marker data.
14. Build a 3-d model and bind it to the motion capture skeleton. Add any other
rigging.
15. Render out movies of the motion capture model.
Note: My method will involve skipping the characterization step and simply taking my cleaned marker data straight into Maya. At this point, I’ll constrain an animation skeleton to the markers.