I'm arguing the case for something I'm about to work on, and I'd like to make sure I have my facts straight beforehand.
As I think I understand it, game engines generally store blendshapes as an offset delta for vertices that are affected. So a vertex will have a vector and a magnitude if it contributes to the blendshape. Verts that don't contribute to the blendshape have no additional cost.
For example, for a mesh with 40k verts, you move 36 verts to deform a character's eyebrows. The additional cost of that blendshape is limited to those 36 verts only?
Am I correct in my understanding here?
Hopefully that makes sense. Btw, the engine in question in my case is Unity, if that makes any difference.
Replies
You might say, "We won't have costume switching." To which I'll reply, "Next week you will."
I always pick morphs over bones for facial expressions. In Unity, one benefit is that if you name all your head objects "Head" and all the Blendshapes are consistent in name, then all the animation curves will just work. So you can make face idle animations and apply it to all the characters. (Blinks, micro expressions, ect..)
Blendshapes are much cheaper than bones on the CPU and GPU no matter the game engine. But they use exponentially more memory too. So if you will have lots of characters with lots of blendshapes, you may bump into trouble later.
The eyes because those tend to get controlled procedurally a lot.
And the jaw so animators have the option to overextend it for more expressions.