# Animation procédurale

En synthèse d'image numérique, l'animation procédurale est une animation d'objets virtuels par génération en temps réel de mouvements, selon un ensemble de règles procédurales.
L'animateur 3D spécifie les règles (par exemple des lois du monde physique décrites par des relations mathématiques), et les conditions initiales avant de lancer la simulation.

## Comparaison avec les méthodes d'animation « classiques »

Les méthodes d'animation utilisées le plus couramment sont de deux types : l'animation par images clé (key frame) ou la capture de mouvement.

### Key frame

Le key frame est une méthode d'animation dans laquelle l'animateur construit une suite de positions particulières des objets en mouvement, les positions intermédiaires étant calculées. L'animateur a ainsi le contrôle direct sur les positions, la forme et le mouvement des entités à animer.

### Capture de mouvement

Désigne de façon générique les techniques permettant de capter les mouvements d'un élément réel afin de les renvoyer dans un univers virtuel. Cette technique est employée pour faire correspondre des mouvements du vivant à ceux d'un avatar.

### Limites de ces deux méthodes

Ces méthodes sont coûteuses en termes de temps et de coût de développement. Les retraitements manuels opérés sur des mouvements capturés peuvent être bien plus coûteux qu'un traitement procédural. Les ressources financières allouées aux équipes d'animation 3D dans les entreprises de jeux vidéo ou d'effets spéciaux par exemple ne cessent de grimper. De plus, l'équipement matériel nécessaire pour créer ces animations, ou jouer, est devenu de plus en plus élitiste.
Enfin, ces animations sont « statiques », dans le sens où elles sont répétitives et prévisibles. Elles ne sont donc pas, ou très peu, interactives. Ainsi, le réalisme des mouvements, l'immersion du joueur ou du spectateur ou encore la jouabilité se trouvent limités.

### Les avantages de l'animation procédurale

L'animation procédurale se propose dans un premier temps de déporter une partie des calculs de la carte graphique vers le processeur qui est très sollicité, pour toute la génération des mouvements. Ceci utiliserait à profit, et de manière plus intelligente, la puissance de calcul des processeurs actuels.
Deuxièmement, le réalisme des animations est potentiellement élevé, grâce à l'utilisation de règles mathématiques décrivant le comportement du monde réel.
Puis, les animations sont interactives. Elles s'adaptent aux commandes du joueur ou de l'animateur, ainsi qu'aux propriétés changeantes et imprévisibles de l'environnement. Actuellement, l'animation procédurale n'est pas tant une alternative aux techniques classiques, mais plutôt une approche complémentaire. La question est donc de savoir doser la proportion procédurale/key frame.

## Techniques utilisées en animation procédurale

Il existe deux grandes catégories d'animation procédurale : la modélisation physique et la vie artificielle.

### La modélisation physique

