First time joint based facial rig

Hey guys, looking to get some feed back on a facial rig I did. All joint driven, no blend shapes of any kind. Looking for both positive and negative feedback on what I can do to make it better. So feel free to nit pick it to death, just be specific so I know what the problem is any how to fix it:

http://www.haffnertd.com/DHaffner_Facial_Rig.zip

Hey Dan, I took a quick look at it and found some notes that may help you out.

[ul]
[li]When you move the eyes around, often it’s nice to have the lids react to the way the eyes are moving to give a nice effect there. I couldn’t find any controls to move the eyelids individually so at this point there is no way to have the lids follow the eyes and you’ll just have the eyeballs moving independently.
[/li]

[li]On that same note, either individual eyelid controls on your secondary ctrl level or attributes on the blink controls to move each eyelid separately is huge.
[/li]

[li]An attribute to switch between the Master_Eye_CI either following the head as it moves or remain in worldspace.
[/li]

[li]A lot of your predefined shapes, such as the corner movement on Mouth_ShapeCtrl for example, are very limited. I’d probably push those about 3-4 times that far, that way the animator won’t be limited and can exaggerate if they need to.
[/li]

[li]If you’re not bound by a specific joint count, it works better in my experience to have three eyebrow joints. Inner, mid and outer. That way your not limited and can really make those difficult shapes if you want to.
[/li]

[li]The weighting on your cheek joints is probably a little too heavy towards the ears. It’s nice to be able to get a nice rounded cheek when you pull those out to get good blow shapes, or vice versa for a suck shape. Right now it moves too much in the back and kind of looks odd.
[/li][/ul]
Overall it’s pretty solid. I like the way you have a secondary layer of controls. I like the choices on joint placement for the most part. You’ve got all of the major spots covered, just a few tweaks needed here and there. Hope that helps a little. Let me know if you have any questions. I’ll try to take a longer look at it a bit later.

I was only allowed to use 35 joints total with no blendshapes. This was for a an art test which I didn’t pass, and I didn’t get any feed back to why it failed, so trying to improve on it and get feed back from others on how to do better.

I will make the changes and repost, if you don’t mind taking more looks at it to help me get it to be where it is a nice quality facial rig.

Gotcha.

You could probably lose the second nostril joint and use it for the third eyebrow joint. The mid jaw joint you probably don’t need either. It’s useful if you can spare one sometimes, but I’d much rather have it somewhere else personally.

Same with the neck, if your limited to 35 I wouldn’t have two neck joints myself. You could have one neck control and then a control on your head joint instead.

Your “endJawJoint” could be the chin joint, as it’s in a similar place and doesn’t get used on the jaw itself anyway.

The eyelid joints in my experience work best when they’re placed almost on top of the eyeball joint so the eyeball, top and bottom lids all pivot from almost the exact same place.

You’ve two ear joints but don’t seem to have any controls on the ears. In a limited scenario like this you’d be better of using them as something like outer cheek, then you could move your upper cheek joints inwards towards the nose a little and put an outer cheek joint below the outer corner of the eye. Ear joints are nice but your ears really dont move that often compared to other places.

If you were to add a third brow joint in the middle, I’d move the inner more towards the center so you get more influence near the top of the nose, and the outer one more out towards the outer brow so you cover more influence overall.

From a general rigging standpoint, you’re hierarchy is a bit messy. It’s good practice to not have any nodes in your joint heirarchy except for joints and constraints. Keep it clean by having all the controls and everything in a separate hierarchy and connect it with constraints.

Shame you didn’t get any feedback about the test, that’s frustrating. Hope this helps anyway, and good luck on the next one. :slight_smile:

Wow, thought my hierarchy was really clean, I am crazy OCD about that stuff, using group nodes to keep joints organized is bad practice?

It’s clean in the sense that it’s well organized, but you’ve got mesh nodes and controllers in the same hierarchy as your joints. I’ve worked with guys where that was a real big red flag so they kind of beat it into me to never do it.

Also, transform nodes in the hierarchy for organization isn’t so bad, but those nodes have their own pivots and transform values so you risk them getting moved or rotated and screwing up your stuff. Just have to keep track of it and make sure to keep it clean and under control if you do that way.

I normally constrain all my controllers to joints, but there were cases on the rig I need the controllers in the hierarchy with joints cause I needed the GUI controls to move the groups, which moved the controls, which moved the joints. So in that sense, is it still wrong to do? Or should I have just constrained the living hell out of everything so that way all the controls are in one group and the joints are all in another?

There’s always a way to do it without putting anything but joints into the joint hierarchy. Even if that costs you a lot more constraints and a seemingly more complicated “rig”…it’s still better. Constraints and transform (group) nodes are very inexpensive so use as many as you need to keep it clean.

