I have spent many hours this week trying to decide how I want to approach building a system into my custom Max rig, that will be responsible for handling mocap data. Ideally I want the motion capture animation to drive my rig controls without baking keyframes to the controls. In this way I can still animate on top of the motion capture animation. Ideally I want a way to blend between my motion capture and hand keyed animation so I have more freedom when creating my final animation. Thus far I have come up with the following options for achieving this goal.
1. Use CAT or Biped. This is not a real option. I think CAT and Biped are great for what they are, however neither system is open to modification unless Autodesk decides to give direct access to the API Let’s face it, at some point I am going to want to rig a DragonBearSquid.
2. List Controllers. List controllers are basically designed to allow you to have multiple inputs for any controls transforms. With list controllers I could potentially drive my controls with a motion capture skeleton, while still maintaining the ability to animate my controls on another channel. So far this is looking like my favorite option, but I will need to do some more tests before I can be sure.
3. Animation Layers. As far as I can tell, animation layers are list controllers that are tied in with some sort of reaction manager system. I like the idea of animation layers because they provide an interface for interacting with animation inputs, and they support position and orientation constraints. I did find the ability to enable and disable animation layers to be another useful feature. The problem with animation layers is that they seem buggy and they tie a lot of extra information to your controller. From my limited experience with animation layers, I found them difficult to control, and nigh impossible to get rid of should you want to remove them.
4. Layered Controls. This is my Maya experience talking here. It might be possible to create a layered system of controllers. For instance, you could have your arm control linked to a dummy, and that dummy could be constrained to your mocap skeleton. This approach actually worked well in my initial tests, but failed to do the trick when I got into more complicated systems like a reverse foot. The other issue with a layered system is the number of object in your scene will be much greater and more difficult to wrangle.
The biggest problem I am facing in finding a suitable solution to my mocap transfer problem is dealing with a custom foot rig. I like to rely on a reverse foot or an attribute driven foot because they make life much easier for the animator. Both types of feet are causing issues when trying to use any of the above solutions, but I am optimistic that an answer is just on the horizon. Aside from the foot problem, I am having a lot of success, and I look forward to getting this system worked out so I can dive into some serious scripting.
As always, please feel free to share your thoughts and experience on any of the topics I am discussing here.