Animay Motif Editor

Animay Motif Editor


1.0 Introduction
2.0 The Interface
2.1 Spline Display
2.2 Toolbar
2.2.1 Time
2.2.2 Value
2.2.3 Inser
2.2.4 Delete
2.2.5 Grouped
2.3 Scroll Bars
2.3.1 Value Scroll Bars
2.3.2 Time Scroll Bars
2.4 Menus
2.4.1 File
2.4.1.1 Load Spline
2.4.1.2 Save Spline
2.4.1.3 Load Animation
2.4.1.4 Save Animation
2.4.1.5 Generate Frame
2.4.1.5.1 ... Selected Keyframe
2.4.1.5.2 ... Closest Frame
2.4.1.5.3 ... Exact Time
2.4.1.6 Generate Animation
2.4.1.7 Exit
2.4.2 Edit
2.4.2.1 Change Duration
2.4.2.2 Change Period
2.4.2.3 Change Frames
2.4.3 Variables
2.4.4 Options
2.4.4.1 Group Variables
2.4.4.2 Other Options
2.4.5 Help

1.0 Introduction

This document will look at the different functions of the Animay Motif Editor, and describe some techniques for easier editing of spline curves. It will explain the interface of the editor, with a description on what each menu item does, how the toolbar works, and how to use the mouse to edit a spline.

2.0 The Interface

When first executed, the Animay editor comes up with a window similar to this :

This was produced by executing the command "animay -i demo.anp -e".


2.1 Spline Display

The most important part of the editor is the spline display window :

As can be seen, this displays one or more of the variables as a graph of value versus time. The current spline is a solid line. The scale on the left of the graph show the amplitude of the splines, while the text along the base tell us such things as the current zoom factors, the slice in time shown, and information about any currently marked point.

The dotted splines are variables grouped with the primary spline. When operations such as insertion, deletion and alteration are performed, they can effect the primary spline only, or all the grouped splines together.


2.2 Toolbar

The toolbar controls the effect of clicking on a spline curve, and displays what variables are being displayed :

The Toolbar sits just above the spline display, and consists of a number of checkboxes, and a list of what variables are being displayed. The primary spline is listed within []'s, and any other variables grouped with it are listed within {}'s. For this example, camx is the primary spline, and camy and camz are the splines grouped with it, shown as a dotted spline.

When none of the buttons are checked, clicking and dragging button one (usually the left hand mouse button) within the spline display will mark a point, shown as a vertical line with a cross where it intersects the primary spline. The closest keyframe will also be marked. The middle part at the bottom of the spline display lists the time and value at which the vertical line intersects.

Buttons two and three have no effect unless the insert or delete buttons are checked.

2.2.1

When the time button on the toolbar is checked, clicking button one and dragging within the spline window will shift the nearest keyframe's position in time to where the mouse is pointed. When being dragged, a keyframe cannot cross over another keyframe.

2.2.2

When the value button on the toolbar is checked, clicking button one and dragging within the spline window will shift the nearest keyframe's value to the level the mouse is pointing to.

2.2.3

When the insert button on the toolbar is checked, clicking button two (usually the middle mouse button) will insert a new keyframe at the time pointed to by the cursor. If the value button is also checked, then it will be inserted with the value pointed to, else it will be inserted at the value at that time for the old spline.

2.2.4

When the delete button on the toolbar is checked, clicking button three (usually the right mouse button) will delete the closest keyframe.

2.2.5

When the grouped button on the toolbar is checked, all spline editing, including inserting, deleting and dragging keyframes, will be carried out on all splines displayed, both the primary one, and the grouped ones. This is useful when you have keyframes occurring at the same time for the variables, and you wish to move the keyframe through time to rescale the animation.

2.3 Scroll Bars

There are four scroll-bars surrounding the spline window; two on the left, and two along the bottom. The inner scroll bars alter the offset of its axis, while the outer scroll bars alter the zoom factor. These are used for focussing in on sections of a spline to generate more accurate readings and positioning of keyframes.

2.3.1 Value Scroll Bars

As there are no limits as to the range of the values, the Value scroll bars do not have a range restricted by any parameters of the animation.

2.3.2 Time Scroll Bars

As there is a definite limit on the duration of the animation, the range of the Time offset scroll bar is restricted by the zoom factor. In the image above, the zoom factor is x1. The section shown is 100% of the whole animation. Therefore any offset would take it beyond the boundaries of the time limit.

