University of Bath Emmanuel Tanguy's Home page Department of Computer Science

Waters' abstract muscles model
3D Facial Animations

I wrote this page just after the third year of my degree (2001) and I did not have the time to rewrite it.
Here is the dissertation I wrote for this project.

The facial meshes used for this project come from Gedalia Pasternak's web site: (THE EXPRESSION TOOLKIT).

  1. Introduction

    The goal of this project was to study the abstract muscle-based model in order to show the operations needed to adapt it to different meshes. It was also to evaluate the quality of expressions and animations created by the deformation of the face through the muscle structure. The animation in real-time has been observed in a virtual environment created with the 3D engine Fly3d. To achieve this aim the Waters model is developed in C++. The polygon mesh adaptation and the creation of expressions and animations are done through an application developed with Microlsoft Visual C++.

  2. Waters' model: Abstract muscles model

    In the Waters' model there are two types of abstract muscles.

    1. Linear muscle:

      The linear muscle pulls the vertices towards an attached point v1. The displacement of the vertices is proportional to their distance from the attached point, where they do not move.

    2. Sphincter muscle:

      The Sphincter muscle pulls the vertices towards the center point of an ellipse, proportionally to their distance from it. The motion is more important in the center of the ellipse. Simultaneity, they are pushed forward inversely proportional to the distance form the ellipse center. This abstract muscle is used to simulate the muscle surrounding the mouth.

  3. Face model based on abstract muscles

    Muscle structure composed of 25 abstract muscles (24 linear and 1 Sphincter muscles). Polygon mesh Eyes and teeth

  4. Graphical interface to adapt a polygon mesh to the muscle structure

    The adaptation of a mesh to the muscle structure is important to be able to animate different faces (polygon mesh) with one set of parameters.

    Three steps are necessary:
    Position the face at the right place relatively to the position of the muscles. Select the vertices contained in the jaw to be able to rotate the jaw.
    Place the eyes and teeth at the right place in the face.

    The adaptation is a success if the facial expression on the new face is similar to the expression on the face model.

  5. Three dimensional facial animation
    1. Level of detail management:

      For each muscle there is a LoD associated with. The muscle is active if its LoD is superior or equal to the Lod of the face, which is fixed by the distance from the view point (camera). Five Lod are used in the abstract muscle model. Below, you can see the same expression shown at different LoD.

    2. The between-key expressions:

      The animation is made by linear interpolation on the muscle contractions between two expressions. Below, the between-key expressions are shown to pass from the happiness expression to the anger expression.

    3. Examples of animation:

      Below, you can see three examples of the introduction of the Waters' model in the 3D engine Fly3D.

      Download animation1.gif (412KB) Download animation2.gif (507KB) Download animation3.gif (384KB)

  6. Conclusion

    The goal of this project was to point out certain characteristics of an abstract muscle-based model implementation. This model could be used for a large range of virtual characters having different face topologies. However an adaptation of the character faces to the muscle structure needs to be done. This point is shown to be not a difficult task, as far as the human faces are concerned. The adaptation of a facial mask to the muscle structure takes about 40-60 minutes. This process enables the new faces to show the same recognisable expressions with the same system parameters (same muscle contractions). The adaptation for non-human faces could be done but the amount of work may be more important and the muscle structure may have to be changed. The face deformation through the abstract muscle-based model appears to be intuitive and enable the creation of a very large range of expressions. Several defaults on the appearance of the faces have been noticed due to the coarse approximation of the facial anatomy. However it remains possible to improve the model and its implementation to reduce these issues. The facial animation, done by linear interpolation on the muscle contractions, results to satisfactory appearance. As far as the efficiency of animations is concerned, the face complexity can be an important factor of deterioration but the use of reasonably detail face achieves to fairly good performances.