Character Animation Blending Abstract BSP Content Importing Digital Content Pipeline Extending...

1
Character Animation Blending Abstract BSP Content Importing Digital Content Pipeline Digital Content Pipeline Extending Microsoft’s XNA Framework with BSP Content and Animation Hollinger, Jordan; Mitton, Kenneth; Webster, Roger; and Zoppetti, Gary* Department of Computer Science, Millersville University, Millersville, PA, 17551 We have developed our own character animation blending framework. Animations consist of a sequence of key frames, where a key frame captures the position, rotation, and scale of a character’s bone. Multiple animations can be combined, or blended, by computing convex sums over the interpolated key frames from each animation. To the left we illustrate our blending system using an upper and lower body animation to simulate walking. Below we illustrate an animation blend that must apply multiple animations to the same bone (the mech is both falling and shooting, so upper body bones are involved in each). The mech is processed into an AnimatableModel object. This object format is more conducive to character animation because transforms are represented as position/orientation/scale triples instead of 4x4 matrices. Our triples are more accurately interpolated than 4x4 matrices, which the Model object uses. An AnimationController applies an animation blend to an AnimatableModel. AnimationTrack objects comprise an AnimationController Each track holds a single animation. When multiple tracks are assigned weights and enabled, the controller blends the contained animations appropriately. Although Models can be converted between different formats, such as BSP to FBX, it is often difficult to preserve the original content. The BSP format we chose to support is a popular format used by games such as Half-Life 2 and Counter Strike. By creating a BSP importer for these maps, we have enabled students to load large, professionally-produced maps into their class projects. In Fall 2008 we began developing our own framework, the MU XNAEngine, an extension of Microsoft’s XNA Game Studio, to support efficient geometry transformations; collision detection; rigid-body physics; first- and third-person cameras; and background and 3D sound. This engine is currently used by the 3D Game Programming and Animation class (CSCI 475). To use all of the features provided by the BSP format, we implement our own shaders, allowing more realistic effects such as translucent windows and multiple texture blending. An example of such blending is a gravel-covered grassy area, created by blending grass and gravel textures. Using the XNA BasicEffect shader, some of these effects, such as translucent windows, can be coarsely simulated, but image quality is degraded (compare and contrast the images to the left). Other effects, like multitexturing and bump mapping, are not even possible. The XNA Content Pipeline consists of importers, processors, and writers that allow game developers to handle various forms of digital content. The importer initially converts files to an intermediate format that a content processor subsequently reads. A processor takes the intermediate format and converts it to an object, such as Model, or BasicEffect, which is used at runtime. XNA further allows processors and importers to be mixed, with developers choosing what processor or importer best fits their needs. For the Valve formats, we leveraged the content pipeline to build a custom importer to read BSP and VTF digital asset files into NodeContent objects that the built-in processors are capable of handling. We also built several custom processors. Content to be rendered is loaded into a Model object by the default Model processor. A Model object consists of a hierarchy of separate, moving parts. If you do not intend to animate an object, using this structure wastes memory resources. Thus we created a processor to convert Model content into a simpler format better suited for more efficient rendering and non-hierarchical animations. We are now refining and extending the engine to handle additional model formats and animation. XNA provides a content pipeline that enables developers to import and process new types of digital content. Using the pipeline infrastructure, we have added support for the Valve Binary Space Partitioning (BSP) model format and Valve Texture Format (VTF). We have also created our own model type for processing and handling transformable geometry at a coarser granularity and higher efficiency than the native Model type, as well as a model type more conducive to blended character animation.

Transcript of Character Animation Blending Abstract BSP Content Importing Digital Content Pipeline Extending...

Page 1: Character Animation Blending Abstract BSP Content Importing Digital Content Pipeline Extending Microsoft’s XNA Framework with BSP Content and Animation.

Character Animation Blending

Abstract

BSP Content Importing

Digital Content PipelineDigital Content Pipeline

Extending Microsoft’s XNA Framework with BSP Content and Animation

Hollinger, Jordan; Mitton, Kenneth; Webster, Roger; and Zoppetti, Gary* Department of Computer Science, Millersville University, Millersville, PA, 17551

We have developed our own character animation blending framework. Animations consist of a sequence of key frames, where a key frame captures the position, rotation, and scale of a character’s bone. Multiple animations can be combined, or blended, by computing convex sums over the interpolated key frames from each animation. To the left we illustrate our blending system using an upper and lower body animation to simulate walking. Below we illustrate an animation blend that must apply multiple animations to the same bone (the mech is both falling and shooting, so upper body bones are involved in each).

The mech is processed into an AnimatableModel object. This object format is more conducive to character animation because transforms are represented as position/orientation/scale triples instead of 4x4 matrices. Our triples are more accurately interpolated than 4x4 matrices, which the Model object uses. An AnimationController applies an animation blend to an AnimatableModel. AnimationTrack objects comprise an AnimationController Each track holds a single animation. When multiple tracks are assigned weights and enabled, the controller blends the contained animations appropriately.

Although Models can be converted between different formats, such as BSP to FBX, it is often difficult to preserve the original content. The BSP format we chose to support is a popular format used by games such as Half-Life 2 and Counter Strike. By creating a BSP importer for these maps, we have enabled students to load large, professionally-produced maps into their class projects.

In Fall 2008 we began developing our own framework,

the MU XNAEngine, an extension of Microsoft’s XNA

Game Studio, to support efficient geometry

transformations; collision detection; rigid-body physics;

first- and third-person cameras; and background and 3D

sound. This engine is currently used by the 3D Game

Programming and Animation class (CSCI 475).

To use all of the features provided by the BSP format, we implement our own shaders, allowing more realistic effects such as translucent windows and multiple texture blending. An example of such blending is a gravel-covered grassy area, created by blending grass and gravel textures. Using the XNA BasicEffect shader, some of these effects, such as translucent windows, can be coarsely simulated, but image quality is degraded (compare and contrast the images to the left). Other effects, like multitexturing and bump mapping, are not even possible.

The XNA Content Pipeline consists of importers, processors, and writers that allow game developers to handle various forms of digital content. The importer initially converts files to an intermediate format that a content processor subsequently reads. A processor takes the intermediate format and converts it to an object, such as Model, or BasicEffect, which is used at runtime. XNA further allows processors and importers to be mixed, with developers choosing what processor or importer best fits their needs.

For the Valve formats, we leveraged the content pipeline to build a custom importer to read BSP and VTF digital asset files into NodeContent objects that the built-in processors are capable of handling.

We also built several custom processors. Content to be rendered is loaded into a Model object by the default Model processor. A Model object consists of a hierarchy of separate, moving parts. If you do not intend to animate an object, using this structure wastes memory resources. Thus we created a processor to convert Model content into a simpler format better suited for more efficient rendering and non-hierarchical animations.

We are now refining and extending the engine to handle additional model formats and animation. XNA

provides a content pipeline that enables developers to import and process new types of digital content.

Using the pipeline infrastructure, we have added support for the Valve Binary Space Partitioning (BSP)

model format and Valve Texture Format (VTF). We have also created our own model type for

processing and handling transformable geometry at a coarser granularity and higher efficiency than

the native Model type, as well as a model type more conducive to blended character animation.