Bertram's face rig


#1

Once again I’ve got a file buried in a thread on the Hash forums…here’s the project file for dissecting by anyone that is interested.

It is the face rig for my character Bertram (my avatar) from the eyes downward…I had to delete the project, action and audio file to stay under the file size limit here, so it’s just the model. This model is just the bones, no geometry, it’s meant to show how I added to the mouth rig that Victor Navone developed.

The width of the mouth drives the nostril flare, the cheeks and the ears. The lower lip can be worked independently of the jaw using a slider (so the character can say chew with his mouth closed). The “lower lip to jaw” slider is under the “jaw” section. The lip geometry bones are tied to the targets on the end of the mouth up/down bones using “translate to” constraints. To see them pull away, manipulate the “Lips I/O” slider.

There’s also some eye tracking bones for the eyelids so they follow the eye naturally. I have a few bones co-located, so they may be harder to see. There are four eyelid bones co-located for each eye, the pucker bones for upper and lower lips are co-located, the cheek and ear bones are co-located and the mouth up/down bones are co-located with the mouth l/r bones.

Everything is run using sliders except for the eye target.

For the file including the Action and audio clip, it’s in the thread located at http://www.hash.com/forums/index.php?showtopic=10202&st=15. It’s free to register for the Hash forum…you’ll need to be registered to get there. The animation is also in the thread, both are on the second page.


#2

I just wanted to thank you for the post.
I hope to learn something new from it. :thumbsup:


#3

