Découvrez comment le vent et les particules ont défini le monde de Tsushima
Avec ses nombreux détails conçus avec attention par notre équipe, l’île de Tsushima est un endroit parfait pour s’adonner à l’exploration. Cet environnement est également très différent de celui de notre précédent jeu, inFAMOUS: Second Son, qui était rempli d’effets visuels surnaturels. Je suis Matt Vainio, et je suis responsable des effets visuels chez Sucker Punch. Pour décrire mon travail, je dis souvent qu’il consiste à résoudre les problèmes artistiques et les soucis de conception grâce à la technologie, et c’est ce à quoi je m’attelle chez Sucker Punch depuis inFAMOUS 2. Aujourd’hui, je vais aborder notre transition d’un jeu rempli de super-pouvoirs explosifs vers un magnifique univers beaucoup plus terre-à-terre, où la boue, le sang et l’acier s’entremêlent ; je vous parlerai également de nos méthodes pour créer les effets visuels de Ghost of Tsushima.
Quand nous avons commencé à travailler sur Ghost of Tsushima, j’ai identifié quelques axes d’amélioration majeurs en fonction de ce qui allait être nécessaire pour ce projet. Tout d’abord, je souhaitais améliorer le niveau d’interactivité de nos systèmes de particules. Nous avions énormément investi dans des systèmes de particules très expressifs dans Second Son, afin de créer un large éventail de super-pouvoirs prodigieux. Pour Ghost of Tsushima, l’un de mes principaux objectifs consistait à conférer un degré d’interactivité supplémentaire à ces systèmes. Nous savions d’entrée de jeu que le vent allait être un élément important à incorporer aux systèmes de particules et à d’autres aspects. Nous voulions également ajouter une faune dynamique, proposer des paysages épiques chargés d’émotion, et opter pour une direction artistique très « boue, sang et acier » en recouvrant les personnages de boue et de sang durant les combats et les déplacements. Nous avons utilisé de nombreuses techniques pour rendre les particules plus interactives, mais il nous fallait énormément de données sur l’univers du jeu. Par exemple, les données du vent ordinaire, du vent créé par le joueur, des déplacements des personnages, les informations concernant la position du terrain et des points d’eau, les conditions météorologiques comme l’humidité, l’heure de la journée et bien plus encore.
Le deuxième objectif était de construire quelque chose à plus grande échelle. Le monde de Ghost of Tsushima est beaucoup plus grand que celui de Second Son, mais l’équipe chargée des effets visuels de Sucker Punch n’était constituée que de deux personnes pour la majeure partie du développement du jeu. Cela signifie que nous devions faire appel à des procédés automatiques autant que faire se peut. Nous devions également incorporer de vastes paysages compatibles avec des conditions météorologiques dynamiques et un cycle jour/nuit complet. Enfin, nous avons positionné manuellement quelques éléments destinés à aider le joueur au cours de son exploration de l’île de Tsushima.
Le vent
Parmi nos principaux choix de direction artistique, nous avons immédiatement décidé que tout devait être en mouvement. Dans ce domaine, les particules pouvaient être d’une grande utilité, en ajoutant par exemple des feuilles et du pollen volant dans les airs ; toutefois, de nombreux systèmes sont utilisés simultanément pour simuler le souffle du vent. En plus des particules, les arbres, l’herbe, les vêtements et les cordes bougent tous de concert avec le vent. Ces éléments ont été ajustés tous ensemble afin qu’ils puissent se mouvoir de la bonne façon en fonction de la force et de la direction du vent. Nous avons intégré cette influence du vent dans presque chaque effet du jeu : par exemple, lorsqu’une bombe explose ou qu’un feu de camp est allumé, la fumée s’envole selon la direction du vent. Cela concerne le feu, les étincelles, la fumée… presque tout, finalement. Nous avons également analysé la force du vent afin d’ajouter des turbulences supplémentaires lorsque le vent augmente.
À l’origine, notre système de vent global n’était pas destiné à devenir un mode de navigation. Par la suite, Jason Connell, le directeur artistique du studio, a demandé à Adrian Bentley, un des ingénieurs principaux, si l’on pouvait faire en sorte que les particules puissent faire office d’indicateur de direction pour les quêtes. C’est ainsi que le « vent-dicateur » est né. Nous n’avons pas essayé de construire un système d’itinéraire qui change constamment de direction pour éviter les obstacles. À l’inverse, nous voulions qu’il pointe directement vers l’objectif pour que le joueur choisisse son propre chemin. Nous voulions avant tout que le joueur puisse explorer et se focaliser sur les procédés de déplacement, et non pas suivre l’interface sans réfléchir. Cette approche a été rendue possible grâce à notre système de particules qui peut accéder à des informations sur le terrain, ce qui nous a permis de rendre les particules conscientes des éléments qui entourent le joueur.
Lors de mes premières tentatives, j’ai fait en sorte que les particules frôlent le terrain, en se déplaçant du haut vers le bas, et suivant les courbes des monts et des vallées. Cela a posé un certain nombre de problèmes. Premièrement, nos montagnes disposent d’un grand nombre de textures de roches pour le front des falaises ; cependant, contrairement au modèle dynamique sous-jacent, ces textures n’utilisent pas les mêmes données que le reste du terrain. Ainsi, les particules traversaient le front des falaises et disparaissaient, ce qui pouvait porter à confusion. De plus, les particules suivant les contours du terrain de manière aussi parfaite manquaient de réalisme : j’ai donc tenté par la suite de configurer le terrain comme un sol de façon à ce que les particules puissent être projetées en l’air en se déplaçant en montée et les faire retomber dans les pentes. J’ai ajouté de la vitesse ascendante lorsque des collines sont en travers de la route en effectuant de nombreux tests sur les mouvements des particules. Pour chaque test, la particule cherche à voir à quel point elle sera proche du terrain à cet endroit, ou si elle sera ensevelie. Si la particule est trop proche ou ensevelie sur ces points de repère, la particule subit une vitesse ascendante. Enfin, notre « vent-dicateur » peut rencontrer différents éléments en fonction de l’environnement : roseaux à plumes et herbes dans les champs, feuilles dans les forêts, cendres dans les zones brûlées, etc. J’aborderai le fonctionnement de ce système un peu plus loin dans cet article.
Concernant le feuillage, les plantes sont toutes reliées entre elles par des points d’attache qui réagissent à la force du vent local. Nous avons collaboré avec les équipes dédiées au code et aux environnements afin de créer des contrôles spécifiques pour les troncs et les branches. Tout ceci nous a permis de créer les nombreux arbres et buissons différents de Tsushima. En plus du mouvement des troncs et des branches, nous avons ajouté différentes couches de bruit numérique causant des ondulations sur la surface des feuilles.
L’herbe et les champs de roseaux à plumes étaient des éléments très présents dans le jeu qui ont nécessité de nombreux allers et retours entre les équipes chargées du rendu graphique, des environnements et des effets visuels. Les champs sont un mélange de triangles générés de manière procédurale pour l’herbe et de ressources modélisées pour les tiges et les touffes des roseaux à plumes. Au départ, nous avons utilisé des particules pour aboutir à des mouvements similaires à des vagues en déplaçant les herbes selon des arcs superposés. La qualité visuelle de l’herbe était bonne, mais elle n’était pas au rendez-vous pour les arbres et les buissons. De plus, le coût en performance était un peu trop élevé par rapport à ce que nous pouvions nous permettre. Pour notre deuxième tentative, nous avons ajouté deux couches de bourrasques procédurales à l’environnement. La première couche est constituée d’un grand modèle de bruit numérique défilant selon la direction du vent ; nous avons ajouté par-dessus une texture qui défile le long du terrain pour détecter les petits détails de l’herbe. En plus d’être moins exigeante, cette approche nous a permis d’utiliser le bruit numérique plus brut pour les rafales de vent dans les arbres et les buissons. Ainsi, l’herbe et les différents feuillages réagissent de manière plus fluide.
Nous avons fini par utiliser le même modèle de déplacement des particules pour écarter les herbes lorsque le joueur et le cheval les traversent. Cette technique n’est pas nouvelle, mais nous y avons ajouté une amélioration majeure : en utilisant les particules pour contrôler le déplacement, nous avons pu utiliser les expressions pour aboutir à des comportements plus avancés. Parmi ces comportements, nous avons fait en sorte que l’herbe se remette en place de manière réaliste en appliquant une légère ondulation à la force du déplacement, ce qui empêche l’herbe de reprendre immédiatement sa position initiale de manière linéaire, ce qui aurait manqué de naturel. La vidéo ci-dessous montre le déplacement de l’herbe ainsi qu’une vue en mode débogage affichant le système de particules. Les parties vertes de la traînée représentent le déplacement, et les parties en rouge montrent l’endroit où le déplacement se dissipe. En regardant attentivement, vous pourrez constater que l’herbe perd et regagne sa valeur de déplacement en petite quantité à mesure que la traînée s’éloigne du héros. Tout ceci permet de créer un mouvement de réverbération, pour rendre l’herbe plus vraie que nature.
Enfin, l’équipe artistique et technique dédiée aux personnages s’est appliquée à ajouter des tissus et des cordes dynamiques dans le jeu, car ces éléments sont beaucoup utilisés par les personnages. Toutes les simulations de cordes et de tissu utilisent les mêmes paramètres de vent que ceux des feuillages et des particules, ce qui donne l’impression qu’un véritable vent souffle dans chaque scène.
Les animaux
Au départ, nous avons voulu que les animaux créés par l’équipe dédiée aux effets visuels soient visibles uniquement de loin, mais à mesure que le projet évoluait, nous nous sommes rendu compte qu’ils pouvaient jouer un rôle plus important. Nous nous sommes donc associés à Bill Rockenbeck, qui avait codé le système de particules de Second Son. Il a d’abord décidé de laisser les particules faire apparaître des objets complètement modélisés et animés. Grâce aux mêmes informations sur la position du terrain exploitées par le « vent-dicateur », nous avons pu faire correspondre l’orientation des modèles et le terrain afin d’aboutir à des collisions lorsque cela était nécessaire.
Nous avons ajouté des animaux comme des grenouilles, divers oiseaux, des grues, des poissons, des crabes et des insectes. Ces créatures interagissent toutes avec Jin et les autres personnages du monde du jeu. Grâce à une très légère sphère de vent entourant les personnages (dont Jin), les effets de particules des animaux sont capables de détecter lorsque des personnages sont proches. Nous avons utilisé un nouveau système d’événement conditionnel afin de modifier le mouvement des particules dans cette situation, ce qui permet aux animaux de fuir les personnages. Nous avons également utilisé ce système pour les projectiles et les impacts : ainsi, les flèches et les dagues effraient également les animaux.
La vidéo ci-dessous vous permettra de découvrir nos premiers essais d’interaction avec les crabes sur les plages. Nous avons commencé avec des modèles statiques (probablement mes plus beaux efforts de modélisation), puis nous avons effectué des tests sur leur comportement. Je voulais que les crabes maintiennent une certaine distance par rapport à Jin afin d’éviter qu’il puisse leur marcher dessus et les rendre trop agités. Pour m’aider à corriger leur comportement, les crabes de cette vidéo sont blancs lorsqu’ils se déplacent, et rouges quand ils sont immobiles.
Les feuilles et les duels
Dans la mesure où le vent allait être emblématique de Ghost of Tsushima, nous savions que nous devions ajouter des tonnes de feuilles et leur donner du style, tout en conservant leur réalisme. C’est pour cette raison qu’il peut y avoir des dizaines de milliers de feuilles à l’écran à n’importe quel moment dans Ghost of Tsushima. Toutes interagissent avec le vent, l’environnement et les personnages.
Pour rendre les feuilles réalistes, nous avons beaucoup travaillé pour les faire atterrir de la bonne façon en fonction du terrain. Chaque feuille est modélisée comme un disque utilisant des algorithmes 3D pour qu’elle pivote de manière appropriée en fonction du couple appliqué lorsqu’elle entre en contact avec le sol. Outre leur impact avec le terrain, nous avons également modélisé d’autres comportements plus avancés : dans le jeu, les feuilles se posent à la surface de l’eau, sont portées par le courant, tombent d’une cascade puis finissent par couler au fil de leur périple.
Vers la fin du développement de Ghost of Tsushima, un testeur chargé de l’assurance qualité m’a signalé un bug des plus étranges : les feuilles tombaient dans les feux de camp ou à proximité, mais ne brûlaient pas. J’ai trouvé ça effectivement très bizarre. J’ai décidé de résoudre ce problème en plaçant un émetteur de vent dans les feux de camp pour que les feuilles puissent réagir de la bonne manière. La poussée dégagée éloigne donc les feuilles du feu, ce qui est finalement un détail qui a son importance.
Les duels font partie des éléments ayant été très appréciés durant les premiers tests de Ghost of Tsushima. Dès le départ, les directeurs du jeu ont donné carte blanche à l’équipe chargée des effets visuels pour aider à créer des situations soulignant l’interactivité de notre jeu et les systèmes de particules.
Pour de nombreux duels, nous avons créé des feuilles permanentes réagissant aux mouvements du joueur et de l’IA. Dans cette optique, nous avons réutilisé la technologie de déplacement de l’herbe que nous avions conçue, et avons permis aux particules de s’appuyer sur cette information. Nous avons ainsi pu faire en sorte que les feuilles se déplacent avec style lorsque les personnages les traversent rapidement. Pour les duels, notre objectif n’était pas d’aboutir à un réalisme parfait, mais plutôt de créer des mouvements harmonieux. Nous avons utilisé le même système d’événement mentionné précédemment pour rechercher les moments où les valeurs de déplacement du joueur dépassent une certaine limite. Nous avons ensuite créé une retombée pour que les feuilles reprennent leur mouvement initial après un court laps de temps, pour ensuite pouvoir être projetées à nouveau. Nous avons également utilisé un motif de bruit numérique qui permet aux feuilles au sol d’être temporairement soulevées par le vent, ce qui nous a aidés à simuler les bourrasques et la nature instable des feuilles.
D’autres types de duels utilisent également beaucoup de systèmes de particules dynamiques différents, comme les lanternes célestes, les bougies qui s’éteignent, la fumée qui s’écarte devant vos pieds, les éclairs et bien plus encore. Nous avons utilisé des techniques similaires à celles des feuilles pour les lanternes : ainsi, chaque lanterne est en réalité un ensemble de particules qui se déplacent et flottent sur l’eau en fonction des mouvements du personnage. Pour les bougies dynamiques du deuxième duel contre Ryuzo, nous avons ajouté des émetteurs de vent aux coups d’épée et les avons reproduits sur les bougies. Si le vent dépasse un certain seuil, notre système d’événement éteint le feu et les lumières, puis fait apparaître un nouvel effet de fumée. De plus, le joueur génère du vent en faisant des roulades et en esquivant : ainsi, ces mouvements rapides éteindront également les bougies spéciales des duels.
La boue et le sang
Lorsque les personnages courent, font des roulades, glissent et tombent au sol, ils ajoutent de la boue de manière dynamique sur leurs modèles. Pour donner le ton à notre jeu, l’un de nos premiers objectifs de direction artistique était que nos personnages puissent se salir au fil de leur progression dans notre monde. Durant les animations, nous ajoutons des « sources » de boue à différents endroits, comme les genoux, les coudes et les épaules, afin que Jin et les autres personnages aient l’air salis par les combats. Pensez aux scènes célèbres des films de samouraïs, et vous verrez à quel point nous nous en sommes inspiré pour Ghost of Tsushima : les personnages s’éclaboussent et sont recouverts de boue du fait de leurs interactions avec le sol.
Comme pour la boue, nous avons créé des sources de sang, afin d’ajouter du sang de manière dynamique sur les modèles des personnages durant les combats pour montrer l’état de leurs blessures. Chaque impact ajoute du sang là où la lame a frappé, et également un peu autour de ce point. Nous avons utilisé ce système dans les cinématiques et les moments scriptés, en plus des combats.
Outre l’ajout de sang sur les modèles des personnages, chaque attaque crée un effet de particules avec des milliers de gouttelettes et d’écoulement de sang. Chaque gouttelette tombe sur les modèles à proximité. Dans l’eau, elles se dispersent dans une sorte de nuage charrié par le courant.
Une création à grande échelle
Pour créer à une aussi grande échelle, nous devions impérativement faire en sorte que nos effets visuels correspondent aux environnements pour ne pas avoir à les placer manuellement. Avec une si petite équipe et un monde si gigantesque à remplir, nous savions que nous allions devoir créer une sorte de placement procédural, car les biomes changeaient de manière très fréquente. Nous ne voulions pas passer tout notre temps à corriger ces contenus, cela devait se faire automatiquement.
La génération et les biomes
Prenons un exemple simple : nous voulions que les feuillent tombent uniquement dans les forêts et non dans les prairies. Nous avons d’abord utilisé une approche un peu brutale : nous avons placé un effet sur les arbres générés de manière procédurale sur l’île. Ça a été un échec, car l’environnement comportait des centaines d’arbres dans des espaces réduits : même si cela ne posait pas de problème en matière de géométrie, cette approche sollicitait trop nos systèmes de particules. Cela marchait mieux en faisant en sorte que nos particules n’apparaissent qu’en étant très proche des arbres (à peu près 15 mètres), mais cela semblait dommage dans un jeu avec une si grande distance d’affichage. Cette approche posait un autre problème : lorsqu’une feuille tombait de la canopée située à une dizaine de mètres au-dessus du joueur à cheval, elle n’avait pas le temps d’atteindre son champ de vision. Par conséquent, les feuilles n’étaient pas visibles la plupart du temps.
Pour notre deuxième approche, nous avons utilisé le système de génération de la même manière que l’environnement, pour lequel nous avions placé procéduralement les systèmes de particules près des arbres au même emplacement, en utilisant les mêmes masques et expressions. Cette approche nécessitait de superposer des cercles de feuilles dans une forme de masque parfois complexe. Les cercles s’éloignaient de leur rayon par rapport au bord des règles du masque. Ainsi, de nombreux grands espaces ne présentaient pas de feuilles en raison des règles de génération et d’expressivité. Nous pouvions équilibrer tout cela en créant plus de petits émetteurs, mais cela nuisait aux performances. Il était également difficile de corriger certaines zones spécifiques, car lorsque nous changions les règles de génération pour modifier la densité ou les trous de la zone que nous regardions, nous créions des problèmes dans d’autres zones de la forêt qui étaient précédemment épargnées. Malgré tout cela, cette technique a presque fonctionné. Même si elle comportait certains défauts, nous étions sur le point d’opter pour celle-ci.
Sur l’image 1, cette capture d’écran montre l’utilisation de l’outil de génération pour ajouter des particules en fonction des règles déterminant l’emplacement des arbres. On remarque des trous importants, cela ne correspondait donc pas à la qualité souhaitée. Sur l’image 2, nous avons beaucoup augmenté le nombre d’émetteurs de particules. Cette technique a presque fonctionné, mais utilisait trop de ressources dont nous aurions pu profiter ailleurs. L’image 3 montre notre troisième approche, la carte biome. Un de nos programmeurs chargés du rendu du jeu travaillait sur une fonctionnalité pour l’équipe chargée des éclairages utilisant les données des masques de génération environnementale avec un accès en temps réel. J’ai demandé si nous pouvions nous servir de cette technologie, et, fort heureusement, la réponse a été positive. Celle-ci a permis au système de particules de savoir dans quel biome chaque particule était créée. Sur l’image 4, un système de débogage de particules permet de montrer la façon dont les particules lisent ces données. Les zones bleues représentent les prairies, et les vertes les forêts.
Le premier essai s’est avéré plutôt lourd, mais à partir du moment où j’ai utilisé un motif de bruit numérique pour modifier les informations prélevées, tout est devenu plus naturel et pratique. Cette technologie est au cœur de notre nouveau système d’ambiance environnementale. Nous l’avons combinée avec d’autres fonctionnalités comme le prélèvement de la position du terrain, des matériaux et de la direction du vent. Pour chaque lieu, nous avons pu retirer des centaines de systèmes de particules générés par l’environnement pour les remplacer par un système unique qui suit la caméra et qui s’avère beaucoup plus en phase avec les biomes.
Même si nous avons transféré une bonne partie de nos effets depuis le système de génération vers un système de biome en temps réel, nous avons bel et bien utilisé le système de génération pour certains effets de particules de Ghost of Tsushima. C’est le cas de certains oiseaux placés à l’orée des forêts, des crabes et des mouettes sur les plages, des hérons dans les rizières et des grues dans les marais. Enfin, nous avons utilisé le système de génération pour ajouter du brouillard à l’orée des bois. Dans tous ces cas, à chaque fois que l’équipe chargée de l’environnement changeait l’emplacement des forêts, des champs et des plages, les effets visuels suivaient derrière automatiquement.
Les paysages et les conseils de navigation
Dans Ghost of Tsushima, les paysages sont importants pour le gameplay, car ils aident à trouver des objets, mais également pour donner le ton et souligner notre direction artistique. Selon nous, trouver des quêtes devait se faire le plus naturellement possible. Nous avons donc créé toute une série d’effets pouvant indiquer l’emplacement des quêtes et les défis. On retrouve par exemple différents types de fumée indiquant les missions ou les défis, des oiseaux qui entourent les haïkus à composer, de la vapeur qui émane des sources d’eau chaude, et bien plus encore.
Assembler le tout
Les effets visuels de Ghost of Tsushima font partie intégrante de l’environnement du jeu : chaque frame contient de nombreux systèmes différents qui travaillent à l’unisson pour améliorer l’aspect dynamique. Entre les biomes et les animaux au premier plan, et les conditions météorologiques et les marqueurs de contenu au second plan, les effets visuels permettent de donner vie au monde de Tsushima et de rendre son exploration agréable.
Merci d’avoir lu cet article ! J’espère que vous avez apprécié cette plongée dans les effets visuels de Tsushima. Si vous souhaitez en savoir plus sur notre technologie, vous pouvez écouter ma présentation à la Game Developers Conference de 2014 centrée sur nos systèmes de particules expressifs.
Les commentaires sont désactivés.