Plantes Procédurales

Comment jardiner avec des mathematiques et un magic leap.

Année : 2018
Lieu : Genève, Suisse
Client : Spooklight Studio
Rôle : Lead TD Artist

■ Un peu de contexte:
A Spooklight Studio, notre but était d’explorer au maximum le potentiel de la réalité augmentée. D’une part en sondant le marché actuel sur mobile (Vuforia, AR Kit…) et d’autre part en se tournant vers les futurs supports : les casques de Mixed Reality.
Ainsi, nous avons réalisé des prototypes sur l’Hololens de Microsoft et sur le très prometteur Magic Leap. Notre projet “Magic Leaf” avait pour but de tester au maximum les avantages technologiques offerts par ce casque tout en concevant un gameplay tirant au maximum parti de l’analyse de l’environnement du joueur.

Le projet :

Via le casque Magic Leap, un mystérieux étranger venant du futur vous confie les dernières semences d’une civilisation humaine en proie à un cataclysme écologique.

Grâce au Magic Leap et à la réalité mixte, transformez votre salon en un laboratoire botanique. Jour après jour, faites croître un jardin luxuriant et reconstituez l’écosystème perdu.

Vous l’aurez compris, Magic Leaf est un jeu dont le game design repose sur la croissance et l’hybridation de plantes virtuelles et leur interaction avec l’environnement réel.

Chaque plante a ses caractéristiques et ses besoins propres. Certaines se sentent bien en hauteur tandis que d’autres voudront à tout prix être tenues à l’écart de la lumière. Il faut donc que le joueur se serve intelligemment de l’environnement qui l’entoure pour faire grandir au mieux ses petites protégées.
Une fois matures, de nouvelles semences seront récoltées et pourront être hybridées, donnant naissance à une infinité de nouvelles variétés.

Le projet est bien plus dense que ce simple résumé. N’hésitez pas à aller jeter un œil à la page du projet.

 

Mettre à disposition du joueur un si grand nombre de plantes rends leur création à l’unité difficile. Une solution: le procédural !

Le procédural, Mode d’emploi :

Quand le procédural
devient nécessité

Le procédural prend de plus en plus de place dans les pipelines de production. Non content de démultiplier la productivité des artistes et de permettre la création rapide de grandes quantités d’assets, rendant possible par exemple la création de mondes ouverts larges et détaillés (Cf. Ghost Recon Wildlands, Spider-Man…), le procédural ouvre des possibilités de design inédites.

C’est particulièrement vrai dans le cas de la Mixed Reality qui repose sur l’exploitation de l’environnement physique de l’utilisateur. Une donnée qui ne sera connue qu’une fois le jeu lancé et l’environnement scanné.

Il est donc nécessaire de pouvoir faire appel à des assets qui savent se construire et s’adapter au vol à des données préalablement inconnues.

Pour Magic Leaf deux inconnues influencent grandement l’aspect des plantes: la topologie de l’environnement et les très nombreux mélanges génétiques possibles.

Une approche procédurale pour concevoir les plantes était donc une nécessité.

Ne pas sacrifier l’artistique aux mathématiques

Evidemment, il ne faut pas confondre le procédural avec le hasard ou avec la perte de contrôle totale sur le résultat final. Le projet a une direction artistique, il convient de la respecter.

J’ai donc conçu l’outil procédural en ping pong avec l’équipe graphique. J’ai pris soin de respecter leurs premiers concepts (voir ci-dessus) tout en s’assurant qu’ils saisissent le fonctionnement et les contraintes de l’outil afin d’éviter les designs impossibles à décliner.

Pour la réalisation du prototype du jeu, qui devait inclure les premières étapes du gameplay, deux plantes assez différentes ont été sélectionnées parmi les premiers concepts. J’ai ainsi pu tester s’il était possible de les générer avec ce nouvel outil procédural.

L-System

Non content de devoir modéliser une plante, il nous fallait aussi extrapoler les différentes étapes de sa croissance. Une plante n’est donc pas une forme arrêtée : c’est une logique de croissance basé sur un certain nombre de règles. Et ça tombe bien, il y a un outil pour cela: le L-System.

Le L-System est un système de réécriture (ou “grammaire formelle”) inventé par le biologiste Aristid Lindenmayer à la fin des années 60. Le principe est simple: on prend une phrase (axiome) de départ puis une ou plusieurs règles:

Par exemple la phrase initiale: n(0) = A
Et les règles: A -> AB ET B -> A

Ainsi, d’itérations en itération, la phrase de départ évolue:

n(1) = AB
n(2) = ABA
n(3) = ABAAB
n(4) = ABAABABA
etc…

Maintenant, remplacez les lettres par des mouvements (avancer, brancher, tourner à gauche ou à droite) et vous obtiendrez des résultats étrangement organiques.

Autre bonne nouvelle, Houdini peut nativemment générer des splines à partir de telles règles. Une base idéale pour nos plantes, en somme.

Paramètres et Interface

Une fois la structure générée, il me suffisait de créer une interface permettant de contrôler, via différents paramètres, son habillage: forme et épaisseur de la section des tiges, rotation et torsion de la tige, forme des feuilles, des fruits, influence de la gravité etc.

Les UVs, Materials IDs et Vertex Colors nécessaires aux shaders (translucence, prise au vent) sont générés à la volée.

Houdini Engine & Génétique

Une fois l’outil terminé, je l’ai implanté directement dans Unity via l’Houdini engine. Ainsi, de nouvelles plantes et variations peuvent être créées directement dans le moteur avec un aperçu direct du rendu final.

Enfin, pour pouvoir hybrider les plantes, on leur attribue un  “séquençage génétique”. Chaque “gène” de cette séquence se voit attribuer l’un des paramètres de la plante.

Ces paramètres peuvent ensuite être mélangés afin de générer une nouvelle plante par l’hybridation de deux autres spécimens.

Un asset, des milliers de plantes :

Grâce à cet outil et au L-System, les possibilités sont nombreuses. Ci-dessous se trouvent quelques essais de variation que j’ai réalisé avec les textures et matériaux de la plante originale.

Avec de menus changements, chacun de ces design peut très facilement donner naissance à de multiples et parfois surprenantes versions de la plante originale. Et tout cela sans parler des variations de couleurs et de textures, elles aussi procédurales.

Direction Artistique et Design Originaux : Julie Pain, Mélanie Fuster
Outils procéduraux et variations : François Carrobourg
Textures et Shaders : Jéremy Lesage