[ [ [ Bateau sur l’océan - Yannis Lehuédé

 

Les plans avec la mer en gros plan ont constitué le plus gros travail dans ce projet d’animations médiévales.

L’atmosphère du ciel a nécessité des nuages volumétriques animés et l’océan agité beaucoup de configuration et paramétrages. Nous exposons ici les principes qui permettent de faire l’océan de l’aniation et les interactions avec le bateau.

Sur le premier plan de la vidéo (plus haut), c’est le premier bateau de la flotte qui approche des côtes où est perché le château. Il glisse élégamment sur les vagues, comme évitant des obstacles de cette tempête. L’angle de vue suggère que le château est imprenable, niché en haut de la falaise bordé de murs de fortification. C’est la forteresse d’où sont tirées les nuées de flèches. Dans cette animation, le bateau symbolise l’arrivée de la flotte qui vient faire le blocus ou le siège du château.

L’ocean agité est représenté par une surface en mouvement. Chaque point monte et descend alternativement, de manière cyclique. Il y a un décalage entre différents trains de vagues et des bords de vagues.

Le logiciel Maya possède un module pour simuler l’océan pas dans la version de base). Ce module permet de courber une surface (displacement) et de faire correspondre une texture avec des couleurs d’écume et des reflets de vagues supplémentaires.

Ce module permet également de faire des interactions avec un bateau, mais on peut créer un modèle d’océan à partir de particules ou du système de soft-bodies, cela peut ainsi être fait avec la plupart des versions de Maya et d’obtenir plus de flexibilité.

Pour ce faire, créons une planche sur laquelle sont disposées des particules, aux arrêtes de la géométrie par exemple, pour que leur répartition soit régulière sur la surface. On peut dont appliquer un champs de turbulence à ces particules. Son intensité doit varier de manière cyclique (comme en utilisant une sinusoïde, ou plusieurs imbriquées pour créer des vagues de différent niveau). Avec un script et une formule mathématique pllus complexe, il est possible d’applliquer des déformations aux variations localisées et créer des creux, des vagues crêtées. En gérant par le script les hauts des vagues, on peut détecter les déplacements et les collisions entre vagues ou même avec d’autres objets, comme une falaise ou un rivage.

La planche est déformée en fonction de la position de chaque particule. Un script doit parcourir la surface de la planche et détecter les crêtes les plus pointues. C’est pour pouvoir ajouter des émetteurs d’écume (des systèmes de particules), comme illustré sur l’image précédente.

Ces particules d’écume peuvent glisser sur la surface de l’océan (la planche) ou être éjectées dans les airs, selon l’angle des vagues ou la direction de la vague (on pouurra simuler le vent). La planche peut être considérée comme un objet de collision pour ces particules d’écume. Le plus intéressant est de créer différents types de particules qui ont des comportements spécifiques et des aspects visuels variés. Le nombre de particules éjectées des sommets des vagues ou des collisions peut être proportionnel à la force calculée des vagues.

On n’a pas détaillé les formules mathématiques ni les valeurs des paramètres car le niveau de précision "physique" et l’utilisation peut varier. Le plus important est d’affiner les valeurs des paramètres par rapport à une cohérence d’échelle, pour que l’effet obtenu soit visuellement convaincant. Ces valeurs sont très différentes selon que l’agitation des vagues de l’océan.

Ensuite, il faut travailler sur les innteractions entre le bateau et les vagues, pour qu’il puisse glisser dessus.

Pour les collisions avec l’océan, on peut utiliser une version basse-définition (une géométrie très simple) de la coque du bateau comme le montre la vidéo suivante :

Pour l’orientation du bateau en fonction de la courbure de la surface de l’océan, la donnée à prendre en compte est le "vecteur normal" à la surface. Pour chaque polygone de la surface de l’océan, ce vecteur représente la perpendiculaire à ce polygone. Sur lal vidéo précédente, le bateau avance par "à-coups" car le scrit change l’orientation du bateau à chaque polygon sur lequel il avance. Pour obtenir un mouvement plus fluide, il est nécessaire de calculer une moyenne en fonction du temps, dans le script.

Ainsi, le bateau évolue suivant "l’altitude" et l’orientation des vagues de l’océan.

Notons également que ce vecteur normal à la surface est aussi utilisé pour calculer la valeur du creux des vagues, pour l’émission des particule d’écume.

Pour que le bateau créée des remous danns l’eau et de petites vagues dans son sillage, on utilisera un principe légèrement compliqué, mais qui peut être très intéressant pour ajouter du détail à l’océan. On crée une nouvelle surface horizontale en soft-bodies ou déformée par des particules, comme la première. L’idée est de "déposer cette nouvelle surface ou structure de particules au dessus de la première planche déformée. Ainsi, elle épousera les vagues de l’océan. On peut lui ajouter des champs de turbulences pluus faibles pour lui ajouter des vagues secondaires. Mais surtout, cette nouvelle surface entrera en collision avec la coque du bateau, qui elle, peut également être une source de turbulences (locales). Ainsi, on aura recréé les interactions entre le bateau et la mer sans toucher aux vagues de la première surface.

Pour le rendu de cet océan, on n’affichera que la seconde surface. De toute façon, il sera pratique de calculer les différents éléments de la mer (surface, particules d’écume, réflexions...) sur différents calques semi-transparents qui seront assemblés au compositing.

Le bateau qui sera rendu séparément pourra aussi être adjoin de nombreux détails, comme la voile (en cloth-simulation comme pour le projet de char à glace), des cordages, des marins animés... comme sur l’image ci-dessous.

Evidemment, selon le principe de hyérarchie, tous les objets du bateau sont solidaires de la coque du bateau, qui subit le tanguage et les roulis e l’océan. Seuls les cordages et la voile sont simplement fixés aux extrémités et réagissent de manière dynamique (en fonction du vent et des contraintes d’élasticité définies).

Finalement, on calcule toutes les animations semi-transparents comme illustrées pluus bas, et il est possible d’ajuster leurs propriétés dans le logiciel de compositing.

On obtient une image comme pluus bas, avec le château en arrière-plan, le ciel, les différentes passes d’océan mixées avec les particules et des effets ajoutés en compositing, le bateau en haute définition et des nappes de brume animée.

Archives