Facial Rigging: Corrective & Contexual Shapes

Become a member of the CGSociety

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

THREAD CLOSED
 
Thread Tools Search this Thread Display Modes
Old 03 March 2013   #1
Facial Rigging: Corrective & Contexual Shapes

Hi there,

I'm getting into facial rigging and was wondering what people's methods are for handling corrective and contexual shapes.

I know stop staring has a buffer network for this but adding shapes into it is so utterly painful and time consuming and there's no shelf button to do it.

There's got to be a better way. And there's nothing on the internet about it that I can find so I'm royally screwed as far as learning to rig faces go unless someone can help me out.
 
Old 03 March 2013   #2
by "corrective" in this case you mean "a third blendshape that fixes a mix between two other blendshapes"? It's a pretty basic setup in essence, and the rest highly depends on how you want to rig faces in general. If you rebuild it all by script, where left/right side blendshapes are separated automatically as a final step of a setup, your tools will differ from the guy that assembles it all by hand.

If all you want is a shell button that creates corrective C for blends A and B, then all the button has to do is:
* take neutral shape
* apply blendshape to it with A, B, and corrected AB blend as targets; set A and B weights to -1 and AB to 1
* resulting shape is what needs to be plugged back to main blendshape node
* setup activation graph : weight(C) = weight(A)*weight(B)
__________________
Victor
ngskintools.com - skinning plugin for Autodesk Maya
 
Old 03 March 2013   #3
Hi Victor,

Thanks for the information.

Can you elaborate a bit more on the activation graph, I'm not quite getting what you're saying to do

Thank you


Also how do I make one shape dominant over another? Eg if I plug in UpperEyeClose and LowerEyeClose they'd clash, so when I use them both LowerEyeClose would be dialed down as UpperEyeClose is dialed up.
 
Old 03 March 2013   #4
well, you want your C weight to be automatically activated by A and B weights, for example:

A:0, B:0 -> C:0
A:1, B:0 -> C:0
A:0, B:1 -> C:0
A:1, B:1 -> C:1
A:1, B:0.5 -> C:0.5
A:0.5, B:1 -> C:0.5
.. for the rest, I'm not sure, but i find that this works fine for me:
A:0.5, B:0.5 -> C:0.25 (just because it transitions well into A:0.5, B:1 -> C:0.5)


in short, this means that you take a multiply divide node, connect A and B as inputs, and connect the result into C.

The other formula you could try is C=min(A, B). Then you'd have similar values at extremes, but different in intermediate values:
A:0.5, B:0.5 -> C:0.5
A:0.5, B:0.7 -> C:0.5
A:0.3, B:0.2 -> C:0.2

But it could feel a little more "bumpy", as corrective would be activated/deactivated suddenly, e.g. watch C value as A changes:
A:0.2, B:0.5 -> C:0.2 (multiplication would be: 0.1)
A:0.3, B:0.5 -> C:0.3 (multiplication would be: 0.15)
A:0.4, B:0.5 -> C:0.4 (multiplication would be: 0.2)
A:0.5, B:0.5 -> C:0.5 (multiplication would be: 0.25)
A:0.6, B:0.5 -> C:0.5 (multiplication would be: 0.3)
A:0.7, B:0.5 -> C:0.5 (multiplication would be: 0.35)

Multiplication gives lower corrective values, but smoother transitions.
__________________
Victor
ngskintools.com - skinning plugin for Autodesk Maya
 
Old 03 March 2013   #5
Originally Posted by JaredTaylor: Also how do I make one shape dominant over another? Eg if I plug in UpperEyeClose and LowerEyeClose they'd clash, so when I use them both LowerEyeClose would be dialed down as UpperEyeClose is dialed up.


I would not mix that together with corrective graph setup. Get your blends ready and mix well together, then when you're setting up control layer, deactivate lowerEye as upperEye is activated, which in pseudocode would be

lowerEyeWeight = lowerEyeControlValue*inverse(upperEyeWeight)

That's, obviously, if you just want what you wrote - "LowerEyeClose would be dialed down as UpperEyeClose is dialed up". Most probably what you want is lowerEyeClose dialed down as upper lid starts touching lower lid? It's then a much more complicated setup

Shorter explanation would be - the less automatic adjustments, the better. Trust your animator to animate what makes sense.
__________________
Victor
ngskintools.com - skinning plugin for Autodesk Maya
 
Old 03 March 2013   #6
Thanks so much! This is really, really helpful to me

Will let you know if I run into trouble. I got bored of connecting all my blendshapes to controllers so currently writing a script to do it for me, so will be a little before I give it a go.
 
Old 03 March 2013   #7
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
 
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
CGSociety
Society of Digital Artists
www.cgsociety.org

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

All times are GMT. The time now is 09:07 AM.


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