manuelbastionilab header image

[Back to development log]

Evaluating the best solution to implement in ManuelbastioniLAB 1.7.0

11 March 2018

The final version of roadmap for ManuelbastioniLAB 1.7.0 is almost completed and it will be published soon. It will include the new generation of amazing base meshes for humans and anime, with new topologies, UV maps, textures and rigging. This means a complete remodelling of all the morphings and rigging weights. There is still one thing under evaluation: keep the current expression system, with shapekeys, or replace it with a rigging system? Here are the pros and cons. I'd like to know your opinion (discussions are available on the official Facebook page and on the thread on Blenderartist forum).

Solution1: shapekeys only (currently implemented in lab 1.6.x)

Pros

  • Shapekeys permit to reproduce details of muscles and skin behaviour. Also shapekeys can easily create the extreme expressions of anime and toons.
  • Few shapekeys (less than 50) are sufficient to create most of existing expressions and visemes.
  • Shapekeys are easy to export.

Cons

  • Shapekeys require a lot of modelling work.
  • Shapekeys need an algorithm to fit them from the base character to the specific character.
  • Shapekeys are linear so the bending of some elements (for example the tongue) is often wrong when applied with values smaller than 1.0.
  • Shapekeys require a different database for each character.

Solution2: Face rigging (without corrective shapekeys)

Pros

  • Doesn't require dedicated modelling.
  • More flexible and easy to customize.
  • Bones are easy to export.
  • The armature animation can include expressions too.
  • Rotations don't need to be scaled, so an expression based on rotated bones should fit better than shapekeys (for example jaw rotations).
  • Expressions can be exported and mixed as poses.
  • The same database of expressions can be used for all similar characters (example: a database for humans and one for anime).

Cons

  • A realistic face expression requires an high number of bones.
  • To create an user-friendly realtime interface for an high number of bones it's required a very complex driver-based system.
  • A driver-based system is practically not exportable out of Blender.
  • Coding a driver-based system is prone to some problems too long to describe here.

Solution3: Face rigging (with corrective shapekeys)

It can reach the same level of realism of pure shapekeys system, with better results in rotations (jaw, eyes, tongue) but has the sum of all cons of shapekeys and bones with the addition of new cons caused by the complexity of implementation.

Consideration

Shapekeys are easier to code and to maintain, easier to port in external engines, but they require a lot of modelling work and sometime the results are not perfect. Probably a system based on facial bones is better, but to avoid the cons listed above perhaps the lab should provide only the rigging, without the controllers. Then the user will choose his preferred method to animate them (for example linking them to a motion capture system).

The development of an hibrid system (solution 3) is excluded due to the big number of cons. In case of development switching to facial bones, the current utility based on shapekeys will be not supported in future versions and the user will have a more powerful and flexible tool, but (at least for a couple of successive releases) the interface will be less friendly (probably it will be required to manually pose the bones in order to create an expression).