PDA

View Full Version : Help with bone driven facial setup PLEASE!


timkallok
11-19-2005, 11:22 AM
I am having some problems with my facial rig, mainly the mouth. This is how I set it up:

- 4 Chains of bones, consisting of 4 bones each, starting from the corners of the mouth and ending at the upper and lower lip making it so there are 2 chains that make up the upper and lower lip. There is also 1 bone placed above the upper lip and below the lower lip, which the 2 chains are parented to. The bone above the upper lip is parented to the head joint and the bone for the lower lip is parented to the jaw.

- 4 Linear CV curves with the CVs snapped to the joints and controled by clusters. 16 clusters in all.

- 8 controllers, one for each of the corners, one in the middle of the upper and lower lips and the others between those and the corners.

Each of the clusters are parent constrained to one or more of the controllers and the controllers are in turn parent constrained to both the top and lower lip bones. I set it up this way so that when the jaw is opened the mouth with automatically stretch correctly.

This is where I am having the problem. I am having trouble constraining the joints correctly to the clusters. I want the joints to rotate correctly and point towards the child joint and cluster. This is what I tried already:

First I oriented the joints so that the y axis points down the joint and the z axis is the up. Then I point constrained the joints to the clusters directly above the joints.

I created 2 locators for each of the corners and oriented them to the corner joints. then I moved them up in the z axis. Then I aim constrained the joints so that they would aim to the cluster above its child joint. I made it so that it would only constrain the x&z axis and made the locator the world up object.

Now when I rotate the jaw or even move one of the controllers, the joints rotate erradically and rotate exponentially down the chain. They achieve the correct position, but are not correctly aiming toward the child joint and if I bind the skin, it will badly twist the geometry.

I would really appreciate if anyone could help me solve this problem. I am kind of new to advanced rigging techniques, so bear with me. If you need to see the scene file, I can email it to you. Thanks a bunch!

- Tim

ruukki
11-19-2005, 01:36 PM
... I'm not much of a help. But wouldn't it be easier to set up a key driven blend shape? Just an idea, you'll probably want to use bones, judging by the amount of work you've put into it.

- H. Ruukki, the typer of redundant messages -

donShole
11-20-2005, 10:23 PM
Not sure if this helps, look here:
http://www.dirtyoldtoon.com/tutorials/LipTutorial_01.htm

timkallok
11-21-2005, 08:07 AM
Thanks Don, that is one of the tutorials I referenced, but for some reason the constraints aren't working correctly together.


Yeah, I actually wanted to stay away from blend shapes, I dont really want to model every expression. I have done it in the past but I found it a little too limiting, so I wanted to try something different this time.

utpal
11-22-2005, 05:39 AM
hey man,
i too, would like to learn more about joint controlled facial rigs. i have been trying to figure it out for some time now, but without much success.
hope you find some solution... i will keep checking back.

there's one forum whose link i found in some other thread yesterday

http://www.creaturetd.com

hope it helps

MasonDoran
11-22-2005, 08:42 AM
We do joint facial rigs all the time for our real time characters...but we dont use curves or clusters to do it. It is actually very simple setup and we can get a lot of control with 20 or so bones on the face.



1. Setup your joints on the face as u want...do not parent them to each other or the head joint.

2. Group each joint to itself to put into a null (you will animate/key the null and NOT the joint).....and move the pivot point of the null to where u want the joint to rotate from. Example...eyebrow and eyelid joints should rotate from the pivot point of the eyeball joint. Jaw could be from the head joint....and cheek joints would be translated and not rotated.

3. Optional, but recommended to parent the entire face rig to itself...and put a parent constraint of that null to the head joint...

4. you can then of course add control objects to the nulls or use custom attribute sliders on your head control.


btw. i dont know your rig....but if joints are rotating out of wack....its a contraint problem. To fix it, either change the rotation order of the joints, or change the method of constraint calculation (its in the channel box of the constraint). Chances are, if you do in the method i proposed above, you wont need to use any constraints...making it a faster rig.

Aim constraints are finicky becuase of the up axis ...avoid them when you can

seven6ty
11-22-2005, 05:14 PM
Why wouldn't you just parent your face joints under the head joint?

timkallok
11-23-2005, 03:19 AM
Thanks for the help guys, Im going to play with it a little more and see how it goes.

ruukki
11-25-2005, 03:09 PM
Why wouldn't you just parent your face joints under the head joint?

Hi, I suppose parenting under head joint would make it harder because then you couldn't fix the pivots of the facial joints the way you want them. The null groups in between give you freedom to move the pivots anywhere you like outside the joints. At least I suppose so. The bone connecting the head joint and a facial joint seems to me to be a limiting factor... am I right?

CGTalk Moderation
11-25-2005, 03:09 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.