Friday, January 26, 2007

Character Controls in CG, Part II


Getting back to the control rig thingie dingy wingy I showed a week ago or so.

Anyhow, how did I do this? Well, actually I didn’t do anything too inventive. Most of the cleverness award goes to friend, colleague, swell guy and alien-from-another-planet-level-genius Hamish McKenzie (he of the craze). A few years back Hamish created his zooTriggered tool that makes these GUI selection thingies. Basically he just made a system using script jobs in Maya that would pick object B when you selected object A. (The system can do more like set attributes, keyframe, toggle visibility or whatever else you want to cook up). So for a good while this was used to nice effect as a HUD kind of GUI for picking character controls. Kinda cool, but still abstracted from the character. So I messed around one day last year and I said “Hey, what if I make the character’s mesh itself as a trigger? I mean in theory the system still would work, so why not?” After a little testing I realized that you’ll still need some proxies due to the way things are modeled and such, but it’s still direct and simple. Here’s the basic concept:

  • - Rig your character the way you normally would. Autorigging, whatever. Use proxy controllers if you like.
  • - Then create poly cylinders, boxes, spheres or whatever that are shaped and sized to fit a particular area of the character’s body.
  • - Make a bunch of them for the different body parts. These will be your puppet selection triggers.
  • - Make an invisible shader and apply it to the poly triggers.
  • - Set the render stats for the triggers so they won’t render. (Attribute Editor for this)
  • - Constrain the trigger (or a null parent of it if you like to have some room to fudge with location later) to the appropriate part of the rig. Sometimes this will be the normal control proxy. Sometimes it makes more sense to constrain it to a bone that’s inside the mesh. Whatever works. The idea is to have the trigger move with the body part it’s designed for.
  • - Hook up the proxies with the normal controllers using Hamish’s cool zooTriggered script.
  • - Hide the normal controllers.
  • - Have fun!

Here’s a quickie video recap for those who don’t like words and letters and stuff.


What about that face? Ahh, next time.

1 comment:

Keith Lango said...

original comments here...