Introduction

Colin Emmett and Alan Kitching were early users of the computer graphics facilities at the Atlas Computer Laboratory. The main requirements they had were a device for inputting drawings (a D-MAC pen follower), a fast computer (Atlas and later the ICL 1906A) and a means of outputting graphical images on to film (SC4020).

2. Image Capture

2.1 Inputting Drawings via the D-MAC

The D-MAC pencil follower allowed the operator to input the coordinates of a drawing by either a point at a time, lines between two points, or a sequence of points making up a shape. Commands output from the D-MAC could indicate the type of output being generated. The coordinate pair output had the form:

Exxxx  Fyyyy

E indicated a 4-digit X-value and F indicated a 4-digit Y-value. A typical output would be something like:

PAGE,1
ORIGINS
E5882 F1013
E7972 F0997
E7979 F1996
E5892 F2009
TRACK,CURVE
E5985 F1111
E6085 F1247
E6187 F1345
E6282 F1370
E6387 F1186
E6484 F1160
E6584 F1256
E6678 F1445
E6782 F1614
E6885 F1768
E6981 F1868
E7084 F1918
E7185 F1868
E7284 F1765
E7380 F1645
E7477 F1535
E7576 F1442
E7676 F1342
E7777 F1252
E7875 F1180

D-MAC Path Drawing

Thus the D-MAC gave the user the ability to input the coordinates of a graphical outline. The initial implementation towards ANTICS was to specify a curve by a set of line segments and make it a closed curve by adding a point back to the opening point. No constraint was placed on the outline input so it was possible for the outline to cross over itself.

Simple Outline

It soon become apparent that such outlines were quite limited and so an object was allowed to consist of a group of outlines. Here is an example with three outlines of 44, 17 and 9 coordinates giving output on the Antics 1000 by 1000 grid

  200  800
  256  794
  314  777
  371  753
  425  723
  471  690
  508  656
  533  624
  542  596
  529  584
  496  588
  451  602
  426  610
  401  617
  423  590
  446  564
  468  538
  491  512
  460  509
  406  512
  364  526
  323  569
  335  509
  369  471
  426  456
  463  457
  506  464
  527  426
  528  385
  509  351
  470  338
  382  343
  300  360
  226  387
  162  424
  109  471
   69  527
   43  593
   35  668
   47  720
   81  762
  134  790
  165  797
  200  800
  
  235  770
  263  764
  282  750
  293  730
  295  707
  289  683
  277  663
  258  649
  235  644
  200  649
  177  663
  165  683
  163  707
  170  730
  185  750
  207  764
  235  770
  
  260  746
  282  737
  290  719
  282  700
  260  692
  243  700
  237  719
  243  737
  260  746

Group of Outlines

Finally, the aim was to generate coloured areas not outlines so that there was a need to generate Fortran routines that could take the group of outlines as a single area and decide what part of the area is inside and which is outside. At the time, the only algorithm used was to take a line from infinity to a point and if it met the outlines an odd number of times it was inside and if it did not meet the group of outlines or met it an even number of times it was inside. The decision was made to create the filled area by drawing a series of vertical lines two raster positions apart on the SC4020 to fill the area (the SC4020 vertical lines were about 2 raster positions wide).

Coloured Group of Lines

2.2 Image Library

Images captured via the D-MAC were stored in an image library for future use. The creation of animated sequences tended to consist of defining a number of key frames much the same as in conventional animation. These intermediate frames were also added to the library and called on when required.

3. Transformations

3.1 Introduction

A major influence on Antics was the Computer Image Scanimate system albeit from quite different backgrounds. Scanimate had proved a major supplier of short TV adverts in the USA and elsewhere using a computerised analogue system for manipulating video images. Art work was captured and then manipulated via analogue transformations of the image with good control over the timing of sequences.

The Antics equivalent was to define a set of transformations of the captured X-Y definitions of objects both in the X-Y plane and the time domain.

