AuthorTopic: Facial Rigging (Read 9359 times)

Recently I've started playing around with controller scripts. As a little side project I've been working on a way to get around anim8or's bone system, which I've always had some trouble with. My solution so far is to come up with a way to use morph targets that can be controlled in real time without the need to input values into boxes. By using "controller objects"(the little green circles) I think I've managed it pretty well. The result so far is just a face rig along the lines of something i saw in a blender tutorial, but i hope to expand it to a full system soon.Its a pretty simple system once the scripts are in place. By manipulating the "controller objects" (moving them if they have up/down points, scaling them if they have horizontal points) one can change the value of the morph target, thus changing the shape of the face.

The An8 files attached bellow for anyone who want to take a look, comments/suggestions/criticisms would be much appreciated.

This is... amazing. Indeed reminds me of Blender and other programs out there.

Now if only this method can be applied to a body with a head attached. Is it possible to apply something like this to an existing figure or would there be a need to tweak the model in ways to facilitate this (such as the eyes)?

Cool system and it actually works! Never tried faces cause of rigging issues but this might help me give it a go! Will probably help with phonetic timing or whatever aswell if you can make one with an open mouth!

Thanks for the support everyone.neirao: Thanks for showing me your topic. I'm hoping to eventually have a script that acts much more like the one you described, but i think thats still a little beyond me.Janro: It should defiantly be able to be applied to an existing figure, the only change that should needed is to make the morph targets you want to be controlled. then all you have to do is in scene mode add an object to be a control, then enable expression for the morph target and input either of the scripts.

For moving to change value:

point3 $alpha;$alpha= GetAttributePoint3("[the name of your control object]", "position");

$morph.[name of your morph target] = ($alpha.[axis you want move the object]-[current position of your object])/4;

For Scaling to change value:

$morph.[name of your morph target] = GetAttributeFloat("[the name of your control object]", "scale")+1;

Note: the /4 and the +1 on the end of both the scripts just effect how much of a change to the objet is needed to make a change to the morph target. it takes some tweaking to get right.

3D Joe: I wish I'd had a model with an open mouth, but I'm not the greatest at modeling faces. I made that one awhile ago in sculptris (it took me forever!) and, as you can see, only got about half way through doing re-topology in blender.

Navek, this is officially the high point of my day. I'm actually learning Blender, and I can't get around trying to use all these hotkeys. But I've seen in tutorials how there are controllers and stuff for facial rigs. This is really cool, and you're pure GENIUS!

Another thing I like about this is that it saves the keyframes on another layer so to speak for morph targets. So now when I need to do lipsynching, I can tweak both the facial expressions and movements of the body independently.

The test looks great Janro! I'm glad this is actually being helpful to people! As for your question about the eyes, with mine I made the eyes separate objects and changed the orientation to 'Facing Other' so no scripting required for that. However I am working on updating the script so that limits can be set and so that multiple morphs can be controlled with one control object. Hope to have that up soon.