Nexus VI

Interview: Nexus VI, les coulisses d’un épisode grandiose

Cet article est également disponible en: Anglais

3DVF : Le générique évoque des développements, peux-tu nous en dire plus ?

Romain Toumi : Pour un projet d’envergure comme celui-ci, le soft doit aussi s’adapter aux besoins, comme les studios qui ont tous une version Maya modifiée ou blindée d’addons, J’ai donc une version custom de Blender.
La build actuelle remise à jour après l’épisode 7 :

Des personnes du discord de BlenderLounge m’ont beaucoup aidé, Notamment Jonas Holzman étudiant en école d’ingénieur, qui code bien en C et m’a appris à build ma version de Blender.

Je fais aussi du python, et j’ai créé mes propres addons pour l’épisode 7, avec l’aide d’Alexandre Labedade qui connait très bien python, on a codé plusieurs choses dont un outil qui permet de créer des astéroïdes très haute résolution en décimant ce qui est hors champ, non visible de la caméra.

Ou un autre addon me permettant d’ajouter des éléments comme les astéroïdes, les vaisseaux ou le système de lasers super facilement, un gestionnaire d’assets pour la ville, ou encore un outil de renderfarm intégré dans Blender en C et Python.

3DVF : Pour le rendu, quel moteur as-tu utilisé ? Et pourquoi ?

Pour travailler, j’ai utilisé EEVEE pour préparer mes scènes, mon Lighting basique et rendre certaines scènes en prévisualisation pour que le réalisateur puisse imaginer une ambiance.

Pour le rendu final, j’ai utilisé Cycles au cours des versions 2.8 -2.9, Cycles X n’était pas encore disponible et parfois E-Cycles qui m’a permis de gagner du temps sur plusieurs scènes avec des temps de rendu plus rapides.
Cycles pour des raisons évidentes : il est libre, complètement intégré à Blender, il est parfaitement prévu pour le genre de scènes que je fais (à part la scène d’intro ou j’ai clairement vu des limites, en plus des limites de blender) et puis surtout je le connais par cœur depuis sa sortie sur Blender 2.61 en 2011.

E-Cycles je l’utilisais quand j’avais des temps de rendus important sur Cycles, j’essayais de rendre sur E-cycles pour voir ce que je pouvais gagner en changeant quelques paramètres, tout en gardant une image similaire, parfois ça s’est avéré très utile !

Aujourd’hui sur Blender 3.x il est encore plus intéressant, plus forcément sur la vitesse mais surtout avec des features notamment avec le Light-Linking, qui permet de dire à une lumière d’éclairer que certains objets, ce qui permet d’éviter de rendre plusieurs layers comme sur Cycles.

3DVF : Est-ce que tu as découpé la scène d’introduction pour en faciliter la gestion et le rendu ?

Tout à fait, la séquence est découpée en quatre parties.

La première commence dans l’espace, la transition vers le second plan se fait au moment où l’on traverse les nuages. Ce second plan était le plus gros en termes de .blend, d’objets… Et de galères.

Les nuages sont un fichier blend séparé : j’ai travaillé avec Cycles, qui n’a pas les capacités d’un RenderMan, de même mon ordinateur n’est pas un monstre, tout rendre en même temps était donc exclu.

La seconde partie va jusqu’au moment où l’on passe un pont (notez la voiture Pizza Planet que l’on voit brièvement, référence à Pixar !), avec un dégradé fait au compo. La troisième scène a été la plus longue à rendre, car j’ai tenté de faire comme Pixar dans Coco à mon échelle : des centaines de lumières réelles dans la scène… C’était clairement une mauvaise idée, et au final je ne l’ai pas réellement fait (encore une fois, il y a une marge entre Cycles et RenderMan) mais par contre tout ce qui est mesh light éclaire vraiment la scène. Et il y a du volumétrique qui, même calculé séparément du reste de la scène, a pris un temps énorme du fait du nombre de lights.

test de rendu CG brut (beauty/Combined)
avec ajout de la passe de volume denoisée + premier tests de compo
Final

3DVF : Pour cet effet volumétrique, as-tu envisagé de le simuler au compositing ?

Alors justement, j’ai utilisé le compo pour la partie de la ville en surface, avec du mist. Ça se sent un peu, c’est moins réaliste, mais je n’ai pas eu le choix : Blender refusait de rendre, je suis arrivé aux limites du soft, j’avais des crashs tout le temps.

