Computer facial animation
Computer facial animation is primarily an area of computer graphics that encapsulates methods and techniques for generating and animating images or models of a character face. The character can be a human, a humanoid, an animal, a fantasy creature or character, etc. Due to its subject and output type, it is also related to many other scientific and artistic fields from psychology to traditional animation. The importance of human faces in verbal and non-verbal communication and advances in computer graphics hardware and software have caused considerable scientific, technological, and artistic interests in computer facial animation.
Although development of computer graphics methods for facial animation started in the early-1970s, major achievements in this field are more recent and happened since the late 1980s.
The body of work around computer facial animation can be divided in two main areas. Techniques to generate animation data and methods to apply such data to a character. Techniques such as motion capture and keyframing belong to the first group, while morph targets animation (more commonly known as blendshape animation) and skeletal animation belong to the second. Facial animation has become well-known and popular through animated feature films and computer games but its applications include many more areas such as communication, education, scientific simulation, and agent-based systems (for example online customer service representatives). With the recent advancements in computational power in personal and mobile devices, facial animation has transitioned from appearing in pre-rendered content to being created at runtime.
Human facial expression has been the subject of scientific investigation for more than one hundred years. Study of facial movements and expressions started from a biological point of view. After some older investigations, for example by John Bulwer in the late 1640s, Charles Darwin’s book The Expression of the Emotions in Men and Animals can be considered a major departure for modern research in behavioural biology.
Computer based facial expression modelling and animation is not a new endeavour. The earliest work with computer based facial representation was done in the early-1970s. The first three-dimensional facial animation was created by Parke in 1972. In 1973, Gillenson developed an interactive system to assemble and edit line drawn facial images. in 1974, Parke developed a parameterized three-dimensional facial model.
One of the most important attempts to describe facial movements was Facial Action Coding System (FACS). Originally developed by Carl-Herman Hjortsjö in the 1960s and updated by Ekman and Friesen in 1978, FACS defines 46 basic facial Action Units (AUs). A major group of these Action Units represent primitive movements of facial muscles in actions such as raising brows, winking, and talking. Eight AU's are for rigid three-dimensional head movements, (i.e. turning and tilting left and right and going up, down, forward and backward). FACS has been successfully used for describing desired movements of synthetic faces and also in tracking facial activities.
The early-1980s saw the development of the first physically based muscle-controlled face model by Platt and the development of techniques for facial caricatures by Brennan. In 1985, the animated short film Tony de Peltrie was a landmark for facial animation. This marked the first time computer facial expression and speech animation were a fundamental part of telling the story.
The late-1980s saw the development of a new muscle-based model by Waters, the development of an abstract muscle action model by Magnenat-Thalmann and colleagues, and approaches to automatic speech synchronization by Lewis and Hill. The 1990s have seen increasing activity in the development of facial animation techniques and the use of computer facial animation as a key storytelling component as illustrated in animated films such as Toy Story (1995), Antz (1998), Shrek, and Monsters, Inc. (both 2001), and computer games such as Sims. Casper (1995), a milestone in this decade, was the first movie in which a lead actor was produced exclusively using digital facial animation.
The sophistication of the films increased after 2000. In The Matrix Reloaded and Matrix Revolutions, dense optical flow from several high-definition cameras was used to capture realistic facial movement at every point on the face. Polar Express (film) used a large Vicon system to capture upward of 150 points. Although these systems are automated, a large amount of manual clean-up effort is still needed to make the data usable. Another milestone in facial animation was reached by The Lord of the Rings, where a character specific shape base system was developed. Mark Sagar pioneered the use of FACS in entertainment facial animation, and FACS based systems developed by Sagar were used on Monster House, King Kong, and other films.
Generating facial animation data
The generation of facial animation data can be approached in different ways: 1.) marker-based motion capture on points or marks on the face of a performer, 2.) markerless motion capture techniques using different type of cameras, 3.) audio-driven techniques, and 4.) keyframe animation.
- Motion capture uses cameras placed around a subject. The subject is generally fitted either with reflectors (passive motion capture) or sources (active motion capture) that precisely determine the subject's position in space. The data recorded by the cameras is then digitized and converted into a three-dimensional computer model of the subject. Until recently, the size of the detectors/sources used by motion capture systems made the technology inappropriate for facial capture. However, miniaturization and other advancements have made motion capture a viable tool for computer facial animation. Facial motion capture was used extensively in Polar Express by Imageworks where hundreds of motion points were captured. This film was very accomplished and while it attempted to recreate realism, it was criticized for having fallen in the 'uncanny valley', the realm where animation realism is sufficient for human recognition and to convey the emotional message but where the characters fail to be perceived as realistic. The main difficulties of motion capture are the quality of the data which may include vibration as well as the retargeting of the geometry of the points.
- Markerless motion capture aims at simplifying the motion capture process by avoiding encumbering the performer with markers. Several techniques came out recently leveraging different sensors, among which standard video cameras, kinect sensors or other structured-light based devices. Systems based on structured light may achieve real-time performance without the use of any markers using a high speed structured light scanner. The system is based on a robust offline face tracking stage which trains the system with different facial expressions. The matched sequences are used to build a person-specific linear face model that is subsequently used for online face tracking and expression transfer.
- Audio-driven techniques are particularly well fitted for speech animation. Speech is usually treated in a different way to the animation of facial expressions, this is because simple keyframe-based approaches to animation typically provide a poor approximation to real speech dynamics. Often visemes are used to represent the key poses in observed speech (i.e. the position of the lips, jaw and tongue when producing a particular phoneme), however there is a great deal of variation in the realisation of visemes during the production of natural speech. The source of this variation is termed coarticulation which is the influence of surrounding visemes upon the current viseme (i.e. the effect of context). To account for coarticulation current systems either explicitly take into account context when blending viseme keyframes or use longer units such as diphone, triphone, syllable or even word and sentence-length units. One of the most common approaches to speech animation is the use of dominance functions introduced by Cohen and Massaro. Each dominance function represents the influence over time that a viseme has on a speech utterance. Typically the influence will be greatest at the center of the viseme and will degrade with distance from the viseme center. Dominance functions are blended together to generate a speech trajectory in much the same way that spline basis functions are blended together to generate a curve. The shape of each dominance function will be different according to both which viseme it represents and what aspect of the face is being controlled (e.g. lip width, jaw rotation etc.). This approach to computer-generated speech animation can be seen in the Baldi talking head. Other models of speech use basis units which include context (e.g. diphones, triphones etc.) instead of visemes. As the basis units already incorporate the variation of each viseme according to context and to some degree the dynamics of each viseme, no model of coarticulation is required. Speech is simply generated by selecting appropriate units from a database and blending the units together. This is similar to concatenative techniques in audio speech synthesis. The disadvantage to these models is that a large amount of captured data is required to produce natural results, and whilst longer units produce more natural results the size of database required expands with the average length of each unit. Finally, some models directly generate speech animations from audio. These systems typically use hidden markov models or neural nets to transform audio parameters into a stream of control parameters for a facial model. The advantage of this method is the capability of voice context handling, the natural rhythm, tempo, emotional and dynamics handling without complex approximation algorithms. The training database is not needed to be labeled since there are no phonemes or visemes needed; the only needed data is the voice and the animation parameters.
- Keyframe animation is the least automated of the processes to create animation data although it delivers the maximum amount of control over the animation. It is often used in combination with other techniques to deliver the final polish to the animation. The keyframe data can be made of scalar values defining the morph targets coefficients or rotation and translation values of the bones in models with a bone based rig. Often to speed up the keyframe animation process a control rig is used by the animation. The control rig represents a higher level of abstraction that can act on multiple morph targets coefficients or bones at the same time. For example, a "smile" control can act simultaneously on the mouth shape curving up and the eyes squinting.
Applying facial animation to a character
- Morph targets (also called "blendshapes") based systems offer a fast playback as well as a high degree of fidelity of expressions. The technique involves modeling portions of the face mesh to approximate expressions and visemes and then blending the different sub meshes, known as morph targets or blendshapes. Perhaps the most accomplished character using this technique was Gollum, from The Lord of the Rings. Drawbacks of this technique are that they involve intensive manual labor and are specific to each character. Recently, new concepts in 3D modeling have started to emerge. Recently, a new technology departing from the traditional techniques starts to emerge, such as Curve Controlled Modeling that emphasizes the modeling of the movement of a 3D object instead of the traditional modeling of the static shape.
- Bone driven animation is very broadly used in games. The bones setup can vary between few bones to close to a hundred to allow all subtle facial expressions. The main advantages of bone driven animation is that the same animation can be used for different characters as long as the morphology of their faces is similar, and secondly they do not require loading in memory all the Morph targetsdata. Bone driven animation is most widely supported by 3D game engines. Bone driven animation can be used both 2D and 3D animation. For example, it is possible to rig and animated using bones a 2D character using Adobe Flash.
- Texture-based animation uses pixel color to create the animation on the character face. 2D facial animation is commonly based upon the transformation of images, including both images from still photography and sequences of video. Image morphing is a technique which allows in-between transitional images to be generated between a pair of target still images or between frames from sequences of video. These morphing techniques usually consist of a combination of a geometric deformation technique, which aligns the target images, and a cross-fade which creates the smooth transition in the image texture. An early example of image morphing can be seen in Michael Jackson's video for "Black Or White". In 3D animation texture based animation can be achieved by animating the texture itself or the UV mapping. In the latter case a texture map of all the facial expression is created and the UV map animation is used to transition from one expression to the next.
- Physiological models, such as skeletal muscle systems and physically based head models, form another approach in modeling the head and face. Here, the physical and anatomical characteristics of bones, tissues, and skin are simulated to provide a realistic appearance (e.g. spring-like elasticity). Such methods can be very powerful for creating realism but the complexity of facial structures make them computationally expensive, and difficult to create. Considering the effectiveness of parameterized models for communicative purposes (as explained in the next section), it may be argued that physically based models are not a very efficient choice in many applications. This does not deny the advantages of physically based models and the fact that they can even be used within the context of parameterized models to provide local details when needed.
Face animation languages
Many face animation languages are used to describe the content of facial animation. They can be input to a compatible "player" software which then creates the requested actions. Face animation languages are closely related to other multimedia presentation languages such as SMIL and VRML. Due to the popularity and effectiveness of XML as a data representation mechanism, most face animation languages are XML-based. For instance, this is a sample from Virtual Human Markup Language (VHML):
<vhml> <person disposition="angry"> First I speak with an angry voice and look very angry, <surprised intensity="50"> but suddenly I change to look more surprised. </surprised> </person> </vhml>
More advanced languages allow decision-making, event handling, and parallel and sequential actions. Following is an example from Face Modeling Language (FML):
<fml> <act> <par> <hdmv type="yaw" value="15" begin="0" end="2000" /> <expr type="joy" value="-60" begin="0" end="2000" /> </par> <excl event_name="kbd" event_value="" repeat="kbd;F3_up" > <hdmv type="yaw" value="40" begin="0" end="2000" event_value="F1_up" /> <hdmv type="yaw" value="-40" begin="0" end="2000" event_value="F2_up" /> </excl> </act> </fml>
- Computer animation
- Computer graphics
- Facial expression
- Face Modeling Language
- Interactive online characters
- Parametric surface
- Texture mapping
- Ding, H., Hong, Y. (2003), NURBS curve controlled modeling for facial animation, Computers and Graphics, 27(3):373-385
- Lucero, J.C.; Munhall, K.G. (1999). "A model of facial biomechanics for speech production". Journal of the Acoustical Society of America: 2834–2842. doi:10.1121/1.428108. PMID 10573899.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
- Computer Facial Animation by Frederic I. Parke, Keith Waters 2008 ISBN 1-56881-448-8
- Data-driven 3D facial animation by Zhigang Deng, Ulrich Neumann 2007 ISBN 1-84628-906-8
- Handbook of Virtual Humans by Nadia Magnenat-Thalmann and Daniel Thalmann, 2004 ISBN 0-470-02316-3
- Osipa, Jason (2005). Stop Staring: Facial Modeling and Animation Done Right (2nd ed.). John Wiley & Sons. ISBN 978-0-471-78920-8.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>