Difference between revisions of "Skeletal animation"

From Valve Developer Community
Jump to: navigation, search
m
(cleanup)
Line 2: Line 2:
 
[[Image:Breen skeleton posed.jpg|150px|right|Skeleton during an animation]]
 
[[Image:Breen skeleton posed.jpg|150px|right|Skeleton during an animation]]
  
'''[[Wikipedia:Skeletal animation|Skeletal animation]]''' is a form of [[Wikipedia:3D animation|3D animation]] in which a skeleton made of rigid "bones" is simulated inside a [[model]]. Vertices are "enveloped" to the bones and move with them, and polygons stretch and compress to fill the "joints" in between. Moving a bone high up on a "chain" causes all of the bones below it to move in response; e.g. moving the shoulder forward causes the entire arm to swing with it.
+
'''[[Wikipedia:Skeletal animation|Skeletal animation]]''' is a processor-efficient and relatively easy [[Wikipedia:3D animation|3D animation]] system applicable to any ''jointed'' model: from humans to insects to mechanical machinery. It is not helpful for animating ''fluid'' structures like liquids or gaseous particles.
  
Skeletal animation allows processor-efficient animations to be made with relative ease for almost any jointed object that can be imagined, from humans to jellyfish to electronic machinery. It is not helpful when animating unstructured objects/substances like liquids or gases, however.
+
A [[skeleton]] is a system of rigid [[bone]]s which determines the rendered model's (changing) pose. The model's [[Mesh]] vertices are [[envelope]]d to the bones and follow their [[parentbone]]s' movements. Because the mesh is ''deformable'', [[weightmap]]ped polygons around skeletal joints may stretch and compress as the joints are flexed.  
  
== Caveats in Source ==
+
Each Skeleton is arranged in a ''bonetree'' hierarchy, so moving a bone high up in the hierarchy causes all of its child bones to move in response; eg. moving the "forearm" forward causes the "hand" to move forward by the same distance and in the same direction.
  
Skeletal animation :
+
The bones of a flexible skeleton may be re-positioned by either Movement-system [[$sequence]]s or by Vphysics-system forces (via a [[$collisionjoints]] rig).
  
*Cannot scale the size of a model ([http://www.brightcove.tv/title.jsp?title=900704395 though this can be achieved through other means])
+
== See also ==
*Does not animate faces (use [[Vertex animation]])
 
  
== See also ==
+
* [[Vertex animation]] is used to ''morph'' mesh vertices directly, eg animating faces.
 +
* [[info_particle_system|Particle animation]] is used to animate a ''point cloud'' of particle sprites.
 +
* [[$sequence]]s cannot re-scale bones dynamically ([http://www.brightcove.tv/title.jsp?title=900704395 though this can be achieved through other means])
 +
* [[$bonemerge]] allows sub-models to be included in the main model's sequences.
  
*[[$sequence]] - [[QC command]] for a skeletal animation
 
  
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
[[Category:Glossary]]
 
[[Category:Glossary]]
 
[[Category:Modeling]]
 
[[Category:Modeling]]

Revision as of 18:10, 12 May 2008

Skeleton in reference posture
Skeleton during an animation

Skeletal animation is a processor-efficient and relatively easy 3D animation system applicable to any jointed model: from humans to insects to mechanical machinery. It is not helpful for animating fluid structures like liquids or gaseous particles.

A skeleton is a system of rigid bones which determines the rendered model's (changing) pose. The model's Mesh vertices are enveloped to the bones and follow their parentbones' movements. Because the mesh is deformable, weightmapped polygons around skeletal joints may stretch and compress as the joints are flexed.

Each Skeleton is arranged in a bonetree hierarchy, so moving a bone high up in the hierarchy causes all of its child bones to move in response; eg. moving the "forearm" forward causes the "hand" to move forward by the same distance and in the same direction.

The bones of a flexible skeleton may be re-positioned by either Movement-system $sequences or by Vphysics-system forces (via a $collisionjoints rig).

See also