Un personnage affronte des monstres dans "Let Them Come: Onslaught".

Blog technologie

Entretien

Optimiser les systèmes de sang et d'effets visuels avec l'UE5 pour le jeu Let Them Come: Onslaught

Blueprints

Indépendants

Jeux

Let Them Come: Onslaught

Niagara

Tuatara Games

tuatara-games-logo.png
Tuatara Games est un collectif d'artistes de renommée mondiale installé à Vancouver. Spécialisé dans la création d'effets visuels et d'expériences en temps réel extrêmement avancés, le studio a mis son expertise à profit pour aider de grandes entreprises du secteur des jeux vidéo, dont Epic Games, et pour développer sa propre propriété intellectuelle avec son titre incontournable à succès, Let Them Come.
Bonjour à tous les membres de la communauté de l'Unreal Engine. Je m'appelle Alex Underhill, et j'occupe le poste d'artiste technique et d'artiste en effets visuels chez Tuatara Games. Je fais partie de la petite équipe qui vient de publier Let Them Come: Onslaught, un jeu développé avec l'Unreal Engine 5, sur PC et consoles. 

Dans ce jeu de tir, les joueurs se retrouvent plongés dans un univers de science-fiction, seuls sur une planète extraterrestre hostile où ils doivent affronter des vagues incessantes de créatures. Notre objectif était de rendre chaque élimination spectaculaire. Nous voulions laisser une trace sur le champ de bataille, au lieu de simplement faire disparaître les ennemis de l'écran. Cependant, compte tenu de la taille des hordes d'ennemis, cette idée nous a donné du fil à retordre sur le plan technique. Pour y parvenir, nous avons dû faire de nombreux essais avec les systèmes de l'Unreal Engine.

Let Them Come, le jeu original, avait été développé avec Game Maker. Cependant, pour Let Them Come: Onslaught, nous sommes passés sur l'Unreal Engine, qui correspondait davantage à nos objectifs pour ce jeu. 

L'Unreal Engine nous a permis d'ajouter un grand nombre d'ennemis à l'écran en même temps ainsi que de nombreux effets visuels, tout en assurant des performances fluides. Par ailleurs, notre équipe est habituée à utiliser des outils de création d'effets visuels, en particulier avec l'Unreal Engine, puisqu'il s'agit de la spécialité de notre studio.

Notre défi : les flaques de sang au sol


L'une des difficultés qui se sont présentées à nous lors de la création des effets visuels de Let Them Come: Onslaught a été le nombre d'ennemis présents à l'écran en même temps, ainsi que la quantité d'ennemis susceptibles d'être éliminés d'un seul coup. Lorsque nous avons mis au point le prototype du jeu, les ennemis devaient déclencher un signal de gameplay appelé "Burst", qui faisait apparaître une flaque de sang au sol en guise de retour visuel pour les joueurs. Cependant, nous nous sommes rapidement aperçus qu'il était possible d'éliminer un grand nombre d'ennemis en une seule attaque, notamment avec certaines armes améliorées. Il a donc fallu optimiser le système afin d'offrir une action aussi chaotique que possible et éviter que la quantité d'ennemis tués ne crée un goulot d'étranglement.

