dinsdag 10 maart 2009

Rigging Praradigm





The rig you see above I made last year. It is a rig for the upcoming short film of Floris Kaayk. For it I used a paradigm (set of rules and conventions) I made the year before that. I learned a lot from this project about rigging. Recently I started a project to script a rig-builder in MEL. This program would allow the user to build completely custom rigs with as many or few limbs as prefered within a few clicks.
When I started I had to consider a lot of things in advance. Since you can`t know what kind of rigs the user is going to build, everything needs to be really general and nodal.

The final system would have to be very flexible and easily expandable.
I guess I would call the paradigm I ended up with a layered-limbic-rigging-system. Layered, because eventually there will be multiple joint-chains operating on the same model. The layers I had in mind would be as follow:
FK and IK chains would operate on a CTRL-chain. These three layers will allow the animator to controll the movements. Then on top of that could be a DYNAMICS and NOODLE chain. These will allow for secondary motion and automatic followthrough. I still have to do some research whether this would best be solved with joints or skinclusters.
The limbic-part of my paradigm is that the rig-building will happen on a per limb basis. This will allow much more complex rigs than your standard biped or quadruped. My plan is to make a small MEL script for each type of limb. This will allow for easy addition of extra types of limbs as long as you keep in mind the name-spacing.

Based on this paradigm I formed the following namespaces:
limb_part_index_layer
The `limb` part is obvious, I guess. This specifies whether we`re dealing with a leg or an arm or a hand or a finger, etc. Each limb will consist of various parts. And most likely there will be more than one limb of the same type in a character...hence the need for an `index`. The layer indicates in what layer it is in, like TOPO, IK, FK, CTRL, DYN, NDL, BND.
The obvious omision in this name is the name of the character. This is entirely on purpose, because I`m assuming the characters will be referenced in the final scene. By referencing all object will be prefixed with the file-name.