#unitytips Dev Takeover : VFX et shaders avec Harry Alisavakis

COMMUNITY TEAM / UNITYUnity Community
Nov 4, 2021|10 Min
#unitytips Dev Takeover : VFX et shaders avec Harry Alisavakis
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

Le #unitytips Dev Takeover est une série en cours sur notre compte Twitter @unitygames. L'équipe d'Unity invite les super utilisateurs de notre communauté à partager leurs idées, leurs conseils et leurs astuces directement avec nos followers. Nous commençons avec Harry Alisavakis, artiste technique chez Jumpship Studio et magicien des effets visuels.

Si vous ne connaissez pas encore Harry, vous le reconnaîtrez peut-être à son avatar vert fluo qui circule à chaque fois qu'il est question de shaders. Voici un bref aperçu de la façon dont Harry est devenu une véritable star dans le monde des effets visuels :

Travaillant actuellement en tant qu'artiste technique sur le prochain jeu Somerville chez Jumpship, Harry passe son temps "libre" à apprendre les effets visuels et les shaders. En fait, il continue d'inspirer les créateurs grâce à sa compilation hebdomadaire de tweets sur le développement de jeux appelée "Technically Art", où il promeut également le travail d'autres artistes talentueux (ne manquez pas de le suivre!). Par le biais de son canal Discord associé, "Technically Speaking", il anime des chats sur l'art technique, les défis créatifs d'Unity et des AMA pour répondre à autant de questions d'utilisateurs que possible. Consultez-le ici.

Vous trouverez ci-dessous quelques images des travaux les plus récents de Harry. Vous en trouverez d'autres dans son portfolio.

Artwork
Artwork
Artwork
Artwork

Passons maintenant aux #conseils de l'unité, avec l'aimable autorisation de Harry Alisavakis.

Timelines des systèmes de particules

Commençons par une petite astuce VFX à essayer. Bien que la synchronisation des effets du système de particules entre eux puisse être un peu fastidieuse, il existe en fait un moyen simple d'itérer sur vos effets visuels à l'aide de lignes de temps. 🧵

Dans Unity, les Timelines disposent d'un support intégré pour les systèmes de particules, vous n'avez donc pas besoin d'un quelconque script personnalisé. Il suffit de faire glisser et de déposer votre système de particules à cet endroit, et vous pourrez le parcourir.

Timeline

La combinaison de ces pistes avec des animations ou toute autre timeline vous donne une bien meilleure idée de la synchronisation de tous les éléments animés individuels, afin de créer des effets visuels vraiment juteux.

Animations sur la Timeline
Flux de vertex personnalisés

Il existe un moyen très amusant d'en avoir plus pour son argent lorsque l'on utilise des systèmes de particules et des shaders personnalisés, et c'est la personnalisation des flux de vertex.

Prenons un moment pour bien comprendre ce qu'ils sont, et comment nous pouvons les utiliser pour des effets de particules plus avancés. 🧵

Comme vous le savez, les modèles rendus dans Unity sont constitués de triangles composés de sommets. Les sommets contiennent toutes les informations essentielles concernant ces modèles, telles que leur position individuelle, leurs coordonnées UV et la couleur des sommets.

Ce qui est génial, c'est que nous pouvons ajouter n'importe quelle sorte de données arbitraires à nos vertex et les utiliser dans notre shader personnalisé comme bon nous semble. ✨ C'est la beauté des flux de vertex personnalisés dans les systèmes de particules : Nous pouvons transmettre les informations relatives aux particules à nos sommets et ne les exploiter qu'en cas de besoin.

L'option permettant d'ajouter des flux de vertex personnalisés se trouve dans le module Renderer du système de particules. En l'activant, vous verrez tous les flux de vertex déjà utilisés, comme les coordonnées UV et la couleur des vertex.

Module de rendu
Dans le graphique des nuanceurs

Enfin, créons un simple shader de dissolution pour notre système de particules à l'aide de Shader Graph. Il s'agit d'un nuanceur Universal Render Pipeline (URP) non éclairé, à double face, avec un écrêtage alpha. Ce qui est intéressant à noter ici, c'est ce qui entraîne l'effet de dissolution - la troisième composante de nos UV.

Graphique d'ombrage

Vous vous demandez peut-être pourquoi, d'autant plus que nous avons tendance à travailler avec les coordonnées UV pour l'échantillonnage des textures à travers les composantes x et y.

À côté du nom de chaque flux, vous verrez où les données sont stockées.

Gif

Ici, le nouveau flux est stocké dans TEXCOORD0.z, qui correspond à la troisième composante du premier canal de coordonnées de texture (a.k.a. UV0.z). En ajoutant le pourcentage de l'âge à vie, cette valeur partira de zéro et évoluera vers un au cours de la vie des particules.

Avec notre nuanceur, les particules se dissolvent avec le temps. L'application du shader au système de particules permet d'obtenir ce résultat :

Gif

Jusqu'à présent, tout va bien, mais que se passe-t-il si nous voulons contrôler encore davantage la durée de vie des particules ? Le pourcentage d'âge fonctionne, mais il est assez linéaire et n'est pas très utile pour créer des effets plus complexes. La solution réside dans ce module de données personnalisées:

Données personnalisées

Nous pouvons utiliser Custom1.x au lieu du pourcentage d'âge, ce qui nous permet d'utiliser une courbe qui modifie la valeur au cours de la durée de vie des particules, à l'instar des courbes intégrées telles que Size over Lifetime.

Gif

Nous pouvons désormais mieux gérer la façon dont nos particules se dissolvent au fil du temps. ✨ C'est génial, non ?

Gif

Bien sûr, il y a des tonnes d'autres données que vous pouvez passer à des flux de vertex personnalisés. Les possibilités d'utilisation à l'intérieur de vos shaders personnalisés sont nombreuses.

Cela dit, nous aimerions connaître vos propres utilisations créatives des flux de vertex personnalisés dans les commentaires ci-dessous.

Joyeux VFXing ! ✨

Plus de conseils sur l'unité ?

Suivez notre Twitter Unity for Games pour les #unitytips hebdomadaires du mardi et les Dev Takovers mensuels. Faites-nous savoir dans les commentaires qui vous aimeriez voir figurer dans nos futures prises de contrôle sur Twitter.