FILMIT, A Computer Aided Animation System

G J Savage, J K Cook, M L Constant

1971

University of Waterloo

INTRODUCTION

Development of the computer aided animation system was begun in the winter of 1970. The system was designed to produce visual aid materials for Engineering Graphics, such as orthographic and perspective projection, dihedral angles, piercing-points, etc. It was thus required that a user be able to input objects precisely and to manipulate them with translations, rotations, foldouts etc. in 3-D space. Alphanumeric titles and descriptions were also necessary.

In the early stages a method of Fortran story boarding was developed to direct all the motions. The story boarding incorporated a series of CALL statements to link in any motion subroutine necessary.

The present FILMIT system is totally user oriented, so that one need know only how to operate the interactive devices. Since all decisions are made through menus and pointing techniques.

FILMIT consists of four major packages, SKETCH, a 2-D CRT input packages KINEMATIC, a package that handles motion 0f 3-D linked modules, ANIMATE, a package that directs all the motions and REPLAY, a package that provides a real time (24frames/s) replay of the animated sequence, and operates the camera synchronously with the computer.

GENERAL

Hardware

The hardware, the system runs on is a 24K, PDP-9 computer, a 340C precision display and a RBO9 disc. Filming is done with a Mitchell animation camera mounted on a dolly. The control box for the camera is connected to a programmable relay buffer in the computers thus, as soon as a new frame is generated, the camera is fired.

Basic Software System

The basic computer graphics software display system consists of the following packages.

  1. A perspective transformation routine that transforms a set of 3-D coordinates (the end points of lines) into a corresponding set of 2-D points. This package does the clipping of lines outside of the picture frame.
  2. A routine that transduces the 2-D coordinates into a list (a display file) of words that instruct the display scope.
  3. A routine that interconnects a series of display files.
  4. A routine that manipulates display files: files may be saved, deleted, turned off and on, or transferred within the memory.
  5. A tracking cross tor the CRT that is light pen controllable.
  6. Handlers for the function box and joysticks.

INPUT PACKAGES

All of the input packages are designed to produce pairs of 3-D coordinates that represent a line in space. Also, the packages must provide data to define which lines belong to which module, and the topological structuring of the modules themselves.

CRT Sketching

SKETCH is an interactive package that allows a user to construct 2-D wire frame modules on the CRT face with the aid of a light pen and function box. A numerical tagging procedure is employed so that modules can be recognized by the user and the system.

From the working mode menu (Figure 1) the user selects the desired modes as the modules are designed and manipulated. These are as follows:

CONSTRUCT
This function allows the user to construct and design new modules in a scratch pad area.
REVISE
This function enables the user to modify an existing module through the addition and deletion of lines.
RECALL
This function, simply turns on the display file of the module in question.
MOVE
This function allows the user to translate and reposition any module on the display, under joystick control.
FLEX
This function enables the user to unite several modules together under one common tag number.
LINK
This function enables the user to link the modules together into any desired hierarchial structure, similar to the human-arm- hand complex. The parent-son relationships, centre of rotations and points of module attachments are set with the aid of a menu.

Device Selection

A submenu entered from CONSTRUCT Or REVISE allows the user to select the input device (pen or joystick), enter the delete function or exit by saving the designed module.

In either the CONSTRUCT or REVISE function, two input devices, the light pen and joystick may be used, and several modes of drawing are available. In the light pen mode, the user may draw lines at any angle, only horizontal or vertical, or a continuous string of lines. These sub modes are selected with the function key box.

when the DELETE function is entered any lines in the module being designed may be rubbed out by pointing the light pen at them. A very simple technique is used to identify the line, a light pen detect can return the core address of the particular word in the module display file that the CRT is executing. This address can be matched to a correlation map that is built at the same time as the display file is produced. Once the line number has been ascertained a garbage collection procedure commences to remove it from the system.

The SAVE function does the following

  1. builds a correlation map of the module number and the lines associated with it
  2. sets up the tagging menu if it is a new module
  3. turns off the display file and does any bookkeeping to account for new or deleted lines.
  4. When the modules are constructed and linked-up, the data may be recorded on a disc file or saved in hard copy form on paper tape. As the 2-D coordinates are outputted a zero third dimension is added to make the coordinate table compatible with the system.

Digitized 3-D Data

Data for any 3-D modules may be punched up on paper tape and fed directly into the ANIMATE package. This method is useful when modules are complex or some particular characteristic is desired; such a characteristic may be a circle or oval.

KINEMATIC

The Kinematic package performs rotations, translations and scalings of 3-D linked modular structures. This type of package is mandatory for controlling the movements of a model of a human arm, or the folding of planes in a box or carton, for example.

The input to this package is the coordinate table for each module, points of attachments, and pointer arrays that describe the topology of the structure. The basic topology must be that of a tree structure, and may have up to five branches from each node. Each module is described with respect to its own coordinate frame of reference, then these frames are nested inside each other, a branch being represented by two or more frames attached to another. This means that the origin of a son framed reference appears as a point in the parent frame of reference, and the whole frame, described with respect to this point may be projected back into its parent frame. Linkages are maintained by keeping this point of attachment constant.

