Sometimes a distinction is made between computer-aided and computer-generated animation. While the former is based on digitized drawings, between which the animation software interpolates in order to obtain fluid movement sequences, the latter works with a three-dimensional scene from which images are generated directly using the means of image synthesis .
Key frames and interpolation
The technique of keyframe animation ( keyframing ) originally comes from the production of animated films . Not all individual images are drawn by hand, only so-called key images, which roughly specify the sequence of movements. The individual frames between the key frames are automatically calculated using interpolation techniques, which is also known as tweening .
In the case of computer-generated animation, the term “keyframe” is misleading in that the interpolation is not based on the complete images. Instead, various parameters of the scene are set, such as the positions of the object centers, their colors and scaling, the camera position and direction of view or the intensity of the light sources. Different key frames can also be selected for different parameters.
In order to avoid sudden changes in speed, the interpolation curve of the key values is usually chosen so that its derivative is continuous . A higher constant differentiability is usually not necessary, since the second derivative (acceleration) often changes abruptly in nature. These properties make Catmull-Rome splines a good choice for animation curves. Many animation systems allow the animator to fine-tune the animation curve by specifically adapting the tangents to the key values. This is often done by controlling tension, continuity and bias (TCB). For this purpose, the Catmull-Rom- to Kochanek-Bartels-Splines are extended, with which these three parameters can be set for each key value.
If a motion path has been obtained through digitization, it must first be smoothed before it can be used in order to remove jumps and noise.
The mere description of the animation curve is generally not sufficient if not only the position but also the speed of an object along a path is to be controlled. This is because fitting a curve to multiple points does not say anything about the speed between those points. The parameterization of the curve types usually used for animation does not match the actual distance along a curve.
One way to control the speed of an object is to let the animator determine an additional distance-time function, which indicates how far an object should have moved along the curve at a certain point in time. Speed-time or even acceleration-time functions are also possible. In any case, the animation program must internally convert the curve length along an animation curve into its parameter representation. For most spline types there is no analytical formula for this, so approximation methods such as Newton's method must be used.
The most common speed profile in animation is ease-in / ease-out. An object accelerates from the starting point, reaches a maximum speed, and then decelerates again to the end point. This behavior can be modeled by a segment of the sine function .
Aside from displacement, rotation is the only transformation that maintains the shape of an object; it therefore plays a major role in the animation of rigid bodies. Special methods are used to interpolate three-dimensional rotations. A simple way of specifying the rotation of an object is using Euler's angles . If these angles are animated, the gimbal lock problem can occur. This effect occurs when one of the three axes of rotation coincides with another, whereby a degree of freedom is lost.
To get around this problem, quaternions are used in computer animation to formulate rotations. Quaternions form a four-dimensional space for which operations such as addition and multiplication are defined. To rotate a point, it is first represented as a quaternion, the rotation is applied in the quaternion space, and then converted back into the usual Cartesian coordinates . Successive rotations in quaternion space correspond to products of quaternions. Rotations are mostly expressed by unit quaternions, which can be imagined as points on a four-dimensional unit sphere . The interpolation on the four-dimensional unit sphere is also called Slerp . Since it is very complex mathematically, interpolation between quaternions is often only linear. The intermediate steps are then normalized in order to project them back onto the four-dimensional unit sphere. More consistent results can be obtained by using the De Casteljau algorithm so that multiple linear interpolations are performed.
If an object is to follow a movement path, it is often expected that it will not only be moved, but also that its orientation will follow the path. The relationship between the orientation of an object and the characteristics of the curve can be expressed by the Frenet's formulas . A few special cases must be taken into account in which the formulas cannot be used, for example with curve sections without curvature. If the camera is to be moved, a center of interest is often specified, which should always be in the center of the image. The animation program then changes the orientation of the camera accordingly.
Objects are often modeled hierarchically so that the boundary conditions with regard to connection or relative placement are organized in a tree-like structure. An example of a hierarchical model is a planetary system in which moons rotate around planets and these in turn rotate around the sun. Machine parts or figures are made up of coherent objects that are connected to one another with various types of joints such as sliding and swivel joints. Such hierarchically structured objects are called articulated structures in English . In the computer animation of such models, the kinematic techniques of robotics are used. However , these techniques are not sufficient for character animation , as characters move in a freer, more complex and more skillful way than robots. Another reason is that the joints of animals themselves are deformable and therefore cannot be modeled with the usual methods.
A direct, comparatively laborious method for animating kinematic chains or connected structures uses direct kinematics . To define a particular movement, the animator starts at the root of the hierarchy and proceeds to the subnodes, changing the animation script each time. When animating a leg, the change in rotation at the hip joint over time is first specified, which results in a clumsy step. Then the knee joint and finally the ankle are animated. Even this simple example has problems, such as neglecting the vertical displacement of the hip during movement.
The inverse kinematics work at a higher level. Here only the movement of the end points of a structure is defined manually. The animation software then automatically calculates the behavior of the remaining joints to carry out this movement. The more complicated a structure, the more difficult these calculations become. Another problem with inverse kinematics is that it leaves the animator very little leeway.
For the animation of the dinosaurs in the film Jurassic Park (1993), direct kinematics were used, but the motion sequences were determined in stop-motion fashion from real models with sensors. Another possibility is motion capture , in which the movements of an actor are recorded on his body using sensors or markers. There are also purely synthetic models that use virtual bones and muscles to generate realistic movements.
The collision detection is an indispensable tool if you want to animate more than one object. In a first step, the objects that collide with each other are determined and in a second step the exact collision points are calculated. In its naive form, the collision detection has a quadratic runtime depending on the number of objects considered . The process can be speeded up considerably by packing objects in bounding volumes between which a faster test for overlap is possible. If the bounding volumes do not overlap, neither do the objects they contain. If so, the contained objects must be tested directly against each other. The bodies that enclose the objects can also be structured hierarchically.
Another possibility for speeding up is based on the knowledge that collision detection at equal time intervals is wasteful. Instead, it should be carried out at times whose frequency distribution is proportional to the probability of collisions occurring. Another problem is that the collision detection can start at a point in time at which fast moving objects in particular have already penetrated one another a little. This effect has to be corrected afterwards, for example by recalculating the path of the objects along the movement path.
The collision detection can be used for various applications, for example to calculate the path of an object while avoiding collisions. Physically, a collision can be described as an elastic or plastic impact and the further movement of the objects can be calculated accordingly.
In order to determine the behavior of several objects with the means of group simulation, the animator can use techniques of artificial intelligence . As a result, each of the objects plans and executes the movements that correspond to a specified plan. Many computer games use such autonomous objects to create intelligent opponents or allies of the player. It turns out that the larger the group, the less intelligent a single character needs to be. With hundreds of figures, a swarming behavior arises in which the movement of each figure - here often called a boid - is influenced in a simple way by only a few neighbors. Collision avoidance is one of the results of such behavior.
Particle systems are a much simpler, but still useful, technique for controlling groups of objects . The number of particles used, often very small, is usually considerably larger than in swarm animations and can reach many thousands. The exact number of particles can also vary during the animation, as new particles are created with each step and old ones can be deleted. This is one of the reasons why e.g. B. Liquid simulations such as RealFlow generate a new 3D model for each image to be rendered . The movement of individual particles often follows the laws of mechanics . Applications of particle systems include the animation of explosions, splashing liquids, smoke, fire or phenomena with no fixed limitation. To ensure a more plausible appearance, the movement and other parameters of the particles can be changed randomly. The behavior of a particle system is usually determined by determining forces in space. For example, a particle can be "blown" in a new direction as soon as it reaches a certain location, attracted by a "center of gravity" or the simulation that has actually been completed can be deformed like a normal 3D model.
With physically based simulations, you can usually create much more realistic animations than with particle systems. Examples are the animation of liquids, fire, smoke or flexible cloths. For this purpose, the differential equations that describe these phenomena must be solved using numerical mathematics .
- Rick Parent: Computer Animation: Algorithms and Techniques. Morgan Kaufmann, Amsterdam 2008, ISBN 978-0-12-532000-9
- Note: The numerous animated graphics in this category allow very long loading times.