Being able to write good animation tools relies on being able to easily make queries about a rig. Animation tools often need a high level understanding about how a rig works for many reasons. But obviously you want to maintain a loose coupling between the two. You want rigging to have the freedom to be able to change the way the rigs work without having to worry about breaking animation tools. Conversely you don’t want animation tools to be hamstrung by the lack of ability to encapsulate the complexity of the rig.
For example, is there a way to query the FK controls from a given IK control and vice-versa? What about pole vector controls? Is there a way to ask which controls have space switching? If so can you query what the spaces are? What about which controls are affected by a given space switch? Given a joint can you get a list of the rig controls that drive it? You get the idea.
Animation tools are basically a layer that build on top of the rig layer. If the rig layer isn’t rock solid, then animation tools will be unstable or feature restricted or both.
Having some sort of programmatic interface to encapsulate the implementation details of your rig features is incredibly important if you want to be able to write useful and robust animation tools. Without this sort of high level rig API you’ll most likely make it difficult or impossible to write the sort of tools that will enable your animators to be more productive.
So if you’re writing a rigging system, try taking a break from it and building some animation tools. Exercise that rigging API you’ve been spending so much time on. Better yet, use all the animation tools you write as part of your unit testing to validate changes made to your rigging API. Remember, as a rigger your customers are both your animators and anyone who might write animation tools.
This post is public domain
This entry was posted on Tuesday, August 16th, 2011 at 13:34 and is filed under main. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.