Translation

Translations are performed by changing the points of attachment of a module in its parent frame. Then, the appropriate display files to present the changes are regenerated.

Scaling

Scaling is performed by generating a scaling matrix and multiplying it with the coordinate data tor the lines of the specific module.

Rotation

Rotations are performed by accumulating the rotational history for each module in its own rotational matrix. When the desired rotations have been specified, a transformation on each module involved is performed. The new coordinates for each module are then projected into their parent frames of reference until all points are projected into the frame of reference of the screen. This projection preserves the topology of the structure completely but changes the geometry to that which was specified in the rotational matrices therefore, the modules rotate, but do not become unlinked.

The equation used to calculate the desired projection is

p m (i)0 = Σ i=1 L=0 π L j=0 [ R ac j ] p c L + Σ i j=0 [ R ac j ] p m i
with  i = 1, n
      m = i, k(i)
      [Rac0] = I
      
where i is the module number
      m is the point number
      
      [Racj] is the accumulated rotational matrix of module j
      = [[R1][R2][R3]...[R1J]] the product of all rotational matrices for module j

      pcL is the centre of attachment of module L in its parent's frame

      pmi is the set of k(i) points describing module i wrt the ith frame

      pm(i)0 is the set of k(i) points representing the projection of
       ith frame of  reference onto the screens frame of reference

The index i is the module number. An algorithm to perform the above calculations requires starting from the base module and working to the inner most module in the tree structure. Since branching is permitted in the structure, the index is not necessarily sequential. This requires an algorithm which will search the structure and return the index i of the next module to be processed.

To allow this process, the topology of the structure is set up in a 2-D array in which the column number represents the module or reference frame number. For any module or column the entry in the first row is the parent, and the possible entries in the next five rows are sons.

This pointer array allows the program to start at any module (column in array) and access all reference frames which are nested within it in the desired order.

ANIMATE

The motion routines are incorporated into an executive routine which branches to various routines as directed. To determine what this branching is the light pen is used to select and set the various parameters. These parameters are in hierarohial order:

eye point module number Translate direction distance Rotate axis angle Scale direction factor DONE ? F next module T FRAME COUNT

The animation is built up by a string of sequences or shots, each shot consisting of some frame count duration. Twenty-four frames are equal to one second of animation, thus a time - frame number correlation is quite simple.

To build a shot the user might select module one and give it a desired characteristic such as a rotation about the x axis through 30 degrees, then give module three a translation of two units along the x axis, and so on. If this motion is to happen in two seconds the frame count would be set to 48. A detect on the GO light button initiates the animated shot. At the end of 48 frames a new shot may be built, by further setting the parameters.

As a shot is built, all the characteristics are placed into a matrix. This matrix correlates the quantities and functions to the particular module specified.

To establish a hold, only the frame count is set, thus the modules have zero movement increments and the same picture is multiply recorded.

Basically then, the ANIMATE executive routine does all the Calls to the various motion routines automatically instead of the user having to write them out in a Fortran program.

A typical two second FORTRAN sequence might be:

      DO 21 I = 1,48 
      CALL ROTATE (RO, PI, YA, MODULE)      : Rotate Module 
      CALL PRJCT (MODULE) 
      CALL DRANIT (DIST, NEW, MODULE)       : Construct display files
      CALL PULSE                            : Record on disc
  21  CONTINUE 
1 Construct display files

REPLAY

The Replay package allows the user to preview the motion at 24 frames/second before any filming is done. This gives the animator feedback information concerning rates of rotations, zooms, pans, holds, etc.

The PDP-9 is not able to produce a new picture frame every 1/24 of a second, because of the amount of calculations (such as persepctive transformations, display file building) which are required. However, if all the display data for each frame is saved on the disc, the PDP-9 is able to monitor the disc and the display, so that frames can be displayed at a rate of 2 per second (real time).

A disc track contains 576 blocks, or a possible 24 seconds of replay. Each frame is assigned one block for the pertinent display data. The display data is transferred to the disc after each frame has been generated tor the CRT.

Replay Request

A replay may be obtained at any point in the motion sequence. A replay is requested by setting the accumulator switch #17 on the computer to on. Immediately after the latest frame is transferred to disc, the AC switches are checked and if #17 is set, the PDP-9 begins to execute the Replay. The computer sequentially recalls the blocks of display data from the disc and presents them to the 340C display. When AC switch #17 is off, the routine allows the computer to exit from the Replay mode and to generate new frames.

Double Buffering

Because the 340C and the disc run asynchronously, a double buffering technique is used to decrease the shuttle time of display frame data from disc to memory, and thus to the display. This implies that the computer can be filling buffer area A, with, for example, frame #29 while the display is processing frame #28 in buffer area B.

