This section shows how to add frames and animations to a simple cube.
A frame is expected to take the following structure.
Frame Aframe { // The frame name is chosen for convenience. FrameTransformMatrix { ...transform data... } [ Meshes ] and/or [ More frames] }
Place the defined cube mesh inside a frame with an identity transform. Then apply an animation to this frame.
Frame CubeFrame { FrameTransformMatrix { 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000;; } {CubeMesh} // You could have the mesh inline, but this // uses an object reference instead. }
An animation is defined by a set of keys. A key is a time value associated with a scaling operation, an orientation, or a position.
Animation Animation0 { // The name is chosen for convenience. { Frame that it applies to - normally a reference } AnimationKey { ...animation key data... } { ...more animation keys... } }
Animations are then grouped into AnimationSets:
AnimationSet AnimationSet0 { // The name is chosen for convenience. { an animation - could be inline or a reference } { ... more animations ... } }
Now take the cube through an animation.
AnimationSet AnimationSet0 { Animation Animation0 { {CubeFrame} // Use the frame containing the cube. AnimationKey { 2; // Position keys 9; // 9 keys 10; 3; -100.000000, 0.000000, 0.000000;;, 20; 3; -75.000000, 0.000000, 0.000000;;, 30; 3; -50.000000, 0.000000, 0.000000;;, 40; 3; -25.500000, 0.000000, 0.000000;;, 50; 3; 0.000000, 0.000000, 0.000000;;, 60; 3; 25.500000, 0.000000, 0.000000;;, 70; 3; 50.000000, 0.000000, 0.000000;;, 80; 3; 75.500000, 0.000000, 0.000000;;, 90; 3; 100.000000, 0.000000, 0.000000;;; } } }
For more information, see the Animation and AnimationSet templates.