Logo

Game Developer Companion Page

This material is copyright 1998-2009 Darwin 3D, LLC. All rights reserved. The following applications and source code samples are for educational purposes only! Use at your own risk.

Game Developer Magazine Page December 1998: Simple 3D Morphing
IK in 3D Notes: Info about extending the IK solution to 3D
November 1998: General Inverse Kinematics Solution
September 1998: Inverse Kinematics 2D
July 1998: Particle Systems
May 1998: Real-time Skeletal Deformation
April 1998: Using Quaternions for Animation in OpenGL Part 2, Interpolation
March 1998: Using Quaternions for Animation in OpenGL
Errata to Alan Watt's Advanced Animation and Rendering Techniques Book
January 1998: Working with Motion Capture in OpenGL


December 1998: 3D Morphing
Morphy
Source Code and Exe (260KB)
Article in PDF format

3D Morphing Demo


Notes on 3D IK
I spoke about IK at the GDC 1999 . Many people asked me for specifics about using the CCD
Inverse Kinematic solution in 3D. I didn't include a demo of the 3D technique because the user interface is pretty
complicated. At least more complicated then I wanted to build up for the magazine. But I promised I would post the
code to make it work. So this is it:

As I said in my talk at the GDC, to extend the CCD method to 3D from the 2D system in November's
Game Developer is quite easy. In the 2D method, I used the dot product to find the angle needed to
rotate the link by to reach the end effector and the cross product to determine which way to rotate.
However, remember that the cross product actually gives the AXIS of rotation. This axis can be an
arbitrary axis in 3D. So, the same technique works. The cross product returns the axis about which to
rotate and the dot product gives the angle. I convert these numbers to quaternions, and multiply them into
the current link state. Damping is handled the same way using the dot product value. However, the DOF
restrictions are a problem. I don't know how to do DOF restrictions in Quaternions so I must conver to Euler
angles using the routine below. Once that is done the restrictions are inforced, convert back to Quaternions
and all is well.

Quat2Eul.cpp
First thing you need for the DOF restrictions in 3D is to convert Quaternions back into Eulers.
This is the only way I know of to do this right now, but I am investigating other methods that stay in
Quaternion space. This routine converts from Quaternion to Euler angles using my order of rotations
and my matrix layout. It has all the problems associated with conversion back to Euler angles but works
for my limited scope. Can be optimized greatly but is easy to read as is. Better ideas for DOF restrictions
in Quaternions are welcome :)

CCD3D.cpp
Next thing you need is to modify the 2D CCD Routine to work in 3D directly with Quaternions.
This is actually almost identical to the November source code with a few modifications. The main
one being the change to a 3D distance error estimation and a change in the DOF restriction method.
This file contains the two routines needed to handle 3D CCD IK. The first handles the DOF restriction
and the second is the CCD algorithm itself. This is the code used in the 3D demo that was shown at the GDC


November 1998: More Kine
KineChain
Source Code and Exe (490KB)
Article in PDF format

General Inverse Kinematic Solver in 2D


September 1998: Oh my God, I inverted Kine!
Kine
Source Code and Exe (178KB)
Article in PDF format
Analytical Inverse Kinematic Solver in 2D

New V1.1 Fixes a bug in the Source see the readme for details


July 1998: Particle Systems

Spray

Source Code and Exe (150KB)
Article in PDF format
Set up and edit a Particle System


May 1998: Real-time Skeletal Deformation

DemBones

Source Code (70KB) Application (152KB)
Deform a single mesh object with a skeletal system

Individually weight each vertex to either bone
Also and example of Feedback and Ortho projections for picking vertices.
Article in PDF format


April 1998: Using Quaterions for Animation in OpenGL Part 2, Interpolation

Slash Harder

Source and App (192KB)
Builds on the Quaternions in the March issue from a character animation perspective.

March, 18, 1998: The magazine is out so here is the Source and Application for the April article
Also contains examples of Interleaved vertex arrays and Drawlists in OpenGL.
I had an error in my comments for the SLERP code, it is corrected here also.
Article in PDF format


March 1998: Using Quaterions for Animation in OpenGL

Slash

Source & Application (158KB)
Builds on the info on Quaternions in the February issue from a character animation perspective.

Feb, 16, 1998: The magazine is out so here is the Source and Application for the March article
Also contains examples of Interleaved vertex arrays and Drawlists in OpenGL.
Article in PDF format


Errata: Alan Watt's Advanced Animation and Rendering Techniques

Word Doc File (40KB)
Alan Watt was kind enough to send me an Errata to his excellent book
Advanced Animation and Rendering Techniques
It contains the arctan() fix that I noted in my April article.


January 1998: Working with Motion Capture in OpenGL

Dagger

Application and Source and sample motion files (480KB)
The January issue is out. Get Version 1.02 Code and Application now with .bva and .asf readers and sample motion files.

This updated version has the code for BVH and AMC file loading.
Also available is additional Acclaim format documentation.

I just found out that all the Acclaim docs with a bit of background is available in the Siggraph 94 Course notes #9
for those of you that have access.
Article in PDF format