CMSC 425 Lecture Notes - Lecture 16: Rose Tree, Shoulder Joint, Skeleton Tree

23 views9 pages
CMSC 425 Dave Mount & Roger Eastman
CMSC 425: Lecture 9
Basics of Skeletal Animation and Kinematics
Reading: Chapt 11 of Gregory, Game Engine Architecture. The material on kinematics is a sim-
plification of similar concepts developed in the field of robotics, known as the Denavit-Hartenberg
parameters.
Game Animation: Most computer games involve characters that move around in a fluid and
continuous manner. Unlike objects that move according to the basic laws of physics (e.g.,
balls, projectiles, vehicles, water, smoke), the animation of skeletal structures may be subject
to many complex issues, such as physiological constraints (e.g., how to jump onto a platform),
athletic technique (e.g., how a football quarterback throws a pass), stylistic choices (e.g., how
a dancer moves), or simply the arbitrary conventions of everyday life (e.g., how to hold
chopsticks). Producing natural looking animation is the topic of our next few lectures.
Skeletal Model and Tree Structure: The most common form of character animation used in
high-end 3-dimensional games is through the use of skeletal animation. A character is modeled
as skin surface stretched over a skeletal framework which consists of moving joints connected
by segments called bones (see Fig. 1(a) and (b)). Note that “skin” refers to the model’s
surface, which typically includes not only skin but the clothing the model is wearing (see
Fig. 1(c)). Animation is performed by modifying the relationships between pairs of adjacent
joints, for example, by altering joint angles and deforming the skin accordingly. We will
discuss this process extensively later.
(a)
joints
bones
(b)
(c)
Fig. 1: (a) and (b) skeletal model and (c) the bind (or reference) pose.
A skeletal model is based on a hierarchical representation where peripheral elements (e.g.,
hands and feet) are linked as children of more central elements (e.g., legs, arms, torso, etc.).
Clearly, a skeletal model can be represented internally as a multi-way rooted tree, in which
each node represents a single joint. The bones of the tree are not explicitly represented, since
(as we shall see) they do not play a significant role in the animation or rendering process.
Lecture 9 1 Spring 2018
Unlock document

This preview shows pages 1-3 of the document.
Unlock all 9 pages and 3 million more documents.

Already have an account? Log in
CMSC 425 Dave Mount & Roger Eastman
We will discuss later how the skin is represented. For now, let us consider how the joints are
represented.
We assume that the tree is represented as any standard (rooted, unordered) multi-way tree.
For example, for any node it should be possible to enumerate all the children of this node, to
test whether the node is the root, and if it is not the root to determine its parent node. In this
lecture, we will denote each joint by an integer index, say j, and we will let p(j) denote j’s
parent. If we consider just the parent links, the result is an inverted tree structure, where all
paths lead to the root (see Fig. 2(b)). We can make the assumption that the root is identified
by a special index, say j= 0. In addition, each node will store some internal information, as
will be discussed below.
Bind Pose: Before discussing animation on skeletal structures, it is useful to first say a bit about
the notion of a pose. In humanoid and animal skeletons, joints move by means of rotations1
(as opposed say to translation, which arises with some robots). Assigning angles to the various
joints of a skeleton uniquely specifies the skeleton’s exact geometric structure, called its pose.
When a designer defines the initial layout of the model’s skin, the designer does so relative
to a default pose, which is called the reference pose or the bind pose.2For human skeletons,
the bind pose is typically one where the character is standing upright with arms extended
straight out to the left and right (similar to Fig. 1(b) above).
Joint Internal Information: Each joint can be thought of as defining its own joint coordinate
frame (see Fig. 2(a)). Recall that in affine geometry, a coordinate frame consists of a point
(the origin of the frame) and three mutually orthogonal unit vectors (the x,y, and zaxes
of the frame). Given the skeleton’s inverted tree structure (see Fig. 2(b)), rotating a joint
can be achieved by applying a suitable rotation transformation to its associated coordinate
frame. Each frame of the hierarchy is understood to be positioned relative to its parent’s
frame. In this way, when the shoulder joint is rotated, the descendants’ joints (elbow, hand,
fingers, etc.) also move as a result (see Fig. 2(c)).
Change-of-Coordinates Transformation: In order to determine the motion of the various
bones that result from some joint rotation, we need to know the relationships between the
various joints of the skeleton. There is a very general and elegant way of doing this through
the application of affine geometry. Given any two coordinate frames in d-dimensional space,
it is possible to convert a point (or free vector) represented in one coordinate frame to its
representation in the other frame by multiplying the point (given as a (d+ 1)-dimensional
vector in homogeneous coordinates) times an suitable (d+ 1) ×(d+ 1) matrix. The resulting
affine transformation is called a change-of-coordinates transformation.
Constructing such transformations is an exercise in linear algebra. For the sake of complete-
ness, let us consider the process in a simple 2-dimensional example. Suppose we have two
1It is rather interesting to think about how this happens for your own joints. For example, your shoulder joint has
two degrees of freedom, since it can point your upper arm in any direction it likes. Your elbow also has two degrees
of freedom. One degree comes by flexing and extending your forearm. The other can be seen when you turn your
wrist, as in turning a door knob. Your neck has (at least) three degrees of freedom, since, like your shoulder, you can
point the top of your head in any direction, and, like your elbow, you can also turn it clockwise and counterclockwise.
2I suspect that the name “bind pose” arises because designers attach or “bind” the skin to the model relative to
this initial pose.
Lecture 9 2 Spring 2018
Unlock document

