TUTORIEL : Création de Bam pour des animations AoW
:!: AVERTISSEMENT : CECI est un TUTORIEL PROVISOIRE.
Outils nécessaires :
-
BamWorkshop 1 et
BamWorkshop 2 (faire attention à leur utilisation, ils ont tendance à bugger).
-
DLTCEP
- Eventuellement un éditeur graphique et un utilitaire de création de fichiers GIF.
Salomon, d'après ce que j'ai vu des quelques animations AoW que tu m'as passées, la plupart sont construites sur le même modèle. Ce qui va te faciliter la tâche. Elles sont séparées en 5 groupes (_IDDLE, _DEAD, _WALK, _ATTACK, _HIT), chacun représentant 6 directions (sauf Est et Ouest).
Ce qu'il faut faire dans un premier temps, c'est les regrouper par type et direction.
Tu sais extraire les différentes frames de chaque animation. Il te faut tout d'abord créer les frames manquantes des vues Est et Ouest de chaque action. Une fois que c'est fait, soit tu les conserves en fichiers bmp, soit tu les transformes en fichiers GIF. Déplace-les toutes dans le même répertoire.
Une fois ces groupes constitués, il faut les intégrer dans les fichiers bams suivants :
XXXXA1 et XXXXA2 (Attaque) : fichiers d'attaque correspondant aux frames _ATTACK.
Remarque : il peut y avoir plus de 2 attaques. Mais ces cas sont plutôt rares.
XXXXDE (Dead) : fichier correspondant à l'action de mourir (_DEAD).
XXXXGH (Getting Hit) : fichier correspondant au fait d'être touché en combat (_HIT).
XXXXGU (Getting Up) : fichier correspondant à l'action de se relever.
XXXXSL (Sleep) : fichier correspondant à l'action de tomber inconscient (Sleep).
XXXXWK (walking) : fichier correspondant à l'action de marcher (_WALK).
XXXXTW (twitching in death throes) : fichier correspondant au fait d'être étendu mort au sol.
XXXXSD (Standing down) : fichier correspondant au fait de ne pas bouger (_IDLE).
XXXXSC (Standing combat) : fichier correspondant à l'attitude entre deux attaques pendant un combat (en général, on ne bouge pas).
XXXXCA (Spellcasting) : fichier correspondant au fait de lancer un sort. Celui-ci est facultatif.
Chacun de ces fichiers est constitué de 5 séquences (O = Sud, 1 = S-O, 2 = O, 3 = N-O, 4 = N) dans lesquelles tu installeras les frames correspondantes des animations AoW.
Il est impératif que chaque séquence d’une action soit composée du même nb de frames et que la première frame de toutes les séquences de toutes les actions d'une même direction soit identique (sauf exception vue ci après), de manière à faciliter la fluidité de l'image.
Ainsi, la première frame des séquences 0 des fichiers XXXXA1, XXXXA2, XXXXDE, XXXXGH, XXXXSL, XXXXWK, XXXXSD, XXXXSC et XXXXCA doit être identique (id pour les versions _E détaillées plus bas). De même, la première frame des séquences 0 des fichiers XXXXGU et XXXXTW doit être identique. Et ainsi de suite pour chaque séquence.
De plus, dans BG2, chaque action nécessite pour fonctionner un second fichier bam nommé de la même manière auquel est ajouté un « E » à la fin.
Chacun de ses fichiers comprend 8 séquences : Les 5 premières (0 à 4) sont vides. Elles correspondent au miroir des fichiers précédents et sont générées automatiquement par le moteur d'IE.
Les autres correspondent aux vues N-E (5), E (6) et S-E (7).
Tu les nommeras ainsi : XXXXA1E et XXXXA2E, XXXXDEE, XXXXGHE, XXXXGUE, XXXXSCE, XXXXSDE, XXXXWKE, XXXXTWE et XXXXCAE.
NB : Le préfixe de chaque fichier (XXXX) est composé de 4 caractères, pas un de plus, pas un de moins (pour moi, ceux de la Licorne commenceront par GWLI).
Ça, c'est le principe, passons à la pratique.
Attention : ce tutoriel fonctionne pour la conversion des animations AoW dans BG2. Et il existe bien d’autres manières de créer des bam d’animation. Je te donne celle-ci car c’est celle que j’ai utilisée pour la Licorne. A l’usage, il sera peut-être utile de le modifier.
:!:
NOTE : Ne pas hésiter à travailler sur des copies des fichiers afin de parer à tout problème. En effet, BamWorkshop 1 et BamWorkshop 2 ont une fâcheuse tendance à bugger, et comme ils ne sont plus maintenus par leurs concepteurs…
A) Création du fichier XXXXA1.bam.
1) Ouvrir BAMWorkshop 1 et créer un nouveau fichier bam (sans le nommer pour l‘instant).
2a) Fichiers GIF : Dans l'écran de droite, importer une séquence (clic droit). C'est la séquence 0 qui correspond au Sud dans les animations _ATTACK d‘AoW.
2b) Fichiers bmp : Dans l'écran de droite, ajouter une séquence (clic droit). Puis aller dans l'onglet "Frames" et importer (clic droit) la première frame, puis, dans l'ordre, toutes celles de la position Sud.
Vérifier avec Preview que la séquence fonctionne.
3) Sauvegarder le fichier bam sous le nom XXXXA1 puis quitter BAMW.
4) Le rouvrir et charger XXXXA1. Renouveler les mêmes opérations pour les 4 séquences suivantes dans l'ordre (1 = S-O, 2 = O, 3 = N-O, 4 = N), sauvegarder le fichier et quitter BAMW après chaque séquence (ça peut éviter certains bugs intempestifs).
5) Dans DLTCEP, Menu Edit -> Animation, charger XXXXA1.bam pour modifier la position de chaque frame.
Au départ, elles sont en 0.0. Pour la Licorne (128x128), la position de base est 64.94. Mais je suppose que ça varie pour chaque type d'animation. Il conviendra donc de faire des tests dans le jeu pour trouver la bonne position.
Ne pas oublier de sauvegarder en sortant.
Remarque : certains logiciels de création de GIF gèrent cette option. Vérifier si c’est le cas pour celui qui est utilisé et si la conversion des GIF en bam conserve ces positions (je ne l’ai pas testé, car je préfère importer les bmp un par un pour être certain du résultat. Cela dit, je n’ai créé que quelques animations et ne me suis pas lancé comme toi dans la conversion de toutes celles d’un jeu…).
Si ce n’est pas le cas, je suis persuadé que WeiDU doit pouvoir gérer une automatisation de la procédure en paramétrant les bonnes variables. Je ne me suis pas penché sur la question.
:!:
NOTE : Ne surtout pas modifier les positions dans BAMWorkshop sous peine de bug.
B) Création du fichier XXXXX1E.bam.
1) Ouvrir BAMWorkshop 1 et créer un nouveau fichier bam (sans le nommer pour l‘instant).
2) Ajouter 5 séquences vides (0 à 4).
3a) Fichiers GIF : Dans l'écran de droite, importer la séquence 5 qui correspond au Nord-Est dans les animations _ATTACK d’AoW.
3b) Fichiers bmp : renouveler l'opération A) 2b) plus haut.
Vérifier avec Preview que la séquence fonctionne.
4) Sauvegarder le fichier bam sous le nom XXXXA1E puis quitter BAMW.
5) Le rouvrir et charger XXXXA1E. Renouveler les mêmes opérations pour les 2 séquences suivantes dans l'ordre (6 = E, 7 = S-E). Ne pas oublier de sauvegarder le fichier et de quitter BAMW après chaque séquence.
6) Dans DLTCEP, charger le fichier XXXXA1E et modifier la position de chaque frame.
C) Modification des horribles couleurs de transparence et des ombres (turquoise [RGB: 0, 151, 151] et rose bonbon [RGB: 255, 101, 151]) que BAMWorkshop a la fâcheuse habitude de créer.
Plusieurs méthodes sont applicables. La suivante est la plus simple.
1) Charger le fichier bam dans BamWorkshop II (surtout pas le I !).
2) Double-cliquer sur la palette de couleurs en bas à gauche pour l‘ouvrir.
3) Sélectionner la couleur de transparence (la première en haut à gauche : N° 0) et la modifier en saisissant les paramètres RGB suivants : 0, 255, 0.
4) Sélectionner la couleur des ombres (la deuxième en haut à gauche : N° 1) et la modifier en saisissant les paramètres RGB suivants : 34, 35, 24 (on peut aussi choisir le noir total : 0, 0, 0).
5) Se positionner sur la première frame (0), sélectionner la gomme (« eraser ») dans la barre d’outils et effacer une petite partie de la couleur de transparence.
a) Puis avec la pipette, sélectionner la zone de transparence ainsi obtenue (matérialisée dorénavant par un arrière-plan quadrillé en gris et blanc dans la zone gommée).
b) Sélectionner l’outil « pot de peinture » et cliquer sur toutes les zones de l’ancienne couleur de transparence (rose ou turquoise) pour les remplir avec la nouvelle couleur.
Passer aux frames suivantes et continuer de transformer les zones de transparence avec le pot de peinture (inutile de la sélectionner de nouveau dans la palette, BAMWorkshop la garde en mémoire tant qu’on ne sélectionne pas une autre couleur de la palette).
D) Ajustement des pixels.
En cas de besoin, jongler avec les couleurs de la palette, le crayon et la gomme pour éditer les frames dans BamWorkshop 2.
:!:
ATTENTION : Ne jamais sauvegarder dans BAMWorkshop lorsqu’on a activé la fonction « Zoom ». Sinon, un méchant bug provoquera des dégâts irréparables. Si on a activé le zoom, le remettre impérativement sur la position 100 % avant de sauvegarder.
E) Création des autres fichiers bams.
1) XXXXA2 et XXXXA2E
Soit on dispose d'une seconde action d’attaque dans l’animation AoW et on renouvelle les opérations A à D.
Sinon, copier les fichiers XXXXA1.bam et XXXXA1E.bam en XXXXA2.bam et XXXXA2E.bam.
2) XXXXSD et XXXXSDE
Renouveler les opérations A à D avec les animations _IDLE d’AoW.
Puis les copier en XXXXSC et XXXXSCE.
3) XXXXDE et XXXXDEE
Renouveler les opérations A à D avec les animations _DEAD d‘ AoW.
Puis les copier en XXXXSL et XXXXSLE, XXXXTW et XXXXTWE, XXXXGU et XXXXGUE.
4) XXXXTW et XXXXTWE
Les charger dans DLTCEP et supprimer dans chaque séquence toutes les frames sauf la dernière.
Sauvegarder.
:!:
Attention : éviter de supprimer des séquences entières avec DLTCEP qui a tendance à corrompre le fichier bam au passage. Lui préférer et de loin BAMWorkshop I.
5) XXXXGU et XXXXGUE
L'action "Se relever" est l'inverse de "Se coucher" ou "Mourir". Comme le monde est parfois bien fait, il se trouve que DLTCEP possède une fonction (Reverse Cycle) qui permet d'inverser automatiquement l'ordre des frames d'une séquence. Pourquoi s'en priver ?
Charger ces fichiers dans DLTCEP. Activer la commande Reverse Cycle pour chaque séquence (appelée cycle dans DLTCEP).
Et voilà ! Sauvegarder et quitter DLTCEP. C'est terminé ! Enfin presque…
Remarque : la modification de la frame n’est pas très visuelle dans cet exemple car les frames 34 et 35 se ressemblent beaucoup, mais elles ont bien changé de place.
6) XXXXGH et XXXXGHE
Renouveler les opérations A à D avec les animations _HIT d‘AoW.
7) XXXXWK et XXXXWKE
Renouveler les opérations A à D avec les animations _WALK d‘AoW.
8) XXXXCA et XXXXCAE
Soit on dispose d'une animation de lancement de sorts et on renouvelle les opérations A à D.
Sinon, on copie les fichiers XXXXSD.bam et XXXXSDE.bam en XXXXCA.bam et XXXXCAE.bam.
Cette étape est facultative, mais elle « ne mange pas de pain » et évitera tout bug.
Remarques diverses :
- Exporter/Importer dans la même bam peut produire une véritable dégradation des couleurs et de la qualité de l’animation. Donc, c’est à éviter à tout prix. Copier une frame dans BAMWorkshop 2 est aussi à déconseiller.
- Supprimer des frames ou des séquences peut engendrer des problèmes de « corruption » de fichier car BAMWorkshop 2 ne corrige pas correctement la renumérotation des frames restantes. Toujours le faire avec BAMWorkshop 1 qui gère très bien ces manipulations.
E) Test dans le jeu.
Les fichiers bams terminés, il convient de les tester dans le jeu. Pas besoin de cavalerie lourde pour cette étape.
La plupart des animations AoW étant plutôt de petite taille comparées à certaines de BG2, il suffit de sélectionner une créature dont les fichiers bam ne sont pas extraits dans le répertoire override. La Salamandre (ICSALCOL) convient parfaitement.
1) Copier les fichiers bam de la nouvelle animation dans le répertoire override en remplaçant leur préfixe XXXX par MSA2.
► Afficher le texte
On peut utiliser le fichier .bat suivant copié dans le répertoire de base du test (celui où se trouve le jeu, pas les bams) :
@echo off
echo
echo =================================================
echo = INSTALLATION du TEST VISUEL de CREATURE AoW
echo =================================================
echo
:: Variable contenant le répertoire où se trouvent les fichiers bam à tester
:: Ce doit être absolument un chemin complet. A toi de le définir. Ex : C:\BAMS
set AoWBASEREP="C:\NOM DU REPERTOIRE"
:: Isaya pourrait peut-être le vérifier ? Notamment, je compte y intégrer une variable pour définir le préfixe des fichiers bams "XXXX"
cd override
echo Copie des Fichiers bams.
copy %AoWBASEREP%"\XXXXA1.bam MSA2A1.bam
copy %AoWBASEREP%"\XXXXA1E.bam MSA2A1E.bam
copy %AoWBASEREP%"\XXXXA2.bam MSA2A2.bam
copy %AoWBASEREP%"\XXXXA2E.bam MSA2A2E.bam
copy %AoWBASEREP%"\XXXXDE.bam MSA2DE.bam
copy %AoWBASEREP%"\XXXXDEE.bam MSA2DEE.bam
copy %AoWBASEREP%"\XXXXGH.bam MSA2GH.bam
copy %AoWBASEREP%"\XXXXGHE.bam MSA2GHE.bam
copy %AoWBASEREP%"\XXXXGU.bam MSA2GU.bam
copy %AoWBASEREP%"\XXXXGUE.bam MSA2GUE.bam
copy %AoWBASEREP%"\XXXXSD.bam MSA2SD.bam
copy %AoWBASEREP%"\XXXXSDE.bam MSA2SDE.bam
copy %AoWBASEREP%"\XXXXSD.bam MSA2SC.bam
copy %AoWBASEREP%"\XXXXSDE.bam MSA2SCE.bam
copy %AoWBASEREP%"\XXXXSL.bam MSA2SL.bam
copy %AoWBASEREP%"\XXXXSLE.bam MSA2SLE.bam
copy %AoWBASEREP%"\XXXXTW.bam MSA2TW.bam
copy %AoWBASEREP%"\XXXXTWE.bam MSA2TWE.bam
copy %AoWBASEREP%"\XXXXWK.bam MSA2WK.bam
copy %AoWBASEREP%"\XXXXWKE.bam MSA2WKE.bam
:: Si tu n’as pas de fichier XXXXCA et XXXXCA2, rajoute deux «*:*» devant les lignes suivantes
copy %AoWBASEREP%"\XXXXCA.bam MSA2CA.bam
copy %AoWBASEREP%"\XXXXCAE.bam MSA2CAE.bam
@echo.
@echo INSTALLATION du TEST VISUEL de CREATURE AoW TERMINE
@echo.
:: Permet de garder la fenêtre "DOS" ouverte, et donc de consulter les éventuelles erreurs signalées
pause
2) Créer une créature à tester.
a) Ouvrir DLTCEP. Dans le menu Edit -> Créature, charger (Load) ICSALCOL dans la fenêtre qui s’ouvre à gauche.
Deux constatations :
- L’animation est la bonne :
0xe910 ic_salamander2 (qui correspond aux fichiers MSA2xxx)
- La réaction de la créature n’est pas bonne :
0xff enemy. Si on l’importe telle quelle, sa première réaction sera d’attaquer le groupe. Adieu le test !
b) Modifier la réaction de la Salamandre en sélectionnant «
0x05 controlled » dans le menu déroulant. Ainsi, la Salamandre sera sélectionnable et contrôlable par un simple clic, comme n‘importe quel autre personnage du groupe.
c) Sauvegarder la créature sous le nom XXXXy.cre avec "y" = numéro de version du test.
d) Importer la créature XXXXy.cre via la console dans le jeu.
À partir de ce moment, on peut contrôler tous les aspects de la nouvelle animation.
► Afficher le texte
Il existe un « truc » pour visualiser une bonne partie des actions de ta nouvelle animation dans le jeu. Comme souvent, la bonne vieille CLUAConsole en est la clé. Après avoir importé ta créature dans le jeu, utilise [Ctrl] A et [Ctrl] S. [Ctrl] S sélectionne la séquence suivante et [Ctrl] A l’affiche à l’écran.
En voici la liste dans l’ordre (de mémoire) :
- Pause
- Ready
- Attack -Slash
- Attack -Backslash
- Attack -Jab
- Attack -Shoot
- Damage
- Die
- Sleep
- Awake
- Conjure
- Cast
Elle ne les inclut cependant pas toutes, comme walk, twitching, etc. Mais c’est un bon test.
F) Importation dans IE
Cette partie fera l’objet d’un autre post.
Trucs et Astuces
Section en cours d'écriture...
Voilà, je pense que tu vas pouvoir t’amuser pendant ce week-end.
À partir de ton « retour d’expérience », il faudra peut-être aussi que je le modifie car si ces opérations me sont familières, je ne suis pas certain d’avoir été clair sur tous les points. Ça me fait penser à mon apprentissage de la 3D : des procédures élémentaires pour les familiers de la 3D me paraissent parfois bien compliquées, si ce n’est incompréhensibles.