Not a problem Vegan, this rig is sort of a branching out from Victor Navone’s mouth rig…used on his Big Bang project. There is a downloadable example of Victor’s setup on Shaun Freeman’s site here. I used the mouth rig that Victor came up with as a base for the rest of the face movement. Up to this point I have only seen Victor’s rig used for characters that don’t have teeth…this setup is my solution for that as well.

    The file on the [Hash forum thread](http://www.hash.com/forums/index.php?showtopic=10202&st=15) (if you haven't registered, go [here](http://www.hash.com/forums)) has an audio file and an Action file for the test animation that is there. Also on that thread is a zipped up web page that has further illustration of how the rig works. I would have posted it here, but, the size limit is around 100k. I think the zip file is close to 300k, not very big, but too big for here. The face rig zip is called "newfacebones.zip", the explanation zip is called "Bertramfacerig.zip" and the finished animation is called "0109render.zip"...all of them are on the second page of the thread.
 
 Here are a couple of animated GIF's of the rig at work:
 [](http://www.cgtalk.com/attachment.php?attachmentid=64139&stc=1)

#4

Only one post ? ( from myself ? )

C’mon folks … you could at least say thanks.:smiley:

What I’m writing about today is that I finally tried to unzip the file and figure out the rig for my own personal character.
When I do so, the file says it is currupt and to re-download the file ( which does not fix the problem BTW )

Is anyone else having this problem ?

Thanks again itsjustme.
Sorry for taking so long at this .


#5

If anyone has a problem with the file, it works fine from the Hash site.

That’s an impressive animation test you have there as well itsjustme. The lip movement is very convincing.

Thanks again for all of your hard work.


#6

Thanks for checking out the rig and animation, Vegan. I’m pretty sure most people download a lot of things to check out later. I downloaded the file in this thread and it worked fine for me, but I have had the same experience before…not sure why it happens. I can upload it again here if necessary.

Since I last posted anything about the rig here I have added the CP weighting information that I used on Bertram’s face in the two attachments named “newbertramfacerig1.zip” and “newbertramfacerig2.zip” that are on the second page of the the Hash thread (I ran into file size limits there as well). I have updated the downloadable model to include the forehead setup that I used…it’s an unusual method incorporating surface constraints. The updated model is the “newfacebones3.zip” on the third page of the thread. There is a simple example of a surface constraint in the “surfaceconstraint.prj” on the third page as well.

I also have an irismap Script-Fu on the first page of the Hash thread for making iris’ in GIMP…that script is the same one on the CGTalk forum in this thread in case anyone with GIMP missed it (things tend to get buried…incidentally, I made Bertram’s iris’ using the script).

Critiques are always appreciated.


#7

Just FYI, lots of people have already DL’d this from the Hash site. I’ll say thanks, because I’m going to be checking it out for sure.

This is really the best way to learn AM stuff IMO - from people who share via tut or file what they have learned…so…

THANKS!

:love:


#8

itsjustme - I looked at this project file and it looks great - except I have no idea how to translate this to my own model :cry:

Do you have any plans to write a tutorial on how to build this for your own model, or how to modify it for use? I see HOW it works by sliding the posers, but to actually build one is way beyond me at this point.

I realize it’s probably a lot of work to write that up, but can’t hurt to ask!


#9

Hmmm, the second page of the thread has two zips (“newbertramfacerig1.zip” and “newbertramfacerig2.zip”) that might shed some light on it for you, but that’s not a full-fledged tutorial. I’ve been pretty busy, but I’ll see what I can do…no, it never hurts to ask.


#10

I took a look at the rig today… whooooa … very complex.

I have so much too learn.

If I just …cheat and buy The Setup Machine, does TSM have anything like this ?

Thanks


#11

I don’t think there is anything for the face at the moment like The Setup Machine…but, they are working on one called “The Face Machine” at Anzovin.

I’ll try to break this one down in a tutorial though…it’s just a lot of bones, the concept isn’t so hard.

Victor Navone made a rig for controlling the mouth that had bones specifically for the left/right movement and bones specifically for up/down movement (the up/down bones were children of the left/right bones) with the origin of these bones starting at the center of the head and each up/down bone located in exactly the same spot as its’ parent left/right bone. He then made poses that defined the maximum movement for each bone…the 100% setting for say maximum left and the -100% for right, as an example. Then he made poses that were combinations of those poses…moving the pose sliders as needed for say a smile so that 100% of “smile” would be the various percentages of the other sliders to accomplish that pose.

Victor’s rig then uses CP weighting to get the falloff necessary with the up/down bones being tied to the geometry. What I did instead was to put a target on the end of each up/down bone then made bones for the mouth geometry that have “translate to” constraints tieing them to the targets on the up/down bones set at 90%. Then, the geometry bones are children of a pucker setup that pushes the lips outward, one for the upper lip, one for the bottom and a parent that moves them both.

On the mouth corners up/down bones I put a second target as a child bone in the cheek area so that the corners of the mouth moves them. I then put bones for the nostrils with “aim at” constraints pointing them at those targets. These nostril bones drive the cheek bones and ear bones as well as the remaining nose bones. I also put in bones for the jowls that have “aim at” constraints tied to the same targets as the nostril bones.

The pucker mechanism is a bone that is set to scale itself smaller on the “Z” axis when the pose is at 100% (one for the upper one for the lower and one that is for both), on the end of that bone is a child target that moves outward from the mouth when the bone is scaled smaller. Inside the mouth is the parent bones for the upper and lower lip geometry bones…these have “translate to” constraints on them that translate them to the targets on the end of the scaling bones (with an offset on them) so that when the scaling bones scale smaller, the target bones move outward and the parent bones of the upper/lower/both lips move outward.

The lower lip up/down and left/right bones also have a percentage pose that puts an “orient like” constraint on them tieing them to the jaw…the mouth corners are tied at 50% with the rest of the lower lip tied at 100% when the pose is set to 100%.

I hope that make it a little clearer…I’ll try to put together a tutorial so that it’s laid out a little better. I haven’t tried it, but, I don’t see why the rig couldn’t just be put into another model and adjusted to make it work. I’ll have to see how difficult that would be, hopefully it’ll be easier than making from scratch. Although I don’t think making it from scratch would take a prohibitively long time.


#12

Well, clear as mud! :wink: Seriously though - maybe that isn’t complex to you, but to a newer guy like me…wow. I guess I undestand the theory. Anyway, I’ll keep my eye on this thread to see what you come up with. I’m still learning so this is a ways off for me anyway to be honest.

Appreciate your sharing though, it helps everyone out.

Tom


#13

Thanks for the extra info. Can you please post an image of your face in bones mode with the face shaded. ( Or did I miss it somewhere ? )

… Groovy …:slight_smile:


#14

Here’s the bone mode image Vegan, but it doesn’t give you very much information. The CP weighting information that is in the attachments named “newbertramfacerig1.zip” and “newbertramfacerig2.zip” that are on the second page of the Hash thread would probably help more. After you unzip both of those files to the same folder, open “riggingface.html” in your internet browser.

Pixelmech, it’ll get clearer…there’ll be that “lightbulb moment” when it will click. Tear it apart then try to duplicate portions of it and you’ll understand it better. The first part is to make bones that go to each CP on the mouth originating from the center of the head and mouth (name them whatever_lr), then duplicate each of those bones with the duplicates in exactly the same place as the first set (name them whatever_ud), make each “ud” bone the child bone of the “lr” bone that is in the exact same place. Now, for each “lr” bone make a percentage pose with 100% being how far left the left side “lr” bones can go and how far right the right side “lr” bones can go (I put Euler limits on each so that that would be the only direction they could move) and then make the -100% settings how far the bones can move in the opposite direction. Then make a percentage pose that has all of the left side “lr” bones’ sliders set at 100% when that pose is 100% and all of them set at -100% when that slider is set at -100% (name that slider “leftside_width”), repeat for the right side and name that slider “rightside_width”. Then make a percentage pose that has both the “leftside_width” and “rightside_width” sliders set at 100% when the new slider is at 100% and -100% when the new slider is at -100% (name it something like “mouth_width”). Now you can widen the left or right or both sides of the mouth (or individual CP’s if it becomes necessary). Repeat this process with the “ud” bones, substituting up/down for left/right (I put Euler limits on them so they could only move up/down as well)…that gives you both up and down and left and right movement for the mouth and is the basis for the rest.

Once you understand how that works, put a target on the end of each “ud” bone as children of each “ud” bone. Then put bones in for each CP group around the mouth that you attach the actual geometry to…make these bones initially children of the head bone. Then, make an on/off pose where you put a “translate to” constraint set at 90% on each of the geometry bones to translate to each target. Then, to get the puckering/in/out movement of the lips, set up the system I described in my previous post:

The pucker mechanism is a bone that is set to scale itself smaller on the “Z” axis when the pose is at 100% (one for the upper one for the lower and one that is for both), on the end of that bone is a child target that moves outward from the mouth when the bone is scaled smaller. Inside the mouth is the parent bones for the upper and lower lip geometry bones…these have “translate to” constraints on them that translate them to the targets on the end of the scaling bones (with an offset on them) so that when the scaling bones scale smaller, the target bones move outward and the parent bones of the upper/lower/both lips move outward.

Set a mechanism like that up for the upper lip, then one for the lower lip, then make them the children of a mechanism that moves both of them…look in the rig file at the “puckerscaler” bone and it’s children for how the bones are parented, the “puckersetup”, “lips upper I/O”, “lower lip I/O” and “both lips I/O” relationships for how these are set up. Make the upper lip geometry bones the children of the upper pucker translating bone and the lower lip geometry bones the children of the lower pucker translating bone.

To tie the lower lip to the jaw, first, make a percentage pose for the mouth corners with “orient like” contraints on the corner “ud” and “lr” bones set at 50% tied to the jaw (with an offset) when the pose slider is 100% (name it “lipcornerstojaw”), then make another percentage pose with the lower “ud” and “lr” bones to “orient like” the jaw (with an offset) set at 100% and the “lipcornerstojaw” slider at 100% when the pose slider is at 100%.

The rest of the face movement is driven by the mouth setup…I added a target to each mouth corner “ud” bone and located them in the cheek area, made nostril bones set to “aim at” these targets, the cheek bones to “orient like” the nostril bones, and the ear bones to “orient like” the cheek bones…varying the percentages if necessary (the ear bones are set at an “orient like” of 24%). The jowl bones are set to “aim at” the same targets as the nostril bones.

Okay, I’ll stop…hopefully that gives you an adequate overview. For setting the “ud” and “lr” relationships, I wait until the geometry bones are in place and setup so that I can better determine what I want the limits to be. I’ll try to illustrate the process better in a tutorial, but this might be helpful until then.


#15

Thanks for posting the additional info! I’ll come back to this when I am further along. Right now I’m going “back to the woodshed” as nothing is working for me. I’m going page by page through David Rodgers book, hoping that will shed some light.

Cheers

Pix


#16

I haven’t looked at your rig, or downloaded it, but thought I would post and say thanks anyway. I don’t think I know enough to even think about understanding it :).

So thanks again,


#17

I like to say thanks also. Great work I will study your model and try to learn something from it.
Thanx again
Rogerio.


#18

Wheeeewww !! This is a lot of work !

A couple of questions : When you have a bone and set a contraint as its target, do you do it in an action, in a pose or in the choreography ?

Why do my bones all move over when I create an action or bring the model into a choreo. ?
I would understand if I had set up the constraints and did it wrong, but as of right now, I just have the targets and have not set anything up.

Also, how do you set a bone to be limited in one axis only ( u.d. or l.r. )

I plan to make my model less symetrical when this is all done. If I set up my rigging now before doing a change like this, it’s going to screw everythingg up right ?


#19

When you have a bone and set a contraint as its target, do you do it in an action, in a pose or in the choreography ?

In a pose.

Why do my bones all move over when I create an action or bring the model into a choreo. ?
I would understand if I had set up the constraints and did it wrong, but as of right now, I just have the targets and have not set anything up.

Did you set “aim at” constraints yet? If you set an “aim at” constraint, make sure you have “Compensate” on…toggle on the button that looks like two boxes stacked on top of each other with a third box at an angle from them. That will make the bones stay in place relative to each other.

Also, how do you set a bone to be limited in one axis only ( u.d. or l.r. )

Make a new on/off pose, select the bone you want to constrain and apply an Euler limit to it…make the other axes (is that plural?) you don’t want the bone to move in “0” and leave the axis you want set at -180 and 180.

I plan to make my model less symetrical when this is all done. If I set up my rigging now before doing a change like this, it’s going to screw everythingg up right ?

Yeah, leave the rigging until you’ve got the model like you want it.

Hope this helps, Vegan.

I’m going to be putting together a tutorial…I’ve been without my main computer for a week, but, I’ve got it back now. So, hopefully I’ll get one put together shortly.


#20

I could just take your entire setup and stuff it into my models face by scaling it around I suppose.

Would this work ?

Actually, I 'm trying to learn though by taking this step by step and copying what you have done.
I started with the mouth u/d l/r bones and am now moving on to the eye bones.
Since my model is a female without a drooping jowl, I have left those bones out for now. ( should I still add them ?)

I’m hoping to get thet ‘light-bulb moment’ … but I’m still not sure what the hell I’m doing yet though…:smiley:

Perhaps in the next tutoruial you could create a super simlified model with less bones.
The amount of bones and constraints in this current model is staggering.
Another thing that would help us noobies would be a simlified expaination of what the constraints do. Perhaps you could put up a visual explaination of what certain constraints do in .gif form.
(The lip pucker pose .gif that you posted is a good example )

BTW What does a ‘scale like’ constraint do ? I know you are not using them in this model, but Im curious.

Thanks for all the hard work.