PDA

View Full Version : Bone Based Facial Rig.


PEN
12-02-2008, 02:26 PM
Nothing to exciting, did this for a client last year and just ran into this Camtasia that I did for it and never posted it. This is based on the rig that I did on my forth DVD on facial rigging. Actually I think that it is the rig that was done on that DVD just re-purposed, I had a day I think to get this facial setup working for the show so I just stripped this out of another character and reformed it to fit the werewolf.

Comments are welcome.

http://www.paulneale.com/technical/werewolf/facialRigExample.mov

Fabiomussarela
12-02-2008, 06:02 PM
Insane :)

Using layers for Major controls and another one for refinement is awesome :)

Another great job from PEN Productions.
Congratulations Paul. :)

mlefevre
12-02-2008, 06:46 PM
Interesting! Thanks for sharing it.

steveblake
12-02-2008, 11:57 PM
110% neat-O-cool!

PEN
12-03-2008, 01:47 AM
Glad you like it guys.

Leffler
12-03-2008, 06:23 PM
Hey Paul,

Very nice setup, I especially like that you can save poses. Your presentation is also very good, not to fast and not to boring/slow

I have a question:

How much modifications would the bone-setup need if you want to add joints for lets say lip-roll? Or is it possible to do it now, the lip-roll for getting for example a F?


Keep up the awesome work!
Otto

PEN
12-03-2008, 09:12 PM
I would have to go back and look at it to see if I added that. It isn't hard, you just need to twist the bones with the control. Personally if you are getting into characters speaking then blended morph systems are the way to go, far easier to get what you need in the way of shapes. It isn't as reusable how ever as this rig can be dropped into other characters quite easily and then re-skinned. I can set up a new character with this in a day, no way you are doing it that fast with targets and having to check all the blending. This character didn't have speaking parts, just growling, sneers and other grunting noises.

Boucha
12-04-2008, 03:50 AM
Nice one...
Does the controls ride with the morph shapes...just curious!

PEN
12-04-2008, 11:41 AM
There are no morph shapes, this is a bone based facial system.

ydiaz
12-04-2008, 11:46 AM
Hey Paul, amazing work as always.

Just a question, you're using your Attribute Holder to store poses, did you create attributes on the modifier connected to every axis on position and rotation for every control? If not, could you explain how you accomplished it?

Thanks for sharing! :)

edwardG
12-04-2008, 04:31 PM
I have always been a fan of bone-based setups vs. Morph Target/Blendshape setups (partly because of my experience in videogames). Both have advantages and disadvantages.

2 questions: 1) How many bones are in this setup? 2) About how long did it take you to do it in 3DS Max?

I really like the Save Pose editor. Was that done in MAXscript?

PEN
12-05-2008, 01:20 PM
Yeray, yes, you just add float tracks and then instance the controller to them from the objects transforms. This way you have a two way connection as well so if you did add the UI spinners you would have control both ways. Also the keys show up in both places allowing you to see all the tracks together in the trackview in a nice neat package. You can use PAH to store just about any sort of value this way.

Edward, I have written a scripted plugin in Max script. Scripted plugins create a new object class, in this case it is a modifier, PEN Attribute Holder (PAH). The modifier doesn't actually modifier the object it is on in this case but acts as a container for Custom Attributes. Custom Attributes (CA) in Max are just the same as a scripted plugin and share the same code but a CA is contained in the scene where as a plugin is loaded with Max. PAH contains all the code for storing the poses and reads any custom attributes that have been added to it as the source of the data. This way it is very flexible as you can build any sort of interface into the PAH modifier using CA definitions and it will allow you to scrub the saved pose ot just skip to it if the green button is turned off.

PAH has to be oen of the simplest tools I have written and was done back in Max 4, it is used all around the world and I thank every one for their support of it. I do plan on a version 3 but like all things time and wants don't always match up.

PEN
12-05-2008, 01:21 PM
Edward, sorry, forgot to mention I think that there are about 50 bones in this setup. I haven't counted them so that is a wild guess.

IkerCLoN
12-05-2008, 02:15 PM
Hey, Mister Paul, good job as always :) I wonder how much time (relatively speaking) does it cost to skin a head like this. The expressions seem to be more flexible/elastic/soft than those imposed by the morph targets. Is this the way you use to go with facial deformation? Do you use Morpher as well? Which one, as a rigger and artist, do you prefer?

Thanks for sharing ;)

ydiaz
12-05-2008, 02:20 PM
Of course! I never thought about the benefits of instancing controllers, that opens up a whole new window of usage for the PAH, truly is an amazing piece of code, thanks a lot for sharing it :)

I've briefly seen your facial rigging DVD from CG-Academy, congratulations on that too btw, seems to me the bone system you build is quite more complicated than the blend shape system. IkerClon beat me to the "what do you prefer" and I was also wondering if you've found a way to mix the two as I've seen done in Maya.

Thanks!

