Ce tutoriel, ça fait longtemps que je devais l'écrire, je suis sûr que vous allez aimer ! Vous allez apprendre à incruster des objets virtuels dans une vidéo elle bien réelle.
Concrètement, ça veut dire que vous allez pouvoir faire léviter des voitures du bout de votre baguette magique à la Harry Potter, qu'Obi Wan Kenobi lui-même viendra se poser devant votre caméra ou encore qu'un Alien viendra vous tenir compagnie.
Rohhh ne me regardez pas comme ça et ne vous inquiétez pas je suis lucide, mais avec cette technique on peut vraiment faire des choses géniales, pour peu que vous ayez un peu d'imagination. Pour le tuto, je vais reprendre un de mes travaux, c'est un vaisseau spatial de Star Wars (eh oui, encore un truc de Star Wars :) qui se pose. Vous devez déjà avoir fait le tuto sur le train d'atterrissage parce que je vais l'utiliser dans l'animation.
Voici le résultat :
Première chose, il vous faut les mêmes objets que moi, alors le vaisseau c'est pas moi qui l'ai modélisé parce qu'il existe un excellent site qui propose des modèles de vaisseaux de Star Wars gratuitement (merci infiniment aux gens qui créés ces modèles de manière désintéressée).
Téléchargez donc le modèle "Jedi Starfighter" à cette adresse.
Si vous avez la flemme de suivre le tuto sur la mise en relation des paramètres, voici la bête (cependant, si vous ne voulez pas suivre ce tuto avant, j'espère que vous maitrisez la hiérarchie sinon vous allez ramer).
Attacher le train au vaisseau
Première chose à faire : relier le train d'atterrissage au vaisseau.
Ouvrez donc Jedi Starfighter dans Max, virez les caméras, l'éclairage et le train d'atterrissage que son auteur a modélisé (on va le remplacer par celui que je vous fournis, qui lui est animé).
Une fois que ceci est fait, il faut que vous sélectionniez toutes les pièces constituant le vaisseau et que vous les groupiez (menu Groupe/Grouper), donnez le nom "vaisseau" à ce groupe. Dorénavant quand vous cliquez sur le vaisseau il est sélectionné dans sa totalité, c'est bien plus pratique pour l'animation et c'est moins bourrin que de tout lier les pièces entre elles.
Bon, vous avez votre joli vaisseau qui est bien rangé dans son groupe, maintenant il faut importer le train d'atterrissage dans la scène.
Hey, une minute, je ne vous ai pas encore appris à importer des objets d'une scène extérieure ! Il suffit d'aller dans Fichier/Fusionner, tout simplement - ensuite vous sélectionnez le fichier .max dans lequel se trouvent les objets à importer (en l'occurrence train_lie.max si vous avez téléchargé le mien), et sélectionner les objets puis cliquez sur OK.
Ok, le train vient d'être importé dans la scène, no problemo - il faut maintenant le positionner par rapport au vaisseau. Vous avez pu remarquer que j'ai créé un Dummy appelé "landing_control" (le petit cube vert au dessus du train), celui-ci est le parent de tout le train (c'est lui qui est le plus haut dans la hiérarchie), par conséquent vous devez déplacer le train en déplaçant le dummy !
Placez le train de façon à ce qu'il soit bien "caché" à l'intérieur de la carlingue du vaisseau une fois replié (si ça dépasse un tout petit peu, ce n’est pas très grave, on ne le verra pas sauf si vous faites un rendu en 4420*2000 !)
Tracking de la vidéo avec Boujou
Notre vaisseau est prêt, c'est le moment de réaliser le tracking de la vidéo avec Boujou. Cette étape n'est pas bien compliquée, référez-vous à mon tuto sur Boujou. Je vais simplement vous fournir la vidéo dans laquelle on va incruster le vaisseau : télécharger la vidéo.
Lancez Boujou et cliquez sur le bouton "Import Sequence" à gauche puis sélectionnez la vidéo que vous venez de télécharger dans la boite qui vous y invite. Utilisez Nodal Pan comme Move Type (vous pouvez voir sur la vidéo que la caméra est fixe, seule sa rotation varie) :
Cliquez sur OK, la séquence vient d'être importé. Il faut maintenant demander à Boujou de tracker la vidéo, et pour cela il suffit de cliquer sur le bouton Track Features - une boite de dialogue s'affiche, cliquez sur Advanced pour régler la sensibilité. Utilisez ces réglages :
Vous pouvez voir que je n'ai pas réglé la sensibilité bien haute, en effet même à ce niveau il y a déjà beaucoup de points de tracking comme vous pouvez le voir sur la miniature et à première vue ça semble suffisant pour générer un tracking fidèle à la réalité.
Le processus de tracking démarre, vous pouvez voir plein de petites croix rouges sur la vidéo, suivies par une traînée jaune qui modélise le mouvement. Une fois ce processus terminé, cliquez sur le bouton Camera Solve, l'opération ne dure pas très longtemps.
Bien, maintenant que vous avez votre caméra, allez dans la vue 3D (bouton 3D en haut) - vous voyez votre caméra avec plein de points partout et vous pouvez vous déplacer dans la vue 3D comme dans 3DS Max, mais les contrôles sont un peu space dans Boujou :
- Maj + bouton 1 : rotation
- Maj + bouton 2 : focale (zoom)
- Maj + bouton 3 (molette) : déplacement
Une fois la vidéo trackée, vous devriez obtenir quelque chose comme cela :
Scene Geometry
Vous avez peut-être remarqué que la géométrie de la scène n'est pas respectée. C'est comme si la caméra virtuelle regardée "trop en bas". Ce phénomène est dû au fait que Boujou a du mal à trouver un plan horizontal (en l'occurrence le sol) étant donné que la caméra ne bouge pas (souvenez-vous, c'est même pour cela qu'on a choisi Nodal Pan plutôt que Free Move).
D'ailleurs, je crois qu'une petite citation de l'aide de Boujou sera plus explicite que moi (pour ceux qui ne sont pas brouillés avec la langue de Shakespeare) :
We cannot set up an accurate ground plane in a nodal pan shot because there is no parallax, and without parallax boujou cannot calculate the 3D positions of features, but we can set up some approximate scene geometry using the position of the camera. The first thing to do is choose two 3D predictions that are about the same height off the ground as the camera.
Parallaxe : "La parallaxe est l'incidence du changement de position de l'observateur sur l'observation d'un objet." Source : Wikipédia
Pour résumer : Boujou est pommé, il va falloir lui apporter un petit peu d'aide - et pour cela, il existe le bouton Scene Geometry. Si vous avez compris la citation en Anglais, il va falloir sélectionner des points qui sont à la même hauteur que la caméra par rapport au sol. Vous ne le voyez peut-être pas, mais la caméra était à environ 4-5 mètres du sol (j'ai tourné ça depuis le bureau, à l'étage ;). Donc il faut sélectionner deux points qui sont au sommet des arbres en arrière-plan (maintenez Ctrl pour sélectionner plusieurs points) :
À présent vous avez 2 points de sélectionnés, on peut donc cliquer sur Scene Geometry. C'est ici que l'on va indiquer à Boujou le plan horizontal auquel appartient la caméra. Cliquez d'abord sur le bouton Add Coord Fm Hint.
Hein ? qu'est-ce que tu racontes la, ma prof de maths m'a dit qu'un plan était défini par 3 points au moins !
Votre prof de maths a raison, en fait on va utiliser comme 3éme point le centre de la caméra en cochant la case "Use camera centre as a selected point". C'est bon, vous avez vos 3 points, mais il reste encore un point a régler : il faut spécifier à Boujou les axes du plan horizontal.
Hey oui, c'est très important sinon vous n'aurez plus qu'à recommencer quand vous vous apercevrez que les axes ne correspondent pas dans 3DS Max. Pour mémo, voici un screen du gizmo de Max :
Comme vous pouvez le constater, l'axe Z est vertical, donc le plan horizontal avec un tel gizmo est défini par les axes X et Y. Fort de ce constat, on va pouvoir indiquer à Boujou Plane Parallel to x-y plane dans la liste déroulante Type. Voila, finitto, vous pouvez cliquer sur Connect to selected puis sur Update Coord. Frame pour appliquer tout ça au projet :
Il est possible d'affiner les réglages de la scene geometry, plus vous en faites là, moins vous devrez en faire dans 3ds - cependant je ne vais pas détailler ici toutes les contraintes que l'on peut ajouter, pour ma part j'en ai ajouté 3 autres :
Cliquez sur le bouton Edit Camera pour vérifier que le frame rate et la résolution sont corrects (la vidéo que je vous ai fournie est en 640*480 à 30 fps). Il ne reste plus qu'à cliquer sur Export Camera, choisissez le format .ms si vous exportez vers 3D Studio Max et utilisez Panning camera, Translating Scene :
Vous savez quoi ? On en a fini avec Boujou ! Derrière son nom à la con, Boujou est quand même un super programme (ils ont dû s'amuser les développeurs).
Sachez que Boujou est capable de bien plus que ce que nous venons de faire, il est capable de détecter les variations de focale (les zooms quoi) et d'autres trucs que moi même je ne soupçonne pas, peut être qu'un jour j'écrirais un autre tuto qui utilisera Boujou encore de manière encore plus poussée - To be continued...
Je vous fournis quand même le fichier maxscript généré, comme j'ai ajouté des éléments dans scene geometry, ainsi que le projet Boujou :
On passe à la 3D
Le tracking est terminé, il est temps de passer à 3ds max. Tout d'abord, il faut créer la caméra que Boujou a créé en cliquant sur MAXScript/Exécuter script...
Une caméra ainsi que plein d'assistants (les croix) viennent d'être créés, ce sont les fameux points que Boujou utilise pour calculer le mouvement de la caméra. Comme vous vous en doutez, ces points ne nous servent plus à rien dans 3ds max, on va donc pouvoir les supprimer.
Mais attention, il faut quand même en laisser un : Boujou_data.
C'est un assistant (une croix) particulier puisqu'elle est le parent de la caméra ainsi que de tout ce qu'a créé Boujou, c'est super pratique parce qu'avec cet assistant, vous allez pouvoir redimensionner toute la scène, déplacer la caméra sans perdre son mouvement de tracking...
Maintenant il va falloir qu'on affiche notre vidéo originale en fond dans la vue de la caméra, pour cela sélectionnez la vue caméra et appuyez sur Alt+B, une petite fenêtre s'affiche. Sélectionnez la vidéo et cliquez sur OK - assurez-vous également d'être a 30 images par seconde.
Modéliser le sol
La première chose à faire c'est de matérialiser le sol par une surface (elle va à la fois nous permettre de mieux nous repérer lors de l'animation du vaisseau, mais elle servira aussi à donner l'ombre du vaisseau sur le sol). Créez donc un plan et donnez-lui approximativement la forme de la pelouse :
Animation
C'est le moment d'importer le vaisseau et son train d'atterrissage que vous avez créé en début de tuto, procédez de la même manière pour importer le vaisseau dans la scène. Mettez le tout à l'échelle :
Il ne reste plus qu'à animer le vaisseau à l'aide des trajectoires et de l'éditeur de courbes comme vous avez appris à le faire dans mon cours. Cette étape est la plus fastidieuse, mais elle n'est pas difficile, c'est pourquoi je ne la détaillerai pas ici.
Les ombres sur le sol
Une fois le vaisseau animé, il y a encore une chose à faire avant le rendu : appliquer un matériau mat/shadow au plan.
Un matériaux mat/shadow ne va afficher que les ombres portées qui sont projetées sur lui, c'est donc parfaitement adapté à ce qu'on veut faire. Ouvrez donc l'éditeur de matériaux et cliquez sur le bouton Standard puis choisissez Mat/ombre dans la fenêtre qui s'affiche, et cochez la case Alpha opaque :
Rendu
Bien, tout est finit, y'a plus qu'à effectuer un petit rendu. Il y a plusieurs façons de procéder : soit vous rendez la vidéo de fond et le vaisseau directement à partir de 3ds max (dans ce cas la vidéo est incrustée par 3ds), soit vous n'exportez que le vaisseau et son ombre, et vous l'importerez dans After Effects (ou tout autre logiciel de compositing) pour l'incruster dans la vidéo.
Je ne vous cache pas ma préférence pour la seconde solution, car on dispose du vaisseau et de l'arrière-plan dans 2 calques séparés, ce qui est très pratique pour n'effectuer des corrections colorimétriques que sur l'arrière-plan par exemple. En plus ça accélère un peu le temps de rendu.
Méthode barbare
Allez dans le panneau Environnement et appliquez une texture Bitmap comme arrière-plan (choisissez la vidéo P1010008.MOV), quand vous ferez un rendu la vidéo sera en arrière plan.
Méthode compositing
Mettez du blanc en arrière-plan, allez dans le panneau rendu puis sélectionnez Targa Image File comme format d'exportation (c'est le meilleur format quand on veut exporter la couche alpha :
Ça va vous créer autant d'images que comporte l'animation (164), en plus c'est plus léger que d'exporter en avi non compressé. Lancez donc After Effects, créez une nouvelle composition de la taille de la vidéo (640*480), importez-y la vidéo d'arrière-plan ainsi que la séquence d'images TGA.
Pour importer une séquence d'images sous After Effects, faites Importer, sélectionnez toutes les images rendues par 3DS Max et cochez la case Séquence Targa.
Si ça bug sélectionnez moins d'images à la fois (vous aurez donc plusieurs séquences). Pour régler la cadence de ces images, cliquez droit sur le métrage/interpréter le métrage - une fenêtre vous permet de spécifier tous ces paramètres.
Voici le résultat final :
Ce tutoriel est maintenant terminé, j'ai été plutôt bref sur pas mal de points (sur 3ds et After Effects), mais je le compléterai plus tard.
Découvrez ce tutoriel photoshop : maison montgolfière à lire tout de suite !
- sur certaines vidéos ca me met comme quoi la camera solve ne peut pas etre appliquée (error 373)
- pareil la case pour "use camera centre as a selected point" n'est pas apparente
Que faire ?
Merci bien
et merci d'avance pour vos réponses.
Donc la grille est au niveau du sol, du coup il suffit de créer un plan sur la grille (comme posé dessus).
J'ai juste une question, impossible d'importer mon .ms dans max il me met toujours cette erreur
--Unknown property: "numframes" is undefined
Et ça, que ce soit sur une version 32 ou 64bit de Max. D'avance merci !
George
Mais il est possible de la contourner en OUVRANT le script et en supprimant les deux lignes suivantes :
b.numframes = x
setAsBackground b
x correspond au nombre d'images de ta vidéo.
Seulement ensuite je ne peux en aucun cas importer ma vidéo en background que se soit par ALT+B ou dans les options de rendu :s Il me met l'erreur suivante :
"Erreur lors du chargement du fichier QuickTime !"
(fichier .mov bien évidemment)
Ce qui me parait en même temps évident puis que l'on n'itialise plus le background :s
Si jamais quelqu'un à résolu le problème sa serait vraiment sympa qu'il parle ^^
Si je trouve je reposterais ;) !
++ et merci pour ce tuto
Si oui je voudrais télécharger la version d'essai. Quelqu'un peut me donner un site je ne trouve pas merci
Magicman : il y a une version de demo, mais qui n'est pas super utile car elle ne te permet pas d'enregistrer tes projets. (impossible d'exporter, de sauver en .bpj...)
A toi de trouver une solution auxiliaire.
A propos du rendu, je coince, j'aimerai faire mon rendu sous AE. Comment j'importe mes élements 3D dans AE et pour la vidéo, je prend celle de base ou le script créer avec boujou, je comprend pas trop ce point la ^^ merci d'avance
Mais est ce possible d'avoir le même sur Maya...?
merci.