A high speed clock is used to time and monitor the operations. Basically then, when the display is started into one buffer area the clock is set to run for 1/24 of a second. The computer, after starting a frame display and starting the clock, finishes some bookkeeping, fills the unoccupied buffer and then waits for the clock signal. The signal is used to transfer display control to the newly filled buffer.

Filming

When the animation is found acceptable the camera may be rolled into position. The control for the camera is plugged into a general patch panel that connects a programmable relay buffer to the camera.

In the Film mode, the frames again are recalled consecutively from the disc and displayed. Each block of frame data that is recalled is slightly modified so that it is refreshable for about a third of a second. This is necessary because the shutter speed on the camera is in the order of a fifth of a second. The maximum filming speed is three frames per second, so that a full disc track of 576 frames may be filmed in about 30 minutes.

USING THE SYSTEM

Some of the types of work produced with the system is as follows:

  1. Titles of productions, words, single letters can be manipulated to develop very interesting effects.
  2. Engineering Graphics: perspective and orthographic projection have been illustrated by entering a model of a projection system and directing the many parameters through the various unique situations. Dihedral angles have been shown through an animated hopper.
  3. The study of spaces in static and dynamic situations with the aid of an animated stick figure man. Detailed motion may be introduced to direct the human like movements.
  4. Entertainment material is very easy to produce with the system, whether it is a simple clown doing acrobatics, cubes folding or dancers gliding about a stage.
  5. Abstract art is readily produced on both 16 mm motion pictures or on still compositions. Overlays and multiple exposure techniques, combined with the 3-D and perspective characteristics produce startling results.

Colour

Colour work is done by using colour film and filters. The scope provides a broad enough spectrum of light to exhibit even good reds. Multiple colour work is done by overlays. The camera is closed, reversed and run backwards to a starting frame, then a different filter is inserted, and the new sequence is added to that already photographed.

CONCLUSIONS

Design Feedback

As with any computer aided design system the central philosophy is to decrease the iterative time between new creations and ideas; and this holds true with the animation system. The ability to foresee the animation sequences before filming is done is important because the user may criticize the material immediately, and thus save time and money.

Menuing

The ability to build almost foolproof rules of interaction into the system is very important. This is done with menuing and pointing techniques. The menus present only logical and possible selections so that stupid or inconsistent decisions are not made. The menus are set up in an hierarchy, with returns back to the previous level.

There are still a considerable amount of ergonomic problems to overcome with the system. A change in the menuing and pointing techniques is required: there are better systems than a light pen. Matching up the menu selections on the screen with the buttons on the function box is a better solution. Best, would be a CRT screen overlay touch wire plate, that would have the computer generated menu items behind it on the screen. These are available from several British and French manufacturers.

Future

In the future, the trend in recording will be towards video recording. This is now possible with the introduction of inexpensive video discs that are compatible with stop frame recording of the computer system and the real time viewing of a TV system. Also, video recording bypasses many of the filming problems.

The animation camera is transferable from the dolly back to the animation stand. Thus, it is possible to integrate real life material and artist created material with the computer generated images.

New Developments

Several new packages will be added. One package will be a function that allows a user to sketch two pictures, specify the number of frames, and have the first picture transfer itself into the second sketch. This function is useful for creating special effects, such as translating a circle into a square or a square into production name.

Some work is being done on a new approach to the hidden line problem and the shading of objects. The crux of the solution is a video technique.

ACKNOWLEDGEMENTS

The authors wish to accredit Dr J A Field, Director of the Engineering Computer Centre for the development of the perspective routines used in the system, Mr P Henderson for many of his basic system software contributions and Mr C Playfair for his criticisms as a user of the system.

REFERENCES

1. K C Knowlton, A Computer Technique for Producing Animated Movies, AFIPS, Vol 25, Pp 67-87, 1964.

2. D D Weiner, S E Anderson, A Computer Animation Movie Language for Educational Motion Pictures, AFIPS, Vol 33 Pp 1317-1370, 1968.

3. J Citron, John H Whitney, CAMP - Computer Assisted Movie Production, AFIPS, Vol. 33 Pp 1299-1305, 1968.

4. Carol Fernsler, Camille Volence, Computer Aided Animation, IBM Research RC 2763, January, 1970.

5. D P Booth, N Burtnyk, The Simulation of Three Dimensional Objects on a Two Dimensional Computer Display, NRC bulletin #10613, 1969.

6. J K Pulfer, Digital Display Hardware for Man-Machine Communications, NRC bulletin #10552, 1969.

7. R Baeker, Picture Driven Animation, AFIPS, Vol. 34, Pp 273, 1969.

8. G J Savage, J K Cook, M L Constant, Real Time Preview tor Computer Aided Movies, Fourth Decus Canadian Symposium, Sept. 1970.

9. Malcola Macaulay, A Low Cost Computer Graphics Terminal, APIPS, Vol. 33, Pp 777-785, 1968.

Figure 1 - Wptk Menu.
Figure 2 - Street Scene.
Figure 3 - Hopper and Man Frames.
124