of dust rising from the footstep), or you may want to trigger a game event (e.g., a non-playing character ducks to avoid a punch). Continuous information: You may want some process to adjust smoothly as a result of the animation. An example would be having the camera motion being coordinated with the animation. Another example would be parameters that continuously modify the texture coordinates or lighting properties of the object. Unlike event triggers, such actions should be smoothly interpolated. This auxiliary information can be encoded in additional streams, called meta-channels (see Fig. 2). This information will be interpreted by the game engine. Skinning and Vertex Binding: Now that we know how to specify the movement of the skeleton over time, let us consider how to animate the skin that will constitute the drawing of the character. The first question is how to represent this skin. The most convenient representation from a designer’s perspective, and the one that we will use, is to position the skeleton in the reference pose and draw the skin around the resulting structure (see Fig. 3(a)). joint bone skin overlap crack (a) (b) Fig. 3: (a) Binding skin to a skeletal model in the reference pose and (b) cracks and overlaps. In order that the skin move smoothly along with the skeleton, we need to associate, or bind , vertices of the mesh to joints of the system, so that when the joints move, the skin moves as well. (This is the reason that the reference pose is called the bind pose.) If we were to bind each vertex to a single joint, then we would observe cracks and overlaps appearing in our skin whenever neighboring vertices are bound to two different joints that are rotated apart from one another. Dealing with this problem in a realistic manner will be too difficult. (The manner in which the tissues under your skin deform is a complex anatomical process. Including clothing on top of this makes for a tricky problem in physics as well.) Instead, our approach will be to find a heuristic solution that will be easy to compute and (hopefully) will produce fairly realistic results. Lecture 10 4 Spring 2018
CMSC 425 Dave Mount & Roger Eastman Linear-Blend Skinning: The trick is to allow each vertex of the mesh to be bound to multiple joints. When this is done, each joint to which a vertex is bound is assigned a weighting factor , that specifies the degree to which this joint influences the movement of the vertex. For example, the mesh vertices near your elbow will be bound to both the shoulder joint (your upper arm) and the elbow joint (your lower arm). As we move down the arm, the shoulder weight factor diminishes while the elbow weight factor increases. Consider for example, consider a vertex v that is located slightly above the elbow joint (see Fig. 4(a)). In the bind pose, let v 1 and v 2 denote its positions relative to the shoulder and elbow joint frames, respectively.
You've reached the end of your free preview.
Want to read all 111 pages?
- Spring '17
- Roger Eastman, game objects, Dave Mount