Joint Based Facial Rig Demo

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Display Modes
  09 September 2010
Joint Based Facial Rig Demo

Hey all, I've been working on a facial rig to push some techniques I've messing around with to allow an animator to (hopefully!) create a wide range of expressions reasonably quickly.

Suggestions welcome... I am aware he could do with some teeth. haha.


Updated version of this rig + other rigging stuff

Last edited by andyLP : 10 October 2010 at 06:31 AM. Reason: update
  09 September 2010
Hey it's looking very good, I like particulary how the mouth corners works with the master controlers.
Is pure join based, or do you have some blend shape correction?

Ahmidou Lyazidi
Director @ cappuccino-studio
  09 September 2010
Really nice deformations if its purely Joint based. Prehaps show some more tech breakdown, wireframes or the file itself if your looking for specific feedback.

Until then, I'd suggest making the L and R side colored differently, and start looking into a UI to control the face, at least to some degree.

Looking forward to seeing more!
Senior Animator / Framestore - London - @KielFiggins - Animation Store
  09 September 2010
I agree, that looks great! I would like to see more info on it or even play with the rig. Nothing helps more than when you can get your hands on a rig and really break it!

  09 September 2010
Hey thanks for taking the time to reply,

mr-doOo, The mouth is purely joint based, there are no corrective blendShapes. The wrinkles above the brow require some blendShapes that are driven by the distance each joint is from the skull.

Kiel, Thank you, a UI is certainly on my to do list.. I will try to show some more tech info without giving too much away heh. p.s. your article on getting hired was awesome. I'm launching my website any day now that i've paid for the domain. I'll be making a few changes as per your advice.

Chris, I'll look at uploading the maya file to my site once its launched.

Thanks again,

  09 September 2010
Well if you're not gonna give to much away as to what your doing, makes it kinda hard to give suggestions ; )

Beyond that, aside from jiggling controls in your video, try hitting key/common animation poses. Wide range of emotion, and the ever difficult "oo" shape.

Heres a great example:

Also, for a feature, sticky lips is a big one. Lots of ways to do it, always fun to throw your hat into the ring.

For presentation, its fun to see the rendered call outs your doing, but keeping or at least toggling on the wireframe during the video would be informative and would help spot pinching or shearing.

Glad you found that write up useful. I always wonder if people find or take the time to read those. More on the way!
Senior Animator / Framestore - London - @KielFiggins - Animation Store
  10 October 2010
Kiel, Thanks for the links and feedback.. invaluable!
You'll notice a lot of what you've recommended has made it into my update.

As always comments welcome

  10 October 2010
Nice update man, some more notes if your still adding:

-eye lid ctrls
-soft lids that move when the Eyes are rotated
-nostril and snear ctrls
-the ctrls you have seem to be circles, does this mean they cant be rotated? (if they can be rotated, they loose the visual cue, being a circle and all)
-cheek ctrls, beyond just the corner of the mouth

Looking fun, cant wait to see the UI
Senior Animator / Framestore - London - @KielFiggins - Animation Store
  10 October 2010
Pretty neat stuff there ... very mushy and nice deformation ... like it
Suchan Raj Bajracharya
Character TD | Mentor
  10 October 2010
Hi I had a question, are the joints just free floating and all bound to the head?

could the same thing be achieved through clusters? It looks like you have very nice deformation and are able to pull the expressions without any corrective shapes. What would it take to set up a rig like this?

Do you paint weights to each section? Like how you pull out the top of his brows and push the inner one in so give him a nice brow squeeze shape. Are they're limits to the joint movement as if you make it so the joint can't move past a certain area so you know where the limit of his smile or frown is. This rig looks awesome for animation and I am definitely interested in seeing more.

Last edited by saynefox : 10 October 2010 at 12:49 AM.
  10 October 2010
