# Key Frame Continuum

As in many consumer level animation programs, animations are controlled primarily through what are thought of as key frames (often called key times). At each key frame, each object has a state. When the animation is created, the only information contained is the states of objects at key frames, so for the span of time between two times interpolation between the states at different times is applied to get the transition of states between key frames.

An analogy for this relationship can be described as a polygon drawn on a Euclidian plane. A polygon on a Euclidian plane consists of a series of lines, but all that is really needed to fully express and generate the polygon is a finite sequence of points: between adjacent points in the sequence a linear interpolation is made in the drawing of line segments connecting the points. In this analogy the points are the key frames, and the polygon is the entire animation.

## Key Frames in JAWAA

In a regular more advanced animation program, key frames are discrete points in what is otherwise a flowing continuous timeline: there may be keyframes at 0 seconds, 2 seconds, 5 seconds, 10 seconds, 11 seconds, and so on. In JAWAA animations, however, all there are are key frames; key frames are not contained as points in some flowing continuous timeline, because the notion of time in JAWAA animations consists only of successions of key frames.

Other animation programs absolutely require the notion of a continuous timeline in order to properly control animations. However JAWAA is an educational tool for algorithm and object animation, to easily animate objects represented in a program. Continuous time doesn't really have much bearing for those purposes.

The term timeline is used in JAWAA, but merely to describe the discrete finite sequence of key frames.

## Key Frame Browser

The key frame browser is the panel that runs along the bottom side of the editor window. One can traverse key frames, add key frames, and delete key frames. The key frames are ordered and indexed by number from 1 up through the number of key frames. The text display on the left displays the current key frame along with the number of key frames (e.g. 2/5 means 2nd of 5 frames). The buttons are, in order, move to the first key frame ( ), move to the previous key frame ( ), move to the next key frame ( ), move to the last key frame ( ), add a key frame ( ), and remove a key frame ( ). One can move to a frame easily by clicking on and sliding the slider on the right.

Adding a key frame will put a key frame immediately after this frame and set the current frame to that new frame. Deleting a key frame will prompt the user for confirmation and, if confirmed, remove the current key frame and move to what was the previous key frame. One cannot delete the first key frame.

## Objects Across Time

There are some simple rules governing how objects work across time.

• The state of an object describes its characteristics: location, size, colors, even existence itself is considered a property of state.
• When the state of an object is changed, it changes from that point on until the key frame when the state is next changed. For example, suppose a document has a timeline with some large number of key frames, and an object that has states X and Z at some times A and C respectively (where key frame A occurs before C), and no other states defined at any key frames between A and C. Then suppose the object is changed at some key frame B, so that there is now some state Y at frame B. The object shall then be considered to have state Y from frames B through the frame just before frame C. The object will maintain state Z at frame C onward just as before.
• The exception to the above is the change in state that marks an objects transformation from existence to nonexistence between time: deletion. When an object is deleted, all states after deletion become meaningless and are discarded.
• A state of an object is native to that key frame. If one removes a key frame, the state for that object is discarded. Suppose there is an object that has states X, Y, and Z at key frames A, B, and C respectively and in that order. Now, the frames from B till up before C have state Y. If frame B is removed, then so too is state Y. Now, the frames that previously had state Y for the object that still exist now have state X.

## Detail of States in Objects

Objects have only one state to store all their characteristics. Suppose a user has three key frames A, B, and C, in that order. A text object is created at frame A with a string "How's it going?" The user then moves to frame C, and moves the text object over two pixels. (This causes a new distinct state for that object to exist at frame C.) The user then moves to frame B and changes the text to "My head hurts." This again changes the state, this time at frame B, and changes the state for all frames up through the next frame that has a state native to it. This mean that when the user goes to frame C the text object still says "How's it going?" Depending on what commentary is received, this may be changed in a future version.

Thomas Finley, 2001