Skeleton: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
m (WIP)
Line 2: Line 2:
{{todo|cleanup & clarify ... WIP}}
{{todo|cleanup & clarify ... WIP}}


The Rendered '''[[Skin]]''' is ''[[UV|projected]]'' over the '''[[Mesh]]''' which ''[[enveloped|envelopes]]'' the '''[[Skeleton]]'''.
A model's [[Skeleton]] is sometimes called the model's ''Rig'' or ''Bonetree''. Every model in Source must have a Skeleton, even if it is just a single, invisible "bone". A Model's Skeleton is the reference framework for all of the model's [[vertex geometry]]<!-- 3D coordinates, normals, etc -->, and it is the Skeleton's "rootbone" that locates the model's geometry to the [[Model Entity]]'s position and orientation in the World.


* Also known as the model's ''Rig'' or ''bonetree'' ...
A [[Model]]'s Rendered '''[[Skin]]''' is ''[[UV|projected]]'' over the '''[[Mesh]]''' which ''[[enveloped|envelopes]]'' the '''[[Skeleton]]'''.
 
A skeleton must have:
* a rootbone.
 
== Skeleton Types ==
There is one huge difference between just 2 types of skeleton : [[Rigid]] and [[NotRigid]].
=== [[Rigid]] Skeleton===
Most models in source have [[Rigid Skeleton]]s, which means they may change position and orientation, but the may not articulate - none of their 'internal' geometry can change. Happily, a Rigid Skeleton is so simple and easy to configure automatically that it is often overlooked. ....
* [[Rootbone]] ... [[$rootbone]] ... [[$origin]]
* prop_static, prop_physics, item, w_weapon,


* Rootbone & Origin - all of the model's vertex geometry <!--coordinates, normals, etc-->is "parented" to the skeleton, and the "rootbone" of the skeleton is "parented" to the ($origin) Entity's position and orientation in the World. Therefore, every model must have a Skeleton, even if it is just a single "bone" at the $origin.
<!--
  // eg: a "default" skeleton :
  // eg: a "default" skeleton :
  version 1
  version 1
Line 18: Line 26:
  end
  end
  triangles
  triangles
  ...
  // ...
-->


* bone hierarchy  
=== [[NotRigid]] Skeleton===
** bonename (see also [[SMD#nodes]])
only when the Skeleton has more than one bone can it have a joint to articulate. ...
 
* prop_ragdoll : passive/physics ... [[$collisionjoints]]
* prop_dynamic : active/animated ... see [[skeletal animation]]
** machine model
** character model (rigid npc: [[npc_rollermine]],...)
** viewmodel
 
== [[Bone hierarchy]] (summary) ==
* Entity Worldposition
** [[$origin]] offset to [[rootbone]] ... [[$rootbone]]
*** [[bonetree]] ... [[$bonetree]] ... [[$lod|bonetreecollapse]], [[$lod|replacebone]],
**** [[bonename]] (see also [[SMD#nodes]])
** bones & joints (see also [[SMD#skeleton]])
** bones & joints (see also [[SMD#skeleton]])
** [[attachment]] points & sub-models
*** [[movement hierarchy]]
==Rigging==
* {{todo|#REDIRECTS here:}}
** [[rigged]]
** [[rigging]]
** [[rig]] &  ... ?
*** [[deformer]] [[deformation]]
*** [[bone weight]]s [[$weightlist]]
*** [[Enveloping]] deformable [[Mesh]], [[Weightmap]]


* Skeletal deformation:
== [[Vertex geometry]] ==
** physics / ragdoll / passive,
{{todo|probably move this section out to its own page ?}}
** animated / dynamic / active. see [[skeletal animation]]
Origin : Every game entity that can move has an origin. Every game entity that has non-brush geometry has an origin. All brush vertex geometry is related to the map origin = [[worldspawn]] entity. -->

Revision as of 13:53, 3 May 2008

Under construction.png
This page is actively undergoing a major edit.
As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.

The person who added this notice will be listed in its edit history should you wish to contact them.

Todo: cleanup & clarify ... WIP

A model's Skeleton is sometimes called the model's Rig or Bonetree. Every model in Source must have a Skeleton, even if it is just a single, invisible "bone". A Model's Skeleton is the reference framework for all of the model's vertex geometry, and it is the Skeleton's "rootbone" that locates the model's geometry to the Model Entity's position and orientation in the World.

A Model's Rendered Skin is projected over the Mesh which envelopes the Skeleton.

A skeleton must have:

  • a rootbone.

Skeleton Types

There is one huge difference between just 2 types of skeleton : Rigid and NotRigid.

Rigid Skeleton

Most models in source have Rigid Skeletons, which means they may change position and orientation, but the may not articulate - none of their 'internal' geometry can change. Happily, a Rigid Skeleton is so simple and easy to configure automatically that it is often overlooked. ....

// eg: a "default" skeleton :
version 1
nodes
  0 "static_prop" -1
end
skeleton
time 0
  0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
end
triangles
// ...

NotRigid Skeleton

only when the Skeleton has more than one bone can it have a joint to articulate. ...

Bone hierarchy (summary)

Rigging

Vertex geometry

Todo: probably move this section out to its own page ?
Origin : Every game entity that can move has an origin. Every game entity that has non-brush geometry has an origin. All brush vertex geometry is related to the map origin = worldspawn entity. -->