Créations procédurales et effets spéciaux : une
Transcription
Créations procédurales et effets spéciaux : une
Créations procédurales et effets spéciaux : une expérimentation graphique Maxime Causeret Master A.T.I. septembre 2008 Art et Technologies de lʼImages Université Paris 8 Remerciements Je tiens à remercier Marie-Hélène Tramus et Hervé Huitric, responsables de la formation Arts et Technlogies de lʼimage, ainsi que lʼéquipe enseignante, pour la diversité et la liberté de création accordée. Mes camarades ATI, toutes promotions confondues : Armella, Antoine, Vincent, Simon, Raoul, Dimitri, Julien, Gilles, Joran, Niranjan, Thibault, Florancia, Adeline, Sophie, Magalie, Edwige, ... Chloe, Mathieu, Julien, Rémi,... Flavio, Noémie,... Anne-Laure, Cedric,... et tous ceux que je ne cite pas. Mathieu Alvado pour la musique. Mais aussi Yves et Simon Mesnard, Julien Borde, Aurélien Larcher, ma famille. Des collègues avec qui jʼai pu travailler : Nicolas Crochet, Fx azur et asmar, chasseur de dragon Florian Rhin Fx mikros def2shoot Thomas Fx mikros attitude Romain Leclerc Fx mikros mac guff et Flame Artist Thomas Marqué, lead Fx de def2shoot, superviseur fx Kaena Pierre Vilette, superviseur Fx renaissance, Fx chasseur de dragon stephane, manu Fx/superviseur mikros Virginie, Max, Aurelien, Julien, Hervé, Thomas, pim ... 2 Tables des matières 1 Introduction Mon projet Contexte de ma recherche 4 5 2 Inspirations Peinture Publicité Clip Cinématique de jeux vidéos Court métrage Cinéma Bande dessiné Images procédurales Light painting 8 9 10 11 11 12 12 13 14 3 Premières expérimentations FumeFx Houdini Maya Krakatoa Afterburn 15 16 17 18 18 4 Techniques employées dans le domaine des effets spéciaux Instancer Sprite Fluide sur particule Fluides Dynamique Realflow Paint effect Massive Particules 19 19 20 20 21 21 22 22 23 5 Exemples de réalisations Diffusions dʼeffets sur réseau de courbes Forets de neurones Globules Publicité ariel Nicolas et Guillemette 24 25 26 26 27 6 Réalisation de mon animation 28 7 Conclusion 31 Bibliographie 32 3 Introduction 1 Introduction Mon projet Mon projet de Master 2 est la réalisation dʼune petite animation abstraite, sans scénario ni décor. Un plan séquence dʼeffets que lʼon parcourt sur une musique composée par Mathieu Alvado. Une suite dʼimages inspirée par le mouvement dʼun personnage que jʼai animé. On est facilement fasciné par le mouvement dʼun fluide, la forme d'un nuage, un tourbillon de feuilles... Jʼai voulu utiliser ces éléments qui émerveillent par leurs étranges chorégraphies pour créer ce petit film en gardant une certaine simplicité. Dans ce mémoire, Je vais tout dʼabord revenir sur mes différentes inspirations. Jʼexpliquerai ensuite mes premiers essais. Puis jʼaborderai les différentes techniques utilisées dans le domaine des effets spéciaux et quelques réalisations en production. Enfin je reviendrai sur la réalisation de cette animation. Je précise juste le terme dʼeffets spéciaux qui désigne initialement l'ensemble des techniques utilisées au cinéma pour rajouter des trucages. En post production, pour traiter ces effets, il existent différents métiers qui correspondent à différentes étapes. Les effets spéciaux ou fx sont ici associés à lʼune dʼelles. A Dreamworks on les définit par lʼanimation de tout ce qui nʼest pas humain. Cela correspond à des effets dʼeau, de fumée, dʼexplosions ou des mouvements de foules. 4 Introduction Le contexte de ma recherche ou pourquoi les effets spéciaux Ce mémoire sʼinscrit dans la continuité de ce que je fais et non dans une recherche à part entière. Je reviens donc rapidement sur mes expériences et travaux précédents pour situer cette recherche. Cela pourra me servir personnellement de point de départ pour mes expérimentations à venir. Je me suis aperçu quʼil était nécessaire de travailler lʼimage en 2D pour pouvoir utiliser à bon escient lʼespace 3D. On travaille dans un espace plat, la 3D nʼest là que pour mettre en perspective, apporter une information de lumière, un Zbuffer, une normale. La quantité de travail est telle quʼil faut dʼabord penser les plans en deux dimensions, le cadrage, les couleurs pour ensuite modéliser, texturer, animer, éclairer en fonction de cette vue caméra. On se retrouve en deux dimensions. Mais le grand problème cʼest que cette 2D est “vectorielle”. On définit des surfaces plates, lisses. Je dois dire que le displace et des outils comme Zbrush ont révolutionné cet espace 3D. Des détails 3D sont stockés dans une texture bitmap. Mais tout cela reste assez rigide. Cʼest ce qui mʼa amené à mʼintéresser aux rendus non réalistes lʼannée dernière, pour casser ces surfaces, avoir de la matière. Et pour ces mêmes raisons, je mʼintéresse maintenant aux effets dits spéciaux. Les fluides sont des objets définis en voxel, les particules sont des points dans lʼespace et les frontières sont floues. Il sʼavère que le domaine des effets spéciaux correspond aussi à ma recherche dʼun mixage entre compétences techniques et artistiques. On utilise très souvent des expressions pour contrôler ces éléments. On est amené à bidouiller et expérimenter de nouvelles techniques régulièrement dans cet esprit de jeu ou de casse tête. Par chance cʼest aussi un domaine ou il y a encore un besoin. Jʼai donc voulu cette année expérimenter dans ce contexte-là. Mon expérience dans les effets spéciaux sʼétait avant tout faite sur Maya. Jʼai pu profiter de cette année pour mʼinitier à un outil qui aurait sa place à ATI, Houdini, un logiciel de 3D orienté procédural, et pour approfondir les effets spéciaux sous 3dsmax et Maya, tout en me sensibilisant aux algorithmes utilisés. Jʼai en effet réellement découvert les effets spéciaux grâce à Thomas Marqué, ex Superviseur VFX de Kaena, sur Maya, en deug, lors dʼun stage à def2shoot. Jʼétais stagiaire sur le long métrage "Un ticket pour lʼespace" et il réalisait les effets du décollage dʼune fusée : une série de plan en full 3D qui se devait photoréaliste. Il utilisait à la fois les fluides Maya, les particules Hardware de Maya, Afterburn, une bêta de Aura, realflow, à peu près tout ce qui existait a lʼépoque. Après avoir fait un peu de rendu, jʼai pu expérimenter les fluides Maya pour la séquence du plan dʼintro du film où je devais faire une nébuleuse et des étoiles qui laissaient une traînée sur lʼécran. En licence, après avoir participé à lʼinstallation "fil amant", jʼai réalisé une animation de 2 minutes avec Chloé Lang-Willar où il était question dʼ"êtres peinture". Tout était à base de courbes, paint effect et particules, un projet entre rendu non réaliste et effets spéciaux. Peu après, jʼai réalisé Bouille2Nouille avec Armella Leung, une animation dʼune minute où jʼavais pu tenter un petit essai de matière non réaliste avec des filtres photoshop sur certaines passes de rendus. En premiere année de master, apres lʼinstalla- Beeing painting - réalisé avec Chloé Lang-willar 5 Introduction tion “carreau de cassé” où jʼai pu brisé un mesh dʼune vitre, je me suis intéressé aux rendus non réalistes, à ses algorithmes, ses outils, en programmant aussi un peu. J'ai aussi survolé le Processing,le Sdk after effect, le Sdk Maya,le C++,les Scripts realflow,le Maxscript,le Mel et je me suis rapidement intéressé aux shaders. Pour ce projet de M1, jʼai pu réaliser une animation dʼune minute mélangeant 2D et 3D, toujours autour de cette recherche de matière. Il y avait déjà pas mal de particules, fluides et camera mapping. Jʼai aussi fait cette année-là une autre petite animation entièrement en rendu 2D grâce à des camera mapping avec un peu dʼanimation 2D. Dans cette recherche de déstructuration de la 3D, le morphing est un outil que j'apprécie beaucoup. Jʼavais fait un personnage qui passe de bébé à adulte puis à oiseau. Déjà en Deug, jʼavais réalisé une animation où des monstres morphent du tout au tout, ainsi qu'une animation en rendu dessin et une autre où un personnage sʼefface de la mémoire. Je peux aussi citer en licence une animation où un personnage se transforme en arbre ou encore une plante mutante qui pousse pour le "millefeuille". Tout ces petits projets mʼamènent donc à créer des choses non rigides sur ce support tant contraignant. Et cʼest dans ce sens que je continue cette année, sans objectif précis de court métrage. Jʼétais quand même tout dʼabord parti sur une animation contrôlée par le son mais je trouvais ca trop contraignant dans la réalisation même. Pour en finir avec toutes ces expérimentations qui accompagnent ma recherche, jʼessaie aussi dʼaller voir dans le monde professionnel. En dehors de petits boulots freelance qui étaient des réalisations dʼanimations classiques, jʼai pu me faire une toute petite expérience dans les effets spéciaux à Mikros. Jʼai en grande partie travaillé sur une pub full cg pour decathlon où lʼon a travaillé à deux sur les effets spéciaux, quelques particules pour essayer de décrocher une pub disneyland et un petit test realflow pour un parfum. Ce qui mʼa permis de tester un peu toutes les techniques dʼeffets speciaux dans maya : sprites, particules hardware, instances, overburn, fluids, ncloth et realflow dans le monde professionel. En rapport avec le pourquoi des effets spéciaux, je peux aussi citer Nicolas, ami dʼAnne-laure George-molland, qui en me montrant son travaille à mac guff mʼa montré en quoi consistait ce métier. Publicité Decathlon - Mikros Image 6 Introduction Quelques images de ces précédents travaux : Bouille2Nouille Second Souffle 7 Inspirations 2 Inspirations Les effets spéciaux sont présents partout. La publicité, les clips, les films, les courts-métrages en abusent. On est submergé dʼimages en tout genre et on sʼinspire de toute cet ensemble. La plupart du temps on ne les voie même plus. Il est devenu normal que lʼimpossible se réalise à lʼécran. Dans cet état de lʼart, jʼai relevé les oeuvres qui mʼavaient inspirées à la frontière de lʼabstrait. Peinture Retour aux sources, je remarque une approche similaire dans la peinture de ma mère, ici une photographie dʼun tableau de mon appartement : Quand on dessine, on nʼa pas forcement besoin dʼavoir un sujet et cela vient naturellement. Lʼagencement de traits donne une image qui se construit au fur et à mesure. Dans cette recherche de matières, Craig Mullins est un concept artist remarquable qui utilise des techniques traditionnelles et numériques avec brio. Il maitrise parfaitement la lumière (http://goodbrush.com/) : 8 Inspirations Publicité Je crois que la société Psyop a réalisé à elle seule 90 % des publicités que jʼapprécie. Basée à Los Angeles et à New York, elle sʼest spécialisée dans les effets visuels avec un style très graphique. Elle a pu travaillé avec les plus grandes marques. Dans la publicité Guiness Dot, on suit le voyage dʼun point qui traverse très rapidement différents univers pour enfin former une bière (“it can become everything so it become guiness”). Cette œuvre se rapproche beaucoup ce que je souhaitais faire cette année. Dans une autre publicité pour Smith and Nephew, on suit différents sportifs avec des personnages qui dégoulinent. Ils utilisent des effets de traînées autour du mouvement des personnages et des fluides. Encore une fois tout sʼenchaine naturellement. Toutes leurs publicités sont des œuvres à part entière et ils ont su se démarquer. Ils restent copiés mais ils gardent une longueur dʼavance en originalité et en qualité. Guiness Dot Snith and Newphew Les dix pour cent restants sont des cas isolés comme cette publicité Canson où lʼon suit des éléments se dessiner. Il sʼagit plus ici dʼune composition 3d dʼéléments graphiques que dʼeffets spéciaux numériques. Canson 9 Inspirations Jʼapprécie aussi beaucoup le travail de Pierre Michel à Mikros qui réalise des publicités graphiques sur after effect avec des particules trapcode et des stockshots. Il compose ses éléments pour créer des oeuvres originales. Il sʼarrange avec les producteurs pour avoir carte blanche. Il fait ça parfois en plus de son boulot le soir. Ses clients ont des budgets restreints et il arrive à imposer le fait de ne pas montrer lʼavancement et de livrer un produit fini avec une liberté de création totale. Ici une image de Flower Power pour Loris : Clips Les clips sont très riches dʼinventions visuelles. Le réalisateur Michel Gondry a pu y expérimenter à loisir avec ses univers enfantins. La musique permet surtout de jouer entre lʼimage et le son. We are Electronic Performers de Labalaba exploite très bien le son puisquʼil déforme lʼunivers fait de courbes. Réalisé à Machine Molle en 2004, les vibrations du son voyagent sur ces surfaces étranges. Plus récemment, on trouve des exemples similaires de décomposition de lʼimage par le son dans un clip sur une musique de Justin Timberlake ou encore sur une musique de Radiohead. Les lignes sont là aussi des éléments très graphiques. Symphony in Red est un clip qui dure seulement 2 minutes sur fond de musique classique mais son étonnante réalisation et le lien entre la musique et lʼimage en fond une œuvre marquante. Cʼest un subtil mélange de fluide filmé et dʼeffets numériques. 10 Inspirations Cinématiques de jeux vidéo Les jeux vidéo offrent souvent de très belles cinématiques. Blizzard nous a par exemple habitué à livrer des films très impressionnants avec leurs jeux. Ici une image dʼune animation faite pour une extension de World of Warcraft. Il y a toujours de très beaux effets. Avec lʼarrivée de jeux non-réalistes en temps réel, on a droit à des animations plus picturales. Jʼai ici choisi Street Fighter 4 où on sʼapproche dʼun rendu aquarelle sur les différentes animations. La première image est tirée du premier trailer avec Ryu et Ken. La deuxième dʼune animation dʼun combat entre Chun Li et Viper. Généralement les effets servent à être incrustés mais ici ils sont mis en avant et dynamisent lʼensemble. Les personnages passent en second plan. Dans le deuxième trailer, les contours sont parfois flous et le mouvement est accentué par des effets de traînées. Courts métrages 893 Deux Yakuza combattent pour prendre la place dʼun de leur défunt. Visuellement cʼest un mélange dʼanimation 2d et 3d avec de lʼaquarelle des fluides et des estampes. Il y a une esthétique très forte et le résultat est très graphique. Réalisé à Supinfocom Arles, il a été sélectionné au Siggraph 2008. Steel Life Plus proche de moi, je trouve le travail de Mathieu Gérard très intéressant et je renvoie à son mémoire de lʼan dernier. Il a réalisé une animation à base dʼeffets spéciaux. 11 Inspirations Cinéma Valse avec Bachir Parmi tout les films remplis dʼeffets spéciaux tel que Spiderman 3 ou les films dʼanimation tel WallE, Ratatouille, Kung Fu Panda, Paprika. Je me suis arrêté sur celui-ci. Valse avec Bachir est un film autobiographique. Ari Folman, metteur en scène israélien, revient sur ses souvenirs de la guerre en liban. Ce documentaire est traité en film dʼanimation. Les décors sont parfois des speed painting, lʼambiance est mise en avant avec peu de détails. Bande dessinée Lendemains de Cendres Une BD magnifique avec des mélanges de dessins, speeds, aquarels. Séra poursuit son travail de mémoire sur le conflit cambodgien. Il relate ici les années de chaos qui ont suivi lʼeffondrement des Khmers Rouges, à travers lʼexode forcé dʼun homme, Nhek. Très varié graphiquement, il y a une certaine recherche de matières. Cela reste assez réaliste mais les textures priment généralement sur le dessin. 12 Inspirations Images procédurales Lʼordinateur arrive parfois à nous surprendre quand il est bien utilisé. Il y a deux outils atypiques qui mʼont attiré par leur images : Xenodream et Spore. Xenodream est un logiciel qui permet de générer des objets 3D. On part de formes simples pour les déformer et les dupliquer de manière itérative. On peut obtenir des résultats étranges. Jʼai découvert ses images par le biais d'un concours “amazing creations”, fort intéressant : Spore est quant à lui un outil développé par un chercheur, Richard Doc Belly, qui permet de générer des images en utilisant des millions de particules. On ne peut malheureusement pas lʼutiliser chez soi mais les résultats obtenus sont très fins et inspirants. Il a été utilisé sur des films, cʼest un outil unique en son genre. 13 Inspirations Light painting Cʼest une technique photographique où lʼon utilise la lumière sur des longues poses pour dessiner sur la pellicule. On obtient des effets de trajectoires. Ce procédé a été utilisé en image par image pour faire des courts métrages. Et récemment, il a été repris dans la publicité par Sprint puis Numericable et dʼautres marques. Il y a eu une sorte de mode autour de cette technique. On trouve de nombreuses vidéos sur Internet de gens qui sʼamusent à faire des petites animations, dans la rue, dans des bars... Ici des images dʼun petit court-métrage avec des chorégraphies, un combat : La publicité Sprint : Diverses animations : 14 Premières expérimentations 3 Premieres expérimentations Au tout début de ce projet, je ne savais pas dans quelle direction partir, jʼai voulu prendre le temps de tester les différents outils qui existaient pour voir quel type dʼimage on obtenait. Fume Fx Jʼai commencé par tester FumeFx, un plugin pour 3dsmax très intéressant qui permet de faire du feu et de la fumée. Jʼétais passé voir Thomas Marqué à Def2shoot, le superviseur des effets spéciaux, et il trouvait cet outil assez révolutionnaire. Jʼai fait une petite animation avec une petite explosion. Jʼavais essayé entre temps de faire du feu en fluide Maya et jʼai donc refait un test un peu plus poussé sur une flamme : Cʼest un outil qui a vraiment été pensé pour la production, il est très simple à utiliser et donne rapidement de très bons résultats. On peut avoir un aperçu en temps réel. La grille de voxel composant le fluide sʼagrandit en fonction de lʼespace occupé tant qu'elle ne dépasse pas la taille maximale que lʼon fixe. 15 Premières expérimentations Houdini Par la suite je me suis beaucoup intéressé à Houdini, le logiciel de 3D sans doute le plus complet. Il est orienté procédural et on peut très rapidement générer des formes. Cʼest un outil bien pensé. Je me suis en tout premier lieu amusé à faire des interactions avec du son car je pensais initialement faire mon projet autour de ça. Je mʼétais rendu compte quʼon a tous les outils nécessaires : Jʼutilisais des fichiers audio wav ; en récupérant le spectre audio et en lʼanalysant comme on le souhaite grâce a des nodes à lʼintérieur même dʼHoudini, on peut les connecter à toutes sortes de choses. Ici quelques images de tests dʼéqualiseurs avec des particules, sur une sphère ou en générant des triangles. Il y a des nodes vraiment très intéressants mais je pense que Vincent Houze qui a fait son projet entièrement sur ce logiciel en parlera mieux que moi dans son mémoire. Après le son, je me suis intéressé aux Lsystem dans Houdini, un outil vraiment génial qui permet de générer très simplement des formes à partir de règles. On peut ensuite facilement animer le nombre d'itérations ou toute autre type de variable. Jʼai fait une petite animation où je générais cette forme. La boule est un fluide avec des collisions, les racines sont des particules connectées entre elles pour former des lignes. Le mesh de lʼarbre est généré par ce node de L-system ; j'ai créé aussi une nouvelle ligne que j'ai projeté sur le mesh par un lancer de rayon. 16 Premières expérimentations Un des points forts dʼHoudini est sa dynamique qui marche extrêmement bien. Elle est par contre assez lente dans les calculs surtout pour les clothes et les fluides. Pour faire du Fx cʼest une partie assez importante et assez lourde. Nicolas Crochet avait fait toute la partie dynamique sur Chasseur de dragon dans Houdini. Ce que je trouve intéressant, cʼest que cet outil utilise une approximation par volume et non par face pour les collisions. On a le choix mais par défaut il convertit tous les objets en volumes. Par exemple, si on a des objets qui sʼinterpénètrent à la première image, il va pouvoir les séparer sans créer de conflit comme tous les autres solveurs. Un petit test dʼanimation de cubes pré fracturés dans Maya avec la dynamique dʼHoudini et quelques particules : Il y a évidemment beaucoup dʼautres choses intéressantes que jʼai juste survolées à cette étape. On peut facilement y créer ses propres nodes. Il existe des passerelles Renderman. On peut instancier des metaballs sur nʼimporte quel support... Ici un petit test de sprite sur des particules. Ce fut pour me sensibiliser à la philosophie de ce logiciel très différente de Maya ou 3dsmax. Jʼai pu par la suite lʼutiliser un petit peu sur mon projet et même en production. Maya Cʼest lʼoutil que je connaissais le mieux pour les effets spéciaux, jʼai voulu tester à nouveau les fluides. Jʼavais été impressionné par les feux réalisés dans Chasseur de dragon par Nicolas Crochet. On peut faire de belles choses avec cet outil mais c'est vite laborieux sur des petits projets personnels. Ne possédant pas de Renderframe, il faut essayer de savoir ce que lʼon va obtenir du premier coup et faire avec. On y passe vite du temps, il y a beaucoup de paramètres réglables. 17 Premières expérimentations Krakatoa Jʼai aussi fait quelques petits tests avec des plugins pour 3dsmax. Krakatoa est assez intéressant et permet de gérer des millions de particules en mélangeant différentes passes de calculs dans son propre moteur de rendu. Jʼai ici tenté de faire disparaître un personnage de dos en sable par lʼintermédiaire de particules Flow et Krakatoa. ParticleFlow propose une interface intéressante à base dʼévenement et de neouds. Jʼai tout dʼabord testé de controler la disparition par un petit script mais cela devenait vite lourd vu le nombre de particules, jʼai donc opté par une force qui basculait mes particules dans un autre groupe des que celles-ci décolaient. Afterburn ce plugin pour 3dsmax permet de rendre des volumes avec des textures procédurales sur des particules. Il existe une équivalence dans Maya en instanciant des fluides sur des particules comme le fait le script overburn mais ce plugin offre de meilleurs controles. Ici un petit test de texture procédurale dans un volume afterburn. Je trouve que ces types dʼeffets sont cependant rarements tres concluants. Jʼaurais pu tester d'autres outils avant de démarrer mon projet mais jʼavais déjà fait quelques expérimentations les années précédentes et jʼai pu par la suite continuer dʼexpérimenter en production. Mon animation nʼest en fait quʼun prolongement de ces essais qui mʼa permis de leur donner un contexte. Ses outils sont complexes à maitriser et je me suis tourné vers ceux qui me paraissaient les plus interessants. 18 Techniques 4 Techniques employées dans le domaine des effets speciaux Jʼai travaillé durant mon année de M2 à Mikros puis à Mac Guff. Avec cette petite expérience, je vais essayer de revenir sur les effets spéciaux rencontrés en production. Il existe de nombreux outils mais on est souvent obligé d'utiliser Maya pour des raisons de “pipeline” et de licences, ce qui nʼest pas toujours le plus adapté. A Mikros on utilise le moteur de rendu Arnold intégré dans Maya, développé avec Sony pictures et utilisé par ces deux seules sociétés. Cela donne un style à leur animation avec une illumination globale très présente. Mac Guff utilise un moteur développé en interne un peu plus ancien mais qui gère bien les grandes scènes. Il faut exporter les scènes de Maya vers un logiciel interne nommé Symbor. Il existe beaucoup dʼautres outils, mais le principal travail en Fx cʼest de savoir bidouiller. La dynamique fait juste ce quʼon lui dit de faire et on ne peut pas toujours la contrôler, on essaie alors de tricher un peu et de comprendre les outils quʼon ne connaît pas forcément. Chaque effet est unique mais voici quelques techniques que lʼon retrouve en production : Instancers : Pour rajouter des débris lors dʼexplosions, faire un rendu d'objets qui vont scintiller grâce a un specular très fin ou même gérer une foule dʼentités, on utilise des particules sur lesquelles on copie des objets grâce à un node instancer. On crée des attributs par particule pour contrôler le numéro de lʼobjet que lʼon copie, sa taille, sa direction... Mikros a développé un plugin pour gérer les foules basé sur le travail de Craig Reynolds et la librairie opensteer avec un système dʼautomate à état. On retrouve les steering behavior sur le site http://www.red3d.com/cwr/ A Mac Guff, on se débrouille avec les particules Maya ; pour pouvoir décaler lʼanimation des objets, on est obligé de la convertir en séquence de mesh et de jouer avec lʼindex de lʼobjet que lʼon instancie. Sprites : Les sprites sont encore très utilisés, ils permettent dʼavoir un contrôle simple et une visualisation rapide. Ce sont des plaques face à la caméra que lʼon peut faire pivoter et grossir avec une texture 2d. En mélangeant différentes textures assez transparentes, on obtient des effets de fumée ou des effets atmosphériques intéressants ; le résultat est assez détaillé grâce aux textures et simple à contrôler. On peut toujours utiliser des séquences de textures animées si on en a pour rajouter de la vie dans la fumée ou des textures procédurales animées. Ça restera de la 2d qui ne réagit pas à la lumière ou très peu et qui n'est pas complètement dynamique. Mais cʼest assez difficile et lourd dʼavoir cette finesse avec des fluides ou dʼautres techniques. Cʼest souvent utilisé en publicité ou même sur des longs métrages à prise de vue réelle. On fait aussi toutes sortes dʼeffets autres que de la fumée : du feu, de lʼeau,... 19 Techniques Fluides sur particules Plutôt que dʼavoir des sprite 2d sur des particules, il faut savoir que lʼon peut y connecter des fluides 3d avec des textures procédurales. Ça fonctionne bien pour des fumées assez denses et assez épaisses mais je ne trouve pas cette technique très concluante pour obtenir des résultats très transparents. Il faut regarder le mel script “overburn” qui génère un preset de fumée avec les connections entre les particules et le fluide. Lʼage des particules va controler le texture time du fluid. Il utilise le node particleInfo qui ne marche quʼen maya software. Il existe aussi des shaders volumétriques pour certains moteurs de rendu permettant dʼobtenir ce genre dʼeffet. Mac Guff en a développé un en interne. Fluides Les fluides sont un outil puissant mais assez lourd. Il faut pouvoir y passer du temps. Ce nʼest pas toujours facile en production de répondre aux demandes d'un réalisateur "un peu plus comme ça" ou "un peu plus comme ci". Cet outil est dynamique, on lance la simulation et on obtient un résultat plus ou moins contrôlé. La principale difficulté, cʼest quʼil réagit de manière différente quand on change la résolution du fluide. Il existe alors des motions fields pour diriger celui-ci. La dynamique va calculer lʼévolution de la densité, la vélocité, la température avec des paramètres tels que la broyance qui permet par exemple de donner de la légèreté au fluide pour passer dʼune dynamique plutôt gazeuse à plutôt liquide. Au rendu, on peut ensuite choisir ce que lʼon affiche en contrôlant lʼopacité avec habituellement une courbe dʼintensité en fonction de la densité du fluide. Il est ainsi possible de faire ressortir lʼintérieur ou lʼextérieur du fluide. On peut aussi rajouter des textures procédurales comme un perlin noise pour perturber la couleur ou lʼopacité. Lʼidéal reste dʼavoir une résolution suffisamment élevée pour avoir des détails donnés par la dynamique. Ces textures procédurales peuvent servir à générer des nuages ou des nébuleuses sur des fluides statiques. Pour gérer l'ensemble, le nombre de paramètres est élevé et la dynamique est très coûteuse en temps de calcul. Il vaut mieux avoir une renderframe et utiliser un “prémel” en batch pour paramétrer son fluide avant le rendu. Il faut savoir quʼon peut utiliser les fluides comme force pour contrôler des particules et obtenir des mouvements similaires. Et, chose moins connue, il est possible de modifier un fluide en utilisant des particules, pour émettre de la densité ou ajouter la vélocité de la particule au fluide par la commande fluidVoxelInfo. 20 Techniques Dynamique Les logiciels calculent le mouvement des objets par des lois physiques. On utilise pour cela des solveurs pour simuler leurs déplacements. Je nʼai pas utilisé de dynamique “rigid body” en production ( dynamique dʼobjets rigides ). Celle de maya est assez simple d'emploi et peut gérer différents layers de collisions. Apparemment, pour avoir des résultats plus concluants, il est préférable dʼinitialiser les masses des différents objets en fonction de leur volume grâce à un petit script. Chez Def2shoot, on a tendance à utiliser Reactor dans 3dsmax plutôt que Maya. Mac Guff a testé Novodex un moteur GPU mais les résultats étaient plus concluants sur Houdini. Realflow permet aussi de faire de la dynamique. Il existe de nombreux outils, ils ont tous leur avantages, temps de calculs, réglages, resultats, mais je pense quʼHoudini est lʼun des plus interessants. Jʼai utilisé le hair, ncloth mais les paramètres sont assez similaires entre différents systèmes. Il faut souvent faire attention à lʼéchelle, à la résolution du maillage et aux interpénétrations. Il faut ensuite jouer avec les paramètres et parfois séparer différents éléments ou mélanger différentes simulations. Il est difficile de donner un mode dʼemploie, il faut tester pour obtenir les bon resultats. Realflow Realflow est un outil consacré à la dynamique, plus spécifiquement à la simulation de fluides. Je l'ai expérimenté en publicité. Les simulations sont souvent assez longues à calculer. On peut y créer des meshs avec des metaballs ou exporter les particules. Lʼéchelle est là aussi un facteur important. Ce qui peut paraître étrange au premier abord, cʼest quʼil gère les particules par densité, si la vitesse est de zéro, il ne générera aucune particule. Lʼautre grande différence avec Maya cʼest quʼil y a une notion de viscosité et de tension qui fait que chaque particule nʼest pas indépendante. Il offre beaucoup de possibilités mais il faut souvent un nombre important de particules pour avoir une finesse dans le résultat même s'il existe différents paramètres pour générer le mesh. Jʼavais dû utiliser un script pour calculer différentes passes de simulation et les mélanger. Comme la plupart des effets speciaux, il faut enormement de mémoire et de calcul pour obtenir des petits details. On peut facilement écrire quelques lignes en Python pour contrôler certaines interactions. Jʼavais par exemple isolé des particules après collisions dans un autre système mais cela peut être lourd pour des effets plus complexes. Il existe des scripts pour générer de lʼécume sur les vagues. Nicolas génère souvent ses scènes directement en Python pour appliquer plus facilement ses effets sur différents plans. 21 Techniques Paints effects Les paints effects sont tres intéressants car ils permettent de générer de manière procédurale des formes sur des courbes dans lʼespace. On peut créer un grand nombre dʼeffets mais il nʼest pas toujours facile dʼobtenir quelque chose de précis. Cela manque parfois de finesse et les contrôles ne sont pas toujours évidents. On peut voir dans le Visor de Maya toutes les possibilités offertes. Il faut encore une fois pas mal expérimenter mais ça donne parfois des résultats assez étonnants. Il faut partir de preset et les ajuster pour obtenir ce que lʼon souhaite. On y rajouter de la vie avec des turbulences et on peut ensuite les convertir en mesh ou les rendre en 2d. Basé sur des l-sytems il existe beaucoup de presets pour faire des plantes. Cʼest un outil assez unique. Massive Je ne sais pas si certaines sociétés en France ont des licences de ce logiciel car il coûte très cher mais il est intéressant de regarder comment celui-ci fonctionne. Massive est un logiciel à part entière pour la gestion de foules avec des solveurs de dynamique comme le cloth ou le hair intégrés. Il est très complet donc complexe mais bien pensé. Chaque agent a une vision, peut entendre des sons. On a accès à ces différentes variables et à lʼaide de seuil avec des courbes et par des conditions on lui demande dʼavancer, tourner plus ou moins vite par un système de nœud. Il existe différents outils pour placer ces agents. Ils suivent un sol sur lequel on peut créer des zones, des chemins. Cʼest moins complexe que ce que lʼon peut imaginer mais cela reste énormément de travail : créer les agents, leurs squelettes, définir leurs actions avec des animations, définir leur cerveau, la dynamique, rajouter des variations. On peut ensuite directement lancer les rendus depuis Massive dans Renderman. 22 Techniques Particules maya On est souvent amené à utiliser les particules Maya avec un rendu hardware ou software. Leur intérêt réside dans le fait quʼelles sont facilement scriptables. Par contre, on est trop vite limité en nombre et le rendu nʼest pas parfait, on doit souvent se débrouiller au compositing. Par la carte graphique, on peut rendre plus facilement des grandes quantités de particules mais simplement sous forme de points ou de sprites. En software par le processeur on peut utiliser un shader volumétrique ou des blobby, une surface générée en fonction de la distance des particules. On contrôle leur position par lʼintermédiaire de forces ou de scripts. Je baisse régulièrement lʼattribut conserve des particules pour obtenir des formes plus chaotiques. Les attributs de force comme la magnitude dʼune turbulence peuvent être différents dʼune particule à lʼautre par la masse mais aussi en créant un attribut du nom de la force underscore le nom de lʼattribut comme turbulenceField1_magnitude, une petite astuce à connaitre. On arrive toujours à ses fins, le mel permettant de faire énormément de choses mais cela peut devenir vite lourd pour les choses plus complexes. Il existe des presets dʼeffets dans Maya, il est intéressant de regarder comment ils sont fait car certains utilisent des particules de Maya avec quelques astuces. Quelques autres outils à connaître : - Blastcode, un plugin Maya pour créer des effets de destruction - Xsi 7 avec un système de node proche dʼHoudini - Thinking particules, un plugin 3dsmax tres complet pour gérer des particules, dynamique - Novodex pour des collisions GPU dans Maya - Havok et Reactor pour la dynamique dans 3dsmax - Syflex un plugin pour la simulation de vêtements dans Maya - Shave and Hair cut pour les poils et les cheveux. - nparticle intégré à maya 2009, un systeme plus proche de realflow - flowline un systéme de simulation de liquide et feu tres puissant gardé en interne - Aura un plugin de simulation de fluides pour 3dsmax Voici pour les techniques que lʼon rencontre. Il est nécessaire de pratiquer un peu mais cela reste du réglage en plan par plan. Les plus expérimentés galèrent toujours un peu pour sortir de belles images, même après plusieurs années dʼexpérience. Les calculs sont longs et il faut y passer un peu de temps à chaque fois. On essaie toujours dʼaller aux limites des machines. Il vaut mieux avoir beaucoup de RAM. 23 Exemples de réalisations 5 Exemples de réalisations Diffusion dʼeffets sur réseau de curves Jʼai réalisé une série de petits scripts pour diffuser des effets sur des réseaux de curves. Il fallait faire circuler des paints effects sur les artères et veines de nos personnages. Les lignes se dessinent en fonction de leur position dans lʼespace. Pour un meilleur contrôle, jʼai séparé en plusieurs étapes la réalisation de cet effet. A lʼaide du Node closestPointOnCurve fourni dans le devkit de Maya, on peut avoir une information de distance entre chaque curve et savoir quelle position de la curve est la plus proche. Jʼai donc une première étape qui consiste à parenter les curves pour avoir un arbre de diffusion. Jʼutilise leurs distances en utilisant la dernière curve sélectionnée comme point de départ. Je peux aussi créer le parentage que je veux à la main ou avec dʼautres paramètres pour donner la direction de la diffusion. Dans la seconde étape, j'ai rajouté des attributs start/end en fonction des intersections des curves et du parentage établi. Jʼutilise une fonction récursive qui va parcourir toutes les curves du parent vers lʼenfant. On aura en pourcentage le début et la fin de la courbe par rapport à lʼensemble de mon réseau. Enfin, on peut faire diffuser des effets sur ces curves à lʼaide dʼune expression et dʼune courbe dʼanimation qui va contrôler la vitesse de diffusion. Ici avec des paint effects, je change les attributs minclip maxclip des strokes attachés aux curves. Jʼai réalisé différents autres scripts pour les éditer. Pour y diffuser des particules, jʼai utilisé des motion path avec un émetteur par curve relié au même système de particules. On peut aussi y diffuser des lampes ou d'autres types dʼobjets. Pour créer des réseaux de curves, jʼutilise aussi un script qui va dessiner les trajectoires des particules, permettant ainsi de créer toute sorte de formes. 24 Exemples de réalisations Forêt de neurones Toujours dans le corps humain, je devais générer des forêts de neurones. Pour créer les neurones jʼai pu utiliser Houdini. En les faisant pivoter, il n'est pas nécessaire dʼavoir énormément de neurones différents. Jʼai donc réalisé des bases de données avec une dizaine de neurones par type. Il existe différents types de neurones mais il faut surtout des high poly et des low poly. Le noyau est généré à partir d'une sphère sur laquelle jʼajoute un perlin noise pour la déformer. Je choisis des points au hasard que je tire vers lʼextérieur avec une sélection adoucie. Je crée une base circulaire à la place des vertex sélectionnés et jʼy place des L-systems. Jʼai dû générer de nouveaux uv en transférant un attribut dʼâge du L-system sur les meshs pour avoir des uv propres qui permettent la diffusion de texture de lʼintérieur vers lʼextérieur. Dans Maya, on peut ensuite placer ses neurones sur des particules. Je positionne des objets dans ma scène pour y définir les différentes zones avec des neurones high poly et des neurones low poly en fonction du mouvement de ma caméra. Pour simuler l'activité neuronale, on voulait diffuser des effets dʼéclairs avec mes scripts qui utilisent des réseaux de curves. Jʼai dû écrire une procédure pour importer les curves depuis Houdini et générer des trajets entre les neurones dans Maya. Il a été un peu plus difficile d'optimiser les scènes pour rendre ces forêts dans leur logiciel Symbor. Il convertit les instances en un mesh lors du rendu et les scènes qui dans Maya utilisaient 400 Mo de RAM dépassaient les 16 Go de ma machine. Elles ont dues être découpées en deux voire plus. Ici le rendu dʼune forêt dans un fluide Maya : 25 Exemples de réalisations Globules et artères Une autre problématique a été de faire circuler des globules dans des artères. Nous ne savions pas précisément de quelle durée de plan nous allions avoir besoin, nous avons donc animé une caméra dʼune artère principale jusquʼà un capillaire sur 1000 frames. Il fallait faire avancer les globules par pulsation. Après quelques essais en Ncloth et sur Realflow, jʼai dû scripter leur position. A lʼaide du node closestPointOnMesh, jʼai créé une ramp pour avoir le rayon de lʼartère qui rétrécit le long dʼune curve placée en son centre. Une courbe dʼanimation m'a permis de faire avancer les globules le long de la curve par lʼintermédiaire dʼun goal. J'ai rajouté à cela un offset en fonction de lʼid de la particule avec des fonctions noises et sinusoïdales. Lʼamplitude de lʼoffset est donnée par la ramp et la vitesse des globules. Ncloth ariel Voici un dernier exemple complètement différent, celui dʼune publicité. Le brief : faire une chemise qui se transforme en arrosoir. Nous étions deux pour tout faire. Je me suis occupé de la partie animation et dʼun petit plan avec des gouttes et l'autre du modeling/rendu/realflow. Une première version avait été refusée par lʼagence, il fallait tout refaire. La chemise était attachée au vent sur un fil par deux pinces à linge et elle devait se transformer dans un coup de vent en arrosoir puis se pencher pour sʼégoutter. Pour la transformation, jʼai utilisé les ncloths en partant de la chemise positionnée en arrosoir comme base, une force pour remettre la chemise en position initiale et un paramètre dʼattraction. Jʼai dû mélanger différentes simulations début/milieu/fin avec des blendshapes pour obtenir ce que je souhaitais et retoucher lʼensemble avec dʼautres blendshapes et clusters. Le fil, les pinces les boutons ont été replacés après avec des expressions. Il faut essayer dʼavoir une simulation qui fonctionne dès le départ mais on a dû faire différents allers et retours entre le modeling et lʼanimation pour avoir quelque chose de convenable. Ce qui était interessant cʼetait dʼessayer dʼavoir quelquechose de naturel vu le brief. 26 Exemples de réalisations Nicolas et Guillemette Nicolas et Guillemette est un court métrage qui a été réalisé à Mac Guff par Virginie Taravel. Je me suis beaucoup intéressé à ce projet et jʼai fait des petits effets sur le générique en dehors de mon travail. Cʼest un très joli film de 7 minutes avec des scoubidous. Jʼai animé des lettres en interactions avec des personnages. Je pensais utiliser des particules au départ mais jʼai finalement utilisé les ncloths pour avoir des collisions entre chaque lettre. Je lui ai proposé différentes animations très rapidement avec des lettres rigides. Une fois que ça lui plaisait jʼai dû faire quelques retouches sur la simulation en animant à la main. Cela a été rapide mais je suis ravi dʼavoir pu participer à ce projet. Jʼai aussi travaillé cette année sur des effets pour les publicités LʼOréal, Gillette, Décathlon, Givenchy, de passage sur le long métrage faubourg 36, et j'ai passé une grande partie de mon année sur lʼodyssée de lʼamour (la suite du documentaire de lʼodyssée de la vie) dans lequel jʼai fait un peu de tout. Ce furent des expériences intéressantes plus pour la pratique que la théorie. Les effets sont souvent à faire aux derniers moments et chaque prod devient une nouvelle aventure en repartant de zéro. Dans des sociétés comme Mac Guff ou Mikros, il y a peu de bases de données dʼeffets. Chaque intermittent a ses petits scripts ou ses textures. 27 Réalisation de mon animation 6 Réalisation de mon animation Cʼest un travail qui sʼest effectué en parallèle de mes expériences professionnelles. Il sʼagit dʼune animation graphique, sans scénario. Je voulais faire quelque chose de continu sans aucune coupure, une sorte dʼanimation chaînée où je verrais le moment venu ce que jʼaurais envie de faire. Quelque chose de simple, sans trop de contraintes : un espace libre de création. Je me suis débrouillé pour enchainer diférents tableaux avec la caméra. Dans certains plans un personnage se retrouvant la tête à lʼenvers, ce nʼétait pas toujours évident à manipuler. Le point de départ est un personnage modélisé dans zbrush que jʼai animé, il cours, saute. Je me suis consacré au mouvement pour faire une animation plutôt abstraite. Jʼai dessiné la trajectoire de certains vertex avec un petit script et jʼai animé des paint effect le long de ces lignes. A la suite de quoi jʼai rajouté des lignes en hair et quelques particules. Jʼai ensuite mis un fluide 3d au moment de lʼimpact et dʼautres particules pour accompagner. Je voulais avoir quelquechose qui se dessine naturellement comme une musique qui découle dʼelle même. Pour ne pas rester tout le temps sur fond noir, jʼai choisi une alternance de blanc et de noir. Lʼidéal aurait peut être été de dessiner un décor mais jʼai préféré me concentrer sur ces formes et rester simple. 28 Réalisation de mon animation On arrive donc sur un fond blanc. Le personnage nage et laisse une traînée de particules avec des turbulences, quelques fluides 2d pour la transition et des petits poissons en instances viennent se rajouter. De nouveau sur fond noir, il émerge en plan plus serré. Deux passes principales sur Realflow avec des particules qui accrochent au personnage à lʼaide dʼun splash. Un petit effet de traînée avec des paint effect, des petits rubans en ncloth dans le fond très léger. Il crache du feu. Un feu, émis par le personnage sous 3dsmax avec Fume fx, surgit avec quelques particules en instances sous Maya Un bras se dessine : un fluide 3d dans Maya en collisions, des paints effects warpés, des petites particules. Quelque chose plonge dans le noir : un grand fluide 2d avec des turbulences. Des particules y diffusent du blanc, une silhouette lʼaccompagne. On ressort enfin, un arbre se dessine : des particules realflow à lʼintérieur dʼun mesh généré par des metaballs dans Houdini laissent cette traînée de paint effect. Des papillons sʼenvolent accompagnés de sprites. Des lignes se dessinent dans lʼespace, à la manière de plantes. Des particules émettent dʼautres particules. Une méthode similaire à celle de Pierre Vilette sur Renaissance pour générer des plantes. Un réseau de lignes généré dans Realflow nous amène sur une petite tache qui décolle. On se retrouve dans lʼespace, des particules, des fluides toujours. Un personnage danse dans le ciel et tout sʼarrête ici. 29 Réalisation de mon animation Techniquement il nʼy a rien de révolutionnaire. Jʼai expliqué plus haut comment appréhender les différents outils que jʼai utilisés. Je dirais quʼon se surprend soi-même en testant. On lance un calcul et on observe le résultat. Il faut parfois être patient. Le fluide utilisé à la fin quand le personnage danse et se déplace a mis 4 jours à se calculer avec 8 Go de RAM. Lʼétape la plus importante fut le compositing. Il est souvent difficile dʼintégrer ces éléments, il faut utiliser ces passes comme une matière première et les mélanger afin dʼobtenir lʼeffet désiré. Il est souvent intéressant de mélanger plusieurs effets pour obtenir des détails mais jʼai préféré dans lʼensemble ne pas trop en ajouter pour ne pas perdre en lisibilité, ca partais vite dans tous les sens. Cette animation sʼest finalement faite assez naturellement, sans réflexion, au fur et à mesure. La fin a été le seul point que je ne savais pas comment amener. Jʼai choisi un envol dans lʼespace, là où règne le vide. Jʼai expérimenté petit à petit pour arriver à cette animation. Il y a pas mal de passes que je nʼai pas pu utiliser. Dans les effets spéciaux, il est courant de tester plusieurs solutions avant de trouver la bonne. Je pensais utiliser des outils comme la dynamique ou Krakatoa pour certaines scènes mais je suis finalement resté sur des particules, fluides et paint effects. Jʼaurais aimé y incorporer de lʼanimation 2d avec la liberté quʼelle offre mais il était difficile de mélanger des animations en 25 images par seconde et en 12 images par seconde tout en gardant cette continuité. Jʼaurais aussi aimé pouvoir y consacrer plus de temps mais jʼai pu apprendre et pratiquer en production en parallèle de ce travail. Cʼest un projet qui aurait pu être sans fin mais jʼai préféré mʼarrêter assez tôt pour pouvoir finaliser correctement cette animation en plus de mon mémoire et mon travail. Jʼai donc rajouté des petits éléments ici et là, après avoir fini lʼensemble de ce projet. Je voulais aussi envoyer mon animation au musicien pour mʼassurer dʼavoir la musique à temps. Si cʼétait à refaire, jʼaimerais utiliser davantage dʼoutils personnels. A part des scripts mel, je me suis servi d'outils pré-existants qui restent limités à ce pourquoi ils ont été développés. Il serait intéressant dʼoffrir de nouvelles possibilités dans la création dʼanimations non réalistes comme celle-ci, pour alléger le travail qui reste assez lourd. Les scripts mʼont servi à générer des lignes ou à diffuser des effets sur ces lignes. 30 7 Conclusion Jʼai pu me spécialiser cette année dans les effets spéciaux à la fois à travers la réalisation de cette animation et par mon travail à Mac Guff et Mikros. Une année passe vite mais je pense avoir eu un bon panel dʼexpériences. Il nʼa pas toujours été très simple de conjuguer les deux mais je suis plutôt satisfait du résultat. Jʼai beaucoup appris en pratiquant tous les jours avec différents outils. Il y a peu de choses à en retenir mais on sʼhabitue à appréhender des effets et à produire. Entre Mac Guff, Mikros et mes projets personnels, je me suis formé à Nuke, Alfred, Trukor, Mglr, Symbor, Houdini... Dans ce type de travail, on a la chance de faire un travail varié. On teste différentes possibilités à chaque fois mais il est parfois compliqué de sortir les images, on n'est jamais sûr du résultat et il y a sans cesse de nouveaux défis. Faire ça tous les jours reste parfois fatigant. Je nʼai pas fait le tour des possibilités mais elles sont infinies et je continuerais les années à venir à avoir ce genre de démarche et à faire des projets personnels. 31 Bibliographie ----- dvds -----------------------------------------------------------------------------------------------Alias Maya Techniques Flow Workflows - Weta Digital Tutors Dynamics Simulation with Realflow 4 Gnomon Realflow Sculpting Fluid Dynamics Gnomon.Maya.Fluid.Effects.Pyrotechnics Gnomon - Houdini Rigid Body Dynamics cmiVFX Houdini L-Systems Essentials 1 et 2 cmiVFX Houdini Procedural Modeling Cities 3DSMax Master Class Series - Advanced Film Fx, Particle Flow And Afterburn Massive Video Tutorial Digital Tutors Introduction to Houdini 9 cmiVFX VEX sops 2 ----- art -------------------------------------------------------------------------------------------------The Work of directors Michel Gondry The Work of directors CHRIS CUNNINGHAM Mirrorball - Directors DVD Stashs -----conférences--------------------------------------------------------------------------------------SIGGRAPH 2007 - fluid simulation - flamesAndCellularPatterns - wave particles - curl noise for procedural fluid flow - solid fluid coupling -----livres-----------------------------------------------------------------------------------------------Computer Animation: Algorithms and Techniques Complete Maya Programming Volume 1 et 2 32