Hey thanks for the feedback,
Kiel: I will try to do one more update of the facial rig before I send it out, hopefully I will get some of that stuff in.. I do have a UI for one of my other characters so it might be doubling up to get another UI in?
Boucha: glad you liked it, thanks
saynefox: The joints are parented under several layers of locators and groups. In terms of 'free floating' they aren't part of a traditional joint hierarchy like a spine or something where you see the 'bones' between the joints.
There are several meshes bound to different hierarchies. For example there is a copy of the head dedicated to the sticky lips, which is piped through to the main (rendered) mesh via a blendshape that is always on. Like wise the brow shapes, the blinks, and the general mouth controls.
Technically you could do it with clusters. One problem with clusters is that when you're painting them, its very easy to go beyond a weight of 1.
skinClusters have normalization so that is not a problem. If clusters are your preference there is collection of scripts called superToonFacialProcs.mel. Inside you'll find a function called skinClusterToCluster which will convert all the joints to Clusters.
In answer to your last question, the controls have no limits. From what I've seen animators hate limits. I try to bullet proof rigs as much as I can but if they put the brow in a pose that looks crap its their bad. haha

Just double checking that its version 2 of the rig you guys are watching. Sometimes its easy to miss updates on threads!

Please feel free to check out my website for a full rigging reel, I'm updating it all the time.
  10 October 2010
Right that makes sense. What do you use Python for? I'd like to get into this type of stuff. I've been using just blendshape facial rigs and I'm always frustrated that they're so incredibly limited with the facial movement. I've tried to push the shapes as far as they could go but I still find problems that require a lot of corrective blendshapes.

Would it be possible to make a tutorial in the future or share some tips on how to make a similar facial rig.

If you haven't already tried this on your rig, there is an awesome rig for the eyes that drives the eyelids whenever you move the eyeballs around. The lids follow the irises. It adds a lot of life to the characters facial animation without much effort. I think they call it squishy eyes or smart blinks.
  10 October 2010
Awsome Just wondering how you got the controllers/joints to follow the mesh when deforming? Did you use some kind of surface attach?
  10 October 2010
saynefox: I hope those questions were answered on your thread! Now that I've launched a website I think I could start creating some tutorials..

jornp: Thanks! There is a trick I used to get objects to follow a vertex.
1. select one edge. (on the character's face)
2. select edit curves > duplicate surface curve
3. create a pointOnCurveInfo node (with MEL type createNode pointOnCurveInfo; )
4. connect your new curve's worldSpace to pointOnCurveInfo.inputCurve (I dont have maya infront of me so might be slightly different attribute names)
5. connect a locator's translate to the pointOnCurveInfo.result.position

that locator should follow your mesh no matter how the mesh moves.
its a cheap Rivet basically. Though rivet gives you orientation too.

Last edited by andyLP : 10 October 2010 at 12:58 AM.
  10 October 2010
Very nice and intuitive looking facial Rig. Good video's too.

I might have missed the feature on your rig, but it looked like the bottom lip always moves along with the jaw. While this looks good on a rigging reel, I've always found it awful to animate with - especially when doing lipsync. The bottom lip rarely does what the jaw does, quite a lot of sounds are actually produced by them moving independently. I'd much rather animate by hand when I want them to move simultaneously, than counter animate whenever I don't (which usually is a lot more work and in my opinion counter intuitive and frustrating).

In my setup both lips are middled between the initial position and the movement of the jaw, with a control to override to position of the mouth as a whole (much like the control in front of the lips you have now). There's the option of having the lips separated exactly like your setup is now, but I never actually use it anymore.

This might be slightly less relevant for a monkey than it is for a human, but I assume you're trying to build a rigging system rather than just a rig for this specific model. A suggestion from primarily an animator's point of view.

I'm wondering how long it takes to weight paint a model such as this to get the results to be as good as yours, as it deforms really well. We're currently using curves as the primary influence objects for our facial rigs which do not seem to offer results as consistent as yours (due to interpolation between control points always varying slightly) but they're incredibly fast to manipulate and weight painting takes almost no time at all.

I'm also wondering if your rig has functionality to curve the lips inwards (or more outwards) to make shapes similar to an exaggerated 'p' or 'm'. This is something we're still trying to find a good solution for. Blendshapes would be the most straightforward way, but that would take additional handwork per character, and cannot be standardized into a rigging pipeline.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright ©2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 11:46 AM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.