The image below shows a zoom factor of x2, showing 50% of the total duration. The offset bar may now be moved to change which part of the spline is displayed.


2.4 Menus

2.4.1

2.4.1.1 Load Spline
Loads a previously saved spline from disk. The new spline overwrites the current spline for the primary variable.
2.4.1.2 Save Spline
Saves the spline for the current variable to disk. The spline is saved as alternate time and value coordinates, separated by commas. Using load and save spline gives a form of rudimentary cut and paste between variables.
2.4.1.3 Load Animation
Loads a whole animation, scenery data and variable data. The new animation overwrites the current loaded animation.
2.4.1.4 Save Animation
Saves the animation to disk as an Animay file (".anp").
2.4.1.5 Generate Frame
Generates a single frame based on the selected point. This is handy for checking the frame at that time to make sure it all looks correct, without generating the whole animation.

While a frame is being generated, a dialog box will stay open. At any time, clicking on the "display" button will attempt to view what of the frame has been processed so far. A similar dialog box appears once the generation is completed, and the frame may be displayed. NB: To display an image it is required that an external image viewer be installed, and the DISPLAY_CMD and DISPLAY_CMD_POST defines configured in "animay.h" before compilation.

There are three methods for determining the frame data :

2.4.1.5.1 ... Selected Keyframe
Generates data for the exact time the selected keyframe is at. Just because a keyframe controls the shape of the spline doesn't mean that the keyframe occurs precisely on a frame point, so the file produced may be of the format "t-#####.tga", where ##### is the time (in milli-units) at which the keyframe occurs.
2.4.1.5.2 ... Closest Frame
Generates data for the frame closest to the marked point (vertical line). This frame should have the same filename as if it was generated by processing the whole animation.
2.4.1.5.3 ... Exact Time
Generates data for the exact time set by the marked point (vertical line). This has the same format as the keyframe filename, as it does not always occur on a frame.
2.4.1.6 Generate Animation
Generates the entire animation. While it is working, you may still edit the spline, although this will have disasterous effects on the animation.

The following dialog box is shown while the animation is generating :

As can be seen, this shows what frame is currently being generated. Selecting "Skip Frame" will abort the current frame and begin on the next. Selecting "Abort" will abort the whole generation.

2.4.1.7 Exit
Quits the Animay Motif Editor. Selecting this will also abort any frame generation currently in process.

2.4.2

The three options under the edit menu each bring up a dialog box with which you can alter the value of one of the animation parameters.
2.4.2.1 Change Duration
Changing the duration of the animation will cause each keyframe's place in time to be recalculated to the new scale. Since splines saved to disk are not scaled, a spline may be stretched or shrunk by saving it to disk, changing the duration, and then reloading the spline.

Changing the duration also changes the period, which is recalculated from the new duration, and the number of frames which is unaffected.

2.4.2.2 Change Period
Changing the period of time between each frame will cause the number of frames to be recalculated, based on the new period, and the duration which is unaffected.
2.4.2.3 Change Frames
Changing the number of frames will cause the period of time between frames to be recalculated, based on the new number of frames, and the duration which is unaffected.

When the current variable is displayed, the value of each frame is calculated, and straight lines drawn between each frame. This means that if a spline looks jerky or disjointed, the resultant animation will also look jerky. Increasing the number of frames will reduce the jerkiness. Likewise, if the spline takes a long time to refresh, then a reduced number of frames will increase the refresh rate, as less lines will be drawn.

2.4.3

The variables menu contains a list of all the variables in the animation. The primary variable is indicated by a diamond dimple next to it. Selecting another variable will make that variable the primary variable.

2.4.4

2.4.4.1 Group Variables
This comes up with another sub-menu. At the top of the menu is the name of the current variable. Underneath is a list of all the other variables. Those variables grouped with the current variable are indicated by an indented dimple. The other variables may be grouped or ungrouped with the current variable by clicking on its name. If a new variable joins the group, then it loses its groupings with all other variables, and gains the same grouping as the primary variable.
2.4.4.2 Other Options
The rest of the options menu consists of POVray options which may be selected from within Animay.

2.4.5

The help menu supplies brief information about the current version of Animay, some help on the toolbar and scrollbars, and a button to access the Animay documentation via Mosaic (or other HTML reader), if configured correctly.
Trevor Phillips
phillips@guri.cage.curtin.edu.au