Jump to content

Morph target animation: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
updated broken reference links
→‎Technique: Remove unrelated contents
Tags: Mobile edit Mobile web edit
 
(27 intermediate revisions by 18 users not shown)
Line 2: Line 2:
[[File:Sintel-face-morph.png|thumb|In this example from the open source project [[Sintel]], four facial expressions have been defined as deformations of the face geometry. The mouth is then animated by morphing between these deformations. Dozens of similar controllers are used to animate the rest of the face.]]
[[File:Sintel-face-morph.png|thumb|In this example from the open source project [[Sintel]], four facial expressions have been defined as deformations of the face geometry. The mouth is then animated by morphing between these deformations. Dozens of similar controllers are used to animate the rest of the face.]]
[[File:Morph-puzzle.png|thumb|An arbitrary object deformed by morphing between defined vertex positions.]]
[[File:Morph-puzzle.png|thumb|An arbitrary object deformed by morphing between defined vertex positions.]]
'''Morph target animation''', '''per-vertex animation''', '''shape interpolation''', or '''blend shapes'''<ref name="Liu-2006">{{cite web
'''Morph target animation''', '''per-vertex animation''', '''shape interpolation''', '''shape keys''', or '''blend shapes'''<ref name="Liu-2006">{{cite web
| title = An Analysis of the Current and Future State of 3D Facial Animation Techniques and Systems
| title = An Analysis of the Current and Future State of 3D Facial Animation Techniques and Systems
| last = Liu | first = Chen | year = 2006
| last = Liu | first = Chen | year = 2006
| url = http://summit.sfu.ca/system/files/iritems1/9923/ETD4934.pdf
| url = http://summit.sfu.ca/system/files/iritems1/9923/ETD4934.pdf
| accessdate = January 2011 | pages = 12–14
| access-date = January 30, 2011 | pages = 12–14
}}</ref> is a method of 3D [[3D computer graphics|computer animation]] used together with techniques such as [[skeletal animation]]. In a morph target animation, a "deformed" version of a mesh is stored as a series of [[vertex (geometry)|vertex]] positions. In each [[key frame]] of an animation, the vertices are then [[interpolation|interpolated]] between these stored positions.
}}</ref> is a method of 3D [[3D computer graphics|computer animation]] used together with techniques such as [[skeletal animation]]. In a morph target animation, a "deformed" version of a [[polygon mesh|mesh]] is stored as a series of [[vertex (geometry)|vertex]] positions. In each [[key frame]] of an animation, the vertices are then [[interpolation|interpolated]] between these stored positions.


==Technique==
==Technique==
The "morph target" is a deformed version of a shape. When applied to a human face, for example, the head is first modelled with a neutral expression and a "target deformation" is then created for each other expression. When the face is being animated, the animator can then smoothly morph (or "blend") between the base shape and one or several morph targets.
The "morph target" is a deformed version of a shape. When applied to a human face, for example, the head is first modelled with a neutral expression and a "target deformation" is then created for each other expression. When the face is being animated, the animator can then smoothly morph (or "blend") between the base shape and one or several morph targets.<ref>{{cite web
<ref>{{cite web
| last = Glanville | first = Steven
| last = Glanville | first = Steven
| title = Anim8or Manual, Chapter 3 Object Editor
| title = Anim8or Manual, Chapter 3 Object Editor
| publisher = Anim8or | year = 2006
| publisher = Anim8or | year = 2006
| url = http://www.anim8or.com/learn/manual/3_object_editor.html
| url = http://www.anim8or.com/learn/manual/3_object_editor.html
| accessdate = January 2011
| access-date = January 30, 2011
}}</ref> Typical examples of morph targets used in facial animation is a smiling mouth, a closed eye, and a raised eyebrow. Early 3D videogames, such as [[Quake (video game)|Quake]]<ref>{{cite web
}}</ref>
| last = Henry | first = David
Typical examples of morph targets used in facial animation is a smiling mouth, a closed eye, and a raised eyebrow, but the technique can also be used to morph between, for example, [[Strange Case of Dr Jekyll and Mr Hyde|Dr Jekyll and Mr Hyde]].
| title = MDL file format
| url = http://tfc.duke.free.fr/coding/mdl-specs-en.html
| date = December 20, 2004
| access-date = June 16, 2019
}}</ref> and [[Crash Bandicoot]] use per-vertex animation for all character animations.


When used for facial animation, these morph target are often referred to as "key poses". The [[interpolation]]s between key poses when an animation is being rendered, are typically small and simple transformations of movement, rotation, and scale performed by the 3D software.
When used for [[Computer facial animation|facial animation]], these morph target are often referred to as "key poses". The [[interpolation]]s between key poses when an animation is being rendered, are typically small and simple transformations of movement, rotation, and scale performed by the 3D software.<ref name="Liu-2006" />
<ref name="Liu-2006" />


Not all morph target animation has to be done by actually editing vertex positions. It is also possible to take vertex positions found in skeletal animation and then use those rendered as morph target animation.
Not all morph target animation has to be done by actually editing vertex positions. It is also possible to take vertex positions found in skeletal animation and then use those rendered as morph target animation.
Line 28: Line 31:


