PDA

View Full Version : Best way to create blink blend shape


stoob
01-20-2010, 11:58 AM
A wink involves both eyelids meeting together in the center whereas a blink is just the top eyelid coming down. This blinking action causes problems in between where the eyelid blend shape often intersects with the eye.

Whats the best way to create a blink? Do two blend shapes, with one meeting half way and another completely down? Or is it purely a modeling issue?

Cheers, any help would nice.

CosmicBear
01-20-2010, 12:22 PM
If you watch a blink or a wink in slow motion you'll see that always both eyelids are involved even if ever so slightly.

I always set up separate controls for the upper and lower eyelids (blendshapes or fan-joints) and have one controller that allows me to control both at the same time and two separate controls that work on top of them so i can control the lids individually.

http://www.cosmicbear.de/img/ruby_eyes.jpg

stoob
01-20-2010, 12:34 PM
Cool, but do you have upper eyelids going completely down too?

CosmicBear
01-20-2010, 12:40 PM
The upper eyelid could go down all the way in theory, yes. With the individual sliders I could bring them down all the way but never do as I would - for visual reasons - always push the lower lid up a little bit as well.

stoob
01-20-2010, 12:41 PM
Ok, thanks for the advice :)

derik
01-21-2010, 05:43 AM
Hi stoob.
If the eyes are quite big in relation to the head , I normally don't bother with blendshapes. I just use joints.

The reason being that a blendshape interpolates in a linear fashion (straight line from point A to point B) and this will cause the lid to crash through the eye with a blendshape weight at 0.5.

When you use joints for eyelids , you will have to deal with some extra tricky smooth weights that has to be painted , and a little more setup time , but IMHO it is worth it as the rotating joints creates a nice arc as it interpolates. You might even need some corrective blendshapes attached afterwords , (if you cant get exactly what you want with joints alone) , but at least the joints will control the bulk of the movement.

Hope it helps
Derik

stoob
01-21-2010, 06:04 AM
Thanks derik, I was thinking there was something more to it, I'm sure Pixar uses joints in their eyelids as in blinks, it is mostly the top eyelid that does the work. I stood ages in the mirror trying to see this but I couldn't keep my other eye open enough to see it :surprised

I 'm guessing one joint per vertex line, so probably 3, one above the other using a SDK. I'll try this out on my more advanced models.

Cheers :)

andrewhake
01-21-2010, 06:38 AM
Rotating joints could actually be easier to deal with overall considering the amount of time it could take getting Blendshapes to work as needed.

And as already mentioned, in theory the eyelid should be sliding over the eyeball, joints just make sense in that case. I think you would have to use multiple blendshapes to really achieve a round eyeball blink properly.

Fan joints are a great way to do a lot of things, as there tend to be a lot of bits on characters that need to pivot around a specific point in a complex way.

Great info everyone! Hooray for cgsociety.org redesign! :bounce:

CosmicBear
01-21-2010, 10:23 AM
stoob, sorry, I wasn't very clear yesterday. I'm using joints as well instead of blendshapes. I'm only using blendshapes to pump the information into the main head.

I've one joint per vertex and have the main joints hooked up to the controllers via SDK and have the fan joints following the main joints via an expression.

it took a bit of fiddling with the numbers in the expression in the beginning to get an even movement but painting the weights was dead easy and quick and the percentage is easily adjustable as well later.

http://www.cosmicbear.de/img/ruby_eyes_02.jpg

stoob
01-21-2010, 12:05 PM
Great, very helpful :)

Remi
01-21-2010, 01:19 PM
I was going to come in and say the same thing Cosmic just said, I rig my head seperate and use a blend to pipe it into the main head. Keeps things clean and if you have to move the character large distances away from 0,0,0, it'll be less likely to break that way. Some good tips in here.

EightBit
01-22-2010, 03:36 AM
I was just reviewing an AD tut by Sheen from a few Siggraphs ago.
Looks pretty cool, maybe you'll find it useful.
In a nutshell, it goes like this:
Each of the joints for the upper lids is pointConstrained to a Locator which is attached to a motion path (follow option off). The motion path defines the downward movement of the eyelid and its u value is animated directly or hooked to a controller.
The other end of each motion path is at the bottom lid and its lowest CV is clustered. That cluster is a child of the corresponding joint which controls the lower lid. Wherever the lower lid joint goes, the bottom of the motion path will follow and the corresponding Upper Joint will always close to meet it.

stoob
01-22-2010, 06:56 AM
I hate using clusters on my mesh but this sounds like a great idea, I'll try it

CGTalk Moderation
01-22-2010, 06:56 AM
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.