Simplifying the problem, images are defined on an infinite plane with a 1000 × 1000 area visible. For a 4-second animation, about 100 separate frames are needed that vary over time. Thus the captured images needed to be transformed both in the X-Y coordinate space and the time dimension.

For a 4-sec animation, the array of C(X,Y) coordinates for each object needed to be transformed into C(X,Y,t) for t=1,100.

3.2 Transformations of Objects in Space and Time

Transformations to be applied to objects are defined with respect to fractions of the size of the object. For example, the height of the object might be halved keeping the centre at the same position. Once defined, that transformation could be applied to a range of different objects of different sizes and positions.

The process is reasonably complicated for each animation sequence:

  1. Define the images needed for the animation at key frames in the sequence
  2. Calculate any transformations to be applied to the image coordinates for these images
  3. Define the interpolations required to produce the images for any intermediate frames

ANTICS allows different objects to have quite different animations so that individual objects may have several transformations applied in order.

The example below is a recreation of an early ANTICS demo showing off various effects. Over the following period more and more effects were added to the repertoire. All were transformations of the coordinates making up objects and pseudo 3D was even added by this process.

Transformations of Scale, Rotation, Translation, Timing and Coordinate Transformations

3.3 Inbetweening

In most animations there is a need to change one object into another. If the two objects have the same substructure and the number of points in each object are the same then, in theory, it is a simple operation of interpolating coordinate positions over a set of frames. But it is never that simple for several reasons:

  • The number of points in two images is seldom the same. A face moving may make a second eye come into view thus changing the number of sub-objects.
  • Unless the two images were created with the expectation that they would be transformed from one to the other then the starting position will almost certainly be different.
  • SCANIMATE also had the same problem and it was replaced by CAESAR (Computer Animated Episodes with Single Axis Rotation). Often the intermediate positions are not a simple interpolation. Both the National Film Board of Canada and Computer Image had added point rotations to solve the problem.

The three examples below illustrate the problem of morphing the duck into a cat and back. The number of points in each image are the same. The cat is drawn starting at the top centre. The top duck is started at the tail and is drawn clockwise, the same as the cat. The bottom left has the origin starting at the top of the duck's head and drawn clockwise while the one on the bottom right is drawn anti-clockwise.

There are significant differences in each animation.

Changing a duck to a cat and back

The problem that often arises is that the two drawings have different numbers of points and there are various ways of solving the problem, several of which were used by Antics:

  • Add points to the image with the smallest number of points until they are the same. The easiest way giving reasonable results is to add zero length vectors spaced around the image.
  • An alternative is to divide long lines in two in the image with less points until the number is the same.
  • More sophisticated transformations include transforming the two images into two evenly spaced sequences of lines with the individual lines in the image of similar length.

ANTICS initially had quite simple inbetweening effects but the constraints were relaxed until almost any object could be inbetweened into another.

3.4 Image Transformation and Timing Effects

The early version of ANTICS was reasonably simple in the FX tranformations (FX meaning EFFECTS!) available but the system was under constant enhancement over a number of years until a large range of effects could be used in generating animations. Some examples are:

SCALEX, SCALEY
These two FXs define scaling transformations about the horizontal and vertical defined with respective to the centre or some other position.

PAN, ZOOM
These two FXs define the basic movements across the screen and the view. Note that the changes being made are linear in the sense that half-way through the set of frames the position reached is half way through the change in position or size.

STEADY, SMOOTH
As well as defining the position and shape of objects, how far these changes have taken place in time can also be defined. STEADY is the linear movement mentioned above. If the movement is 0.4 through the changes made then the timing will be 0.4 through as well. Movement of objects that appear to have mass tend not to jirk forward at the start but gradually pick up speed and similarly the object slows down as it is getting close to its final position. SMOOTH achieves that effect. In the movements below the first half is STEADY and the second half is SMOOTH for the PAN and the ZOOM.

RANDOM
Random alterations to an object were added:

Over the years the number of FXs rose to over 50 including 3D effects, inbetweening and skeleton animation.