facial animation setup?


Hi Eek, Congrats on the new job! That’s excellent news.

Can’t wait to see some new pics! Hang on in there!


Heres some of the tool that make tools for the rig…

Ape tools, is just an expression editor, you put in values and it fires out a vector expression and scalar result. This will eventually be al hidden and all on the fly with spinners and such- as you build the facial rig.

Def change is a tool (early stages) to change CA definitions on the fly, it will eventually look at a main server so TDs around a studio can use different defs or make new ones on the fly and call them. It basically allows you to change the face on the fly without breaking the rig.(very new tech - thx Paul)

These are in there early stages atm, but im slowly building the tools pipe. I should have an early prototype soonish. Still working out scripting tangent handles hmm…


more to come…


Man, now I’m definately %101 percent sure you’re crazy. :rolleyes:

And because of that you rock too :buttrock:

Keep it up my friend. Also, congratulations for your new job. :applause:


hey Tughan,

Thx man - hehe pretty insane tooling!

right so the system gunna be three parts builder, skinner, animator. Im gunna build a proof of concept of the builder, which will eventually be a plugin. Im gunna make a simple test, post it up and get you guys to play with it, then if it all works, ill build all the rest. The animator is gunna be the hardest as ive got some interesting new ideas on the system - so ill propbably be grabbing some help from some coders/scripters!



hey Maya 7 arrives and guess what it will have paintable blendshapes and wiredeformers, damn this is the best thing that could happen to my facial setup (hopefully i will get rid of bones and cluster only curves will deform skin yeha)

And that’s the only think i have to say

p.s Joie i cannot see u on my icq.

send me an email jure@jureprek.com


Hi Guys,

Its suchha long thread to find out few of the good links to tutorials to a facial rig setup through joints in Maya.

M a newbie to it, looking forward for some help from you guyys…

Thnx in advance…


If you have ICQ we may be in contact, I´m in contact with King21 and is good to share ideas.

I´m holydays right now and be right back the last week of august, happy summer to all!



I dont have ICQ brother, here’s my msn and yahoo messenger ID’s. I wish they are a help.

msn - abhishek3d@hotmail.com
yahoo - abhimation



So as i showed you guys before some new tangent muscle types that would allow much greater freedom/control and the ability to be written in different packages - there was one major problem that had to be fixed:

Working out a tangent handle to work in 2 axis is easy. 1[z] is a simple ratio based expression,2[y] is a simple script that is based on a distance. These two work for the buldge and stretch fine. But what happens in x.

Well the problem happens when each tangent handle (top and bottom) goes past its base control in Z. Below this its fine if you use a ratio based expression in x but over it screws up.

So I rebuilt it in the form of ‘T-Muscle 3 (after a day of banging my head)’:

So pic 1 and 2 are now correct, pic 3 shows what was happening before.

The way to solve this problem is Trigonometry:

so to work out ‘TH2’ [x] movment you first need some expressions:

so first of you get c to follow th2’s x and z axis

then you need a script on the 'th2’s x axis with some variable:

d1 = distance a b
d2 = distance b c

to get the offset right you need a formula so:

b.pos[x] + (b.pos[x]d2/d1) - (a.pos[x]/d1d2)

so this is causing an offset to the tangent handles x axis based on the distances of two points and the base objects x axis.

Now this is fine if the tangent handle is above in z of the base object but what if its under it, well you need an if clause:

if b.pos[z] > c.pos[z] then b.pos[x] + (b.pos[x]d2/d1) - (a.pos[x]/d1d2)
else b.pos[x] - (b.pos[x]d2/d1) + (a.pos[x]/d1d2)

its the same formular but taking away and adding instead.

These idea will work in any package, its pretty simple math (i was terrible in school)

And the benfit of this is now access to custom controls e.g ‘buldge’, ‘distance’, position of th1,2 etc. And the ability to script it. And you can use this technique in bone setups too.



This a new face model ive been working on for a new version of my rig for the full plugin. Ive posted up some stuff about the edge topology as it benefits not just this type of rig but also bones, morphs etc etc:

So the first red line (circle) is the edge of the outer muscle of the eye that joins the skull. It seperates the brow from the eye and allow it to raise and lower without affecting the eye or its socket. It also give overlap to the skin between the eyelid and brow.

The second edges are the edges that join the procerus and frontal muscles of the face (nose and brow), there important not only as they allow for frowning, surprise anger etc but they also give an even supply of poly’s when the mesh is subdivided.

I’ll talk about some more stuff soon such as the nose area, crows feet etc etc soon. And hopefully get some more muscle/gui/rig pics/clips up for you.



man it looks really great - keep posting updates :slight_smile:


Very Great stuff Eek, i love the techniques used, i’m trying now to make a facial setup too, but on maya, i will try to do it with a techniques near yours.
I have some problem about symetrise my constraint, i can do it manually but i’m searching for a automatisation solution, i don’t know if this thread can be centralise on maya cause you are talkking only about max facials riggs.
but if someone can direct me, that’s will be cool !

here a simple view of my simple setup not down :

That’s where i am, i’ll try to put 3 constraints on each joints, but it will be complicate if i have to do it again for the mirrored part…

I’m trying too find how to do the same techniques of eek on maya, if i find and feel it easier, i will abandonned this stuff…

but symetrise setup on maya is melting my brain down, HOW TO :s , i am so preoccuped about this I post thread every where ! on cgtalk character rigging post, on a 3DVF cg french forums, here here there and there again, replys ? 0 niet, nada, none nothing ! RIEN DU TOUT…
help ^^


symmetry in rigging – well im doing it with a script. What exactly do you want to do? – if your on msn send us a mail and we can chat about the prob.



ok i send u a pm with my msn adress, thx man.
using a script to do that is in fact the way to take i think for my case


I was able to recreate what EEK did with splines in maya, but I got stuck at the UI. With out the UI to control the masive amount of control system the, facial set up is a pain to animate. How do you control yours?


– im building a scripted animation pipe for that very reason. Cant quite show too much as a friend and I are kinda developing it. (but should be very cool)



So ive been doing some work work on the cheek muscle stuff, and have pretty much resolved the issue ( i think!). Im basically achieving the same result of a look-at controller,path constraint etc etc but with scripts and expressions. Im trying to get the memory down as possible as if you have 20 of these things in a scene it’ll slow down.

Also this will be able to be scripted, and the added benifit is if you make a spline IK bone chain with the spine, you’ve got bone muscles, wiith a curviture.

eek - i’ll try and post up a pic. Maybe a movies better to show off what i mean?


hi all,

Here’s a early surfacing test of the tmuscle 4 in action, infact theres three being used:


you have control over the distance of each muscle, when it starts to buldge and and the buldge strength.

Im gunna add control over tangent handles next, so you can shape the muscles.



Now isn’t that the coolest thing in the world? :slight_smile:

It makes an urge to chew it. :smiley:


Looks cool Eek…what is the speed like when you have a lot of these in your scene?