À l'origine, les décalques de sang avaient été ajoutés pour accentuer l'effet de bain de sang et permettre aux joueurs de voir où ils étaient déjà passés (et ce qu'ils avaient laissé dans leur sillage). Cependant, de nombreux décalques de sang pouvaient apparaître et, puisqu'ils n'avaient pas vocation à s'effacer avant un certain temps pour remplir leur rôle, ils avaient tendance à rapidement s'accumuler. Les décalques avaient également tendance à se chevaucher : la possibilité d'éliminer un grand nombre d'ennemis dans une zone restreinte donnait lieu à des chevauchements entre les décalques de sang, ce qui nuisait souvent aux performances du jeu.

Pour faire apparaître une grande quantité de marqueurs de sang (et d'acide !) au sol, nous avons conçu avec Niagara un système qui rend un ensemble de zones dans l'espace du monde sur une cible de rendu. Cet ensemble présente une longueur fixe d'environ 256 entrées et boucles. Une fois ces 256 entrées épuisées, la première entrée sera alors mise à jour pour devenir la 257e, et ainsi de suite. Ce nombre nous paraissait idéal : il permettait de laisser une grande quantité de flaques de sang au sol avant de réutiliser les entrées.

Désormais, lorsqu'un ennemi est tué, il ne crée plus directement de décalque. À la place, il transmet ses informations (position, rayon, type de matériau) au blueprint d'acteur "Splat Manager" que nous avons mis en place et qui reste persistant dans le monde. 
Le masque final, déformé, offre un résultat sanglant réaliste.
Avec l'aimable autorisation de Tuatara Games
Ce gestionnaire transfère ensuite les données vers un système général Niagara, qui utilise du langage HLSL (High-Level Shading Language) pour écrire ces zones dans un masque général de cible de rendu, grâce à l'interface de données Grid2D. Ce système repose en grande partie sur le travail de Chris Zuko, directeur technique chez Terrible Posture Games. Nous remplissons la cible de rendu avec la distance qui sépare le point de chaque flaque de sang, cette plage de distance étant déterminée par le rayon d'entrée. Ces distances sont ensuite rassemblées pour former un masque cohérent.
Masques de flaques de sang pour une scène de combat dans "Let Them Come: Onslaught".
Avec l'aimable autorisation de Tuatara Games
Ce masque comporte plusieurs couches, dont une pour le sang et une pour l'acide. Ces couches peuvent ensuite être échantillonnées dans les shaders de surface environnementale afin d'appliquer les couches de sang aux endroits appropriés. 

Le gestionnaire mémorise la position d'origine de la zone actuellement rendue dans l'espace du monde, ainsi que la taille de cette zone exprimée en unité de l'espace du monde. Ces variables sont mises à jour dans une collection de matériaux et de paramètres Niagara pour l'exposer au contenu du jeu.

Le masque de sang était exposé sous forme de fonctions de matériau qui mappaient automatiquement les coordonnées pour le placer au bon endroit dans le monde. Les artistes n'avaient plus qu'à définir une pondération comprise entre 0,0 et 1,0 pour générer des effets de surface, sans avoir à se préoccuper de recalculer les coordonnées. Pour la plupart des surfaces, nous prenons la carte de distances entrantes et prélevons plusieurs échantillons dans l'espace du monde afin de distordre la forme et de l'intégrer plus naturellement dans l'environnement.
Flaques de sang intégrées naturellement dans l'environnement.
Avec l'aimable autorisation de Tuatara Games
Une fois déformé, le masque final est ensuite utilisé pour fusionner les attributs de matériau dans le shader de surface, afin de lui conférer un aspect gore et sanglant !
Rayons de flaques de sang pour une scène de combat dans "Let Them Come: Onslaught".
Avec l'aimable autorisation de Tuatara Games

Effets visuels d'explosion de sang


Pour optimiser le jeu, la réduction du nombre de systèmes d'apparition de particules, en particulier lors de la mort d'ennemis, s'est imposée comme une solution clé. Comme pour les décalques, la quantité d'explosions mortelles apparaissant à l'écran posait problème. Cependant, dans ce cas-là, il ne s'agissait pas d'un souci de suraffichage. Le problème résidait dans la quantité de systèmes Niagara qui étaient créés et gérés.

Au cours du projet, nous sommes passés à l'Unreal 5.3, motivés par l'accès au canal de données Niagara. Avec une légère refactorisation des effets visuels et des signaux de gameplay, nous avons pu transférer tous les événements d'explosion de sang vers un seul et même système Niagara via un canal de données. Ce dernier crée ensuite une explosion de sang à l'endroit approprié au lieu de générer un nouveau système Niagara à chaque événement. Ce système repose sur le même principe que celui des flaques de sang : à sa mort, un ennemi transmet au système de gestion du monde des informations le concernant, comme sa position et la taille/la magnitude de l'événement. Ces renseignements seront ensuite envoyés à un canal de données Niagara.

Lorsqu'il a fallu implémenter une version édulcorée des effets de mort, sans traces de sang, cette approche a simplifié les choses : la version édulcorée a été créée en parallèle de la version sanglante et les options du jeu permettaient de passer de l'une à l'autre.

Les chemins de canaux de données Niagara pour les effets de mort ne couvrent pas la totalité des morts. En effet, nous souhaitons créer des morts personnalisées pour certaines entités. Ils couvrent 80 à 90% des morts, ce qui nous offre la liberté de varier les actions et de créer des effets sur mesure lorsque cela est nécessaire.

Ainsi, les joueurs peuvent admirer le chaos qu'ils sèment sur leur passage, alors qu'ils luttent pour leur survie. Le champ de bataille garde les cicatrices de leur victoire, sans que les performances en pâtissent. Nous avons hâte que vous découvriez tout cela en action à la sortie de Let The Come: Onslaught.

Envie de créer des jeux avec l'Unreal Engine ?

Avec l'Unreal Engine, ne laissez pas la taille de votre équipe limiter vos ambitions. Découvrez comment l'UE5 donne à tous la puissance nécessaire à la création de jeux hors du commun avec un style visuel digne des géants de l'industrie.
En savoir plus

Recevez des informations sur les innovations du secteur ainsi que les dernières ressources gratuites pour :

En transmettant vos informations, vous acceptez de recevoir des actualités, des enquêtes et des offres spéciales de la part d'Epic Games. Politique de confidentialité