Incruster un objet 3D dans une vidéo

Incruster un objet 3D dans une vidéo

Tutoriel publié en février 2008 par Galdon dans la catégorie 3dsmax

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 :

Réglages tracking Boujou
Cliquez sur l'image pour agrandir

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 :

boujou

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) :

boujou

À 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 :

3dsmax gizmo

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 :

boujou

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 quoi 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 :

Dummy

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.

Mat/Shadow ?

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 :

Tracking Boujou 4

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 !

28 commentaires :
Seuls les 10 derniers commentaires sont affichés.
Cliquez ici pour afficher tous les commentaires
commentaire n°1575 par Liina
Liina vendredi 12 novembre 2010, 13:10
Coucou dit tu serai m'expliquer comment on fait un dummy? Je dois faire l'articulation des pattes d'un insecte mais j'arrive pas a appliquer le dummy :(
commentaire n°1662 par CommX
CommX jeudi 30 décembre 2010, 13:06
super tuto !! merci :))
commentaire n°1750 par Ralf Queenz
Ralf Queenz vendredi 18 mars 2011, 17:29
salut
j'ai fait presque comme vous avez citer mais lors de l'importation du maxscript un message d'erreur m'indique qu'il y a une faute de syntaxe ; plus precisement :
-- erreur syntaxe à) attendu <facteur>
-- dans ligne : file name



aidez moi svp
commentaire n°1816 par liberta75
liberta75 dimanche 15 mai 2011, 18:05
slt moi j ai un probleme. snif
j arive a exporter mon tracking sur 3dsmax.
pourtant j ai fais comme c explique mais mon 3dsmax ne le reconnais pas le fichier.

quel qu un peut m aider svp ?
commentaire n°1863 par frexwimsn
frexwimsn mercredi 29 juin 2011, 15:32
bonjour super ce tuto mais jais un ptit probleme quand je veux cocher la case "Use camera centre as a selected point" le seul probleme c'est que cette fameuse case n'apparrais pas :( pourtan j'ais bien mi en Nodal Pan je crompend pas pourquoi
commentaire n°1998 par Jacob M
Jacob M samedi 12 novembre 2011, 18:21
Pas mal! ça sera ma premiere fois d'incruster un objet 3d dans une video.
Merci pour ce tuto & bon courage!
commentaire n°2015 par garrymoore
garrymoore vendredi 25 novembre 2011, 20:34
hi to all www.finalclap.comers this is my first post and thought i would say hello to you all -
regards speak again soon
garry
commentaire n°2269 par Arakiri
Arakiri mardi 26 juin 2012, 15:48
Salut à tous, je m'y met moi aussi, j'ai deux questions dont une deja posée juste au dessus par Jacob M :

- 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
commentaire n°2313 par yacinem
yacinem lundi 13 août 2012, 04:21
j'ai un gros problème:lorsque je travail sur Boujou et 3DS MAX tout va bien (d'ailleurs lorsque je met un objet de test sur boujou on dirait qu'il fait vraiment parti de l'environnement) mais lorsque je fais le rendu sur After Effects l'objet que je met bouge trop (on dirai qu'il vibre.
et merci d'avance pour vos réponses.
commentaire n°2966 par Claire
Claire dimanche 4 janvier 2015, 12:14
Je n'ai jamais été à l'aise avec les logiciels 3D mais cet écrit mais là j'y vois plus clair.
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré