Create an on/off switch for drivers/face expressions

Howdy.

I’m working on my first real attempt to make a control panel for facial expressions, but I’m hitting a snag that seems like it would have a simple solution, but I can’t figure it out.

I made it like this, where the bottom switch can already control which direction my character speaks from (because he always has a cigarette in his mouth). And the top switch is supposed to be able to turn on/off the expression. Right now, the face has a constant Ah face, without any smooth way to turn off influences. I’ve been tinkering with drivers, but I’m certainly no pro yet.

Ah Mid

Ah Right

Base

How is this doable?

1 Like

Are you using deforming bones for the mouth deformation or shapekeys or both?

In the meantime you can see how the blender studio itself rigs a face: :slight_smile: https://cloud.blender.org/p/characters/5f04a68bb5f1a2612f7b29da

2 Likes

hi use this expression:
scripted expression driver*

var * var2

in the first variable add the bone you want as target

add a new variable input and rename it var2, and then create a custom property in the panel and copy the single property id (right click in the property input and choose the option copy data path) and paste it into the second variable input as target, also select the option “single property” in the variable to be able to link it…

since is multiplication what happens is that the other input will subtract the other variable driver when is at 1.000 and then to 0.000 again…

Screenshot 2021-05-31 051542
Screenshot 2021-05-31 051612
Screenshot 2021-05-31 051631

1 Like

Hi Michael,
Thanks for your advice. This is exactly going where what I need!

I forgot to mention in my post the specifics on what I did specifically, like that I use Shape Keys for each expression and that currently my L/R Ah control switches between -1.5, 0 and 1.5. (the right Ah expression is active on -1.5 and 0, but turns off on 1.5, with the left Ah being active on 1.5 and 0, and turning off on -1.5)

Driver image

So from what I understand why this tactic doesn’t work yet is because it tries to multiply 0 or 1 now, which won’t cancel it out.
I figure I could do var+var2 instead, but that makes the transition more sudden, depending on the L/R switch was on either -1.5 or 0. My first guess would be to have Var2 be able to always add an exact amount that’s neccesary to bring Var to exactly 1.5 for example, but that’s me assuming.

Any insight on what might fix it?

1 Like

Thank you for the suggestion! I’ll check it out.

I’m using Shape keys for all facial expressions, 1 bone to open the jaw and 1 bone to move a cigarette.

Eureka!

I managed to make it work.
It’s probably more complex now than it needs to be, but atleast it’s doing what I wanted it to do.

I scaled the controls up to get rounded numbers (0-1), created 2 extra control bones and constrained them to the L/R control, use var*var2 in the drivers, mirrored the .R side shape key and linked it to the mirrored L/R bone.



Thanks for the help!

1 Like