COMPUTER ANIMATION
Design of animation sequences
Computer animation is the process used for generating animated images using computer graphics.
Some typical applications of computer-generated animation are entertainment (motion pictures and
cartoons), advertising, scientific and engineering studies, and training and education. The term
computer animation generally refers to any time sequence of visual changes in a scene.
An animation sequence is designed with the following steps:
1. Storyboard layout
2. Object definitions
3. Key-frame specifications
4. Generation of in-between frames
The storyboard is basically the layout of what action is going to happen in the animation. It defines
the motion sequence as a set of basic events that are to take place. Depending on the type of
animation to be produced, the storyboard could consist of a set of rough sketches or it could be a list
of the basic ideas for the motion.
An object definition is specifying the characteristics of an object present in the scene. Objects can be
defined in terms of basic shapes, such as polygons or splines. In addition, the associated movements
for each object are specified along with the shape.
A keyframe is a detailed drawing of the scene at a certain time in the animation sequence. Within
each key frame, each object is positioned according to the time for that frame. Keyframe specifies
where the object will be at what time. Keyframes are spaced at short intervals so that we get a
better animation sequence. More the number of keyframes better will be the animation. It provides
more information about the position of objects at specific times.
In-betweens are the intermediate frames between the key frames. The number of in-betweens
needed is determined by the media to be used to display the animation. Film requires 24 frames per
second, and graphics terminals or television are refreshed at the rate of 30 to 60 frames per second.
Usually there are 3 to 5 in between frames between 2 key frames. To record 1 minute of animation
on film we need around 24X60 = 1440 frames which are aligned in sequence.
GENERAL COMPUTER-ANIMATION FUNCTIONS
Animation packages, such as Wavefront, for example, provide special functions for designing the
animation and processing individual objects. One function available in animation packages is
provided to store and manage the object database. Object shapes and associated parameters are
stored and updated in the database. Other object functions include those for motion generation and
those for object rendering. Motions can be generated according to specified constraints using two-
dimensional or three-dimensional transformations. Standard functions can then be applied to
identify visible surfaces and apply the rendering algorithms. Another typical function simulates
camera movements. Standard motions are zooming, panning, and tilting. Finally, given the
specification for the key frames, the in-betweens can be automatically generated.
RASTER ANIMATIONS
A simple method for translation in the xy plane is to transfer a rectangular block of pixel values from
one location to another.
Two-dimensional rotations in multiples of 90" are also simple to perform, although we can rotate
rectangular blocks of pixels through arbitrary angles.
To rotate a block of pixels, we need to determine the percent of area coverage for those pixels that
overlap the rotated block. Sequences of raster operations can be executed to produce real-time
animation of either two-dimensional or three-dimensional objects, as long as we restrict the
animation to motions in the projection plane. Then no viewing or visible-surface algorithms need be
invoked. We can also animate objects along two-dimensional motion paths using the colour-table
transformations. Here we predefine the object at successive positions along the motion path, and
set the successive blocks of pixel values to colour-table entries. (Colour lookup tables (CLUTs) are
found in graphics cards (display adapters) in order to translate the colour in an image to
the colour in the hardware.)
We set the pixels at the first position of the object to "on" values, and we set the pixels at the other
object positions to the background colour. The animation is then accomplished by changing the
colour-table values so that the object is "on" at successive positions along the animation path as the
preceding position is set to the background intensity.
COMPUTER ANIMATION LANGUAGES
Design and control of animation sequences are handled with a set of animation routines. A general-
purpose language, such as C, Lisp, Pascal, or FORTRAN, is often used to program the animation
functions, but several specialized animation languages have been developed. Animation functions
include a graphics editor, a key-frame generator, an in-between generator, and standard graphics
routines. The graphics editor allows us to design and modify object shapes, using spline surfaces,
constructive solid-geometry methods, or other representation schemes.
A typical task in an animation specification is scene description. This includes the positioning of
objects and light sources, defining the photometric parameters (light-source intensities and surface-
illumination properties), and setting the camera parameters (position, orientation, and lens
characteristics). Another standard function is action specification. This involves the layout of motion
paths for the objects and camera.
Key-frame systems are specialized animation languages designed simply to generate the in-
betweens from the user-specified key frames. Usually, each object in the scene is defined as a set of
rigid bodies connected at the joints and with a limited number of degrees of freedom. As an
example, the single-arm robot in figure has six degrees of freedom, which are called arm sweep,
shoulder swivel, elbow extension, pitch, yaw, and roll.
We can extend the number of degrees of freedom for this robot arm to nine by allowing three-
dimensional translations for the base
If we also allow base rotations, the robot arm can have a total of 12 degrees of freedom. The human
body, in comparison, has over 200 degrees of freedom.
Parameterized systems allow object-motion characteristics to be specified as part of the object
definitions. The adjustable parameters control such object characteristics as degrees of freedom,
motion limitations, and allowable shape changes.
Scripting systems allow object specifications and animation sequences to be defined with a user-
input script. From the script, a library of various objects and motions can be constructed.
KEY-FRAME SYSTEMS
We generate each set of in-betweens from the specification of two (or more) key frames. Motion
paths can be given with a kinematic description as a set of spline curves, or the motions can be
physically based by specifying the forces acting on the objects to be animated. For complex scenes,
we can separate the frames into individual components or objects called cels (celluloid
transparencies), an acronym from cartoon animation. Given the animation paths, we can interpolate
the positions of individual objects between any two times. With complex object transformations, the
shapes of objects may change over time. Examples are clothes, facial features, magnified detail,
evolving shapes, exploding or disintegrating objects, and transforming one object into another
object. If all surfaces are described with polygon meshes, then the number of edges per polygon can
change from one frame to the next. Thus, the total number of line segments can be different in
different frames.
Morphing
Transformation of object shapes from one form to another is called morphing, which is a shortened
form of metamorphosis. Morphing methods can he applied to any motion or transition involving a
change in shape. Given two key frames for an object transformation, we first adjust the object
specification in one of the frames so that the number of polygon edges (or the number of vertices) is
the same for the two frames. This pre-processing step is illustrated in figure given below:
A straight-line segment in key frame k is transformed into two-line segments in key frame k + 1.
Since key frame k + 1 has an extra vertex, we add a vertex between vertices 1 and 2 in key frame k to
balance the number of vertices (and edges) in the two key frames. Using linear interpolation to
generate the in-betweens, we transition the added vertex in key frame k into vertex 3' along the
straight-line path shown in figure.
An example of a triangle linearly expanding into a quadrilateral is given In Figure below.
MOTION SPECIFICATIONS
There are several ways in which the motions of objects can be specified in an animation system. We
can define motions in very explicit terms, or we can use more abstract or more general approaches.
Direct Motion Specification
The most straightforward method for defining a motion sequence is direct specification of the
motion parameters. Here, we explicitly give the rotation angles and translation vectors. Then the
geometric transformation matrices are applied to transform coordinate positions. Alternatively, we
could use an approximating equation to specify certain kinds of motions.
Goal-Directed Systems
At the opposite extreme, we can specify the motions that are to take place in general terms that
abstractly describe the actions. These systems are referred to as goal directed because they
determine specific motion parameters given the goals of the animation. For example, we could
specify that we want an object to "walk" or to "run" to a particular destination. Or we could state
that we want an object to "pick up" some other specified object. The input directives are then
interpreted in terms of component motions that will accomplish the selected task. Human motions,
for instance, can be defined as a hierarchical structure of sub motions for the torso, limbs, and so
forth.
Kinematics and Dynamics
We can also construct animation sequences using kinematic or dynamic descriptions. With a
kinematic description, we specify the animation by giving motion parameters (position, velocity, and
acceleration) without reference to the forces that cause the motion. For constant velocity (zero
acceleration), we designate the motions of rigid bodies in a scene by giving an initial position and
velocity vector for each object. Kinematic specification of a motion can also be given by simply
describing the motion path. This is often done using spline curves.
An alternate approach is to use inverse kinematics. Here, we specify the initial and final positions of
objects at specified times and the motion parameters are computed by the system.
Dynamic descriptions on the other hand, require the specification of the forces that produce the
velocities and accelerations. Descriptions of object behaviour under the influence of forces are
generally referred to as a physically based modelling. Examples of forces affecting object motion
include electromagnetic, gravitational, friction, and other mechanical forces.