Description
Yes, I'm still working on facial rigging.
This isn't an attractive pose, it's an evaluative pose.
There are a lot of issues that make it really hard for me to explore in the depth that I'd like. First, it's a pain to hook curves. It's a pain to set up a lot of bone structures that I like to use (marker bone, axis marker bone, damped track, locked track.)
What I've been running into lately is that weights are important, and autoweights aren't good enough, and I can't evaluate how well a rig is working without weights.
I think, obviously, manually weighting a complex facial rig is kind of a losing battle. But certain loops need to be normalized. For example, for the eye to close all the way, the edges of the eyelid have to be fully weighted to the eyelid bones (and I've got 10 eyelid bones for each eye.) Autoweights give me weights that are too diffuse-- too much head, cheek, eyebrow on my eyelids. If I needed to make one bone work, I'd just normalize it, lock it, then normalize all. But with so many bones, that's way too much work for every time I make a change.
What I've been doing is making larger, non-deforming meta-groups: eye, mouth. Then I copy and separate out these parts, copy and separate out the relevant armature bits, autoweight those parts, then copy weights from them with my meta-groups. That's a little easier, but still a lot of trouble. Every time something is a lot of trouble, it makes me resist experimentation.
And of course, there are issues with separate objects, which needs weights that are in agreement with the face. I can't tell if a rig works without eyes, eyelashes, eyebrows, inside mouth.
I have learned a few things. The brow ridge moves, but only a little; a cartoon eyebrow needs more expressiveness than the brow underlying it. (In reality, the eyebrow stays firmly attached to the skin, but the skin itself slides over bone, something which is very difficult to implement well-- you need a skull mesh, you need to shrinkwrap to it, you need to manage your rotation by shrinkwrapping your tails to a slightly offset skull mesh....) If you try to create the full range of expression by manipulating the brow ridge instead of the eyebrow, it can look very very funky.
I've been messing with eye placement to improve the look of my model, but the real issue that I need to address is the upper eyelid, which needs to sink back behind the eye more-- particularly next to the nose. The upper eyelid isn't any more than a crease in an open eye. I'm still having trouble getting this crease to look right in a variety of deforms.
A good way to prevent inside mouth clipping through your outside skin is to separate it to a different object and deform it via a surface deform modifier rather than an armature. Surface deform modifier works just right.
A Laplacian deform is a great way to fill in areas that you don't want to bother to rig. In the past, I've tried using armature controlled, skin-modified meshes to mesh deform Laplacian anchor verts and sometimes had interpolation problems that I thought were the Laplacian's fault; I now realize that the issue was the skin-modifier does not give a reliable number of verts and so is unsuitable for use as a mesh deformer without writing the modifier. I may experiment more with this in the future (but the bones are a pain to set up well anyways.)
What I really need to do is to stop messing with rigging, stop messing with modelling, and start making Blender add-ons. (Which would require a lot of learning on my part, it's not as if I'm ready to do that at this very moment.) A lot of the things that make it too difficult to experiment to the extent I'd prefer are solvable via Python. Curve, bone, weight issues could all be automated.