J’ai d’ailleurs demandé à Alexandre Labedade de me faire un script Python spécifique pour ce genre de problématique de rendu : si le rendu d’une frame est trop court, de l’ordre de la seconde, ou si à l’inverse rien n’est rendu au bout d’une heure, le script part du principe qu’il y a un problème et redémarre Blender, re-rend la frame. Et grâce à ça, mais aussi en faisant le rendu en ligne de commande et en optimisant Windows, ça a fini par passer !

Pour revenir sur cette troisième partie du plan… Un point qu’on ne voit pas trop : quand la caméra tourne à droite pour éviter la DeLorean, toute la partie droite de la ville grossit, il y a un énorme changement d’échelle qui m’évite de devoir faire des choses étranges avec la caméra et qui fluidifie le mouvement. Il y a aussi un bâtiment qui sort de nulle part mais il y a tellement de choses qui se passent qu’on ne s’en rend pas compte.

La traversée de la voiture me permet en prime, une fois que l’on est dedans, de dégager tout ce qui est derrière la caméra de manière fondue, sans que ça se sente (si on le fait brutalement d’une frame à l’autre on va avoir des ombres et reflets qui vont disparaître). Ça a permis d’alléger considérablement les temps de rendu.

Enfin, la transition vers le dernier plan se fait au niveau de la bouche d’égout, rendue avec de l’alpha au niveau des trous. Et on enchaîne donc sur le dernier plan, qui débute avec la même caméra et plus ou moins le même mouvement.

Cette dernière scène fait tous les égouts. On notera la créature rajoutée vers la fin de la production : ce lézard sert à habiller un passage un peu vide, et on le reverra dans de futurs épisodes !

Vers la fin, on a des scans de rochers et la transition vers le plan réellement filmé, avec la main qui ramasse le pin’s : les cailloux du premier plan sont en CG, de même que quelques autres sur le côté droit. Les cailloux permettent de cacher la délimitation et de masquer la transition entre CG et live.

Et c’est ainsi que se termine la séquence d’introduction, 2 minutes 12 au total !

3DVF : Enormément de travail, en effet ! Dans la suite de l’épisode on a de nombreux petits plans avec vaisseaux, astéroïdes, dog fights, lasers… Une des difficultés vient du fait que ces plans ne sont pas en full 3D, on a par exemple des cockpits en images réelles, avec un décor 3D derrière. Comment as-tu géré tout cela, et comment s’est passé le tournage ?

Au moment du tournage des fonds verts de l’alien dans son cockpit et de la chasseuse avec son casque, je n’avais aucune idée de ce à quoi allait ressembler le résultat final ! La planète défoncée qui permet d’avoir une lumière rouge, l’étoile qui permet d’avoir une lumière blanche n’étaient pas encore définies, sinon évidemment je l’aurais dit au chef op pour que l’éclairage soit adapté.

En fait, le tournage s’est fait très tôt pour des raisons économiques : en exagérant un peu, quand on a un studio fond vert disponible temporairement, on filme sans attendre.

N’ayant pu préparer les choses en amont, et comme nous n’avions de toute façon pas une idée claire du résultat final, tout n’était pas optimal. Il a fallu faire beaucoup de compositing et de triche en post-prod pour que les lumières fonctionnent.

Globalement, ce qui a été filmé sur fond vert est uniquement constitué des personnages et du tableau de bord, qui lui-même est un support en bois très simple. Et en prime, des sources lumineuses pour créer des clignotements et flashes lumineux qui donnaient une sensation de vitesse, d’objets passant à côté des pilotes.

Par la suite, il a donc fallu rajouter les cockpits complets, les vitres, et ces éléments par contre sont cohérents avec les vraies lumières présentes dans la scène 3D.

Sur les plans plus larges, les comédiens ont une doublure CGI, animée avec un noise sur le bone de la tête.

Au final ça fonctionne bien, je suis assez content !

3DVF : Sur le casque (qui est évidemment bien réel) de la chasseuse, as-tu envisagé de supprimer la visière sur le tournage, d’en ajouter une en 3D en post, pour des questions de reflets ?

Si, j’y ai réfléchi notamment pour les profils : avec la transparence de la visière et le fond vert derrière ça pouvait poser problème.

Mais une aide précieuse est intervenue : Emmanuel Dirian, qui a fait les beaux-arts à Metz et est par la suite parti au Canada ; il fait du compositing sur de gros films comme Star Wars Episode VII, Valerian et la Cité des Mille Planètes, Fast & Furious 8, la série The Expanse

Il est très fort en keying, et il m’a du coup sauvé la mise en détourant tous les plans. C’est donc grâce à lui que j’ai pu garder la visière au tournage, et que j’ai pu avoir de la 3D à travers la visière tout en ayant les vrais reflets filmés au tournage.

