Skeletal animation: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(cleanup)
mNo edit summary
 
(14 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[Image:Breen skeleton ref.jpg|150px|right|Skeleton in reference posture]]
[[File:Breen skeleton ref.jpg|150px|right|Skeleton in reference posture]]
[[Image:Breen skeleton posed.jpg|150px|right|Skeleton during an animation]]
[[File:Breen skeleton posed.jpg|150px|right|Skeleton during an animation]]


'''[[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''' is a processor-efficient and relatively simple animation system that can simulate any jointed object, from people to insects to machinery.


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.  
The titular [[skeleton]] is a hierarchy of jointed but individually rigid [[bone]]s that are manipulated in the same way as a real skeleton. Vertices are '[[envelope]]d' to the appropriate bone and move with it; the bone in turn moves with the bones [[parentbone|above it]] (e.g. the hand follows the forearm). Polygons that cover joints between bones [[weightmap|stretch and compress]] as the skeleton moves.


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.  
Bones can be controlled with [[$sequence|canned animation]], [[$collisionjoints|real-time physics]], and/or [[$ikchain|inverse kinematics]].
== Limitations ==


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).
; A bone is rigid
: The vertices enveloped to any given bone move as one unit. A skeletal animation cannot move them relative to each other (a [[flex animation]] can).
; A bone has only one parent
: A skeletons are organised into trees, branching out from a root. Webs/meshes of bones are not possible.
; Skeletons require hierarchy
: While it is theoretically possible to animate gasses or liquids with bones, it's an inefficient and overwrought solution. Use [[:Category:Particle System|particles]] to create such effects.


== See also ==
== See also ==
* [[Flex animation]] morphs [[Vertex|vertices]] directly (used for faces/lips)
* [[Vertex animation]] is keyframed vertex motion
* [[Category:Particle System|Particles]] are used to animate clouds or streams of objects
* [[List of material proxies#Texture manipulation|Animated textures]] change the appearance of 2D surfaces
* <code>[[SetSequence()]]</code> is used by programmers to play skeletal animations


* [[Vertex animation]] is used to ''morph'' mesh vertices directly, eg animating faces.
== External links ==
* [[info_particle_system|Particle animation]] is used to animate a ''point cloud'' of particle sprites.
* {{w|Skeletal animation}} on '''Wikipedia'''
* [[$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.
 


__NOEDITSECTION__
__NOEDITSECTION__
[[Category:Glossary]]
[[Category:Glossary]]
[[Category:Modeling]]
[[Category:Modeling]]

Latest revision as of 04:13, 23 June 2024

Skeleton in reference posture
Skeleton during an animation

Skeletal animation is a processor-efficient and relatively simple animation system that can simulate any jointed object, from people to insects to machinery.

The titular skeleton is a hierarchy of jointed but individually rigid bones that are manipulated in the same way as a real skeleton. Vertices are 'enveloped' to the appropriate bone and move with it; the bone in turn moves with the bones above it (e.g. the hand follows the forearm). Polygons that cover joints between bones stretch and compress as the skeleton moves.

Bones can be controlled with canned animation, real-time physics, and/or inverse kinematics.

Limitations

A bone is rigid
The vertices enveloped to any given bone move as one unit. A skeletal animation cannot move them relative to each other (a flex animation can).
A bone has only one parent
A skeletons are organised into trees, branching out from a root. Webs/meshes of bones are not possible.
Skeletons require hierarchy
While it is theoretically possible to animate gasses or liquids with bones, it's an inefficient and overwrought solution. Use particles to create such effects.

See also

External links