For my 11 Second Club Entry last November, I decided to build simple character models whose mouths and eyelids were simple cut-outs on NURBS surfaces.
Right off the bat, you're probably asking yourself, why on earth would you want to create such a character rig? Why not use
blend shapes or bones to deform a proper
edgeloop model?
My answer, in a word, is simplification. The 11 Second Club organizers strongly recommend that you use of of the freely available, pre-built rigs, so that you can spend the majority of your time focusing on animation -- and rightly so! But I had a fun story concept that demanded specific character models, and I knew that the only way I'd be able to complete this project on time, with only nights and weekends at my disposal, was to simplify.
So here's a basic tutorial for those who want to try this at home...
Let's start by setting up the basic model and cut-out.
1. Create a NURBS cylinder
2. Make the cylinder live (Modify > Make Live)
3. Use the CV Curve Tool (making sure that it's set to cubic, for a smooth opening) to draw a curve on the surface of the cylinder, taking care to place the curve on the side opposite the seam.
4. Close the curve (Edit Curves > Open/Close Curves)
5. Make the cylinder not live (Modify > Make Not Live)
6. Open the Trim Tool settings (Edit NURBS > Trim Tool [ ]). Under Standard Options, check Keep original. Then, using the Trim Tool, select a point on the back of the cylinder.
Important: make sure the point you select is as far away from your cut-out shape as possible! (More on this later.) Press Enter to confirm.

Congratulations! You now have a hole in your cylinder!
So, um... now what?
Well, there's not much point in all this unless we can animate the shape of that hole. Before we can do this, we need to set up a few layers.

1. Create a new layer called "Controls", and add the curve to it.
2. Create a new layer called "Proxy", and add the original cylinder to it. Set its display type to Template.
3. Create a new layer called "Render", and add the trimmed cylinder to it. Set its type to Reference.
You can now easily select the curve and move its control points around, and the trimmed surface will update accordingly.
When binding this rig to a skeleton, be sure to bind only the original cylinder -- not the trimmed surface. This way, the control curve will move and deform along with the trimmed surface, so your controls will always be on the surface of the character model.
To make the inside of your character's head a different color than the outside, you can assign a double-sided shader. For more information, see the "Create double-sided shaded surfaces" tutorial in the Maya help.
So that's the basic technique! I hasten to add that this method is not flawless...

First of all, if you're not careful about the point you select when trimming your surface (see step 6 above), then your cut-out may overlap that point when you're animating; if this happens, the trim operation will invert, making your hole opaque and the rest of the surface invisible. There is probably a way to modify the trim coordinates after the fact, but so far I haven't been able to figure out how.
Secondly, I found that mental ray does not always render the trimmed surface correctly. For example, my character's eyelids, which use this same technique, occasionally became stuck half-closed in the middle of a batch render. Strangely, rendering those same frames individually resulted in the correct pose. I suspect mental ray is doing some sneaky caching under the hood. This problem really derailed my progress, and I never did find a solution other than to use Maya Software to render my final animation. If anyone out there has any insight, I'd love to hear it!
That said, this technique does result in a rig that's pretty simple and intuitive to use.
Here's a final render of my pencil character. his mouth, eyelids, and eyebrows are all animated using the technique I've described.

If anyone has any comments, questions, or suggestions, fire away!
Labels: Animation, Maya