2
$\begingroup$

I'm making some facial expressions for a stylized character, and I've run into an issue where, in order for the eyebrows to adhere to the surface of the face, I need to have a different shape for the negative and positive values of a shape key.

I could split these shapes into multiple keys, but that would be hard to animate, as I would have to make sure that one key always transitions linearly into the other. Alternatively, I could use drivers to control the two keys with a bone, but this would be inconvenient, as no other facial expressions are controlled by bones. I'd really like to keep this expression controlled by just one slider.

$\endgroup$
4
$\begingroup$

"Alternatively, I could use drivers to control the two keys with a bone, but this would be inconvenient, as no other facial expressions are controlled by bones. I'd really like to keep this expression controlled by just one slider."

You can drive from anything, not just bones-- for example, you can drive from another shapekey.

enter image description here

Here, I have two different shapekeys (one to represent your positive value, the other your negative value) as well as a third, empty shapekey, which is used as a controller. Both positive and negative shapekeys are driven by scripted expressions: -min(value, 0) for the negative shapekey, as shown, and max(value, 0) for the positive shapekey. You can control either shapekey via the controller shapekey (and not in any other way.)

In either case, notice the property and path. In order to get this path, I right clicked in the value field of the controller shapekey and selected "copy as new driver" then right clicked in the controlled shapekey and selected "paste as new driver"-- followed by editing the driver to be what I needed.

$\endgroup$
2
  • $\begingroup$ This works, I've just got one more question: is there any way to hide the non-controller shape keys? It's not necessary, I'd just like to keep things organized. $\endgroup$ Oct 21 at 0:20
  • $\begingroup$ @SupaKoopaTroopa64 Not that I know of, sorry-- other than, say, driving them from different values, like the shapekey values on a different mesh, and then only looking at that list of values. But that's much more work than is worth it for what you want. $\endgroup$
    – Nathan
    Oct 21 at 0:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.