facial animation setup?


Thanks, thats a nice thing to say!

The rig is very complicated, but there is nothing in there thats hard to understand or to do.
I plan to finish the animation in a couple of weeks or so.
The underlying curve rig is supplemented by morphs to do what the rig cant quite achieve on it’s own… (although next time I think I can make one that can eliminate the morphs altogether.)
As for the displacement thing, XSI exports all the point oven data, then LW reads it and updates automatically, so no re-loading. I bake, then switch to LW and its there already.
This goes for the mdd files and also Null positions which drive the displacements at the right time and also some postional data for where they are applied.
I was going to do it all in XSI, but the results of the new skin shader in LW are the best I’ve seen. Also it means I can use Fprime which allows me to see the displacements ‘live’ on the render.


Hello, all!

I’ve got a bones rig for facial animation with 50-up-to-60 bones driving the skinned mesh. Face mesh is about 7500 polygons.
I’d like to make creases in cheek-mouth and brows-nose regions. How many polygons in the face do I need and are there any secrets in performing them with bones animation?
My apps are 3Dmax-MotionBuilder.

Regards :slight_smile:


The amount of polies in the face isn’t the problem is it the placement of the edge loops that will determine if you are able to get the creases that you are looking for. There is no replacement for a well structured model.

Doing this sort of set up with bones can take alot of bones. Another option is to mix in some morph targets if this is allowed in your pipeline. Just wire in the crease targets to the nesesary controls for the face.


what about driving wrinkle maps? Jason Osipa shows this, you could drive bump or normal maps from the value of the bone poses.


great stuff. Can’t wait until maya version.

There’s some many ways to do a face setup yeah?

I haven’t been rigging very long so this type of experience presented in a clear way is very helpful. I don’t think I want to use blend shapes anymore. Seems so limiting and mechanical. Your setup eek is exciting. I’m big on Squash and Stretch, pushing expressions to the extreme. I come from a 2d back ground and so I’m not use to having limitations on anything. 3d is getting less limiting the more I learn. I use wires alot because there are very free. Using CV curves on the face makes alot of sense to me.


this tutorial uses cv curves as influence objects for the face.




So I just started a new job, and they want me to trouble shoot a rig that is having a double transform problem on the face. I think they used the rig from the tutorial jason mentioned.


I followed the tutorial and everything worked ok for me, but I can not figure out what is wrong with the one that is already rigged. The problem is essentially a double transformation on the face. So that when I rotate the head the area affected by this rig double transforms, but the rig itself stays where it should.

I know I have seen this problem before, but for the life of me I can’t fix it. I want to say it is something to do with the base curve? I unparented them, but that did not fix it.

Any Ideas?

Thanks a ton,



Yeah I rember runing in the same problem before. When doing that type of face rig. It could be one of trhee things. Where the curves are parented, if the clusters have the transform turned on or off, and if the cuves have theyr transformed on or of.

I sugest breaking everything apart then parenting them in groups. Like Eybrow cluster groups. The curves that hold the clusters can not be parented on the same joints as the clusters. As a matter of fact the curves have to be parented on a stationarry control one that does not rotate, from what I remember. Cause the clusters move the curves now. Then try rotating the face if your still getting double ransforations mess with the clusters transfoms. Thats how I remember fixing it. Once I puled the curves out of the hierarchy and messed with the clusters I got it to work.

Good luck…


Hey, Thanks for the advice. I am still having some problems which I think is due to version change. The face rig was created in Maya 7.0 and we are trying to move it to Maya 8.5, could this be the source of the problem? Sorry I didn’t mention it earlier.

Thanks again for the advice.



I can’t say, usually constraints get messed up. They might not work or work backwords as for double transforms I dont think so. You should be able to figure that out when you pull the face apart. If nodes are not prented to anything you should be ble to see if constraints are not working.


After some more playing with the rig, I found that the old version I have imports properly into maya 8.5 , 64 bit, but not into maya 8.5, 32 bit. Odd huh? Thanks again for the advice and help.


So, incase anyone is interested, we figured out the problem with some help from the guys at autodesk. Turns out that there is a service pack one for maya 8.5 that was not installed on some of the machines (the 32 bit ones) and it was on the 64 bit ones. So once we installed that everything worked fine. Thanks for all your help again.


Heres a new technique for facial rigging. It takes a Nurbs surface skinned on a bone rig and morphs as it’s base and via constraints, feeds into curves.
The mesh is skinned to Nulls constrained to the curves, and the amount of stretch between areas are measured, and these measurements are driving additional morphs and smoothing operations.
Its not complete, (just look at that UI) but gives a decent idea.
Next step is to add more assymetry control and also dynamic face-jiggling reaction.



double post… whoops


triplepost, sorry


Nice man!

How do you design the initial nurbs surface? and its morphs? - i like the idea but im wondering whether you’d always find areas with the face breaks, and an an inevitably have to add new ‘corrective’ shapes.

Essentially in my research hit that problem, until i found out about correctives i didnt know what to do. I think the issue with corrective is not that you have to make them, but the process of making them seems convuluted and complex. I.e to make a combination of pucker and smile you generate and oddball mesh - but it produces the right result.

The other thing that scares people is the amount of shapes - essentially thats wrong. Theres around 10 mouth poses and of them 6 need to have correctives. Its around 60 shapes - but if the process of making them can be streamlined then it makes the system very efficient. ( this isnt left or right with that it makes about 30 key shapes including the brow) And about 120-140 correctives.


I just shaped it based on the path i want the anchors for the curves to travel along. It pretty much worked first time and since I’ve rigorously tested it and it doesnt break.

a nice thing about the nurbs is being able to sculpt big moves with them such as smiles that filter down to the detailed controls and will shift them about with the movement of the mass but wont corrupt any extra keyframed sculpting on those details.

I have an idea for a version discarding most of the curves and just having 2 layers of nurbs with the mesh on top. the thing nurbs have over over curves is that they are (more easily) morphable, and you can get both U and V ‘sliding’ on the constrained nulls.

(I havent made any correctives. It shouldnt really need any, but it does have a couple of smoothing operators that do things like relax the wrinkling on the cheeks when stretched.)


I think half the battle with a facial system too is the aproach to iteration - I’ve started looking into corrective morphs and an aproach to build them. The problems comes in that, our faces werent designed to show the combination of every muscle group in isolation - therefore we need a way to generate the ‘achieved target’ for the corrective to build off of. Your idea of measuring stuff gave me an idea as to how to build the corrective, using essentially the tention of the face.

All theoretical atm - but slowly formulating a basis in my notebook.


Yes, having the measurements means you can have a lot of stuff thats driven automatically and realistically once set up. The info gained from the measurements can be applied at any level, (apart from where it would create a loop) from the nurbs surface through curves to mesh morphs and even displacements.

For example, I measure the distance between vertices on the lips and these are linked to the opacity of lip displacement maps, so, when the lips are in an OO shape, they are wrinkled and when they are smiling, the lips are smooth and stretched.
I dont have to think about this once set up, it just works.

another thing that i’m looking into is having certain morphs come up depending on the direction of travel. ie, having the cheek tense differently when going into a smile than when it relaxes back in the other direction.
I think this will eliminate a lot of the ‘rubbery’ feeling that can happen.


I made a facial capture system and linked my rig up to it today. This is still a bit rough and ready, but demonstrates a good starting point. It’s all overridable and keying-on-toppable.



Nice Man! - I really need to start looking at face rigs again. I do like the idea of controls riding a surface. Im thinking also to not having curves, i dunno. I think the key to it all is trying to defeat the mesh breaking, and if this works im all for it.

Need to write some notes.