Monday, September 6, 2010

Joint-Based Face Rig - Part 1

Early in on this project, I stumbled across a significant problem.

The opinion of Random Chef is not necessarily the opinion of myself. I don't mind blendshapes, 
in fact I think they're pretty useful.

My problem is: there is no easy way to transfer facial animations from Maya to the Source engine. Without the ability to transfer data back and forth, it would be very difficult to produce the same exact short using each of the two methods. I mean, sure, we could re-animate each scene twice... but for me, that sounds like a needless waste of time and also would introduce some unwelcome variables into my study. The issue here lies in how each of the programs deal with blendshapes.

  • For the layman I will explain: blendshapes are typically a bunch of pre-made facial expressions for the animators to use, so they are able to transition from one to the other while they work. A really good parallel can be drawn to the way faces were done in the movie Coraline.

Anyway, since there is no way to transfer blendshape animation data back and forth from these two sources, my only feasible option is to ignore blendshapes entirely and do everything with bones. You can animate a character's face with nothing but a pile of bones, and in some places this is very useful.  The jaw is a great example of this. Natural jaw motion rotates, where jaw motions done with blendshapes tend to be linear and kinda gross looking in comparison. So, armed with little anecdotes like this, I strove out a couple months ago to pin down the best way to make a full face using bones...

...and I found zippo. When it comes to joint-based rigs, nobody seems to agree on anything. There are, maybe, four decent tutorials spread across all the internet on how to do this. And at the time of this writing, one of those has been taken down. The rigging books I purchased had little to say on the matter. Sure there's a few demo videos by riggers and Technical Directors on Vimeo and Youtube, but they are not as instructive as they are braggy. In an effort to save some other poor soul the time it took me to gather info, my next several posts will be about this process.

Here's a few of the demos I found:

A Few Tutorials I found:
   DirtyOldToon's Tutorial (currently dead)
   Joint-Based Facial Animation - Kilia Tutorial (This is closest to what I ended up doing)

In the end, I couldn't turn to any of these (or the others I stumbled across) for guidance. Many of them weren't exclusively bone-driven, and used tools that aren't available to me in my project. So I took what info I could, cobbled together things that I had figured out on my own, and got some guidance from some knowledgeable folk to help me avoid the really big roadbumps. In the end, I came up with this:

My next post will start going into the down-and-dirty, but for anyone who has stumbled across this blog post looking for an example of a joint-based face rig, joint-driven, bone-based, bone-driven, or however-you-call-it rigs, here is a basic example file, containing everything used to make the images above:

Maya 2009 project folder: Chef Bone Rig Example

(I should clarify, this isn't a full rig with all animation controls and such. It's just the geometry and the skeleton with all the skinning you need to make a pose. The finished product is available on part 5 of this post)

1 comment:

  1. Great information. I can't wait to read more. Your joint placement looks great.