PEN
12-05-2008, 03:06 PM
I have no preference, like I said it is all about what it is you need on any given character or project. If you are working on games a bone based system has a lower over head. For doing a very expressive character that is speaking a blended morph system with a jaw bone is more controlable. In the case of this character I could get to the end result faster with a pre existing bone system that I had and get the results that were needed. The character just needed to make general facial expressions and I can get that with the bone system with out any morph targets at all, they could be added to get specifics. Skinning the face took just a couple of hours and re-purposing the existing bone system into the face took a few hours so in total it was a normal days work for the face at most. I had three days to get the character and facial rig to the animators to get the shots done so I didn't have time to mess around. Here is what the rest of the rig looked like. It was driven by biped as that is what the client wanted to use so i sized biped and got them working on shots and then used my Merge Render Rig tool to bind this rig to the biped rig once it was complete.

http://paulneale.com/home/dresdenComp.jpg

Leffler
12-07-2008, 10:28 AM
What kind of framerate can this rig produce? Is there a low-version of the rig for animation? I suppose the one on the picture is pretty slow with all the muscles etc ..

PEN
12-07-2008, 03:27 PM
Correct, this is the render rig, the animation rig, which in this case was biped on the request of the client was the animation rig. There was a chopped up version of the model linked to biped and made none rendering. With a tool called Merge Render Rig that I have it will automatically merge and constraint or bake to the animation rig and can be added and removed from the scene at any time. This also allowed us to make significant changes to the topology of the mesh, skinning and deformation system and the animators didn't have to wait for it. Joint placement of course has to stay they same or the animation would need to be tweeked. This is what Merge Render Rig looks like how ever it is not a free down load as it is only reserved for my clients.

http://www.paulneale.com/scripts/mergeRenderRig/mergeRenderRig.htm

Context
12-08-2008, 03:04 AM
Hi Paul,

Beautiful rig.

You keep mentioning 'instancing' your controllers, but max only uses the 'instance' function for objects... not controllers.

Are you using the term to reference two-way wiring, or are you actually talking about instancing?

EDIT: I imagine you just make a CA parameter = to the controller in question and everything works. Hurah for basic investigation skills!

eek
12-08-2008, 03:46 AM
Hi Paul,

Beautiful rig.

You keep mentioning 'instancing' your controllers, but max only uses the 'instance' function for objects... not controllers.

Are you using the term to reference two-way wiring, or are you actually talking about instancing?

EDIT: I imagine you just make a CA parameter = to the controller in question and everything works. Hurah for basic investigation skills!

You can instance controllers via the copy/paste functionality built into the track view or by literally forcing a controlller onto another via:

a.pos.controller = b.pos.controller

This is especially useful for list controller as it can make a rig more streamlined and efficient. I personally use them all the time.

Two way referencing is essentially the same thing, unless im mistaking you for wire parameters. Weak refencing is another method but this is essentially a form of a general call back that can reference both the object and the controllers of it. You could also just make a node Tab parameter block and put the controller in there - thats another versions.

So theres quite a few versions to instance controllers.

PEN
12-08-2008, 11:57 AM
What Eek said.

I have a script where I can select a gorup of control objects and just run it and it builds the CA Def, adds it to PAH and then instances all the controllers of the selected objects to the CA Def.

You can instance any node, an object, modifier, controller, CA Def, material...

ydiaz
12-08-2008, 12:12 PM
Quite an eye opener this thread is :)

I'm curious about the concept of render rig vs. animation rig. Could you correct if I'm wrong? You use the placement of the Biped bones used in animation as a base to create this more complicated rig, with limited or none animation controls since it's not meant for animation. While animation is being done additional work is done in the model, rig and skinning. And once the animation is done you transfer the animation onto the render rig, where you make the final tweaks and render.

If that's the workflow, do you need to bake the animation as frame-by-frame data and copy it as normal keys to the render rig? If not, how do you handle transfering IK and other advanced animation features to the render rig? I'm curious because I work with Biped and it seems to be pretty obscure on retrieving information from it.

Thanks! :)

Context
12-08-2008, 08:08 PM
Thanks guys,

I have a script where I can select a gorup of control objects and just run it and it builds the CA Def, adds it to PAH and then instances all the controllers of the selected objects to the CA Def.

That's what I do. I just wanted to make sure you didn't have some magical way of doing this.

PEN
12-08-2008, 09:57 PM
The answer to the question is a simple yes. You can do it several ways, constraint the render rig to the animation rig or bake the bone rotations to keys would be the first two options, I'm sure I could come up with several others. This does allow for work to continue on the model and deformation as well as texturing. Using constraints allows you to keep working with the animation with the render rig in the scene, baking makes it lighter as you can get rid of all the animation side of the rig.

Zach...isn't it all magic?

Quite an eye opener this thread is :)

I'm curious about the concept of render rig vs. animation rig. Could you correct if I'm wrong? You use the placement of the Biped bones used in animation as a base to create this more complicated rig, with limited or none animation controls since it's not meant for animation. While animation is being done additional work is done in the model, rig and skinning. And once the animation is done you transfer the animation onto the render rig, where you make the final tweaks and render.

