LE PROJET ANIMATION 2000
Introduction
Le projet Animation 2000
Le consortium ANIMATION 2000 regroupe sous la direction de FRANCE ANIMATION (France), l'Institut National de l'Audiovisuel (INA, France), GETRIS IMAGES (France), ZENTRUM FÜR GRAPHISCHE DATENVERARBEITUNG (ZGDV, Allemagne) et les producteurs CINAR (Canada) et D'OCON (Espagne). France Animation est le chef de file du projet, dont la direction technique est assurée par l'INA.
En mettant en commun leurs savoir-faire technologiques et industriels, les partenaires d'ANIMATION 2000 ont pour objectif de concevoir et développer une nouvelle génération de produits, offrant une solution globale pour la production d'animation 2D.
Grâce à ANIMATION 2000, l'informatisation du studio pourra s'effectuer dès les étapes de conception (postes détection, storyboard et layout). En ce qui concerne l'animation elle-même, plusieurs méthodes de production seront utilisables et combinables : animation traditionnelle avec scan et gouache automatisées, animation "0 papier" et temps réel, intervallage automatique.
ANIMATION 2000 permettra l'informatisation totale de la production et accroîtra ses possibilités techniques et créatives. Cependant, afin de permettre une introduction progressive de l'outil informatique et d'éliminer tout risque de rupture pour les studios clients, ANIMATION 2000 présentera une architecture modulable afin d'offrir une compatibilité maximale avec les techniques traditionnelles de production. Des éléments créés traditionnellement pourront être entrés à tout instant dans le système. De même, des sorties papier aux normes traditionnelles seront possibles à toutes les étapes.
ANIMATION 2000 prévoit une implantation multi-plates-formes selon les besoins. Ainsi, les problèmes ayant trait aux images en couleurs pourront être traités sur une palette graphique, ceux ayant trait à l'animation vectorielle ou au layout sur une station de travail "orienté graphisme" (Silicon Graphics), ceux ayant trait au scan et à la gouache sur des postes plus "légers" de type PC.
Le projet ANIMATION 2000 est soutenu par le Club d'Investissement Média en association avec Cartoon (programme MEDIA de la communauté Européenne) et l'ANVAR.
Etude du système productique
Vue fonctionnelle
Ces étapes issues du processus classique de fabrication ne correspondent pas forcément toutes à un logiciel spécifique. Elles sont décrites dans leur contexte habituel sans parti pris informatique, hormis évidemment pour celles d'entre elles qui sont issues directement de l'option d'informatisation ( scan, gouache).
Les activités
Elles sont organisées en cinq grandes parties : les recherches, la conception, la préparation (le layout) puis la fabrication (mise en couleur décor, animation et tournage).
Les recherches graphiques
Recherches lieux : création de dessins d'artistes cherchant à définir les divers lieux d'une production, le cas échéant un modèle 3D simplifié (sans rendus) peut être conçu.
Recherches graphiques personnages : création de dessins d'artiste, non directement réutilisables, permettant de mieux cerner les personnages (modèles 3D non prévus, mais non écartés).
Recherches couleurs personnages : il s'agit ici, quasiment, de la constitution d'un pré model-sheet, les couleurs principales de quelques personnages fondamentaux sont définies.
Recherches couleurs décor : définition des ambiances couleurs générales des lieux les plus importants.
Conception
Script
Les scénaristes travaillant le plus souvent chez eux (hors studio), on n'envisagera pas pour le moment l'intégration directe de cette étape dans le projet, tout au plus, on supposera que l'on pourra récupérer le fichier texte du script définitif, pour l'insérer dans la base de données.
Model-sheet série / épisode
Définition exhaustive pour tous les modèles impliqués dans la série dans un premier temps, puis pour tous les modèles additionnels nouveaux impliqués dans l'épisode :
- de tous les dessins modèles devant servir de références artistiques.
- des habillages et nuanciers du modèle couleur correspondant.
Cette étape complète et finalise les diverses étapes de recherches sur les personnages et les accessoires.
Banque de dessins et d'animations préliminaires
Constitution à l'avance de la banque d'animation et de la banque de dessins associés à un modèle donné. C'est une étape d'animation ou de saisie, sans layout qui peut mettre en jeu des procédés de scan/gouache, animation machine.
L'informatisation du processus, avec la notion de banques, d'indexation et de réutilisation étendue risque de donner beaucoup d'importance à cette étape de travail qui, en traditionnel, entraînait des problèmes de gestion disproportionnés aux avantages acquis.
Définition
Storyboard
D'un point de vue informatique, le storyboard devrait être traité comme le layout. Du point de vue économique (nécessité d'une station de travail connectée à la base de données), et du point de vue des habitudes de travail (story-boarder devant alors travailler dans l'atelier) il ne semble pas prioritaire de gérer ce poste.
Dans une première approche, on s'oriente donc vers un traitement du résultat final du storyboard visant à l'insérer et à le ventiler (en plans) dans la base de données. Vu tel quel, le storyboard reste un document de consultation uniquement.
A terme, sa qualité de référence constante tout au long de la chaîne de fabrication, incite à prévoir son informatisation, et son stockage en base de données sous une forme similaire aux autres grandes composantes du plan: son, layout, animation.
Layout
Dépouillement du storyboard
Travail du chef layout. A priori reste manuel avec néanmoins possibilité d'accès aux banques décor et modèles.
Layout décor et layout posing
Travail du layout man. Génère en fonction des indications du storyboard et des lieux, le canevas de création du décor. Définit le cadrage et les éventuels mouvements de caméra sur le décor. Met en place l'animation par "poses" précisément définies quant à leur taille et à leur emplacement, et calées temporellement de façon approximative.
Mise en couleur des décors
Travail du décorateur. Il travaille avec le layout décor comme canevas. La mise en couleur peut s'effectuer sur une palette graphique classique (bitmap). Il peut consulter les références artistiques en couleurs, ou au trait, stockées dans les banques décor et référencés par lieux.
Animation
Animation
Travail de l'animateur papier ou machine. Cette étape génère les dessins constitutifs de l'animation que nous nommerons cells . Ces dessins sont références par rapport aux noms des modèles. L'animation génère les feuilles d'exposition définitive, le nombre de colonnes prévu au layout pouvant être enrichi. Si l'animation est faite sur machine en mode vectoriel, le gouachage est effectué directement lors de la saisie par référence au modèle couleur.
Scan et saisie xsheet papier
Travail du préposé au scan. Il "scanne" les dessins et met à jour de la feuille d'exposition définitive en fonction des documents papier réceptionnés.
Check scan
Travail du responsable scan. Il vérifie localement la qualité technique du scan. Ce line-test (flip-book) reflète uniquement l'animation telle que scannée (elle n'intègre pas les mises en place ou les mouvements issus du layout).
Tournage
Deux fonctions de tournages sont à distinguer : le tournage virtuel et le tournage définitif.
Identification des postes de travail
Il ne s'agit pas ici de définir encore très précisément les étapes mais plutôt d'ébaucher la structure générale du processus de production ( See Schéma général des postes de travail ).
L'un des objectifs fondamentaux consiste non seulement à intégrer, mais encore à piloter le plus précisément possible la phase d'animation papier. Ceci est une conséquence de la volonté de conduire globalement le processus de fabrication selon une méthode de prototypage permettant d'exploiter à tous les niveaux toutes les données disponibles pour obtenir la vision la plus précise possible de ce qui est, et la meilleure prévision de ce qui sera (avec pour corollaire de détecter les erreurs le plus tôt possible).
Le poste layout joue à cet égard un rôle primordial. Outre sa fonction traditionnelle de poser les bases techniques du plan (échelle, mise en place, première répartition en acteurs), il disposera des moyens de prototyper plus finement les mouvements de caméra, et les lignes de forces de l'animation. Il disposera de même des moyens lui permettant de récupérer, remettre à l'échelle et tester des animations déjà faites et de les valider directement pour le tournage.
Ces renseignements seront transmis le long de la chaîne informatique, jusqu'au poste de mise en place (compositing) qui intégrera alors les résultats de l'animation papier (ou machine) en fonction de ces consignes, en les adaptant si besoin est.
Poste de gestion de production
Ce poste interviendra à plusieurs niveaux dans le déroulement de la production.
Lors de la mise en place de la production (phase de calibration) :
- format général de la production
- nombre et titre des épisodes
Pour gérer les ressources de l'atelier :
- enregistrement des types d'utilisateurs et de leurs rôles et droits d'accès.
Poste Son
Il doit permettre de générer un ensemble de fichiers correspondants à autant de fichiers son que de plans et un début de feuille d'exposition, ne comportant que des codes de phonèmes et leur minutage (timing) et par voie de conséquence une première estimation de la durée du plan.
Poste de layout
La saisie des dessins de layout est faite directement sur machine. Le plan layout est vu comme un ensemble d'acteurs. Les divers mouvements sont prototypés acteur par acteur. Ces mouvements sont enregistrés dans la feuille d'exposition et sont susceptibles d'être réutilisés lors de l'animation/mise en place. Ce poste exécute par ailleurs, une impression des différentes poses issues du layout à l'attention des animateurs papier.
A ce poste il sera possible d' effectuer des réutilisations de layout à partir de la banque ou des layout précédents. Il devrait également être possible de passer en mode animation et d'utiliser des animations déjà réalisées si celles-ci sont disponibles.
Cela sous-entend que le poste de layout peut avoir accès en modification tant au plan layout qu'au plan animation. Lors du line-test une visualisation "anim" visualisera par défaut le layout des acteurs n'ayant pas encore reçu leur animation.
Poste de scan
Les dessins arrivant au poste de scan devront être identifiés par production, épisode, plan, acteur (tels que définis au layout). La feuille d'exposition sera complétée pour chaque acteur sans aucune notion de mouvement, ceux-ci étant du ressort du poste de mise en place. A ce poste, le contrôle se limitera à un simple "flip-book".
Poste de gouache
Ce poste de travail doit proposer un environnement susceptible :
- de charger un model-sheet d'un personnage en lecture
- d'exécuter les remplissages nécessaires en référence à ce model-sheet
Il générera un ensemble de bitmaps composites (traits originaux plus traits de fermetures en niveau de gris, repérages des zones gouachées et références aux modèles couleurs).
Remarque : ces deux postes (scan et gouache) ne nécessitant pas une forte puissance de calcul, ils seront implantés sur des postes de travail de type PC.
Poste d'animation
Dans un premier temps, le poste d'animation se réduira en fait à celui de mise en place, l'animation étant réalisée de façon traditionnelle sur papier.
Une version ultérieure intégrera un module de dessin et gouache vectoriel, permettant de réaliser directement les dessins d'animation sur machine. La structuration des dessins vectoriels permettra alors d'utiliser des algorithmes d'interpolation et de "morphing" pour réaliser certains dessins intermédiaires.
Poste de mise en place (compositing)
Ce poste se substitue à la manipulation physique des éléments (cells et cell décor) réalisée traditionnellement au banc-titre. Le module de composition d'images interprète les informations de la feuille d'exposition à un instant donné et compose l'image finale. Aucune modification graphique ne sera exécutée à ce poste. Ne seront possible que des modifications de durées, de positionnement et de rythmes ou des insertions de réutilisations prévues à partir des banques.
La manipulation (translation et surtout rotation zoom) d'images bitmap ne pouvant s'effectuer en temps réel que sur du matériel spécialisé de très haut de gamme, il est beaucoup plus simple de faire la mise en place des dessins à partir de "fantômes" des traits obtenus par vectorisation des dessins bitmaps.
On fera donc pour cela appel à un module de vectorisation. Ce module permettra donc de générer des dessins vectoriels à partir des informations issues du processus de scan/gouache : définitions des traits et identification des zones après gouachage.
Remarque : les poste de layout, animation et mise en place sont en fait trois aspects d'un même logiciel. Il n'y a en effet aucune différence entre les fonctionnalités layout et animation si ce n'est leur contexte d'utilisation, en fonction des droits de la personne connectée. La base de données mémorise 2 structures différentes : le plan au layout, et le plan à l'animation.
Le logiciel Layout-Anim peut intervenir en modification sur le plan layout uniquement si l'utilisateur a droit de layout-man.
Le logiciel layout-anim peut intervenir implicitement sur le plan animation (il crée des copies d'acteur et diverses utilisation). Pour une intervention explicite le layoutman devra avoir les droits d'animateur.
Vue ressource
Banque Episode
C'est l'ensemble des plans qui ont été ou doivent être faits pour la série. En traditionnel, souvent appelé le stock. Peut être vue aussi comme une sorte de banque générale de réutilisation (bien que d'accès peu commode). L'informatique pourrait apporter à ce niveau quelques allégements de gestion.
Banque Décors
En dessin animé, les décors sont souvent lourds, traditionnellement de conception différente des cellos. Ces derniers sont généralement gouachés par à-plats, sur surface transparente, les décors souvent réalisés sur papier Canson, bénéficient d'une mise en couleurs beaucoup plus raffinée. Leurs homologues informatiques ont toutes chances d'être réalisés sur palette graphique et mémorisées en bitmap à forte définition. Ils pourront également se prêter le cas échéant à une modélisation 3D.
La réutilisation à bon escient des décors se révèle cruciale, eu égard à leur taille et à leur temps d'exécution. Réutilisation signifie prévision et classement, d'où l'intérêt de la constitution d'une banque décors, celle-ci étant principalement indexée par lieux.
Vue information
Modèle
Tout sujet suffisamment pérenne d'un dessin animé fait l'objet d'un modèle. L'ensemble de ces modèles est regroupé dans un model-sheet. Nous verrons qu'un modèle se subdivise en "personnages" et "accessoires". Il faut entendre personnage au sens dessin animé (un homme, un chien, une voiture ou une fourchette...), tout ce qui est susceptible d'être animé.
La notion de modèle permet de regrouper plusieurs types d'informations :
Modèle couleur : il permet de mémoriser les couleurs et rendus (plusieurs versions sont possibles) d'un personnage (ou accessoire) donné.
Référence artistique : ensemble de dessins de référence (impressions d'artistes) non utilisés directement mais établissant les limites d'utilisation des sujets concernés.
Size-relation : dessins permettant de connaître les tailles relatives des personnages (et accessoires) entre eux et des personnages vis-à-vis des décors.
La notion de modèle nous offrira également une infrastructure permettant le classement des dessins et des animations déjà réalisés.
Plan
Un plan ("scene") est l'unité de production de base du dessin animé. Lors de sa fabrication au cours d'un certain nombre d'étapes, il passe par trois états fondamentaux : le storyboard, le layout, l'animation.
Nous nommerons Plan story, Plan layout, Plan anim l'ensemble des documents spécifiques à ces trois états. Chacune de ces versions du plan est autonome. Elle contient donc tous les éléments nécessaires (feuille d'exposition, dessins, mouvements, priorités d'affichage.) à sa réalisation. Des liens existent entre ces trois états mais une étanchéité est assurée de façon à ce que l'on puisse constamment revenir se référencer au document précédent à des fins de vérification de cohérence.
Toute mise à jour d'un document de niveau antérieur sur la foi de la version en cours fera l'objet d'une conformation explicite.
Niveaux (layers)
Succession des niveaux physiques (layers) donnant l'ordre d'empilage des cells lors de la prise de vues. A cette notion issue de l'animation traditionnelle, on préférera la notion suivante d'acteurs.
Acteurs
Un acteur est une entité locale au plan, correspondant à un niveau (layer) logique au sein de ce plan. En fonction des besoins un acteur peut faire référence à (et être classe selon) plusieurs modèles. La notion d'acteur correspond aux besoins suivants :
· possibilité de régler une animation indépendamment (mais pas obligatoirement) de son contexte (les autres acteurs, les mouvements, la caméra).
· possibilité de gérer indépendamment les problèmes des priorités de masquage.
· accroître les possibilités de réutilisation par la séparation acteur / contexte / priorité.
· la possibilité de sauver en banque sous la référence d'un ou plusieurs modèles une "tranche de plan".
Un acteur fait l'objet d'une hiérarchie à deux niveaux: LAYOUT, ANIMATION. En effet, pour des raisons techniques (cas typique d'un personnage assis derrière une table : le corps du personnage sera animé derrière la table, ses bras seront animés devant), l'animateur peut être conduit à scinder l'animation d'un acteur layout sur plusieurs niveaux physiques auxquels nous ferons correspondre autant d'acteurs animation.
La notion d'acteur animation permet :
· de proposer au niveau de l'animation une sélection / manipulation globale des sous acteurs se référençant au même acteur layout.
· de sauver en un seul bloc, des groupes sémantiquement reliés (l'acteur layout et les acteurs animation déduits de celui-ci).
Feuille d'exposition (xsheet)
Elle se présente sous la forme d'un tableau comprenant une ligne par image et autant de colonnes que d'acteurs, ou sous une forme plus traditionnelle autant de colonnes que de niveaux (layers)). Elle indique les débuts/fins des mouvements de caméra (colonne caméra) et les manipulations globales (colonnes acteurs).
Eléments graphiques
Sketch : dessin vectoriel réalisé par l'utilisateur lors du layout. Le layout n'étant pas soumis à des contraintes de qualités de traits, juste leur précision, les sketchs seront mono couleur, non anti-aliasé, avec notion d'opacité (remplissage mono couleur).
Drawings : dessins originaux sur papier issus de l'animation traditionnelle (trait au crayon noir, fermetures au bleu), qui doivent être scannés et gouachés.
Cells : dessins scannés et gouachés, ou saisis directement en machine. Ce sont eux qui seront réellement tournés (rendus anti-aliasés et en pleine couleur). Les cells feront directement référence aux modèles couleurs ayant permis de les gouacher.
Cell décor : dessins de décors ou d'éléments de décors (overlay ou underlay (OL/UL)) réalisés le plus souvent en bitmap couleur sur palette graphique. En phase d'animation, ou de line-test le layout décor sera implicitement utilisé en lieu et place du cell décor.
Vue organisation
Les préoccupations majeures de la gestion de production touche surtout les points suivants.
Gestion des utilisateurs
Imputations de présence des utilisateurs
Il est courant qu'un utilisateur travaille sur plusieurs productions à la fois. Il est alors important pour l'établissement et le suivi du budget de ces productions, de connaître son temps passé (en 1/2 journée) sur chacune de ces productions.
Gestion des droits d'accès aux ressources et aux logiciels
Chaque étape résulte du travail d'une ou plusieurs personnes et est soumise à un certain nombre de contrôles techniques. De ce fait, il existe un cloisonnement assez strict entre les différentes étapes : le layout sera confié a une équipe de layout-men et supervisé par un chef layout, l'animation sera confiée à une équipe d'animateurs supervisé par un chef animateur. Chaque équipe est responsable de son travail et n'a normalement pas à intervenir dans le travail d'une autre équipe (les animateurs n'ont pas à modifier le layout). Il est donc important pour chaque étape de contrôler les droits d'accès des utilisateurs sur les données associées à cette étape.
Suivi de l'avancement de la production
Sur les étapes de fabrication proprement dite, il y aura exploitation des données implicitement ou explicitement accumulées au cours de la fabrication. Une exploitation statistique de ces renseignements permettra un suivi fin de l'état d'avancement de la production et de discerner rapidement les points de blocages (attente de décors, layout en retard, retard de livraison de l'anim "papier", etc). Des passerelles doivent être prévues pour que l'exploitation de ces données puissent se faire par un tableur, voire même un logiciel de gestion de projet.
Identification des objets, modélisation
Analyse par la méthode OOA
Définition des sujets
L'étude précédente nous a permis d'organiser les données d'une production en cinq grands sujets ( See Les différents sujets de la production. ).
Le studio
- ressources humaines : définition des rôles et droits d'accès des utilisateurs.
- ressources matérielles : type et capacité des postes de travail.
La production
Contient des informations générales sur le produit :
- format de sortie définitive (vidéo, 16/9, 35mm 1/33, 1/66...)
La banque d'épisodes (le stock)
Elle référence toutes les données spécifiques au niveau son, texte et graphique du dessin animé. Elle reflète à la fois la structuration du produit, et la hiérarchisation du processus de fabrication. Néanmoins le but de la structuration des épisodes ne réside pas là. L'intérêt de cette structuration vise avant tout :
- à mettre en correspondances les produits des différentes étapes de travail.
- à protéger ces produits contre toutes utilisation prématurée ou modifications intempestives.
- à signaler le plus tôt possible les conséquences d'une modification projetée.
- à suivre enfin le déroulement du processus, et en vérifier sa planification.
L'ensemble de la production est structuré de manière traditionnelle en : épisode, acte, (séquence), plan.
Episode : c'est le produit final à livrer aux clients (diffuseurs).
Acte : un acte est un ensemble de plans consécutifs (en moyenne 3 pour un épisode de 26 minutes) qui correspond à une fréquence de coupure publicitaire. Il constitue néanmoins une unité commode d'exécution au layout.
Séquence : moins couramment utilisée, une séquence est un ensemble de plans consécutifs, qui se déroulent dans un même lieu. Ce peut cependant être une unité de recherche et de structuration parfois utile pour manipuler un petit ensemble de plan (une à deux dizaines).
Plan : unité de mesure de base de la production de dessin animé, le plan reflète en miniature la structure du travail de la production.
La banque des décors
La banque des décors est l'entrée générale vers le stockage tous les décors réutilisables, et des informations graphiques de référence stylistique. Tous les décors de tous les plans ne sont pas forcément mis en banque. Seuls le sont ceux qui sont susceptibles d'être réutilisés. Ces divers décors sont structurés en lieux (exemple : la maison du chef, la maison d'Astérix, la place du village, etc...). La See Diagramme OOA de la banque décor. donne la structure générale de la banque décor.
Lieu
Un lieu peut donc être considéré comme une forme générique de décor, dont les décors sont autant de points de vue. La banque des décors sera donc principalement indexée par lieux. On distingue généralement entre les :
· lieux permanents : les lieux communs à toute la série.
· lieux additionnels : lieux spécifiques à certains épisodes.
Style décor
Le style décor correspond à une entrée générale permettant de stocker des exemples d'exécution de décors (exemple style de végétation). Ces documents une fois exécutés, sont uniquement disponibles en consultation.
Recherches Artistiques
Réunit l'ensemble des documents de consultations issus de la recherche graphique sur un lieu donné. Ces dessins (en général au trait) ne sont pas directement exploitables. Ils peuvent cependant servir de canevas de construction pour le Layout décor.
Modèle 3D
A un lieu peut éventuellement correspondre un modèle 3D. Ce modèle très succinct dans sa modélisation (et sans rendus sophistiqués) pourra être utilisé au layout pour tester rapidement des points de vue et aider à mettre en place des perspectives.
Décor et overlay / underlay (OL/UL)
La seule différence véritable entre un décor et un overlay (ou underlay) est qu'un décor couvre tout le champ de la caméra et peut être utilisé seul, alors que les OL/UL sont toujours utilisés en complément d'un décor. Cette entrée fédère en fait deux composantes qui sont :
- layout décor : le dessin réalisé par le layout man.
- cell Décor : le décor définitif mis en couleur.
A un décor sera de plus associé la liste des OL/UL qui ont été utilisés avec lui. Les overlays et underlays seront d'autre part directement accessibles pour en faciliter la réutilisation.
La banque des modèles
Une classification directement issue de l'organisation actuellement utilisée chez France Animation distingue cinq catégories basées sur des critères simples comme la fréquence d'utilisation sur la série, et leur rôle : "personnage" (au sens du dessin animé ce peut être une voiture !!), et "accessoire" (souvent lié à un personnage).
Modèles généraux : ces modèles définissent des contraintes stylistiques générales de la série, en termes de construction de personnages par exemple (manière de dessiner les mains, les pieds, les yeux). Dans le domaine traditionnel, ils correspondent strictement à des documents de consultation. Leur utilisation ici, sera quelque peu généralisée car permettant des réutilisations.
Personnages permanents (ou principaux) : seront regroupés sous cette nomenclature, les modèles "permanents", c'est-à-dire présents a priori sur toute la série (ou presque).
Personnages additionnels : les modèles ici regroupés n'apparaissent que dans quelques épisodes. Un accès à ces modèles par épisode doit être possible. De même un accès par modèle doit permettre de retrouver les épisodes ou ils sont utilisés.
Accessoires permanents : présents sur toute la série leur particularité tient dans le fait que certains d'entre eux peuvent avoir un lien privilégie avec un personnage auquel ils sont souvent (ou toujours) affectés.
Accessoires additionnels : même type de séparation qu'entre les personnages principaux et additionnels. Seront répertoriés ici, les accessoires n'apparaissant que dans quelques épisodes de la série.
Modèle
A l'ensemble des cinq catégories définies ci-dessus est associée la notion de modèle. Pour certaines de ces catégories cela signifie une extension de la notion généralement admise sous ce terme, puisqu'il regroupe tant les documents de consultation que des documents d'utilisation (ou réutilisation) plus directe et ce, jusqu'au niveau dessin. La banque des modèles aura donc la structure suivante ( See Diagramme OOA de la banque des modèles. ).
Costume
Un modèle sera lui même structuré en un ensemble de costumes. On pourra par exemple pour le modèle reine avoir les costumes reine en robe de bal, reine en tenue de chasse, reine déguisée en gitane, etc. Sauf cas particuliers des parties (tête, main, bouches), la majorité des éléments de la banque modèle seront directement attachés à un costume.
Modèle couleur
A chaque costume sera associé un modèle couleur permettant de le gouacher, et de faire le rendu final des dessins lors du tournage. Le modèle couleur comprendra lui même :
habillages : stockage de plus haut niveau permettant de référencer directement le contour et la surface d'un élément. Utile surtout pour le dessin défini vectoriellement.
nuanciers : stocke les couleurs des remplissages (couleurs au sens large ce peut être un dégradé, texture ...) et stocke l'aspect (couleur, texture, épaisseur ...) des traits des dessins.
dessins couleurs de référence : le gouachage pourra se faire par rapport à des noms de références (représentation logique de la palette), par rapport à des "godets" (représentation graphique), ou par sélection directe (pick) sur un dessin en couleur. Le modèle couleur sera donc assorti d'autant de dessins gouachés que nécessaires (généralement 1 ou 2) pour présenter toutes les couleurs utilisées.
Model-sheet
L'ensemble des dessins associés à un modèle (ou un costume) correspond à la notion traditionnelle de model-sheet. L'indexation interne au model-sheet quoique plus normalisée que pour la catégorie similaire des décors, ne fera pas l'objet d'une définition exhaustive. L'utilisateur doit pouvoir gérer ses propres entrées. Parmi les dessins du model-sheet on peut néanmoins distinguer :
parties : dessins généraux à un modèle quelque soit son costume (expressions du visage, des mains, dessins des bouches, ...).
recherches : sous ce terme sont regroupés, tous les documents de références artistiques. Ceux-ci une fois constitués ne sont disponibles qu'en lecture seule, non modifiables ils peuvent cependant servir de canevas de construction.
Animations
Ensemble d'animations pouvant être directement réutilisées (cycle de marche, animation récurrente, ...). On stockera en fait dans cette catégorie des acteurs animation (et les acteurs layout associés s'ils existent). Les animations seront réutilisée par copie avec remise en place lors de la phase de compositing.
Conception
Un système de production de série en animation doit prendre en compte deux points de vue apparemment contradictoires que l'informatique peut justement aider à rendre complémentaires : les points de vue du réalisateur et du producteur.
Le producteur gère un budget. Loin d'être indifférent au facteur de qualité, il reste cependant très attaché à une planification forte, garante du respect des délais et des coûts. Il restera toujours très méfiant devant toutes possibilités pouvant entraîner une dérive vers l'improvisation.
Le réalisateur sera par contre toujours intéressé par tout moyens de rajuster jusqu'au dernier moment sa vision du produit.
Pour concilier ces deux points de vue, il faut pouvoir se doter de trois démarches complémentaires:
· prévisibilité maximum du résultat (d'où l'informatisation du layout).
· extension des possibilités de retour arrière de manière cohérente :
- en préservant l'intégrité des données.
- en minimisant les travaux inutiles.
· prévision la plus exacte possible du coût engendré par une correction, de façon à la décider en connaissance de cause.
· la conservation et la mise à jour d'information quantitatives (suivi de production)
· le recours (toujours parcimonieux, explicite et très contrôlé ) à une gestion dynamique des modifications (par exemple la gestion des couleurs).
La base de données doit donc à la fois mémoriser le produit (i.e.: les épisodes), les éléments qui concourent à le réaliser (les banques) et ceux qui servent à le gérer. Le tout étant encapsulé au sein d'une entité production qui assure l'étanchéité nécessaire entre deux productions différentes.
Architecture
L'architecture générale doit se faire en tenant compte des trois grandes façons d'appréhender la production : suivant ses grandes étapes (script, story, layout, animation, tournage), suivant un découpage hiérarchique (production, épisode, plan), et suivant la répartition des tâches entre partenaires d'une coproduction (éclatement de la production entre plusieurs studios).
Architecture par étapes
L'architecture du système doit tenir compte des grandes étapes de la production.
Architecture par production, épisodes, plans
D'autre part, le système doit être architecturé en au moins trois niveaux hiérarchiques ( See Architecture générale pour un studio. ).
Bases de niveau production
On trouvera à ce niveau l'ensemble des données relatives à une production tel que :
- caractéristiques générales de la production
- recherches artistiques préliminaires
Bases de niveau épisode
On y stockera l'ensemble des données relatives à un épisode particulier et non directement réutilisables (distinction entre stock et banque). Une fois le tournage définitif d'un épisode réalisé, il deviendra alors possible de l'archiver, permettant ainsi de libérer l'espace disque pour les épisodes suivants.
Bases de niveau plan
On suppose que la plus petite entité manipulée à chaque étape est le plan. Ce niveau correspond donc à une base de travail sur un poste individuel.
A partir de la structuration logique des données celles-ci ont donc été physiquement réparties en tenant compte des 3 facteurs précédents :
· indépendance relative des épisodes
Architecture par sites et postes de travail
Ce découpage en niveaux est orthogonal aux deux premiers. En effet, une coproduction (ce qui est très fréquent en animation) peut être répartie entre différents partenaires. Cette répartition entre studios étant issue des négociations de partenariat lors du montage financier, tous les cas de figures ou presque peuvent se présenter :
- soit un découpage en étapes (conception jusqu'au layout en France, animation en Chine)
- soit un découpage par épisodes (10 épisodes en France, 10 épisodes en Belgique)
- soit un mélange des deux (plus rare et plus difficile à gérer)
D'un point de vue plus technique, l'informatisation risque d'entraîner une spécialisation des studios, selon le type d'équipement dans lequel ils auront investi. Du point de vue structurel de la production, seules deux hypothèses fortes peuvent être dégagées vis-à-vis de ces découpages :
(1) si une étape est répartie sur plusieurs sites elle concerne des épisodes disjoints.
(2) dans la mesure du possible la génération des données de conception est centralisée. Dans tous les cas les autres sites ne fournissent que des données additionnelles (pas de modifications des données issues du site de création).
L'architecture du système devra donc prendre en compte les trois niveaux suivants.
Poste de travail individuel
Il est nécessaire d'assurer une sauvegarde du travail effectué au niveau d'un poste de travail individuel. Il est donc nécessaire que chaque poste de travail ait sa propre base de donnée locale.
Serveur d'atelier
Les postes de travail individuels sont connectés par un réseau local au sein d'un atelier. Sur ce réseau, une machine particulière est chargée de centraliser le travail effectué dans l'atelier. Ce serveur aura pour rôle de coordonner le travail, et répartissant celui-ci entre les différents postes de travail individuels.
Système multi-sites
Il sera nécessaire de pouvoir échanger des données entre les différents studios intervenant dans la production. Ces studios étant le plus souvent très éloignés géographiquement et ne possédant pas de liaison réseau entre eux, les échanges de données se feront de manière asynchrone par échanges de support magnétiques. Nous verrons plus loin que cela pose un certain nombre de problèmes.
Génération et répartition de l'information
Les différents types de documents
Documents de référence artistique
Ce sont des dessins d'artiste issus des étapes préliminaires de recherche et conservés à titre de référence. Effectués sur papier puis scannés, ou directement sur une palette graphique, ils peuvent avoir un rendu non cartoon.
Ils ne pourront être consultés qu'en lecture seule, et uniquement être affichés en fond pour être utilisés comme canevas de dessin. Ils ne peuvent pas être utilises ou référencés directement en tant que tels.
Documents de référence technique
Ce sont des documents référençant des objets réels directement utilisés dans la réalisation d'une ou de plusieurs des étapes de la production. Selon les cas, leur réutilisation peut s'effectuer soit par référence (cas des modèles couleur et des décors), soit par copie (cas des dessins du model-sheet ou des animations).
Notion de site de conception
La conception d'un dessin animé doit, dans le cas idéal, être centralisée. Nous avons cependant vu que les hypothèses sur ce sujet peuvent souffrir de cas d'exception. Si un personnage additionnel (traditionnellement appelé "invité") n'apparaît que dans deux épisodes et que ces épisodes sont sous-traités, il y a toutes les chances que la conception de ces personnages soit réalisée localement. Plusieurs sites peuvent donc être "concepteur".
Dans le cas (qui arrive parfois) ou un invité prend de l'importance, il peut être envisagé soit :
· de laisser au site concepteur la responsabilité d'accroître sa conception.
· de transférer l'invité dans la base des permanents, et c'est alors le site principal de conception qui va gérer désormais ce personnage. Le site concepteur d'origine perd alors ses droits à faire évoluer sa définition.
Nous rappelons que les résultats de la conception concernent au sein de la banque des modèles :
- la création puis évolution du modèle de couleurs
- la création des données de référence artistique
- la création des animations pré-définies qui peuvent être utilisable soit par copie, soit par référence.
Cet ensemble d'actions constitue en fait les résultats des phases de recherche, préparation et model-sheet de la série ou de l' épisode (cas des additionnels).
Pour tenir compte de cette notion de site de conception, nous avons défini quatre types de bases de données.
Base de données "référence"
Base de données contenant des informations créées par un site concepteur. Cette base peut être exportée vers d'autres sites. Ceux-ci pourront l'exploiter uniquement en lecture en copie ou par référence. Seul le site concepteur ayant le droit de modification ou d'ajout.
Parmi les bases de données "référence" nous pouvons citer :
· BD modèles permanents (contient notamment les modèles couleur)
· BD modèles additionnels (contient notamment les modèles couleur additionnels)
Ces bases contiennent les informations issues d'étapes de conception (recherche, préparation, model-sheet). Ce sont les seules bases susceptibles de contenir des informations utilisables par référence (pointeurs). Il est donc absolument fondamental que les objets qu'elles contiennent ne changent pas d'identifiant au cours des duplications sur sites. Ceci peut être réalisé par copie physique, il n'y aura pas de conflits si seul le site d'origine a droit de faire évoluer la base.
Base de données "réutilisation"
Base de données de groupe unique pour la série, duplicable, uniquement utilisée par copie et strictement modifiée par ajout par tous les sites (y compris le site concepteur).
Quatre BD "réutilisation" sont prévues :
· BD modèles additionnels (banque dessins et animation)
· BD modèles permanents (banque dessins et animation)
Ces bases s'accroissent au fur et à mesure des besoins, c'est-à-dire de la création de nouveaux décors plans, et des mises en banque d'acteur (layout / anim) décidés au cours de la fabrication.
Base de données de travail
Ce type de base de données est accessible en ajout et modification en fonction du domaine de travail du site (étapes de travail). Il s'agit essentiellement de la base de données épisodes qui, si la production est répartie entre sites par grandes étapes de travail, se verra découpée en :
Base de données locale
Elle gère des informations qui ne sont pertinentes que pour un seul site. Parmi les bases de données purement locales, nous pouvons citer :
· BD studio : (affectation du personnel, gestion d'avancement de la production).
· BD utilisateur : ce sont les bases de travail des utilisateurs.
Structuration du processus de fabrication
Comme déjà vu un plan possède 4 composantes: son, story, layout, anim. Dans le cadre de la base de données (au moins dans un premier temps) seules les composantes layout et anim sont susceptibles d'être modifiées. Les postes de fabrication proprement dits vont utiliser ces composantes.
Certains de ces travaux sont susceptibles de s'effectuer (ou de vouloir s'effectuer) en parallèle. D'autre part la nécessité de corrections peut entraîner des retours arrière. Enfin dans une production d'importance un travail d'équipe est mis en place qui implique une dissociation entre l'exécution d'un travail et sa vérification. Ces contraintes applicatives nécessitent certains mécanismes de la part de la base de données.
Pour permettre une bonne répartition du travail (et donc des donnés) entre plusieurs individus, il est important que le système de base de données possède une architecture distribuée, permettant à chaque utilisateur de pouvoir travailler indépendamment des autres au sein d'une base privée sur sa station de travail. Une architecture distribuée permet en effet de mieux répartir la charge de calcul et de stockage entre les différentes machines d'un atelier. Le fait de pouvoir travailler au niveau d'une base locale diminue le trafic réseau et améliore ainsi les performances.
Il est également nécessaire d'assurer l'étanchéité entre le travail des différents postes, tant que ce travail n'est pas terminé. En effet, lorsque par exemple un layout-man travaille sur un plan, ce plan n'a aucun sens pour les autres tant qu'il n'est pas terminé. Il n'en a même aucun, sauf pour le chef layout, tant que celui ci ne l'a pas validé.
Gestion de la banque épisodes
Mécanismes généraux
Un aspect logiciel important au niveau de la base de données, concerne l'étanchéité des grandes étapes : story, layout, animation, tournage.
Chaque étape prototype la suivante qui en récupère (par copie) les informations. Toute étape est susceptible de modifier cette "initialisation" mais cette modification n'est jamais implicitement reportée au niveau précédent. Il est par exemple important de pouvoir comparer une animation avec le layout initial. Si une mise à jour doit être faite elle fera l'objet d'une phase de conformation explicite.
Etats d'un plan
Un plan prend un certain nombre d'états au cours du temps à chaque étape. Les étapes considérées sont celles qui sont sujettes à une phase de vérification (check) ou dont le résultat défini une composante du plan. Il s'agit donc des étapes : son, story, layout, scan, gouache, animation machine (mise en place), mise en couleur décor, tournage.
Accès aux données de la banque épisode
Un plan ne peut être modifié que par un utilisateur à la fois. Cet utilisateur n'en modifie cependant pas toutes les composantes. Celles qui ne sont pas réservées en écriture restent disponibles en consultation. Il est donc important de ne pas monopoliser la totalité du plan, uniquement les composantes susceptibles d'être utilisées en écriture par le poste concerné.
Chargement des composantes d'un plan
Le plan pouvant (le plus souvent ) être sur le réseau, il est important de le ramener entièrement en base privée sur le poste de travail lui-même. S'il est peu important d'attendre à ce moment, les attentes en phase ultérieure seraient beaucoup plus pénalisante.
Le chargement des composantes du plan accédées en modification doit impérativement se faire par un mécanisme qui n'autorise aucune consultation à cette donnée, ni sous sa version en cours (non encore validée), ni sous son ancienne version (celle-ci étant soit vide, soit fausse).
Le chargement des composantes accédées en lecture, doit laisser celles-ci libres d'accès pour d'autres utilisateurs.
Il est donc nécessaire de disposer d'un mécanisme de type check-in/check-out permettant de copier dans une base de donnée locale au poste de travail les composantes du plan devant y être modifiées. Les autres composantes seront accédées en lecture seule, directement dans la banque épisode.
Gestion des Banques décors et modèles
Mécanismes généraux
Tous les éléments de banques doivent être identifié au moins par le plan d'origine qui les a générés. Le but est d'obtenir une possibilité d'indexation implicite unique pour chaque élément de banque.
Banque des décors
Tous les décors ne sont pas forcément mémorisés. Certains sont donc conservés au sein de leur plan de création au sein de la banque épisode. Les décors réutilisable seront eux rangés dans la banque décors. Dans tous les cas, il est nécessaire de pouvoir utiliser en phase d'animation le layout décor d'un plan, pendant qu'en parallèle, on effectue la mise en couleur du cell décor de ce même plan.
Banque des modèles
La banque des modèles est appelée à s'accroître au fur et à mesure de la création des plans. Une animation mémorisée en cours de production, doit l'être avec sa composante layout. Ce couple layout / animation est référencé sous le titre de banque acteur. Elle pourra ensuite être réutilisée par copie. La banque animation (ne comprenant pas de layout) est issue d'un travail a priori de la préparation. Cette banque est éventuellement susceptible d'être utilisée par référence.
Implantation avec Versant
Le choix du système de gestion de base de données à utiliser pour le projet animation 2000 a été conduit en tenant compte d'un certain nombre de contraintes inhérentes au projet.
Contraintes dues à l'environnement
En raison des cultures des différents partenaires (INA et GETRIS), et surtout en fonction des puissances de calcul nécessaires, il a été prévu que selon le cas, les logiciels associés aux différents postes de travail seraient disponibles sur :
· stations de travail Silicon Graphics sous UNIX (postes de layout, d'animation et de tournage)
· stations de type PC sous Windows-NT (postes de scan et de gouache)
Pour des raisons d'efficacité du code, de portabilité, et pour bénéficier pleinement des avantages de l'approche objet, les différents partenaires ont fait le choix d'un langage de programmation commun : le langage C++.
La base de données choisie devait donc pouvoir fonctionner en environnement hétérogène, et être portée au moins sur les deux systèmes visés : Windows-NT et IRIX (Silicon Graphics). De plus, elle devait pouvoir s'interfacer avec le langage C++ et si possible utiliser directement la définition des classes C++ pour définir le schéma de la base.
Contraintes dues aux exigences de la production
Un autre type de contraintes provenait des caractéristiques du travail dans le cadre d'une production de série en animation :
- grand volume des données (plusieurs giga octets pour une série 26 * 26).
- travail réparti entre de nombreux postes de travail individuels (voir différents sites).
- isolation importante entre les différentes taches.
Ces différentes caractéristiques rendaient difficile l'utilisation d'une base de données centralisée (trop grande taille, trop grande charge CPU). La base de données choisie devait donc supporter une architecture distribuée, de préférence avec existence de base de données individuelles au niveau de chaque poste de travail, et de base de groupe permettant de centraliser les données communes à l'ensembles des postes d'un certain type (par exemple layout) ou bien communes à l'ensemble de la production (banques modèles et décors).
Choix d'un système de gestion de base de données
Aux vues de ces différentes contraintes, il était alors tout naturel de se tourner ver la technologie des bases de donnés objets. C'est la solution que nous avons finalement choisie. Le principal problème a alors été de trouver un système de gestion de bases de données objets ayant été porté, et fonctionnant de façon hétérogène sur les plates-formes visées : IRIX (Silicon Graphics) et Windows-NT.
Parmi les différents systèmes existant, nous en avons considéré trois : Matisse, ObjectStore et Versant.
Les deux premiers n'étaient pas directement disponibles sur les plates-formes visées, mais un portage était envisageable après accord avec les sociétés respectives. En plus de ce problème de disponibilité, nous avons écarté ces systèmes car notamment :
- Matisse possède son propre modèle de donnés et ne supporte par une architecture distribuée
- ObjectStore ne supporte pas directement une architecture hétérogène
Notre choix c'est donc porté sur le système Versant, qui était disponible et est capable de fonctionner en environnement hétérogène sous les deux systèmes cibles : IRIX (Silicon Graphics), et Windows-NT.
Difficultés rencontrées
Le codage de l'application étant en cours et se déroulant dans un contexte industriel concurrentiel, il n'est pas possible de le détailler ici précisément. Nous pouvons néanmoins aborder un certain nombre de problèmes liés à l'utilisation d'une base de données objets (Versant), soulevés lors du codage.
Contrôle de la persistance
A l'usage, il s'est avéré que les objets gérés par Versant étaientt parfois "trop" persistant. Un cas typique de ce comportement intervient lorsque l'on charge un dessin déjà existant pour le modifier et le sauvegarder sous un autre nom.
La première idée qui vient à l'esprit est alors de dupliquer les données concernant la géométrie de ce dessin, de les associer à un nouveau nom et de valider la transaction. Le problème est qu' alors l'ancien dessin est également modifié, puisque l'on a directement travaillé sur lui et que les modifications ont également été enregistrées lors du commit .
Lorsque l'on charge un dessin en mémoire, et que celui-ci est susceptible d'être modifié, on doit systématiquement en faire une copie, et travailler sur cette copie pour ne pas altérer le dessin original.
Granularité des données
Dans une base de données objet telle que Versant, tout objet persistant dérive de la classe persistante PObject, et donc possède un identifiant d'objet unique. Or pour certains objets de bas niveau, cela semble inutile. Prenons l'exemple du codage d'une classe dessin vectoriel très simplifié :
Tout d'abord une classe abstraite persistante dont hériteronts tous les objets graphiques.
class GraphicObject : public PObject {
// methode d'affichage des GraphicObject
Un dessin héritera donc de GraphicObject et sera constitué d'une liste de polygones.
class Dessin : public GraphicObject {
virtual void append(GraphicPolygon*);
LinkVstr<GraphicPolygon > polygonList_; // liste des polygones du dessin
Un polygone est une liste de points, et pointe vers des éléments de model-sheet spécifiant la couleur du trait et la couleur du remplissage. Il est à remarquer que versant ne permettant pas de stocker des tableaux de structures, il est nécessaire de simuler la liste des points constituant le polygone par trois listes contenant les coordonnées (x, y et pression) de ces points.
class GraphicPolygon : public GraphicObject {
Link<PColor> fill_; // couleur du remplissage
Link<PColor> stroke_; // couleur du trait
// les points du polygone, ne pouvant pas ecrire Vstr<Point>
// on doit le simuler en trois listes pour chaques coordonnees.
Au sens base de données, on peut en fait considérer deux types d'objets, selon que ceux-ci peuvent être accédés seuls, ou qu'ils ne sont accédés que comme composant d'un ensemble plus important.
Dans l'exemple précédent, les seuls objets qui ont un sens au niveau utilisateur sont les dessins et les éléments de model-sheet (couleur de trait et de remplissage). Ce sont en effet les seuls qui soient susceptibles de faire l'objet d'une recherche (requête) en base de données.
- Pour rechercher un dessin particulier.
- Pour modifier globalement la couleur d'un modèle.
On n'ira par contre jamais rechercher directement un polygone en base de données, cela n'aurait aucun sens. Au niveau de la base de données, la granularité minimum est donc le dessin.
Il serait donc intéressant de pouvoir définir deux types d'objets persistants.
Objets persistants "externes" : ce sont les objets persistants "classiques" possédant un identifiant d'objet, sur lesquels il est possible de faire des requêtes et de poser des verrous.
Objets persistants "internes" : ce sont des objets persistant plus légers (notion de lightweight object), ne possédant pas d'identifiant d'objet, et ne pouvant pas directement être recherchés par requête. Ces objets n'ont en fait d'existence que parce qu'ils sont inclus dans un objet persistant "externe".
Taille des données sur disque
Le fait d'utiliser des objets persistents (donc référencés par des identifiants d'objets) lors du codage introduit un surcoût, à la fois en termes de mémoire utilisée, et surtout en terme de volume nécessaire pour stocker ces objets persistents sur disque. Or, ce surcoût peut s'avérer important s'il est appliqué à des milliers d'objets (un épisode de 26 mn comprend environ 12000 dessins).
Des estimations préliminaires sur l'occupation des disques évaluent à plusieurs Go les besoins d'un studio pour une série de 26 fois 26 minutes. Cette évaluation doit alors être revue à la hausse pour tenir compte de la place prise par VERSANT pour gérer ses structures internes.
En mémoire
Le fait d'utiliser des classes persistantes (donc héritant de PObject) coûte sizeof(PObject) = 4 octets de plus par objets en mémoire. A ce coût il faut ajouter la taille de la table des identifiants d'objets qui coûte 9 octets par objets.
Sur disque
La documentation Versant donne comme formule de calcul :
Taille de la base = min_size + (1.25 * (avg_o_size + 100) * num_objects)
min_size : taille initiale de la base (de 1840k à 3840k selon la valeur de extent_size)
avg_o_size : taille moyenne d'un objet
Nos tests ont montrés que le surcoût (hors taille initiale de la base) peut être évalué à environ 50 à 60 octets par objets. Ce surcoût n'est pas totalement constant car il provient en grande partie de l'utilisation d'une table de hash code pour gérer la table des identifiants d'objets. Cette table grandissant de façon dynamique par allocation de nouveaux extent, sa taille varie de façon discontinue.
On peut alors estimer de façon plus précise la taille de la base grâce à la formule suivante :
Taille = min_size + ((o_size + 60) * num_objects)
Ce problème est en fait en grande partie lié au précédent. Il devient en effet beaucoup moins important s'il est possible de stocker toutes les données internes à un objet (par exemple un dessin) sans avoir à passer systématiquement par des objets persistants dérivant de PObject (et donc utilisant un identifiant d'objet).
Gestion de versions
Nous avons vu que tous les dessins d'animations sont gouachés par référence à un (ou plusieurs) modèles couleurs rassemblant toutes les informations de nuances et d'habillages. Or, ces informations sont susceptibles d'être modifiées pour des raisons diverses lors du tournage.
Par exemple, l'épisode 1 est tourné entièrement, ainsi que la moitié de l'épisode 2, le héros ayant un chapeau de couleur rouge. Après visionnage par les producteurs, décision est prise de changer la couleur du chapeau en bleu. On considère inutile de retourner l'épisode 1. On retourne le 2 en bleu, après avoir changé le nuancier.
Pour ne pas avoir à reprendre un par un tous les dessins déjà gouachés de l'épisode 2, Il est important d'avoir stocké de façon indirecte, c'est-à-dire par référence et non pas directement dans les dessins, les différentes couleurs utilisées.
Ce type de modifications, implique donc une gestion dynamique des modèles couleur. Elle présente néanmoins le danger d'entraîner des retournages importants ou de se retrouver face à des surprises.
Par exemple, suite à la décision précédente de modifier le modèle couleur en bleu, et de retourner l'épisode 2, une reprise inattendue doit se faire dans l'épisode 1, si on n'y a pas pris garde, la reprise s'effectuera avec la mauvaise couleur !
Il est donc nécessaire de versionner le nuancier au sein du modèle couleur et de pouvoir spécifier à partir de quel épisode la nouvelle version est active. Nous avons pour cela utilisé un mécanisme de gestion de versions au niveau élémentaire de l'objet nuancier lui même.
Archivage
Etant donné le volume important des données utilisées pour une production, il est important de pouvoir archiver les épisodes terminés, afin de libérer de l'espace disque pour les épisodes suivants. L'archivage doit alors uniquement concerner les éléments propres à cet épisode (non utilisés par d'autres épisodes). C'est l'une des raisons pour laquelle les modèles et les décors sont stockés séparément dans les banques modèles et décors.
Conclusion
Points restant à approfondir
Echanges de données entre sites distants
L'intégration de données provenant de plusieurs studios, implantés sur des sites distants, nous impose de pouvoir faire la fusion (merge) de plusieurs bases de données. Il doit en effet être possible de dupliquer une partie des données communes à la production (banque production, banque modèles, banque décors) pour les donner à un ou des studios sous-traitant non connecté par un réseau.
Il est alors primordial de spécifier précisément les procédures d'exportation et d'importation des données, en évitant notamment :
· la création de versions inutiles sur la base publique (duplication de données exportées et réimportées).
· la création de versions inutiles sur la base du sous-traitant (création de nouvelles versions pour des objets déjà importés et non modifiés).
· l'écrasement ou la destruction d'objets publiques n'étant pas censés être modifiés par le sous-traitant.
· l'importation de données inutiles.
Dans le cas où ces sites ne possèdent pas de connexion réseau, il existe alors un problème au niveau de l'allocation des identifiants d'objets. En effet, dans une base de données distribuée telle que Versant, l'identifiant d'un objet est de la forme : <identifiant de base> <identifiant d'objet>. Entre deux sites ne possédant pas de connexion réseau, il n'y a donc pas de moyen sur d'assurer l'unicité des identifiants d'objets générés par les systèmes de base de données objets.
A ce problème, on peut donner plusieurs solutions.
Partitionnement de l'espace de bases
Un moyen simple de résoudre ce problème serait de gérer un identifiant sous forme de triplet :
<identifiant de site> <identifiant de base><identifiant d'objet>
Une production de 52 épisodes va en moyenne générer :
52 bases épisodes (son, story, layout, anim)
1 base production, 1 base décor, 1 base modèles
1 base décor, 1 base modèles additionnels par site de conception qui devront conserver le même identifiant sur tous les sites.
1 base de gestion et autant de bases privées que d'utilisateurs sur le site.
En considérant une vingtaine d'utilisateurs sur le site nous arrivons en gros à une estimation plafond d'une centaine de bases pour une production, sachant qu'il est courant de mener deux ou trois productions de front.
Une solution consiste alors à partitionner par avance l'espace des identifiants entre les différents sites : le site A se voyant attribuer les identifiant de base de 0 à 4095, le site B les identifiants de base de 4096 à 8191, etc...
En supposant par exemple 2^16 numéros de bases (cas actuel avec Versant)
partitionnement en 8 sites ----> 8192 numéros de bases
partitionnement en 16 sites ---> 4096 numéros de bases
partitionnement en 32 sites ---> 2048 numéros de bases
partitionnement en 64 sites ---> 1024 numéros de bases
Chaque studio se verrait alors attribuer un numéro de site. Avec un nombre restreint de numéros de site, cela poserait des problèmes de commercialisation évidents, limitant le nombre potentiel de sites pouvant être équipés. Cette politique simple n'est donc envisageable que si le nombre de bases possibles est très grand (le nombre actuel de 2^16 bases dans Versant est trop limitatif).
Utilisation de bases temporaires d'échange
Cette solution consiste à laisser chaque site gérer indépendamment l'allocation des identifiants d'objets, et de réserver un certain nombre de bases de données uniquement pour effectuer les échanges entre les différents sites. On utilisera alors la procédure suivante :
SiteA --------> TempSiteA ----> TempSiteB -------> SiteB
Pour éviter tout risque potentiel de conflits entre identifiants, le check-out se fera systématiquement par duplication (accès en mode snapshot) des objets. Dans ce cas, il n'y aura pas conservation des OID des objets entre les sites.
Les objets étant ainsi recréés il n'y aura aucun risque de collisions d'identifiants, cela suppose néanmoins que l'opération de fusion se fait au moyen d'un applicatif capable de retrouver les correspondances entre deux objets identiques (qui porteront par principe des identifiants différents).
Chaque objet ou collection d'objets devra donc comporter un attribut unique quel que soit le site. Cet attribut, implicite dans le cas de la banque épisode (il ne peut y avoir dans une même production deux plan 10 de l'épisode 1), peut être aisément obtenu dans le cas des diverses banques en mémorisant pour chaque élément, le numéro (épisode / plan) qui l'a généré.
Le cas des banques par référence (où les objets ne doivent pas changer d'identifiant) et des éléments génériques (issus de la préparation) seront résolus par une gestion de répartition et de génération de ces informations.
Utilisation de fichiers d'échange au format STEP
Cette solution est basée sur le fait que Versant permet d'exporter et d'importer des données sous la forme de fichiers textes au format STEP. Il y a néanmoins quelques limitations dans la version actuelle :
- les objets exportés doivent provenir de la même base de données.
- on ne peut pas exporter d'objets versionnés.
De plus la grande taille des fichiers STEP (par rapport aux données binaires) rend cette solution difficilement applicable pour des échanges de données volumineuses.