Wednesday, January 31, 2007

Rigging Lecture in Ottawa

A friend of mine, who was in the same 3D animation course that I took in college, has recently become an animation teacher herself. What's more, she's asked me to come to Ottawa to do a 2 day rigging lecture at Algonquin College.

This means I'll be spending a good deal of my spare time in the next two weeks brushing up my techniques, preparing class materials, and making sure I can fit it all into about 16 hours of class time. At the moment I'm brainstorming an itinerary with all the topics I'd want to teach. From there I'll filter it down to the most essential elements.

What I'm happiest about is that I'll be able to teach some real-world approaches. Hopfully it will give the students an idea of what industry rigging is like. I plan to only show techniques that I specifically use in the studio, and to not dilute them by trying to include ones I don't use. I figure that if I were a full time teacher, I'd try to cover a broader range of topics, but this lecture will be designed to be a "field tested" approach.

Sunday, January 28, 2007

Selection Sets Script

Selection sets are handy when working with complex scenes, but they can be frustrating to use when switching from one selection to another. This is because sets are listed in the outliner and requires several clicks to select the objects within a set.

I've created a script which displays a list of selection sets and automatically selects the set when you click on it. It also allows you to easily create and name new sets and delete old or unnecessary ones.

Hierarchy Animation Importer and Exporter

There are several common problems in 3D animation which come about on a daily basis when working in a studio with teams of animators; reuse, recovery and renaming.

Reuse is simply the ability to create a library of common animations (walkcycles, runcycles, etc.) and poses (rest pose, leaning pose, etc.). This is especially crutial for quickly copying poses from the end of one scene to the beginning of the next in order to produce a clean hookup.

Recovery is in any of those situations where the animator accidentally breaks their scene file and requires the animation from it be salvaged and placed into a new scene file. This same principle is common when transfering animation from a low res character rig to a high res character rig.

Renaming deals with the fact that during a production if references are being used, or frequent updates are being made to character rigs in parallel, animation is going to need to be transfered from rigs with different naming on the controls. The only way to map the controls of controls with different names is by using their hierarchy structure.

I've developed a solution to all these problems. Its a pair of MEL scripts, one for exporting animation, the other for importing it. They use hierarchy structure rather than node names to store the animation. This allows characters with different naming conventions, and to a limited degree, different hierarchies, to transfer animation.

The scripts have a set of powerful features which include the ability to trim animation clips with the ranger slider, include or exclude shape nodes from being analyzed, animation looping. Every aspect of an objects animation can be stored and restored including its locks, tangent types and tangent weights.

When hierarchies don't match, the regions that differ are highlighted in the lists in red for easy identification.

This has been an incredibly extensive project that I've spent months working on, mostly in my spare time. Now that the studio finally has some 3D projects, its going to be interesting to see how these scripts fare with daily use in the field.

Been a While

I havn't posted in almost a year now. The 3D demo I was rigging on last winter got a little out of hand and I wound up having no time to continue posting. The demo was finally complete but the studio I work for has mostly been doing Flash productions for the past year. I've been doing a combination of animation and JSFL scripting for Flash in this time.

Recently, several 3D projects have been picked up by the studio, so I've finally been able to continue rigging and scripting for Maya. It will all be done in Maya 8.5 so we'll see how that goes.