Cet ensemble de techniques permet de décrire les animations en ajoutant aux données géométriques des paramètres physiques.
Ces techniques reposent sur la simulation de lois physiques bien connues, comme la gravitation ou l'attraction/répulsion des masses.
Voici les principales applications de la modélisation physique :
Le système de particules Lors de chaque itération, le système de particules prend en entrée les paramètres initiaux des objets (masse, force d'attraction…), leurs variables (position, vitesse, accélération, etc.) ainsi que les forces en jeu dans l'environnement (gravité, vent…), pour actualiser les variables en fonction des lois physiques implémentées. Cette technique est utilisée pour simuler des phénomènes naturels comme la fumée, les nuages, les flammes et l'eau.
Les surfaces flexibles Il s'agit de modéliser les surfaces flexibles comme les tissus, les vêtements… Typiquement, les modèles géométriques sont construits à partir de triangles, dont les sommets varient selon leur masse, position, vitesse, accélération, constantes d'élasticité, la force du vent… Outre la texture, qui peut être définie de façon procédurale, le mouvement, les effets de lumière peuvent être ainsi définis, comme l'a décrit une étude de cas documentée sur des mouvements d'herbe dans une prairie animée.
La modélisation des corps solides C'est la simulation dynamique des interactions entre des objets solides. Celle-ci prend en compte divers paramètres physiques comme l'élasticité, la friction, la torsion, la masse… Les comportements générés sont par exemple, les collisions, les glissements, les chutes…
La dynamique des fluides Simule le mouvement des fluides: vagues, écoulement, turbulences de l'eau ou d'autres liquides.
La fourrure, les cheveux… Simule le mouvement naturel des poils, des cheveux.
La dynamique des systèmes
Un exemple d'animation procédurale
Cette animation a été réalisée avec un logiciel de dynamique des systèmes (Dynamique des systèmes) disposant d'un modeleur 3D. Les valeurs calculées sont associées aux paramètres du système bielle-manivelle.
Dans cet exemple la manivelle est motrice, on fait varier à la fois sa vitesse de rotation, son rayon et la longueur de la bielle, le déplacement du piston en résulte. L'équation de base de ce système est ici.

### La vie artificielle

La vie artificielle est un ensemble de techniques qui vise à imiter le comportement des êtres vivants.
L'animation comportementale Simulation des interactions d'organismes vivants (nuées (boids), prédateur-proie, humains virtuels). L'utilisation de l'animation procédurale permet de déconnecter la création d'un mouvement de la structure des personnages auxquels il est alors possible d'appliquer un même mouvement
Évolution artificielle Les organismes se reproduisent, et subissent des mutations. L'animateur définit quels sont les critères qui définissent le mieux l'adaptation à l'environnement, puis les organismes les plus résistants survivent. L'animateur définit les règles de la sélection « naturelle ».
Fractales La géométrie et les procédures fractales permettent de simuler l'animation et l'apparence d'objets naturels comme les arbres, les montagnes, les flocons de neige. Ils peuvent aussi simuler l'apparition de fissures par exemple.
Automates cellulaires Il s'agit de donner un petit nombre de règles simples à un grand nombre d'individus, en général d'apparence simple. Exemple: Jeu de la vie de Conway.

## Utilisation actuelle dans l'industrie audiovisuelle

L'évolution de l'utilisation de l'animation procédurale a suivi celle de la puissance des ordinateurs : celle-ci est maintenant assez commune et des moteurs de jeu et logiciels de développement comme Unity ou Unreal Engine les ont ajoutés à leurs techniques d'animation.

### Un exemple de jeu : Spore

Spore (jeu vidéo) est le dernier projet vidéoludique de Will Wright, à qui on doit déjà SimCity et Les Sims. Il s'agit d'un jeu de gestion, un simulateur global, ou encore Sim Everything (de son premier nom) en développement depuis l'année 2000, qui est sorti le 5 septembre 2008 en Europe.
Le système d'animation de ce jeu est particulier. En effet, le joueur a la possibilité de créer de nouvelles créatures selon ses envies, en jouant sur le nombre de pattes, de têtes, de queues, sa taille, les proportions, etc. Ensuite, les créatures sont animées en temps réel, de manière automatique, selon les caractéristiques fournies par l'utilisateur. Et ceci pour tous types d'actions, comme le déplacement, l'accouplement ou le combat.
Enfin, d'autres aspects du jeu sont générés de manière procédurale, comme le contenu et la musique.

### Un exemple d'environnement de développement

La société NaturalMotion édite deux logiciels de développement d'animations procédurales.
* Endorphin (en) est un logiciel de synthèse dynamique des mouvements, spécifique aux avatars. Il est donc particulièrement adapté aux jeux vidéo ou aux films d'animation. Les animations peuvent être exportées dans les formats classiques (comme 3D Studio Max) ou en format vidéo. Les animations sont « statiques », dans le sens vu précédemment, mais générées par des règles procédurales. Elles ont alors un résultat réaliste, pour un temps de développement réduit.
* Euphoria permet en revanche de gérer des animations en temps réel dans les jeux vidéo PC, PlayStation 3 et Xbox 360. Le moteur est plus léger que celui de Endorphin. Il tourne parallèlement au moteur du jeu, qui l'appelle lorsqu'une animation procédurale est nécessaire. Les transitions sont imperceptibles par le joueur et l'intégration aisée pour les développeurs. Euphoria est utilisé dans plusieurs titres : Indiana Jones : Le Royaume du Crane de Crystal et Star Wars: The Force Unleashed de Lucas Arts ou encore Grand Theft Auto IV de Rockstar Games.