Here is an illustration of the bone system inside of a Panther Eye.


Half-Life's Skeletal Animation System
===========================
One of the key technology advances over other action games that Half-Life possesses is its skeletal animation system.  The basic characteristic of a skeletal animation system is that rather than storing a discrete set of polygonal meshes for each key frame of animation, the skeletal animation system works by moving the bones within a monster and deforming a mesh and texture map around the resulting skeleton.

There are a number of critical advantages this gives an animator in building much more interesting and complex monsters.  First, all character motions and bone positions are interpolated to precisely the point in the frame that the engine is currently rendering.  This results in much smoother animation than you would see in typical action games which are using a quite jerky 10 frame per second mesh playback rate regardless of how fast your PC is capable of rendering the scene.  For example, Chuck was limited to a 4 frame walk in Duke Nukem, but with a reasonable PC running Half-Life, he will see as many as 80 frames in a single walk cycle.

Second, because of the algorithms used in our skeletal animation system, we can get much higher polygon counts out of our monsters.  Basically the processing bottle-necks switch from being mesh based to being bone and pixel based.  Specifically, the most complicated creature in Quake was about 500 polygons, while with Half-Life we already have creatures with over 6000 polygons.

Third, skeletal based animations are much more compact than animations used in other actiong games.  This makes sense becaue rather than storing all of the mesh and vertex information for each key frame, you only have to store positioning information for the bones themselves.  This means that you can have around 10 times as many animations and still use the same amount of memory.  In terms of the game, we can now afford to have a tremendous number of animations for each monster without asking the user to put a zillion MBs of RAM into their machine - for example we have different animations for each character in the game if you shoot them from the front, from the left, from the right, and from behind.

Fourth, skeletal animation makes it possible to correctly animate characters.  The faster the character runs, the faster the legs moved.  Hands reaching out to ladder rungs will reach a correct distance and will also move at a correct speed as the player speed varies.

Fifth, the skeletal system allows us to have removable and switchable body parts.  This allows for weapon changes, or the ability to damage monster geometry ("It's only a flesh wound.")

The last advantage is that by having a skeletal system, we have the ability to use compound animations.  What this means is that rather than having a fixed set of animations, we can build animations out of different animation pieces.  Monsters will turn their heads to look at you while they are running or walking or jumping.  Troops can pull out their weapons and fire them while they are moving or kneeling.  We also have the ability to add a layer of vertex animation on top of this for certain kinds of animation like breathing or the Panther Eye's tongue in the above image.