Globalement ça a donc été assez simple pour ce point, grâce à lui.

3DVF : Sur toutes ces séquences spatiales, y a-t-il un point qui a demandé beaucoup d’itérations ?

Oui, la séquence du looping [15:46 dans l’épisode] a nécessité plusieurs retakes car il est difficile, dans l’espace et sans horizon, de bien faire comprendre au spectateur une chorégraphie spatiale.

C’est aussi lié à la démarche artistique : Alex, le réalisateur, ne voulait pas que ce soit trop démonstratif, que l’on prenne trop le spectateur par la main. Et comme il s’agit d’une scène d’action, en plus destinée à Youtube, ça devait rester assez cut, assez dynamique.

Il fallait donc à la fois que l’on comprenne ce qui se passe, que la réal ait du sens, ne pas abuser sur les coupes… D’où de nombreuses réflexions et beaucoup d’essais, nous avions des désaccords sur la manière d’aborder la chose.

On a fini par tomber d’accord sur une version qui fonctionnait, avec en prime une petite inversion de plans au montage.

Au final on est satisfaits, le résultat nous plaît et nous semble clair. Mais ça a été compliqué !

3DVF : Comment as-tu créé les astéroïdes ?

C’est tout simple ! Tout est procédural avec les modifiers de Blender. Je précise que l’outil geometry node n’existait pas encore, histoire que les spécialistes Blender ne se demandent pas pourquoi je ne m’en suis pas servi.

En fait le geometry node est arrivé en cours de prod, or je suis resté sur la version 2.83 LTS jusqu’à la fin de la production en juin 2021 : il est toujours risqué de changer de version en cours de projet, Surtout une version custom.

Pour revenir aux astéroïdes donc, j’ai utilisé différents modifiers, du subdiv, du displace pour créer du relief, du Voronoi, un Musgrave qui permet de créer des espèces de veines avec des trous… Et un triangulate afin que le shader réagisse bien : le Pointiness de Blender, que j’utilise dans mes shaders, n’aime pas les quads.

Tout cela m’a donc permis de créer différents astéroïdes, avec des tailles variées. J’ai ensuite tout baké, afin d’avoir des modèles avec uniquement des textures 4k et 2k, certaines en 8k si besoin. Puis j’ai décimé les meshes, créé des LOD à la main avec une version basse résolution, moyenne résolution et une haute résolution qui fonctionne relativement près de la caméra, sachant que pour des astéroïdes vraiment très proches je n’utilisais pas de baké mais les astéroïdes originaux en procédural.

Enfin, j’ai mis les astéroïdes dans des collections, puis j’ai pu les placer dans l’espace, encore une fois via des particules et via un addon maison pour les créer rapidement et paramétrables facilement. Avec deux systèmes de base, un pour les gros astéroïdes, un pour les petits. Après je gère l’échelle, la vitesse, je duplique un ou deux astéroïdes… Et voilà, un champ d’astéroïdes en quelques secondes !

Evidemment certains astéroïdes ont aussi été placés soigneusement à la main, ce qui m’a d’ailleurs permis d’insérer un easter egg : un astéroïde en forme de Suzanne, la fameuse tête de singe de Blender, est placé quelque part dans l’épisode 7 ! A vous de le trouver… Et si vous avez besoin d’un indice, ça se situe vers la fin. Il y’en a aussi une à gauche de mon nom au générique.

En bas à gauche, Suzanne, en partie dans l’ombre.
Un autre exemplaire est à débusquer dans l’épisode.

3DVF : Toujours sur les combats, on a beaucoup de tirs, traînées, effets au niveau des réacteurs… Quelques mots sur tous ces FX ?

J’ai utilisé un mix d’éléments réels, avec du stockshot, et de nombreux moteurs de particules différents.

En gros, j’ai fait en sorte de mettre en place un système de tir qui me permettait de facilement rajouter des lasers. Il lance des particules et dispose d’un viseur que je peux déplacer comme je le souhaite, je peux aussi le contraindre à une courbe. Souvent, je vais donc caler le viseur sur la même courbe que celle du déplacement du vaisseau cible, mais décalé de quelques mètres sur le devant du vaisseau, comme si le tireur anticipait les mouvements du vaisseau sans parvenir à le toucher.

Il y a un peu d’aléatoire qui se rajoute pour éviter que les tirs ne soient trop droits, ce qui implique de vérifier ensuite qu’il n’y a pas de collision avec le vaisseau (en pratique, ça se produit sur un des plans finaux, mais comme la caméra est éloignée, ça ne se voit pas).