===Benefits and drawbacks===
===Benefits and drawbacks===
There are advantages to using morph target animation over [[skeletal animation]]. The artist has more control over the movements because he or she can define the individual positions of the vertices within a keyframe, rather than being constrained by skeletons. This can be useful for animating cloth, skin, and facial expressions because it can be difficult to conform those things to the bones that are required for skeletal animation.
There are advantages to using morph target animation over [[skeletal animation]]. The artist has more control over the movements because they can define the individual positions of the vertices within a keyframe, rather than being constrained by skeletons. This can be useful for animating cloth, skin, and facial expressions because it can be difficult to conform those things to the bones that are required for skeletal animation.


However, there are also disadvantages. Vertex animation is usually a lot more labour-intensive than skeletal animation because every vertex position must be manually manipulated and, for this reason, the number of pre-made target morphs is typically limited.
However, there are also disadvantages. Vertex animation is usually a lot more labour-intensive than skeletal animation because every vertex position must be manually manipulated and, for this reason, the number of pre-made target morphs is typically limited.
<ref name="Liu-2006" />
<ref name="Liu-2006" />
Also, in methods of rendering where vertices move from position to position during in-between frames, a distortion is created that does not happen when using skeletal animation. This is described by critics of the technique as looking "shaky". On the other hand, this distortion may be part of the desired "look".
Also, in methods of rendering where vertices move from position to position during [[Inbetweening|in-between frames]], a distortion is created that does not happen when using skeletal animation. This is described by critics of the technique as looking "shaky"{{Citation needed|date=August 2018}}. On the other hand, this distortion may be part of the desired "look".

For large models, vertex animation requires significant memory and storage as the position of each modified vertex must be stored for each frame.
In contrast, skeletal animation requires only the storage of bone transformations for each frame.


==See also==
==See also==
* [[Morphing]]
* [[Morphing]]
* [[Skeletal animation]]
* [[Skeletal animation]]
* [[Machinima]]
* [[Computer and video games]]
* [[3D computer graphics]]
* [[3D computer graphics]]


==References==
==References==
{{Reflist}}
{{Reflist}}

==External links==
* [http://mvinetwork.co.uk/2011/02/02/xna-morph-targets/ Morph target example using C# and Microsoft XNA]


{{Animation}}
{{Animation}}
Line 54: Line 57:
[[Category:Computer graphic techniques]]
[[Category:Computer graphic techniques]]
[[Category:Animation techniques]]
[[Category:Animation techniques]]
[[Category:Computer animation]]

Latest revision as of 23:22, 7 January 2024

In this example from the open source project Sintel, four facial expressions have been defined as deformations of the face geometry. The mouth is then animated by morphing between these deformations. Dozens of similar controllers are used to animate the rest of the face.
An arbitrary object deformed by morphing between defined vertex positions.

Morph target animation, per-vertex animation, shape interpolation, shape keys, or blend shapes[1] is a method of 3D computer animation used together with techniques such as skeletal animation. In a morph target animation, a "deformed" version of a mesh is stored as a series of vertex positions. In each key frame of an animation, the vertices are then interpolated between these stored positions.

Technique[edit]

The "morph target" is a deformed version of a shape. When applied to a human face, for example, the head is first modelled with a neutral expression and a "target deformation" is then created for each other expression. When the face is being animated, the animator can then smoothly morph (or "blend") between the base shape and one or several morph targets.[2] Typical examples of morph targets used in facial animation is a smiling mouth, a closed eye, and a raised eyebrow. Early 3D videogames, such as Quake[3] and Crash Bandicoot use per-vertex animation for all character animations.

When used for facial animation, these morph target are often referred to as "key poses". The interpolations between key poses when an animation is being rendered, are typically small and simple transformations of movement, rotation, and scale performed by the 3D software.[1]

Not all morph target animation has to be done by actually editing vertex positions. It is also possible to take vertex positions found in skeletal animation and then use those rendered as morph target animation.

An animation composed in one 3D application suite sometimes needs to be transferred to another, as for rendering. Because different 3D applications tend to implement bones and other special effects differently, the morph target technique is sometimes used to transfer animations between 3D applications to avoid export issues.

Benefits and drawbacks[edit]

There are advantages to using morph target animation over skeletal animation. The artist has more control over the movements because they can define the individual positions of the vertices within a keyframe, rather than being constrained by skeletons. This can be useful for animating cloth, skin, and facial expressions because it can be difficult to conform those things to the bones that are required for skeletal animation.

However, there are also disadvantages. Vertex animation is usually a lot more labour-intensive than skeletal animation because every vertex position must be manually manipulated and, for this reason, the number of pre-made target morphs is typically limited. [1] Also, in methods of rendering where vertices move from position to position during in-between frames, a distortion is created that does not happen when using skeletal animation. This is described by critics of the technique as looking "shaky"[citation needed]. On the other hand, this distortion may be part of the desired "look".

For large models, vertex animation requires significant memory and storage as the position of each modified vertex must be stored for each frame. In contrast, skeletal animation requires only the storage of bone transformations for each frame.

See also[edit]

References[edit]

  1. ^ a b c Liu, Chen (2006). "An Analysis of the Current and Future State of 3D Facial Animation Techniques and Systems" (PDF). pp. 12–14. Retrieved January 30, 2011.
  2. ^ Glanville, Steven (2006). "Anim8or Manual, Chapter 3 Object Editor". Anim8or. Retrieved January 30, 2011.
  3. ^ Henry, David (December 20, 2004). "MDL file format". Retrieved June 16, 2019.