Préambule

Le langage SMIL est un langage qui, sous la forme d'un format XML, peut-être lu par de nombreux lecteurs tels quicktime ambulant et real.
Il permet de créer des animations d'image et de vidéo en deux dimensions. Ce fichier XML rassemble des données temporelles et spatiales ainsi que l'adresse disque des différents fichiers multimédia utilisés.
Le format SMIL en est actuellement à la version 3, mais nous utilisons pour cette réflexion le format 2.1, car il permet d'utiliser le logiciel LIMSEE2, éditeur de fichier SMIL crée par l'INRIA et open-source. Ce choix est important car il permettra ensuite de pouvoir effectuer les corrections nécessaires si besoin est dans le code source du logiciel.

L'idée de cet atelier est de pouvoir utiliser les éditeurs de fichier SMIL pour effectuer le compositing, en temps de création et d'utiliser ensuite le fichier SMIL résultant pour créer la scène dans les logiciels utilisés lors de la diffusion et du contrôle final des répétitions et des représentations.
Grâce à la possibilité de lire ces fichiers SMIL dans des lecteurs tels que quicktime, on peut donc imaginer que lors des phases préparatoires, chacun des participants pourrait lire la composition vidéo sur son ordinateur afin d'en avoir un aperçu et ce quel que soit le logiciel utilisé pour la diffusion finale.

Il a été choisi d'étudier une scène sur deux logiciels, VirChor et Movie, tout deux utilisés pour l'écriture vidéo/3D temps réel en spectacle.
Afin de rester le plus près possible des conditions d'écriture et de contrôle de l'image dans le cadre du spectacle Vivant, cette scène est extraite d'un spectacle existant.

Fonctionnalités recherchées pour le pilotage graphique

La liste des fonctionnalités n'est pas exhaustive, mais permet déjà de pouvoir valider l'utilisation de SMIL s'il réponds à ces spécificités.

VirChor :

Définition de la position spatiale d’un calque selon (x,y,z),
Transformations affectant les calques telles que translation, rotation, changement d’échelle, torsion et autres déformations…
Tri des calques,
Variation des paramètres d’apparence : transparence, ajout de couleur, blend mode, …,
Animation de ces calques,
Variation des textures appartenant à chaque calque,
Variation de paramètres spécifiques.

Movie :

Variation de la vitesse d’une vidéo
Variation des paramètres d’apparence : opacité
Définition de la position spatiale selon (x,y,z)
Transformations affectant les calques telles que rotation, changement d’échelle, torsion
Tri des calques selon la profondeur,
Animation des calques,
Définition des transitions
Variation des paramètres de caméra
Insertion, pilotage et déclenchement d’éléments supplémentaires à des moments non définis par avance.

Description de la scène étudiée

Fichiers téléchargeables

Média
Rendu final de la scène

Lexique

  • Plan : Quad géométrique
  • Texture : vidéo que l'on met sur un plan
  • one shot : lecture du film du début à la fin
  • loop : le film se lit en boucle

État de base : NOIR
Le plan 1 est devant le plan 2

Les différents effets

  • Effet 1 : Plan 1 avec texture chemin : Fade in en 6 secondes avec une légère courbe exponentielle (0.08) et Début de la lecture
  • Effet 2 : Plan 2 avec texture ciel : montée de l'alpha en 10 secondes avec la courbe 0.08 et descente de l'alpha chemin en 30 secondes avec la courbe logarithmique -0.08. Lecture du film de son origine au lancement.
  • Effet 3 : Accélération de la vitesse de lecture de vitesse 1 à vitesse x3 en 10 secondes.
  • Effet 4 : Plan 1 avec texture gare à 37% en 4 secondes, attente de 1 seconde et disparition en 4 secondes.
  • Effet 5 : Plan 1 avec texture gare à 100% en 12 secondes et texture ciel à 0% en 12 secondes.
  • Effet 6 : Plan 2 avec texture rochernoirs pos/y -1.85 - scale/x 9.31 - scale/y 7. pour être centré en zoom sur le rocher noir. Transfert d'alpha en 12 (10) secondes.
  • Effet 7 : Plan 2 avec texture rochernoirs pos/Y à 0 en 12 secondes, et scale/x 1.33 ainsi que scale/y en 22 secondes.
  • Effet 8 : Plan 2 avec texture rochernoirs : pos/y -1.85, scale/x 9.31 et scale/y 7 en 18 secondes e
  • Effet 9 : lecture de la texture travelling sur le plan 1 en transfert d'alpha en 10 secondes.

Le séquencement des effets (conduite)

  • Effet 1 : lancement au début du spectacle
  • Effet 2 : lancement 25 secondes après le lancement de l'effet 1
  • Effet 3 : lancement 30 secondes après l'apparition du nuage en bas à droite
  • Effet 4 : Lancé entre 6 et 8 fois lorsque le nuage rempli tout l'espace du ciel (environ à 4min48)
  • Effet 5 : à la suite du sixième déclenchement de l'effet 4
  • Effet 6 : Lorsque la forme noire se rapproche à la fin du film gare (environ 10 secondes avant la fin)
  • Effet 7 : 7 secondes après le lancement de l'effet 6
  • Effet 8 : Sur un top texte, donc on considérera arbitrairement que c'est 1 minute après le début de la séquence rocherssnoirs
  • Effet 9 : 12 secondes après le déclenchement de l'effet 8

Construction Layout spatial et synchronisation temporelle

L'éditeur Limsee 2 est complexe à prendre en main, et assez austère en terme d'interface. Il possède néanmoins de très nombreuses fonctions mais l'ergonomie de travail est inhabituelle pour un logiciel de compositing.

Image

Capture d'écran de la fenêtre de séquencement de Limsse2

Cette partie nous bloque pour l'instant, car nous souhaitons nous assurer de la possibilité d'éditer tous les attributs qui nous intéressent avant de passer aux étapes suivantes.

Conversion partie Layout SMIL vers les formats propriétaires des logiciels temps réel

Cette analyse syntaxique (parsing) lit le fichier SMIL et y extrait les différents attributs composant la scène (calques, textures, position, échelle etc...) pour les formater dans un langage compréhensible des logiciels de rendu final.
En ce qui concerne VirChor, c'est un programme Java qui permet de créer le fichier XML compréhensible par VirChor alors que pour Movie c'est un patch Max qui crée un fichier de configuration donnant le nombre de plan, de lecteurs vidéo etc.. ainsi qu'un fichier texte recensant les attributs des différents modules.

Lecture temps réel du fichier SMIL

Un changement dans le code d'Ambulant player permettra de pouvoir envoyer des messages OSC à VirChor ou Movie afin de donner les informations temporelles.
Cette mise en place nécessite une adaptation du code d'Ambulant Player pour pouvoir envoyer des messages OSC.

Schéma synoptique de la création du compositing jusqu'à la diffusion finale

Image