If that's the workflow, do you need to bake the animation as frame-by-frame data and copy it as normal keys to the render rig? If not, how do you handle transfering IK and other advanced animation features to the render rig? I'm curious because I work with Biped and it seems to be pretty obscure on retrieving information from it.

Thanks! :)

ramiro3d
12-19-2008, 03:12 PM
Hi Paul, you did a great job as always!!!. Thanks for shareing it!. I learnt this method from a video tutorial you did a time ago, and works great!!!. I did a couple of maxScripts in order to make the rigging process a little faster, specially with wire parameters and controllers part. I have to polish them, perhaps making some fool proofing and probably translate the UI into english. I'll send them to you, Paul if you want. Thank you again.

PEN
12-23-2008, 01:34 PM
Thanks for the offer but I already have a solution that can been seen here http://www.paulneale.com/scripts/mergeRenderRig/mergeRenderRig.htm This is not a down load page as this tool is not a public release but you can see where I went with it. It really needs an update at some point but for now it works well.

ramiro3d
12-24-2008, 03:24 PM
It looks really interesting!

ErikE
12-24-2008, 08:07 PM
Thanks for the offer but I already have a solution that can been seen here http://www.paulneale.com/scripts/mergeRenderRig/mergeRenderRig.htm This is not a down load page as this tool is not a public release but you can see where I went with it. It really needs an update at some point but for now it works well.

Very interesting I like the workflow. I was actually just about to start experimenting with ways of doing this. Thanks for sharing :)

Dimich
01-06-2009, 02:43 PM
Cool thread, but can you show the movie again please, Paul? I get the broken link:(...

PEN
01-06-2009, 09:35 PM
It is up again.

Rodi
01-07-2009, 06:59 PM
Hi Pen, thank-you for PAH its a great tool, I am also interested to find out the way you have stored Poses with it,
In the past the way i have got around this task is by creating a bunch of sliders to control the position of a given controller and using PAH to save these poses- which is straight forward..

But im not sure if i follow how you do it your way, without the use of any sliders, i understand using instance controllers, i do this all the time, but i havent got it working the way you have with the poses,


Id be happy if you can answer
Cheers

PEN
01-07-2009, 09:20 PM
Just hand write the CA def and don't create a rollout for it. You will only need the parameter block with the a parameter for each track that you want to control.

Rodi
01-07-2009, 10:12 PM
ahh, I gotcha, CA's are still there you just dont see them, smart...and im slow :)

Cheers though, and cool rig,

blackseraphim
01-08-2009, 02:19 AM
hi! i think i'm on the wrong thread but i just wanna ask how to do the facial bone rig in maya?
i'm familiar with morph based facial rig [osipa's setup] but i wanna learn more on bone/ joint facial rig in maya.
tnx!

Peter

spacegroo
01-08-2009, 06:36 PM
Paul,
Great rig as always. I'm somewhat curious going down the bone driven facial rig route...we've always used morphing here on past projects.

Does the rigging setup handle mirroring animation easily?

-Josh

PEN
01-12-2009, 02:37 PM
Peter, there are many tutorials out there for specifics on rigging faces with bones in Maya but for the most part it is all the same, just the tools to get to the final result differ a bit.

Josh, bone based facial rigs have certain advantages over morph based ones. How ever accuracy isn't one of them. Morphs still give you more control to get exactly the shapes that you want so even with a bone based system you might want to have the controls and bones drive corrective morphs to get the subtle results that you might want. Reusing morph systems really isn't possible but with bone based systems you can have one rig that could be made to fit many different characters. For instance the facial system that was used in the werewolf was one that I had used in more of a human character. I reused the existing rig and had it in the werewolf in a couple of hours and had it skinning in a couple more. I'll say again how ever, this character didn't have to talk or mimic a human in any way, we just needed to be able to get expressions and growling out of him.

It is very easy to mirror face poses with a bone based one as it is done just the same as mirroring the character. You can also build in system that allow for building and storing pose libraries so that animators have some control of the assets that are reusable.

wajdani
01-13-2009, 08:35 PM
Nice Sharing Man Keep Doing Posting...........


http://www.infosouls.com
http://www.3dtutorialshop.com
http://www.mp4xperts.com

Kamran Wajdani
Muzaffargarh, Punjab, Pakistan

PEN
01-15-2009, 01:02 AM
I'm at 4533 posts as of this one, is that enough?

Polimeno
01-29-2009, 10:48 PM
Hey Paul,

Very nice setup, I especially like that you can save poses.

yeah.......but Paul,
it wouldn´t be cool if your PEN_Attribute_Holder_2 could handle sets of defs (layered) inside itself ???



ps:
sent you an MP about that.

PEN
01-30-2009, 02:30 PM
All this and more is on the list for PAH3, time is the only thing that it not how ever.

CGTalk Moderation
01-30-2009, 02:30 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.