LES FICHIERS BAM
[JUSTIFIER]Dans Baldur's Gate, les animations utilisent des fichiers .BAM.
Cela concerne aussi bien les graphismes animés comme les effets de sorts et les représentations de créatures que d'autres éléments graphiques statiques comme les représentations des objets dans l'inventaire, les icônes de sorts, ainsi que la plupart des éléments de l'interface graphique, les polices de caractères, etc.
Pour autant, ces fichiers ne sont pas des « fichiers graphiques » à proprement parler comme des fichiers bmp, gif, jpg, psd...
Je ne me lancerai pas ici dans un exposé technique sur la structure du format .bam d'abord parce que j'en serai bien incapable, mais surtout parce que ça n'aurait pas grand intérêt. Je me bornerai donc à donner les grandes lignes de ses spécificités qui expliquent en partie la manière sont on créée des fichiers d'animations.
MAIS QU'EST-CE QU'UN FICHIER .BAM ?
Chaque fichier .BAM contient une ou plusieurs séquences d'animations (« cycle »), jusqu'à un maximum de 255.
Chaque séquence renvoie à un certain nombre d'images (« frames »).
MAIS COMMENT ÇA MARCHE ?
Le principe est simple : les séquences fonctionnent comme un index et renvoient à une table de correspondance, elle-même renvoyant à une liste d'images.
Je sais, dit comme ça, ça ressemble à du chinois. Mais avec un exemple, ça ira beaucoup mieux.
Imaginons un Gobelin en marche. Son mouvement est composé de 15 images, numérotées de 0 à 14.
La séquence représentant l'animation du Gobelin en marche sera alors 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14. Chaque numéro renvoyant à l'indice de l'image du fichier .BAM.
En fait, chaque séquence est composée d'une liste d'indices d'images, plutôt que d'une liste d'images. Elle est donc « vide », dans le sens où elle n'intègre aucune image.[/JUSTIFIER]
L'intérêt de cette structure est multiple :
- La suppression d'une séquence n'a aucun effet sur les images : on peut en supprimer une tout en conservant les images du fichier.
- Une même image peut être utilisée par plusieurs séquences, voire plusieurs fois par la même séquence.
Bref, on peut manipuler les séquences sans modifier les images d'un fichier .BAM.
LES IMAGES (« FRAMES »).
[JUSTIFIER]Les frames sont les images de base représentant les différents mouvements d'une animation.
Bien que le format BAM autorise des dimensions d'image très grandes, le moteur du jeu n'affichera les images que jusqu'à une certaine taille.
La taille maximum varie selon la version du moteur de jeu. Dans BG2, ce format maximum est 256x256 pixels.
Cependant, comme nous le verrons plus tard, il y a un moyen de contourner cette limitation et d'afficher des images de taille 500x500 par exemple.
Notez aussi que cette dimension peut varier dans une même animation : frame 0 de 120x120, frame 1 de 80x240...
En théorie, un fichier .BAM n'a pas de limite et peut contenir plusieurs centaines de frames (voire des milliers selon la finesse de l'animation représentée). Sans compter les images qui ne seront pas utilisées puisque le moteur ne « jouera » que celles qui sont indexées dans chaque séquence.[/JUSTIFIER]
LES PALETTES de COULEURS.
[JUSTIFIER]Les fichiers .BAM sont en couleurs indexées (256 couleurs – 8bits).
Comme les deux premières sont réservées à la transparence et à l'ombre, une animation ne peut être définie que par 254 couleurs différentes.
Faîtes-moi confiance, c'est plus que suffisant pour obtenir des rendus très fins. Pour vous en rendre compte, consultez au hasard plusieurs animations de BG2 et vous vous apercevrez que la plupart n'utilisent pas plus de 100 nuances différentes, quand ce n'est pas beaucoup moins !
En revanche, toutes les images d'un même fichier .BAM utilisent toutes une seule et même palette de couleurs, intégrée dans le fichier .BAM.
Pour reprendre un conseil de Luren :
Il est donc indispensable, lorsqu'on créée ou modifie des animation de prendre garde que toutes les images de l'animation utilisent rigoureusement la même palette. Quand on jongle avec des logiciels d'édition et des formats de fichier (.bmp, .gif, .png; images en 32 bits, 16 bits ou 256 couleurs) pour travailler une animation, il arrive que l'on s'emmêle les pinceaux en utilisant sans le savoir différentes palettes, ou en perdant la palette lors d'un passage en 16 ou 32 bits.
Dernier point à intégrer pour bien comprendre le fonctionnement des palettes : une teinte spécifique d'une image n'est pas définie par sa composition, mais par son numéro d'index dans la palette.
Par exemple, le rubis du pommeau d'une épée ne sera pas caractérisé par des nuances de rouge, mais par les index 60, 62, 63, 69, 148, 253 correspondant à ces nuances.
Si vous attribuez à la même image une palette de couleurs contenant ces mêmes nuances de rouge aux index 2, 38, 52, 111, 95, 202, alors le rendu sera complètement différent : les nuances de rouge seront par exemple remplacées par du vert (2, 38, 52), du jaune (111, 95) et du bleu (202).
>> :!: Bref, encore une fois, toute manipulation sur les teintes d'une image doit se faire avant de transformer l'image source en fichier .BAM.
Il est temps de passer à la pratique : Création d'un fichier d'animation de décor simple [post=302817]ici[/post].
[/JUSTIFIER]