Procedural animation

from Wikipedia, the free encyclopedia

Procedural animation (ger .: procedural animation is) a collective term for a variety of animation techniques for films and computer games , where movements are not based on key frames , but calculated on the basis of defined rules and procedures and controlled. They are mainly used to represent physical phenomena (fire, smoke) and natural movement sequences (gestures, flight of birds, etc.).

description

Procedural animations are based on algorithmic descriptions of behavior and contain all the details of an animation. Based on the underlying set of rules, animations do not have to be precisely specified in advance, created and saved in advance, but can be calculated according to the situation if necessary. This is done by transferring the appropriate parameters, for example via a user interface or by other programs. The number of parameters is usually smaller than the amount of information required for an exact description of animation, which is why we speak of database amplification here and is an essential feature of procedural animations. The so-called control problem of procedural animations is also characteristic, because after the animation has been initiated there are only a few possibilities to influence the result. Possible solutions are either adapting the underlying function or changing the parameters.

Procedural animations have the advantage that, due to their properties, they are very compact and generally require little memory space. They are also not specified in the resolution, but can be adapted to the requirements. On the other hand, it is disadvantageous that they involve a high level of development effort and are difficult to implement and test. Appropriate special functions must also be developed for new animation effects. Also, losing control of execution can produce unexpected results.

In this example of procedural animation, one wheel drives a second wheel, which in turn moves a third. The radius and the position of the second wheel vary over time, the speed and rotation of the third wheel are adjusted accordingly by calculation.

Use in film

In Star Trek II: The Wrath of Khan , particle animation was used for the first time in a movie to simulate the fire of the so-called Genesis sequence. With the help of so-called flocking systems, the behavior of swarms is calculated, such as the movements of numerous buffalo in a herd in Disney's The Lion King .

In computer games

In the field of computer games, procedural animation forms the core of graphics engines , for example in the form of particle systems for the animation of fire, smoke or explosion effects. The action adventure Outcast uses procedural animations to display gestures and movement sequences of the game characters, here also in connection with keyframe animation and motion capture .

programming

Procedural animation was originally used in the field of computer animation , but it was later realized that it could also be used to control humanoid robots . Computer programs are used to calculate the animation. In its basic functionality, these computer programs consist of a so-called finite state machine . In computer science, this is the smallest form of a computer program. It can take exactly one state and then switch to another state. A finite-state machine can also be implemented in the C language. To do this, a global variable is created that has the current status of the program, and if-then conditions are used in the program to change the variable.

Although such machines do not seem very practical, they are often used in the creative industry for developing computer games. A character can only be in one mode at a time: swim, walk, run, or jump. At the touch of a button, the player can change the mode, which plays a pre-made animation. Around the year 2000, NaturalMotion expanded this concept into an animation engine that is used in numerous computer games. The new thing is that the transitions between the actions are fluid and allow realistic animation.

From the beginning, procedural animation was implemented using various techniques. First the already mentioned finite state machine , but also object-oriented techniques (, page 86ff), neural networks (page 16) or genetic algorithms were used. However, the classic real procedural animation that consists of manually created source code , mostly in the programming language C ++ , is still considered to be today . In order to minimize the programming effort, these programs were encapsulated in libraries . Mostly as closed source projects but recently also as open source .

Less than 100 lines of source code are sufficient to program a simple procedural animation. You define a class that contains different methods and each method activates a predefined animation sequence. Now you can trigger the class methods from outside (for example via a joystick query) and when the player presses the A key, Motion Sequence A is played. This concept can be scaled up by increasing the code size, adding more motion primitives , and using a planner to calculate motion transitions. In some cases, inverse kinematics and gait patterns (specifications for setting legs) are also included in an animation engine.

Complex animations in which a figure is supposed to pick up an object and the fingers are realistically animated are considered difficult to implement in terms of programming. Such sophisticated procedural animation is dispensed with in simple games and the movement is only hinted at. The best example can be seen in the computer game Maniac Mansion , where only very primitive animations are implemented.

If you look at the history of procedural animation, the concept was criticized from the start because the programming effort was considered too high. One began early to look for supposed alternatives. For example, by first creating databases of actors with motion tracking , dividing them into individual sequences and then reassembling the sequences. In fact, no programming is required for this animation sequence, rather the concept works data-driven (datadriven). Unfortunately, the results often seem unrealistic, so that there is still no alternative to procedural animation in sight.

literature

Web links

Individual evidence

  1. Siemon, Andreas: Avatars in disaster simulations - development of a disaster training system to represent those involved in major disaster situations . In: Dissertation, Kassel University Press . 2013, p. 38.
  2. ^ Dill, Kevin and Dreger, Oliver: Building an Angry Grandmother . In: Proceedings of the 2011 Spring Simulation Interoperability Workshop . 2011.
  3. Jackèl et al. 2006, 141f.
  4. Jackèl et al. 2006, 142.
  5. Barbara Flückiger : Computer Animation II: Procedure . In: Lexicon of Film Terms, Institute for Modern German Literature and Media, Christian Albrechts University in Kiel . Last accessed on July 11, 2012.
  6. ^ Reynolds, Craig W: Computer animation with scripts and actors . In: ACM SIGGRAPH Computer Graphics ACM . 16, 1982, pp. 289-296.
  7. Kalisiak, Maciej and Van de Panne, Michiel: A grasp-based motion planning algorithm for character animation . In: The Journal of Visualization and Computer Animation Wiley Online Library . 12, 2001, pp. 117--129.
  8. Okan Arikan and David A. Forsyth and James F. O Brien: Motion synthesis from annotations . In: ACM SIGGRAPH 2003 Papers on - SIGGRAPH 03 Association for Computing Machinery ({ACM}) . 2003.
  9. Faloutsos, Petros and Van de Panne, Michiel and Terzopoulos, Demetri: Composable controllers for physics-based character animation . In: Proceedings of the 28th annual conference on Computer graphics and interactive techniques ACM . 2001, pp. 251-260.
  10. Brock, Oliver and Kuffner, James and Xiao, Jing: Motion for manipulation tasks . In: Springer Handbook of Robotics Springer . 2008, pp. 615--645.
  11. a b Gillies, Marco and Spanlang, Bernhard: Comparing and evaluating real time character engines for virtual environments . In: Presence MIT Press . 19, 2010, pp. 95-117.
  12. ^ Karim, Ahmad Abdul: Procedural locomotion of multi-legged characters in complex dynamic environments: real-time applications . In: Universite Claude Bernard-Lyon I . 2012.
  13. Wheatland, Nkenge and Wang, Yingying and Song, Huaguang and Neff, Michael and Zordan, Victor and Jörg, Sophie: State of the art in hand and finger modeling and animation . In: Computer Graphics Forum Wiley Online Library . 34, 2015, pp. 735--760.
  14. Lee, Yoonsang and Kim, Sungeun and Lee, Jehee: Data-driven biped control . In: ACM Transactions on Graphics (TOG) ACM . 29, 2010, p. 129.