hey dan, I tried to download your rig but I keep getting an error every time I click on it. Did you remove it off?

I have a few things to add to what Jay all ready listed in his excellent feedback.

guessing this was for a game test?

  1. Head joint location!!! - warning, danger:) no ones head rotates from the middle of their throat.
    Upper_neck - rename Head, move it to be located at skull base near the bottom of the ear

animators can not animate and mocap can not map well to head that is in the middle of the throat/neck.

This replaces master head joint (it is not the mater joint since it does not control the jaw anyway (eye base would be better name if it were to remain)

Mid neck joint then can move up and become a real neck joint

  1. End_Jaw- Best to not to skin to end joints because they are there to just draw a visual bone most of the time, you could have all those weights painted on to one jaw bone instead of spread across two joints, that are then parented under the Upper_Jaw joint.

All that could be done just with Upper_Jaw and if you wanted, a junk end joint that would get removed on export to a game.

  1. More constraints vs. Controllers in the hiearchy, I would often agree with this but at the same time I would say that I think it is a bit unclear in how and why for Dan. In looking at this face, while you have a cleaned up hiearchy the point i think Jay was trying to make was, (if not sorry, I will just say its mine:) is that you need a “clean skeleton” that is seperate from your control hiearchy system and skeleton.

Example: your file can not be stripped down and exported to another program/game engine/ etc. because the skeleton and the control system are all in the same hiearchy. Mocap game engines or just trying to build a scripted system where all the controls are ripped out and replaced require a min. a solid, clean skeleton hiearchy separate from the Do_Not_Touch group.

  1. Nose/upper lip.
    The nostril joints should share lower weight with the upper lip joints since lip movement pulls skin up in to nose.

Right now weighting fall off is to hard on the nostril joints compared with nose tip.

  1. Jay got this one but I wanted to expand, the Cheeck weights-
    right now pulling it in /out collapses his jaw bone and cheek bone, limit its fall off to respect underlying skull

  2. back of head /skull /neck weighting, bend the head back, it should not crush the skull or break the neck, moving the joints as described above up and also moving them a little more to the back of the neck will help you achieve a much nicer and more realistic set of deformations. Be mindful of volume loss especially where bone is at the surface of the skin.

I will stop there , I hope it helps you out.
I liked your rigging reel, I found it the other day through a class mate of yours. Keep up the effort, the weighting and control layers, clean hiearchy, no relying on display layers for rig bits, not an overly complex set of osipa gui controls on screen are all great.

  • Mouth shape control was a bit hard to use, transition from L to R site was hard to control/sharp fall off between each sides movement.

bclark - Wow, thanks for the awesome post. Also, who did you go through to find my reel?
Carlo890 - try this link: www.haffnertd.com/DHaffner_Facial_Rig.zip

I found your link from Adrian Frank I think? I am not sure now, I just had your site up and then found this thread and went… oh I was just looking at your stuff…i will check out the face rig.

Hope the post was clear and useful.

It was, thanks. But after speaking with a friend of mine at Reel FX, who apparently has met you, Brandon Harris, suggested instead of going back and fixing everything that people had posted on the model I just did, to use a different model and start over from scratch, and make sure I hit all the points mentioned in the thread. I thought it would be better to go back and fix it all and post it up again with changes. What you all think? What’s the better thing to do? Cause you all took the time to give me awesome critiques, I wanted to go back and fix it, but he had suggested that it would be better to start a new project and to just hit all the points made, but on a new model, so I’m not posting the same one over and over. Thoughts?

Yeah often times its better and easier to start over, I am torn though in that part of a TDs job is fixing other peoples broken rigs even your own.

If it was me I would do both, I would set a time limit like 2 hours and fix as much as I could on the posted almost done rig and call it done. then start a new project from scratch with what I learned, expecting that it should both go faster and look better when done.

Agreed with Brad. Personally I’d start over but it’s smart to keep in mind while you do it that you very well might run into this same situation on a job where you can’t start over and have to make it work with what you have in a short period of time.

Since you’re creating a new skeleton, or at least modifying the one you have…it’s essentially starting over anyway. :slight_smile:

New model is always good because you get extra practice at skinning and joint positioning due to new topology. Plus it’s just more fun when it’s not the same thing.

Here are the two models I have to pick from:

Al Capone:

Or

Some elf dude:

Who is being textured: (Just the base texture, there will be spec, diffuse, skin shader, etc etc.)

Thoughts?

I vote the elf.

I went ahead and did Capone, joints are done and doing the weighting. The elf dude has better edge flow and with it being texture, the end piece will be a better showcase item, so I am doing Capone to get more experience before doing the Elf dude. I should have a file of Capone to throw up by tomorrow night depending on how the weighting goes.

Cool, good plan.