Game Development Reference
Reading an ANIMATION section
A GEOMOBJECT, CAMERAOBJECT and LIGHTOBJECT can all contain
a TM_ANIMATION subsection. This subsection contains tags CON-
TROL_POS_BEZIER, CONTROL_ROT_TCB and CONTROL_SCALE_
BEZIER. A bezier section describes a curve in bezier format and a TCB
section contains a curve in TCB format.
CONTROL_POS_BEZIER is itself a subsection; within this section are
lines that contain the tag CONTROL_BEZIER_POS_KEY followed by 11
values. The first value is the frame value multiplied by the value found in
the SCENE_TICKSPERFRAME tag in the SCENE section. To get this as
a frame value, simply divide by the SCENE_TICKEPERFRAME value.
The next three values are a vector giving the position of the object at this
frame. The next six values give the tangents at the start and end of a
curve section as a three-component vector. The last value always seems
to be zero, but is probably some type of control flag.
A CONTROL_ROT_TCB subsection describes a TCB curve. Each line
in this section contains a CONTROL_TCB_ROT_KEY tag followed by 10
values. The first value is the frame value multiplied by SCENE_
TICKSPERFRAME. Then three values that give the rotation axis. A single
value gives the rotation angle, leaving five values. Trials suggest that these
values are tension, continuity and bias and two values that remain a
This leaves the CONTROL_SCALE_BEZIER subsection. In this sub-
section, each line begins with the tag CONTRL_BEZIER_SCALE_KEY
followed by no less than 15 values. The first value is the frame value
multiplied by SCENE_TICKSPERFRAME. Then a vector follows with the
x , y , z scale. Values 5-7 give the scale axis and value 8 the scale angle.
The incoming tangent is given by values 9-11 and the outgoing by values
12-14. The final value serves the same purpose as the last value in the
CONTROL_POS_BEZIER subsection, which I think is to provide some
kind of control flag.
*CONTROL_BEZIER_POS_KEY 0 0.4590 1.9079 48.0766 0.0000
*CONTROL_BEZIER_POS_KEY 4000 0.4590 94.4473 48.1007 0.0000
-0.0164 -0.0001 0.0000 0.0164 0.0001 0
*CONTROL_BEZIER_POS_KEY 4160 0.4590 97.0334 48.1247 0.0019
-0.0153 0.0015 -0.0019 0.0153 -0.0015 0
*CONTROL_BEZIER_POS_KEY 6880 -92.0482 97.0334 -31.8995
0.0196 0.0000 -0.0181 -0.0196 -0.0000 0.0181 0