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 :
Pour réaliser cet exercice, j'ai choisi d'utiliser les logiciels suivants :
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.
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.
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.
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.
É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.
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 :
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) :
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.
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 :
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...
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