La seule chose que ne permet pas mon système de tir, c’est de mettre en pause/reprendre les tirs quand j’en ai envie. La raison : dans Blender, on peut donner le nombre total de particules, et de quand à quand tirer ces particules, mais on ne peut pas mettre en pause.

La solution a été d’ajouter un cube invisible, le « particle killer », qui détruit les particules qui le touchent. Donc quand je ne veux pas de tirs je téléporte l’émetteur dans ce cube et ça ne tire donc plus, et quand je veux à nouveau des tirs je repasse en mode classique.

J’ai même mis plusieurs cubes, car parfois des particules s’échappent quand même… ça reste un contournement d’un problème en utilisant de la physique, c’est moins fiable qu’une case à cocher, c’est sale, mais ça fonctionne parfaitement dans mon cas !

Pages suivantes : lasers, explosions, séquence finale, capsules…

6 commentaires

phicata 14 octobre 2021 at 17 h 30 min

o_O Dingue!

frenchy pilou 14 octobre 2021 at 22 h 44 min

Les « Ian Hubert » français! 😎
Il faudrait montrer cet article dans les écoles, cela susciterait des vocations! 😉

Shadows 14 octobre 2021 at 22 h 59 min

Et hors des écoles, puisqu’il est autodidacte. 🙂

frenchy pilou 15 octobre 2021 at 12 h 16 min

Je parlais des collèges! 🙂

zeauro 20 octobre 2021 at 12 h 35 min

C’est un super épisode qui rend hommage au film, tout en montrant que ses VFX ont pris un coup de vieux.

C’est un travail titanesque et il n’a pas pu profité des innovations utiles pour son projet qui arriveront dans la 3.0.

Il y a de sacrées différences entre la 2.83 et la 2.79. Mais à part, l’usage d’EEVEE pour la préviz, il ne s’attarde pas trop dessus.
Même si la nouvelle UI a dû lui permettre de gagner en rapidité sur un peu tout les aspects du taff.
Je vois qu’il n’a pas visiblement d’usage du Grease Pencil. Ils ne font pas leur storyboard avec, ou n’annotent pas leurs retakes.
Il n’a pas fait ses astéroïdes avec le nouveau sculpt mode.

Je confirme que les défauts des Boïds, correspondent plutôt à une volée d’oiseaux qu’à une foule d’humains.
Il n’y a pas qu’une case à décocher. Il faut trifouiller les sliders du sub-panel Misc et rajouter des règles au Boïd Brain sans vraiment pouvoir les doser de façon fine.
Et il faut aussi configurer chaque déflecteur. A priori, les boïds sont plus simples à utiliser que dans les 2.4, puisqu’ils sont devenus sensibles aux Force Fields standards depuis.
Pour résumé, l’astuce qui consiste à les utiliser est très loin d’être comparable au confort d’un vrai simulateur de foule à la Populate.
Mais pour des persos qu’on voit une seconde dans le plan, visiblement, ça fait le job.

Et donc, c’est plutôt représentatif d’une ancienne façon de travailler avec Blender.
Pour le même genre de projet, un utilisateur de 2.93 a à sa disposition un Cycles plus performant avec Embree mieux intégré et un export multithreadé de la géométrie. Il a un objet Volume qui permet de trouver un bon rapport qualité/lourdeur mémoire et un EEVEE qui rend mieux ces volumes.
Mais surtout, il a des Library Overrides stables et des Geometry nodes.
Beaucoup des bidouilles mélangeant shapekeys, modifiers et deformers ou les vieillles particules qu’il a su utiliser, grâce à son expérience, vont devenir accessibles aux novices. Dans quelques temps, lis n’auront plus qu’à récupérer un preset de Geometry Nodes pour simuler des foules.

Donc, mine de rien, il y a déjà un sacré gap entre la 2.83 et la 2.93. Mais il va y avoir un monde entre la 2.83 et la 3.0.
Dans la 3.0, on aura, en plus, le support des fields, des curves et des volumes pour les Geometry Nodes, toutes les améliorations de perf de Cycles -X et un Asset Browser, qui arrête de faire de la figuration.

Shadows 19 janvier 2022 at 10 h 17 min

A noter aussi, Romain Toumi sera présent au PIDS qui approche à grand pas ! [URL]https://3dvf.com/pids-2022-en-physique-ou-en-ligne-le-meilleur-des-vfx/[/URL]

Laissez un commentaire

A Lire également