PDA

View Full Version : Adding teeth/tongue to Blend Shapes


TBone2008
12-30-2009, 09:29 PM
Hi,
I have a character with phoneme blend shapes.
And models for teeth parts, and tongue (with existing blens shapes).
all which I want to move with the existing phoneme blend shapes.

- how do I add them ?

Dustin
12-31-2009, 05:04 AM
If the teeth are separate from the head, then you will want to probably use the connection editor or set driven key to automate the teeth/tongue moving the same as the corresponding blendshape on the head.

TBone2008
12-31-2009, 05:33 AM
thanks. and what if I want the teeth to follow the face model AND change position for one/some of the blend shapes ?

Dustin
01-01-2010, 08:11 AM
I am not entirely sure what you mean by change position. But for me, I typically parent constrain the top teeth to the head joint, and the bottom teeth to a jaw joint. I use the jaw joint to control the open and closed shapes. And then blend shapes or additional joints for wide/narrow mouth shapes.

If you use that in conjunction with the blendshape method, you should be get what you are looking for.

You could just skin the teeth like the rest of the model, but I prefer to use constraints because they calculate faster than skin clusters.

TBone2008
01-01-2010, 05:56 PM
and if I dont have joints for the head ? (ofcourse I can create one if needed.)
so far it's all blend shapes. can I constraint to a vertice (in the mouth area) ?

I guess the biggest issue for me would be since my blend shapes are very elastic, and let's say at "U" I need to move the vertices of the mouth or shape them diffrently, on top of following a bone (for which I can create a bs, or move vertices), but I don't know how to make it that it will do so in conjunction with the "U" blend shape of the face...

Dustin
01-02-2010, 02:59 AM
By no joints in the head, do you mean no jaw joint? If you don't have a jaw joint, I would highly recommend adding one. Painting weights for a jaw joint for opening and closing the jaw will save you a lot of work. Also, joints are usually preferable to blend shapes for anything that moves in an arc, like a jaw. Having a jaw joint will also give you something to attach the bottom teeth and tongue to.

I highly recommend that you pick up Stop Staring by Jason Osipa. It is pretty much the bible on facial animation from a technical point of view. Rather than creating a ton of blend shapes for each letter in the alphabet, you just have basically 4 shapes: wide/narrow and open/closed for the mouth. From that, you can add some specific blend shapes for letters like "f", "m", etc.

With a wide blend shape and narrow blend shape for the mouth, plus the addition of a jaw joint for up and down, you will find you can make almost every mouth shape for dialogue.

TBone2008
01-02-2010, 03:46 AM
I took your advice and purchased the book, thanks.

one more question - if I want to have a specific blend shape I create on the mouth to activate (slider from 0 to 1), when a specific blend shape of the face activates from 0 to 1,
any idea how I'd do that ?
(ex. mouth goes "M", teeth get wider.)

Dustin
01-02-2010, 03:23 PM
If I understand you correctly, you want to have the teeth get wider as the mouth gets wider. That is pretty easy to do if you use the wide/narrow method. You will have a blendshape for the wide and narrow for the face, so you would have a corresponding wide and narrow blendshape for the teeth.
Once you have that, you can use the slider for the mouth blendshapes to drive the same slider for the teeth using the connection editor or set driven key or whatever.

TBone2008
01-02-2010, 05:27 PM
cool, thanks !

kretin
01-02-2010, 10:44 PM
Hi,
I have a character with phoneme blend shapes.
And models for teeth parts, and tongue (with existing blens shapes).
all which I want to move with the existing phoneme blend shapes.

- how do I add them ?
There are a number of other ways to do this. The top teeth shouldn't move, except with the head so you can parent those to the head bone. To include the lower teeth and tongue, they could be:
1. Pinned to a polygon at the bottom of the mouth using DJRivet
2. You could create blend shapes for them and drive the new lower teeth and tongue blend shapes with the same controls that control the existing phoneme shapes.
3. As a continuation of step 2, you could group the head, teeth and tongue and create a single set of blend shapes for the group which includes all the individual elements of the face that move.

TBone2008
01-03-2010, 09:15 PM
great ideas, thanks. I was coming to same conclusions regarding blend shape of face and blend shape of teeth moving together. how would I do so (that they'll move togehter), if I want to use the blend shpare sliders ?

Dustin
01-04-2010, 03:19 AM
To move the teeth to match the head if you decide to go the blendshape route (instead of a jaw joint), you will have to duplicate your head and teeth, and create blendshapes for both the head and teeth at the same time so they line up.

I still highly recommend you use a jaw joint, here's why:
-with a blendshape, they calculate straight, so if you are wanting the mouth to open, you will not get a rotation, it will be a straight movement from open to close, no arc.
-you won't have to create blendshapes at all for the bottom teeth, they will move with the jaw naturally.
-with the jaw joint, you can rotate and move the joint at all types of positions and angles, which would cost you several blendshapes for both the head and teeth. eg. rotating the jaw at from side to side, up and down, or jutting the jaw forward and back.

You are better to have one joint rather than a minimum of 6 blendshapes to do the same thing. It's a lot easier to paint weights for one joint than to generate the number of blendshapes to do the same thing.

TBone2008
01-04-2010, 11:34 PM
- how I'd make that a phoneme blend shape slider will move the new coresponding lower teeth
blend shape (by using the phoneme slider..) ?
I do not use controls for the phonemes other than the blend sliders.

Dustin
01-08-2010, 06:18 PM
Just use the connection editor if it's a straight one to one connection. You can also create an SDK, expression, use the hypershade/hypergraph with nodes, etc if the values don't correspond where 0 = 0 and 1 = 1.

CGTalk Moderation
01-08-2010, 06:18 PM
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.