PDA

View Full Version : Journey to the center of my face (rigging using joints and curves)


ragdoll
01-10-2009, 12:01 AM
greetings fellow CG'ers! im starting this thread to share what i've experienced (and still learning from it since it's still on going) with facial rigging that's not blendshape driven. a few months ago, i posted a topic comparing a blendshape driven face with a joint driven face setup and noticed a few fellow students were also interested. this is a continuation of that but a bit more in depth for those of you who want to follow along this path.

so sometime around winter break, mid december, i started working on this face rig of mine for my final senior project due this may. i've tried jason osipas face rigging setup using blendshapes before and it worked out great! this time around i wanted to explore a bit more with a joint driven face rig and tried Chris Fram's tutorial (http://www.dirtyoldtoon.com/tutorials/LipTutorial_01.htm) along with Warren Grubb's Delgo tutorial (http://highend3d.com/maya/tutorials/character/276.html). Specifically in the beginning phase, i stuck with Chris' tutorial down to the last page, then i thought to myself, why stop at the lips when i can do the same for the whole face?! so i did just that and added joints for the other parts of the face. and this is what i ended up with http://i103.photobucket.com/albums/m160/ragdollbeast/1.jpg http://i103.photobucket.com/albums/m160/ragdollbeast/2.jpg
yes i know...ZOMG! WTFafljkasdlkfjasfkj! is all that? and i'll be like, well i want it to be as flexible as possible so i kinda went all out...

so there i was, deep in the jungle of my models face...painting skin weights (and by painting i mean using the component editor) in unknown territory. as i went on further with the skinning, i soon realized how much of a nightmare this setup was! first of all, there is no mirror weights button for this! the lips setup is sensitive to that button! secondly was the number of joints! i painstaikingly weighted each point to all the joints that might affect its movement, on one side...and then did the same to the other!!! if you're a veteran at this whole face setup and have found work arounds to speed things up, please don't laugh at me. around this point i was very sad and hated myself. i was seriously about to ditch the whole joint rig setup and restart with jasons blendshapes instead. but since the whole point of this project was to tackle a joint based face rig setup, plus the fact that i made a promise to myself that i won't be sad or hate myself...i forced myself to stick with it and weighted on...constantly changing the rigging and then re weighting! and here's the result... http://i103.photobucket.com/albums/m160/ragdollbeast/3.jpg
it actually works rather well, and the deformations from the joints creates a really nice flow of edges. the downside of this setup is also due to the joints, you have to be really careful with where you move it or else it will flip out! that was something i was willing to live with, but overall i wasn't very happy because of that problem. it became more apparent when i started to use the lip roll control. http://i103.photobucket.com/albums/m160/ragdollbeast/5.jpg http://i103.photobucket.com/albums/m160/ragdollbeast/6.jpg

http://i103.photobucket.com/albums/m160/ragdollbeast/8.jpg

some desirable results from the lip roll in, but not very pleasing with the lips out. my choices were to find other options around the cons or just stick with it and try to use Mcomets PSD where ever i can. now there's nothing wrong with Mcomets script, it's actually wonderful and i secretly thank him every night before bed time for sharing such a great plugin! but i wanted to avoid fixshapes as much as possible and just stick with the controls and its normal weighting. why? for starters, it's a face. i want it to be as flexible as possible, plus the fact that you're moving around joints constantly to get the expression you want isn't very ideal for fixshapes either. there might be other solutions out there that i might have missed, but overall i decided to avoid using fixshapes as much as possible on this setup.

so, i was willing to scrap the whole thing (and by scrap i mean set it aside in my external hd) and start all over. the new approach was to implement more of Warren's tutorial, but still keeping Chris' for the lips area. and the end result is a much more robust working face rig! http://i103.photobucket.com/albums/m160/ragdollbeast/11.jpg http://i103.photobucket.com/albums/m160/ragdollbeast/12.jpg
http://i103.photobucket.com/albums/m160/ragdollbeast/13.jpg


not to mention that it's a bajillion times easier to weight compared to the joint driven rig i had. there's still no mirror function but as long as you have nice edge flow on your model, then half the battle is already done (i won't say "won" since there are no winners in a war)

the setup is made up of the joint rig for the lips, which is skinned to a set of curves on the lip area, which is then blendshaped onto a copy of those lips, which is weighted on the model! sounds complicated but it's really not. then for the crease areas, they're also made up of a similar setup to the previous joint setup i had, only using curves. with curves, it takes away any popping and flipping that i got from using joints plus the fact that it's a bajillion times faster to weight, makes it a much more favorable option, but you lose the nice edge flow deformation you get from joints. it's a subtle result and you really can't tell when you're just looking at the model on shaded mode.

i can say that i've really learned a huge amount of tools while doing this project, and i'm not yet done so i really don't know what other bumps or discoveries i might encounter later on. right now i'm working on the eyebrows, then will move on to the tongue, and finally setup the control sliders similar to Jason Osipa's but have it drive set driven keys instead of blendshapes. Hopefully the entire thing will work just as i want it to...and so far, the results i've been getting are really worth all the extra work! i'll keep this updated as i continue on. Wish me LUCK! i kinda need it. :D

-rj

mlefevre
01-10-2009, 01:32 PM
Interesting read, thanks for sharing!

Can't wait for more updates :)

NolanSW
01-10-2009, 04:15 PM
haha....oh that's right, not suppose to laugh.. :)..kidding.

I feel your pain RJ. Face rigging whether it's joints or blendshapes, it's a chore and tedious work. Having worked in games and having to rig faces with joints, I know all to well the problems.
You are right on about topology. It can be the difference between a hot knife through butter or fighting a hoard of locusts with a pee-shooter. I've never really had much success with using joint chains in the face. I usually keep them all as floating joints parented to one root joint such as the head. Also, there is a fine balance between not enough or too many joints I think. The more joints, the more skinning you'll have to do plus distributing the weights gets harder and harder. So I try to keep it on a medium level. Lips took me awhile to figure out. I use to place a joint in the middle of both to upper and lower lip but it made it impossible to weight. I broke up the lip into 4 quadrants. UpperRight, UpperLeft, LowerLeft and LowerRight. The corners of the mouth would get one joint and each quadrant would get 2 joints. Then the vtxs in the middle will say get 20% wieght from the head, 40% from the left and 40% from the right so there is a nice falloff.

If you care to take a look at my demo reel all the faces I did were with joints and the rig for Shreks face was 35ish joints if I remember correctly. The topology on him was amazing and I had fun getting some really nice shapes. However I fell in the same trap with him by having a joint in the middle of the lips.
-Sean

vvkonline
01-10-2009, 05:00 PM
hi there, I've done 3 versions of the face rig by now, all using joints, as with curves, from my tests I had few problems, for example if you rotate your head, geo. would be moving and flipping. But it works great if all set up is just on a separate head that you wouldn't rotate.

but for the most part I've worked on a rig where all joints be floating. It worked but I wasn't happy that you might not really maintain the shape of the head(skull)

I did try using geometry constraint as to simulate the skull. For the most part it works fine but there is some problems when you zero out your controls they newer go back to zero at first. I guess just nature of geometry constraint.

Last Rig basically is FK face rig, and I'm happy with it. It was straight forward to set up and painting weights, You can have larger controllers and more specific controllers and it's all in basic hierarchy, one thing that is cool is that things move on the arks and maintain skull shape. But I did add couple of blend shape for leap rolls, narrow, wide, smile, frown just to have it right :P oh and you can mirror weights.

ragdoll
01-21-2009, 06:20 AM
i got a bit caught up finishing up the rest of the body and only found some time to update this post today... :D anyway here's a link to a short demo of the face rig...one thing you might notice is the slow interactivity...it started slowing down when i applied the lip setup...which is made of curves that are bound to joints and the same set of curves are duplicated and blendshaped onto the duplicate which is then bound to the mesh as influence objects to get a really nice fall off...lol no wonder...but the flexibility i was looking for is indeed there and that's all that matters. ;)


http://www.vimeo.com/2904578

sorry for the poor quality btw.

vvkonline
01-21-2009, 06:43 PM
looks good, just hope it's practicle enogth, speed and all.

Polimeno
01-21-2009, 07:49 PM
pretty good man .


how do you save some poses ?

ragdoll
01-22-2009, 12:05 AM
Polimeno: if you watch the video you'll see a nurbscircle at the bottom of the headgeo. i just added attributes there with float vlaues of 0 to 1. it can be added anywhere really...just store the sdk's so that you can later drive them with expressions for the joysticks.



vvkonline: hmmm...practical for my project i guess since he's going to be a sort of universal character...as for speed, it playsback normally and interactivity isn't really so bad. :)



will i use this type of setup again? yes. but i'll probably take mr. nolans advice with the floating joints but still keeping some of the influence objs i found useful. :)


i'll keep this thread alive with some animation tests when i get to that point... :D

Polimeno
01-22-2009, 12:59 AM
Polimeno: if you watch the video you'll see a nurbscircle at the bottom of the headgeo. i just added attributes there with float vlaues of 0 to 1. it can be added anywhere really...just store the sdk's so that you can later drive them with expressions for the joysticks.


sounds interesting......can you show me more in deth ?

love to see how it works.

nottoshabi
01-22-2009, 01:11 AM
Nice journey you got your self into. I miss that about college. Great job so far. I'm not going to say much on this because I want you to figure out on your own. Joints are good but only use them if you need to move a particular part of the face. For example when closing the eye lid into a S form. As you have figured it out joints are a big pain in the but for the face. Curves, clusters, blndShapes and lattices are the way to go. Curves being controlled by clusters (be careful clusters double transform real easy). Curves are easier and faster to set up, plus the rig will work a lot faster. Clusters will do wonders especially since they set up real easy. Using the Stop staring set up is a reall good idea. Dont just stop there find a way to be able to tweek on top of that. Go on highend and find a tool that records posses. And use that to make your face shapes. Good luck to you. And keep up the good work. If you run into snags post we will throw you a life line.


@Snolan-> Good to see you still patroll these waters. Hope all is well on campus talk to you soon.

Polimeno
01-24-2009, 09:08 AM
other thing:


what about the lip curve in phonemes like F,V,E and U,Q ??

do you preset them using set driven key ?

or you can get the shapes on playing with the rotate of the controls ?



regards

ragdoll
01-24-2009, 05:43 PM
other thing:


what about the lip curve in phonemes like F,V,E and U,Q ??

do you preset them using set driven key ?

or you can get the shapes on playing with the rotate of the controls ?



regards

the narrow shapes like lip kiss/pucker or Oo shapes was a bit tricky to setup, i had to go in and SDK the clusters individually just to get it to look right...I think the next time i'll use this setup i'll try to figure out an easier way to control them...as for the lip curls, it was easier than the Oo shapes since you can control them with just rotations.

Polimeno
01-24-2009, 07:59 PM
i had to go in and SDK the clusters individually just to get it to look right...

what do you mean ??? can you post some video or screen about that ?

ragdoll
01-24-2009, 08:35 PM
what do you mean ??? can you post some video or screen about that ?

this page ( http://www.dirtyoldtoon.com/tutorials/LipTutorial_04.htm ) in the tutorial explains the whole cluster driven joint...so in the image below, if i move a controler up the clusters follow...

http://i103.photobucket.com/albums/m160/ragdollbeast/Untitled-1.jpg

the clusters that fall between two controllers are weighted to both sides to get a nice falloff.

http://i103.photobucket.com/albums/m160/ragdollbeast/2-1.jpg

so to get the lips pucker look correct, i had to manually adjust the weighting on each cluster and used set driven keys to control it...


http://i103.photobucket.com/albums/m160/ragdollbeast/3-1.jpg

it isn't animator friendly for a rig to have to grab clusters to get the shapes to look right but it works for me...maybe on my next attempt at this, i should have individual controls for each cluster and on top of that a more broader set of controls...it should eliminate the whole cluster grabbing problem... Hope this clears up some of your questions... :)

http://i103.photobucket.com/albums/m160/ragdollbeast/4-1.jpg

Polimeno
01-25-2009, 04:53 AM
interesting....

can you please post a screen of the joints head, neck, jaws and extras?


how did you orient your joints ??

ragdoll
01-25-2009, 05:50 PM
interesting....

can you please post a screen of the joints head, neck, jaws and extras?


how did you orient your joints ??

here ya go...

http://i103.photobucket.com/albums/m160/ragdollbeast/1-1.jpg

http://i103.photobucket.com/albums/m160/ragdollbeast/2-2.jpg

http://i103.photobucket.com/albums/m160/ragdollbeast/3-2.jpg

http://i103.photobucket.com/albums/m160/ragdollbeast/4-2.jpg

http://i103.photobucket.com/albums/m160/ragdollbeast/5-1.jpg

luigi
01-26-2009, 11:28 AM
interesting quite remenber me the setup for facial rig i have been working latest years.

but not in maya in max is based on is similar ideas but i use curves to move the point around and this curves follow the shape of the face or imitate how muscles will work. i di the rig resizable so i cna feet it in diferent faces.

http://www.luis-sanjuan.com/tech/tech_maxwell.htm (http://www.luis-sanjuan.com/tech/tech_maxwell.htm)

ragdoll
01-26-2009, 12:06 PM
interesting quite remenber me the setup for facial rig i have been working latest years.

but not in maya in max is based on is similar ideas but i use curves to move the point around and this curves follow the shape of the face or imitate how muscles will work. i di the rig resizable so i cna feet it in diferent faces.

http://www.luis-sanjuan.com/tech/tech_maxwell.htm (http://www.luis-sanjuan.com/tech/tech_maxwell.htm)

ahaha that keytoon guy is one of my sources of inspiration for this project!

thanks for sharing! :thumbsup:

Polimeno
01-26-2009, 01:40 PM
interesting quite remenber me the setup for facial rig i have been working latest years.

but not in maya in max is based on is similar ideas but i use curves to move the point around and this curves follow the shape of the face or imitate how muscles will work. i di the rig resizable so i cna feet it in diferent faces.

http://www.luis-sanjuan.com/tech/tech_maxwell.htm (http://www.luis-sanjuan.com/tech/tech_maxwell.htm)

great rig, and this character have so much appeal !!!

thanks for sharing

Polimeno
01-29-2009, 03:47 AM
tell me rj,

how do you aproach the eyelids and its rotation ?

ragdoll
03-29-2009, 04:51 AM
it's been a while since i posted an update...been working on finishing all the animation shots. i've put together a temporary reel with 2 animation WIP's of this character in action. hope you like it. :wip:

http://www.facebook.com/v/538755378095

CGTalk Moderation
03-29-2009, 04:51 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.