This preview shows pages 1-3 of the document.
Unlock all 9 pages and 3 million more documents.

Already have an account? Log in
CMSC 425 Dave Mount & Roger Eastman
30
(a) (c)
j0
j2j3j4
j5
j1
j0
j2j3
j4
j1
j5
j0
j1
j2j3
j4
j5
(b)
Fig. 2: (a) Skeletal model, (b) inverted tree structure, and (c) rotating a frame propagates to the
descendants.
coordinate frames, Fand G(see Fig. 3). Let F.o,F.x, and F.y denote F’s origin point, and
its two basis vectors. Define G.o,G.x and G.y similarly.
Fig. 3: Change-of-coordinates transformation.
Given any point in space, it can be represented either with respect to F’s coordinate system
or G’s. For any point p, define p[F]to be p’s homogeneous coordinates relative to frame F,
and define p[G]similarly for frame G. We can do the same for any vector ~v.
In order to define the change-of-coordinates transformation, we need to know first what G’s
basis elements are relative to F. In the above example, it is easy to verify that
G.x[F]= (2,1,0), G.y[F]= (1,2,0),and G.o[F]= (4,2,1).
(Recall that we are using affine homogeneous coordinates, where the last component is 0 to
denote a vector or 1 to denote a point.) Also, it is easy to verify that
F.x[G]=2
5,1
5,0, F.y[G]=1
5,2
5,0,and F.o[G]= (2,0,1).
To obtain the change-of-coordinates transformations from Gto F, define TFGto be the
transformation that maps a point given in G’s coordinate system to its representation in F’s
coordinate system. This transformation can be represented as a matrix whose columns are
Lecture 9 3 Spring 2018
Unlock document

This preview shows pages 1-3 of the document.
Unlock all 9 pages and 3 million more documents.

Already have an account? Log in

Document Summary

Reading: chapt 11 of gregory, game engine architecture. The material on kinematics is a sim- pli cation of similar concepts developed in the eld of robotics, known as the denavit-hartenberg parameters. Game animation: most computer games involve characters that move around in a uid and continuous manner. Producing natural looking animation is the topic of our next few lectures. Skeletal model and tree structure: the most common form of character animation used in high-end 3-dimensional games is through the use of skeletal animation. A character is modeled as skin surface stretched over a skeletal framework which consists of moving joints connected by segments called bones (see fig. Note that skin refers to the model"s surface, which typically includes not only skin but the clothing the model is wearing (see. Animation is performed by modifying the relationships between pairs of adjacent joints, for example, by altering joint angles and deforming the skin accordingly.

Get access

Grade+20% off
$8 USD/m$10 USD/m
Billed $96 USD annually
Grade+
Homework Help
Study Guides
Textbook Solutions
Class Notes
Textbook Notes
Booster Class
40 Verified Answers
Class+
$8 USD/m
Billed $96 USD annually
Class+
Homework Help
Study Guides
Textbook Solutions
Class Notes
Textbook Notes
Booster Class
30 Verified Answers

Related Documents