Motion Capture Pre-Cleanup Tool
The Mocap Pre-Cleanup tool was made for Animators working on mocap cleanup with data coming from Studio 500 here at Florida Interactive Entertainment Academy (FIEA). The tool prepares raw mocap data for cleaning by deleting unwanted nodes and zero-ing out bone rotations. This tool was made in Python using pyfbsdk.
While working on my game project with Get In the Box Studios, we had decided to use a fully mocaped animation pipeline, which meant a lot of cleanup for our animators. An animator came to me asking for a tool that would help speed up their motion capture cleanup workflow. I also ended up outsourcing this tool to multiple other studios which were using mocap animations.
At the start of cleanup, the animator would need to delete all the cameras and markers, and then select each joint and zero out the rotations (except for the Hips which would be 180). They wanted this process to be automated so it would save time and effort on their end.
I started out by sitting down with the animator and trying to understand the exact steps to execute, and the MotionBuilder setup, along with which nodes I needed to delete. After that I started going through the pyfbsdk documentation. The object oriented nature of it helped me quickly understand how to navigate around the components in the scene. I wrote some simple scripts to print out the class name of the components I was selecting (markers and cameras). I figured out that the cameras and markers are children of the class FBModel and belonged to FBCamera and FBModelMarker.
Once I knew what to delete, I had to get access to all the scene components, which belonged to FBSystem().Scene.Components. I then made lists of markers and cameras and deleted them using a queue.
In the same way as with markers and cameras, I figured out that the bones belonged to the class FBModelSkeleton.
Once I got the list of all bones, I simply iterated through them and set their rotation property to a zero vector. For the Hips I set the z value to 180 to make it face the positive Z axis.
Finally, I wanted to figure out how to add the tool to an existing MoBu shelf. After digging around a bit I found the folder which MoBu reads its startup scripts from, and I used the template to create my own little UI.
I also made a set of powershell and batch scripts for easy installation on Windows. All that's left is to get it here on GitHub and double click that installation file!