CGTalk > Techniques > Character Rigging
Login register
Thread Closed share thread « Previous Thread | Next Thread »  
 
Thread Tools Search this Thread Display Modes
Old 03-06-2013, 11:09 PM   #1
JaredTaylor
Technical Artist
 
JaredTaylor's Avatar
portfolio
Jared Taylor
Wellington, New%2BZealand
 
Join Date: Jan 2007
Posts: 1,230
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-07-2013, 05:08 AM   #2
uiron
neglostyti
 
uiron's Avatar
portfolio
Viktoras Makauskas
Lithuania
 
Join Date: Jun 2005
Posts: 600
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-07-2013, 05:26 AM   #3
JaredTaylor
Technical Artist
 
JaredTaylor's Avatar
portfolio
Jared Taylor
Wellington, New%2BZealand
 
Join Date: Jan 2007
Posts: 1,230
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-07-2013, 05:44 AM   #4
uiron
neglostyti
 
uiron's Avatar
portfolio
Viktoras Makauskas
Lithuania
 
Join Date: Jun 2005
Posts: 600
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-07-2013, 05:52 AM   #5
uiron
neglostyti
 
uiron's Avatar
portfolio
Viktoras Makauskas
Lithuania
 
Join Date: Jun 2005
Posts: 600
Quote:
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-07-2013, 06:12 AM   #6
JaredTaylor
Technical Artist
 
JaredTaylor's Avatar
portfolio
Jared Taylor
Wellington, New%2BZealand
 
Join Date: Jan 2007
Posts: 1,230
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-07-2013, 06:13 AM   #7
CGTalk Moderation
Lord of the posts
CGTalk Forum Leader
 
Join Date: Sep 2003
Posts: 1,066,481
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.
__________________
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
 
Thread Closed share thread


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 02:10 PM.


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