Animation has historically been produced in two ways. The first is by artists creating a succession of cartoon frames, which are then combined into a film. A second method is by using physical models, e.g. King Kong, which are positioned, the image recorded, then the model is moved, the next image is recorded, and this process is continued.
Computer animation can be produced by using a rendering machine to produce successive frames wherein some aspect of the image is varied. For a simple animation this might be just moving the camera or the relative motion of rigid bodies in the scene. This is analogous to the second technique described above, i.e., using physical models. More sophisticated computer animation can move the camera and/or the objects in more interesting ways, e.g. along computed curved paths, and can even use the laws of Physics to determine the behavior of objects.
Animation is used in Visualization to show the time dependent behavior of complex systems.
A major part of animation is motion control. Early systems did not have the computational power to allow for animation preview and interactive control. Also, many early animators were computer scientists rather than artists. Thus, scripting systems were developed. These systems were used as a computer high level language where the animator wrote a script (program) to control the animation. Whereas a high level programming language allows for the definition of complex data types, the scripting languages allowed for the definition of “actors”, objects with their own animation rules.
Later systems have allowed for different types of motion control. One way to classify animation techniques is by the level of abstraction in the motion control techniques. A low-level system requires the animator to precisely specify each detail of motion, whereas a high-level system would allow them to use more general or abstract methods. For example, to move a simple rigid object such as a cube, requires six degrees of freedom (numbers) per frame. A more complex object will have more degrees of freedom, for example a bird might have over twenty degrees of freedom. Now think about animating an entire flock of birds.
Therefore, a Control Hierarchy is required, so that high level control constructs can be specified which are then mapped into more detailed control constructs. This is analogous to high level computer languages with complex control structures or data types which are translated at runtime into low level constructs.