I ran into something today that I couldn’t figure a solution for, just wondering is there a way to reuse blend shape animation over a bunch of different characters.
The different characters would have varying point positions and counts but the blendshapes would be named the same.
Blendshape/morphs are vertex dependent. They require each instance of the mesh (the actual morph) to be identical in vertex count and also vertex order. Each vertex is numbered in a mesh, and if the vertex number does not match with the original mesh the morphs will not work. At least this used to be a requirement, I can’t say that is still the case. However this can be tested - If you delete a polygon in a mesh that has morphs, and recreate the polygon, the morphs most likely will no longer work, even though the vertex count is the same. Creating a new polygon will re-number the vertex order.
Usually when facial animation needs to be reused, the pipeline will consist of a sharable control rig (bones) for the head/face. This head/face rig will be reusable by all the characters. The rig is skinned to each head/face and the animations created with that rig work on all heads/faces.
Morphs are commonly applied on top of this reusable head/face rig to correct any issues with the rig not fitting a head/face 100%.
If two different characters have different lip thickness - one characters lips might close perfectly with the rig while the other characters lips might not close enough. Corrective morphs are applied to the mesh to correct this discrepancy. So the rig only has to be animated once, and can be applied to numerous characters with corrective morphs to compensate for any mesh variances.
Hey theANMATOR2b,
I know about Blendshapes requirements but in theory you should still be able to share animation between different face meshes if the morph channels were named the same. Say if each character had a ‘smile’ shape for instance all you would be saving would be that keys in that ‘smile’ channel and not the mesh.
I don’t think anything like that exists though in Unity so it looks like I might have to go for a bones rig and see how that works out.
Thanks for the tips,
Pete
I think the only way to save a blend shape for reuse would be if both faces were from the same mesh and one variant was an actual morph/blend shape itself from the original mesh. Because the vertex # and order still have to match.
I’d be interested in your testing and final solution, for future projects.