Design 950 Autumn 2003 with Brian Stone
This quarter's 950 involved taking the motion capture data that was run through Workstation last quarter into the second cleaning software (either Diva or Motion Builder). Before I did this, I spent the first two weeks cleaning 5 takes from a new dog with a Cranial Cruciate Ligament Rupture that I mocapped during the gap between Summer and Autumn Quarter 2003. This dog's name was Cody. View Cody's data cleaned in Workstation.
To recap from last quarter, Workstation labeled markers, fixed trajectory swaps, deleted spikes and ghost markers, deleted bad tail end data before a gap, and joined broken trajectories. If you would like to review, you can follow this link to the previous quarter’s details about what Workstation does.
In order to do the things which Workstation would not, i.e. fill the gaps where markers disappeared and filter wobbly marker data, I had to pick between Diva or Motion Builder. These programs are also supposed to align an animation skeleton with the motion capture marker data. With Motion Builder, this skeleton is built in Maya and imported into Motion Builder. Once plotted onto the maker data, this skeleton can be taken back into Maya and 3-D models bound to them. I had to learn how to properly create a skeleton in Maya that Motion Builder would accept. One of the video training modules created a skeleton with the joints' local rotation axes oriented with the x-axis down the bone. I first created a skeleton in this manner, with the local rotation axis set as xyz (this points the x-axis down the bone). However, after reading a paper on Euler vs. Quaternion rotation systems, and Gimble lock, I decided that I would adjust all of the local rotation axes to have the z-axis down the bone, except for the root "hip" joint which they suggested having z point straight up in world space. My decision to rebuild the skeleton also came after a not so successful first attempt to get the skeleton to follow the marker data in Motion Builder. View the first attempt (904 pixel x 404 pixel movie). I pulled the animation skeleton away from the marker and actor data so that you can see how it is deformed. The shoulders were the worst. I worked for a couple more days on the character settings and came up with my second attempt. View the second attempt (1212 pixel x 392 pixel movie). The white lines represent the animation skeleton, the blue squares represent the markers, and the human walking on all 4s is the Motion Builder Actor. Though, I managed to get the shoulders to come back into the body, the feet and head do not want to follow the marker data.
Since Diva is not as visually oriented as Motion Builder, and because I had a lot of trouble getting an animation skeleton to follow the marker data in Diva, I chose to learn Motion Builder. I spent a lot of time downloading and watching video tutorials and going through pdf documents to learn how to use Motion Builder 4 and 5. ACCAD did not get Motion Builder 5 until mid November. The company touted new "Quadruped" support in Motion Builder 5. However, I discovered, this is only for people creating 4 legged characters in Maya and importing them into Motion Builder 5 to rig and animate.
Motion Builder 5 animates as well as cleans motion capture data. However, Motion Builder 5, I have learned, is not made to work with quadruped motion capture data when it comes to creating a skeleton that will follow the marker data. It works for filling gaps and filtering my dog marker data, but I could not get the animation skeleton to follow the marker data very well. When I emailed the company's tech support a file that I had worked on for several days, i.e. the second attempt movie linked above, they emailed the file back with a few changes and said, "Sorry, but our program is not designed to work with quadruped motion capture data. You are trying to do something with the program that it was not designed for." View the file they sent back to me (768 pixels x 412 pixels). They managed to get the feet to line up with the marker data a littel better, but the spine does not align, nor the head. The neck is wavering up and down like a giraffe. View a static screen shot which shows the misalignment of the spine.
$3500 for a program that only does human mocap animation skeletons! Bahhhhh!
So, the only way I can get an animation skeleton to align with
the marker data and follow it precisely is to “point” constrain
a joint in the skeleton to 1 or 2 of the makers. I did this for every joint
in the skeleton. A shoulder joint, for example would be point constrained to
the shoulder marker. This can be done in Motion Builder as well as Maya. I’m
doing it in Maya. I'm thinking that if the 3-d models I did this quarter do
not bind well to the animation skeleton, I can use simple geometric shapes,
e.g. cylinders, squares or spheres, bound to the joints and bones to indicate
their position in space.
View the point constrained skeleton in Motion Builder. Note the lower jaw bones had no markers to point constrain them to, so they don't look right. Motion Builder's quadruped skeleton had jaw bones, so I left them in initially.
View the point constrained skeleton in Maya. I removed the jaw bones in this skeleton. I won't need them because I'm not animating mouth movement in the dogs.
Ryan English, a colleague at ACCAD, has managed to get a completely
rigged nanotyrannous model to follow motion capture data of simulated dinosaur
movement. It looks pretty good. There are some very unnatural leg and foot movements
when you pause on certain frames. However, it may be the only plan left for
me to follow since Motion Builder will not create a good quadruped animation
View a movie of the model's rig point constrained to the mocap data.
View a movie of the human in the mocap studio inacting the dinosaur.
It is important to mention here that this model was worked on by several people over the course of one quarter. The 3-d rig took another two quarters. Someone also had to clean the mocap data in Workstation. This was a team effort developed over more than three months.
Below are links to more documentation of what I learned/did this quarter: