Stacking Facial Expressions (With Write Defaults On)

So ive looked around a fair bit. I know write defaults are unadvised but they work currently so its good enough. I am having the problem where all of my facial expressions are stacking over the previous one. I have write defaults enabled. Any idea whats going on? And if someone could explain to me, what exactly does write defaults do? Im curious to learn who the actual details of making an avatar works. Thank you.

Unfortunately what you’re describing is exactly what having Write Defaults on does. D:

You can work around this by having an “Exit” state for your expression that clears blendshapes used in other expressions that aren’t being used. This is what I do personally.

So, if state “Happy” uses the blendshape “Smile”, but the state “Sad” doesn’t use “Smile”, you need to set “Smile” to zero in some state before you get to “Sad”.

You could also set it up so that each one of your animations clears the blends of all of your used emotive blendshapes. That’s kind of the sledgehammer approach.

As an aside, using or not using Write Defaults is less of a strong thing than the docs imply.

Simplest explanation for Write Defaults that I can think of is that:
OFF - properties are not reset to values as they are in default state for that layer when transitioning between states,
ON - properties between transitions are reset to values as they are when in default state for that layer.

OFF is a bit more tricky because of some bugs plaguing this workflow (mostly with layer masks) and the fact that it’s harder to debug, since you need to remember to reset any animated properties back to their default values manually if you’re building anything more complicated than OFF <-> ON state machine.