Skinned Avatars

 
This feature refers to adding support for a new type of avatar called a "skinned" avatar. Skinned avatars are common now in most modern 3D games. A skinned avatar employs a single, continuous polygonal mesh over the entire surface of the avatar, which stretches at the joints when the limbs move, as opposed to cracking or breaking like they do currently in AW. They are similar to AW avatars in that they have rigid "skeletons" that bend only at the joints. The only difference between them is how the polygons in the avatar are associated with the limbs.

A traditional AW avatar is a hierarchical model of "clumps". Each clump is a rigid body representing some portion of the avatar's anatomy, such as an arm, leg, or head. Clumps are connected to each other by "joints". When an avatar animates, the clumps are rotated relative to each other around the joints. Taken together, all of the rotations around all of the joints simulate human-like motion. Unfortuantely, since each clump consists of a rigid set of polygons, the avatar's surface breaks at the joints between clumps when they move, creating a very unrealistic effect.

Skinned avatars solve this problem by taking a slightly different approach. The avatar still consists of a hierarchical set of rigid "bones" that are connected by rotating joints. Thus, animation data that works with traditional AW avatars would also work with skinned avatars. However, skinned avatars are different because the polygons representing the surface, or skin, of the avatar exist as a single polygonal mesh, rather than as separate discrete clumps. Each vertex in this mesh is associated with one bone, and it moves rigidly with that bone. The trick is, some polygons have vertices on more than one bone, so when those two bones move relatively to each other, that polygon literally stretches between them, keeping the surface of the avatar intact and preventing any cracks from forming. This is the essence of "skinned avatars" and is why they look so much better than traditional rigid-body avatars.

RenderWare (the 3D rendering engine used by Active Worlds) already has support for skinned avatars, so this would not be a terribly difficult feature to add. The one real challenge is providing an easy way for users to *create* skinned avatars. For RWX files, some sort of extension would have to be added to support the concept of associating different vertices in a continuous polygonal surface with the different clumps representing each bone.