CV
FR EN
← Retour à l'accueil Version Imprimable

Breakdown Test Unreal Engine

Sujet

L'exercice a consisté à imaginer un shot mettant en scène un projectile percutant le mur. Les débris venant du mur doivent tomber dans les cendres juste devant celui-ci.

Éléments fournis avec l'exercice :

Contraintes imposées :

Logiciels :

Parti pris

Pour réaliser cet exercice, j'ai choisi d'utiliser les logiciels suivants :

Déroulé de l'exercice

J'ai décomposé mon travail en plusieurs étapes :

Concernant le principe général de l'effet, j'ai choisi Houdini pour créer mes simulations et Unreal engine pour le rendu temps réel.

Simulation du projectile

J'ai choisi le parti pris d'une sorte de boulet de canon qui vient s'écraser contre le mur en respectant la trajectoire indiquée sur le schéma des instructions.

Concernant la préparation de la scène Houdini, j'ai décomposé les différents éléments selon leur nature afin de créer les colliders. Pour le tas de cendres, je me suis servi de la map de déplacement pour que le collider ait la bonne forme.

Capture Houdini - Simulation du projectile
(capture Houdini)
Capture Unreal - Rendu du projectile
(capture Unreal)

Simulation des débris

J'ai commencé par créer 3 géométries très light (Blender) qui constituent les morceaux de briques qui se détachent du mur.

Géométries des débris
Instanciation des débris
Simulation des débris

Ces géométries sont packées et instanciées sur au total 271 particules. J'ai placé les UV de ces débris sur des briques de la texture d'albedo du mur.

Avant de créer la simulation j'ai configuré les paramètres vélocité, angular velocity, mass, scale de manière à avoir un maximum de variations. Par exemple, le scale a une amplitude entre 0.5 et 6, le tout pluggé sur une courbe, ce qui me permet d'obtenir plus de petits éléments que de gros.

Ensuite je pack le tout et fais une simulation à l'aide du rigid body solver.

Simulation des planches

Étant donné que le boulet heurte les planches lorsqu'il retombe au sol, et afin d'avoir un résultat plus convaincant, j'ai créé une rapide simulation sur ces planches. Le principe est le même que celui des débris, c'est-à-dire que je me sers du même solver.

Création du decal

Pour cette étape, j'ai commencé par créer toute la scène dans Unreal engine. Ensuite je me suis procuré cet alpha que j'ai trouvé sur Artstation :

Alpha trouvé sur Artstation pour le decal

J'ai ensuite créé deux géométries (en partant d'une grid) à l'aide de Zbrush, une complètement plate (low poly), et l'autre en appliquant l'alpha (qui constitue le High poly) :

Normal map d'opacité et d'ambient occlusion - Substance Painter
Normal map d'opacité et d'ambient occlusion - Substance Painter

J'ai ensuite pu créer une normal map d'opacité et d'ambient occlusion à l'aide de Substance painter.

La dernière étape a été de créer un decal dans Unreal engine et de l'intégrer dans le level séquence, puis d'animer son apparition dès que le boulet touche le mur.

Résultat decal dans Unreal
Sequence vitesse x0.25 (ralenti)

Ajout de la poussière et des sprites Niagara

Après ce résultat, j'ai décidé d'ajouter un effet de poussière lorsque les débris tombent dans les cendres. J'ai décidé d'ajouter des sprites animés à l'aide de Niagara, ce qui m'a permis d'obtenir un meilleur résultat, et d'habiller l'espace convenablement tout en respectant toutes les contraintes de l'exercice.

J'ai donc gardé les 200 particules des débris du mur. J'ai divisé par deux le nombre de particules des cendres (100 au final), ce qui me laisse 100 particules pour mettre en place le système de sprites animés. J'ai utilisé la texture suivante que l'on trouve dans le content browser de Unreal engine :

Texture de sprites

J'ai appliqué les sprites sur un système de particules qui utilise un émetter spawn burst instantaneous, dans lequel j'utilise un point attraction force afin de projeter la particule, puis j'ai joué sur l'opacité pour les faire disparaître selon l'âge de la particule. J'ai appliqué une rotation également afin d'obtenir un roulis de la fumée. Et puis j'ai ajouté tous les modules de base d'un système de particules : vélocité, drag, noise...

Résultat final

Temps de réalisation

Jour 1 : (entre 2 et 3 heures)

j'ai commencé ma scène Unreal, placé tous les éléments (géométries fournies) en attendant les simulations et le decal + réflexion sur la faisabilité de l'effet, documentation etc...

Jour 2 : (environ 4 heures)

Montage des setups du boulet et des débris

Jour 3 : (environ 11h)

Montage du setup des planches + plusieurs tests afin de trouver une combinaison intéressante entre les trois simulations.

Création du decal

Finalisation du test dans Unreal engine + création des différentes séquences.

Jour 4 : (environ 8h)

Création du système de particules à l'aide de Niagara et implémentation dans la séquence