Facial Animation: Bones or Vertex Animation?

iOS Performance wise, is it better to do facial animation with bones (around 20 for the face, 40 bones total per character), or would vertex animation via Maya Blendshapes > Megafiers in Unity be better? I am aware that vertex animation curves will not transfer from Maya into Unity, so I will have to script the vertex animation on the Unity side… that is not a problem.

So the options would be something like:

A. character with 40 bones
B. character with 20 bones and vertex animation on the face (around 50 verts)

I realize this may be an unanswerable question because it may depend on the details of my situation, but I thought I would see if others have dealt with this before. I’ve read that Unity’s bones are very highly optimized for iOS, but also that lots of bones can kill performance.

I am using Mecanim for the bone animation, if that is pertinent.

Thanks,
Shawn

If you are using Maya, Max or Blender then the blendshape animations will also be exported with if you use the MegaFiers morph exporter, you can then use the Morph Animator component to split up your animations into clips and then play them back.

If you use bones then in your example Unity is calculating the transforms for an extra 20 bones every frame even when the face is not animating, if you use our system you can disable it at any time to have zero CPU use. But I think the main reason others have used blendshapes for the facial animation on mobile devices is it gives the artist complete control, if you use bones then on most devices you are limited to two bone influences per vertex so you will quickly lose fidelity in the animation, that may be fine if it is a basic character depends on your needs. The other factor is adding in new morphs later on does not mean re rigging the face for extra bones if you find the rig can not handle it. You can check out the morphing system in use on some rather complex animations if you check out the BodyXQ app on IOS and Android.

Chris,

Odd question but is there a way to ‘detach’ the morph animation from your plugin so one could create animated morphing assets for sale? Let me explain…

With SmoothMoves I can create a 2d animated character (runs, walks die seq…) and export it as a separate asset for sale in the Asset store. They can trigger the anims and such, but not actually ‘edit’ the timeline. Does that make any sense?

That is an interesting idea, it could certainly be done, I will have a think on that one.