Game Development Reference
In-Depth Information
The joints are used for relative movement within the skeleton. They are represented
by a 4 x 4 linear transformation matrices (combination of rotation, translation, and
scale). The character skeleton is set up using only simple rotational joints as they are
sufficient to model the joints of real animals.
Every joint has limited degrees of freedom ( DOFs ). DOFs are the possible ranges
of motion of an object. For instance, an elbow joint has one rotational DOF and a
shoulder joint has three DOFs, as the shoulder can rotate along three perpendicular
axes. Individual joints usually have one to six DOFs. Refer to the link http://
en.wikipedia.org/wiki/Six_degrees_of_freedom to understand different
degrees of freedom.
A joint local matrix is constructed for each joint. This matrix defines the position
and orientation of each joint and is relative to the joint above it in the hierarchy. The
local matrices are used to compute the world space matrices of the joint, using the
process of forward kinematics. The world space matrix is used to render the attached
geometry and is also used for collision detection.
The digital character skeleton is analogous to the real-world skeleton of vertebrates.
However, the bones of our digital human character do have to correspond to the
actual bones. It will depend on the level of detail of the character you require. For
example, you may or may not require cheek bones to animate facial expressions.
Skeletons are not just used to animate vertebrates but also mechanical parts such as
doors or wheels.
Comprehending the joint hierarchy
The topology of a skeleton is a tree or an open-directed graph. The joints are
connected up in a hierarchical fashion to the selected root joint. The root joint has no
parent of itself and is presented in the model JSON file with the parent value of -1 .
All skeletons are kept as open trees without any closed loops. This restriction though
does not prevent kinematic loops.
Each node of the tree represents a joint, also called bones. We use both terms
interchangeably. For example, the shoulder is a joint, and the upper arm is a bone,
but the transformation matrix of both objects is same. So mathematically, we would
represent it as a single component with three DOFs. The amount of rotation of the
shoulder joint will be reflected by the upper arm's bone.
 
Search WWH ::




Custom Search