•  

    Merci à Chronis pour ses infos
    Merci à Avenger pour son travail dans DLTCEP

    dernière modification : 26 mai 2015

    Planescape Torment contient un bon nombre d'animations qui sont vraiment bien foutues.
    À tel point qu'elles possèdent certains mouvements (par exemple les gestes que font les persos en parlant) que l'on ne retrouve pas dans Baldur's Gate et Icewind Dale. S'il n'est pas possible de les réutiliser telles quelles, leur structure très proche des anims d'IWD fait qu'il suffit de quelques manips, grandement facilitées par DLTCEP pour les convertir dans un format de type A1-WK, reconnu par Baldur's Gate 2 et bien entendu Icewind Dale
    Par format de type A1-WK, je veux dire des animations composées de fichiers .bam, où chaque fichier représente un mouvement particulier et suit un schéma nominatif typique :
    xxxxA1 (pour la première) jusqu'à xxxxWK (pour la dernière). Ces animations se retrouvent dans Icewind Dale I et II, mais on peut tout à fait les utiliser dans Baldur's Gate 2.

    Pour ceux qui voudraient s'éviter la procédure, la plupart des animations ont été converties par Cuv - bravo pour son travail ! - , et on peut les récupérer sur le site de Spellhold Studios.

    On aura besoin de 4 programmes pour travailler.
    La conversion d'une anim prend en tout environ 15 mn. Pas de quoi se décourager donc !

    Programmes requis :

    1. Un programme pour extraire les fichiers BAM originaux de PST ( Infinity Explorer le fait très bien, WinBiff, si l'on sait quelle archive .bif utiliser, ça peut aller très vite , NearInfinity ...)
    2. DLTCEP (qui dispose de fonctions très intéressantes dans le cas qui nous préoccupe)
    3. BamResizer, pour redimensionner les fichiers .bam (les anims de PST sont d'une échelle légèrement supérieure)
    4. BAMWorkshop I pour une étape de travail optionnelle, que DLTCEP ne gère pas.

    Il vaut mieux éviter d'utiliser BamWorkshop 2 lorsqu'on modifie les séquences d'une animation, car dans ce domaine il est vraiment source de bugs...

    Problème des animations en fausses couleurs :
    Comme dans BG, certains personnages de PST n'ont pas leurs couleurs définitives, mais des zones qui correspondent à des types de couleur (peau, cheveux, habits,etc.), qui sont colorées au cours du jeu; ce qui permet des variations d'habits, de peau, de chevelure. Les anims que l'on récupère "brutes" sont donc en fausses couleurs, et inutilisables telles quelles, car la structure de leur palette ne correspond pas du tout à celle des anims en fausses couleurs de Baldur's Gate.
    La solution la plus simple est de leur attribuer une nouvelle palette, qui respecte l'organisation des couleurs et change certaines de leurs valeurs (cheveux, peau, habits,etc.) de façon à obtenir des couleurs réalistes (voir cet article qui indique comment procéder)

    1ère étape (récupération des fichiers d'animations / renommage)
    1. Tout d'abord, récupérer les anims de PST. Elles seront plus nombreuses que nécessaire (ne pas hésiter parfois à mettre des anims de mouvements passifs dans les attaques, A3 et A4, ça peut apporter de la variété à l'anim, et c'est con de les balancer sinon).

    • Sous Infinity Explorer, un clic droit sur un fichier .bam permet de choisir l'option "Save" (et non pas export !) On indique un répertoire et l'on répète cette opération pour toutes les anims.
    • Sous NearInfinity, un clic droit sur un fichier .bam permet de choisir l'option "Export". L'ordre de classement de NearInfinity n'est, dans ce cas, pas très pratique, car il ne permet pas de lister à la suite les fichiers .bam d'une même anim. On lui préfèra donc Infinity Explorer (ou Winbiff)


    2. Comme elles ne suivent pas du tout le même schéma nominatif, il va d'abord falloir les renommer selon le schéma de type A-WK, en leur donnant un nom approprié à leur mouvement (nous ne disposons alors pas des fichiers ____e.bam, nous verrons comment les créer à l'étape suivante).
    Se rappeler que la longueur du nom complet ne doit pas faire plus que 8 caractères. Les suffixes en occupant entre 2 et 4, il ne reste que 4 caractères pour attribuer un nom.

    Schéma nominatif des anims de type IWD, et correspondance pour PST :
    xxxxA1  [Attaquant 1] = AT1
    xxxxA2  [Attaquant 2] = AT2
    certaines créature ont des attaques en plus :
    xxxxA3
    xxxxA4
    xxxxCA  ["CAst" -> lançant un sort] = SP2 (souvent absent)
    xxxxDE  ["DEad" -> Mourant, mais aussi tombant inconscient] = DFB
    xxxxGH  ["Get Hurt" -> Étant touché, blessé] = HIT
    xxxxGU  ["Get Up" -> Se relevant] = GUP
    xxxxSC  [Debout, sur ses gardes] = CF1
    xxxxSD  [Debout, passif] = STD ou SF1
    xxxxSL  ["SLeep" -> Dormant] = G15
    xxxxSP  ["SPell" ->invoquant un sort] = SP1 (absent chez les créatures non-magiciennes)
    xxxxTW [Mort, à terre - images fixes] = (G14)
    xxxxWK ["WalK" -> Marchant] = WLK

    Notez la différence entre xxxxSC (attitude d'un personnage offensif, prêt à attaquer) et xxxxSD (attitude passive, "paisible"), ainsi qu'entre xxxxSP (invocation d'un sort) xxxxCA (lancement d'un sort).

    Schéma nominatif des anims de type PST  et correspondance pour IWD :
     xAT1xxxx = A1 = Attaque 1
    xAT2xxxx = A2 = Attaque 2
    xC2Sxxxx Stoppant le combat, baissant sa garde  = pas d'équivalent
    xCF1xxxx Mouvement d'arme 1 = pas d'équivalent (peut être mis en xxxxA3)
    xCF2xxxx Mouvement d'arme 2 = pas d'équivalent (peut être mis en xxxxA4)
    xDFBxxxx = DE = Mourant
    xGUPxxxx = GU = Se relevant
    xHITxxxx = GH = Touché (blessé)
    xRUNxxxx Courant = pas d'équivalent
    xS2Cxxxx Se mettant en garde = pas d'équivalent
    xSF1xxxx = SD = Mouvement passif (tournant la tête, se grattant une oreille ou autre, etc..)
    xSP1xxxx = SP = Jettant un sort 1 (ou SPeaking, gestes accompagnant des paroles)
    xSP2xxxx = CA = Jettant un sort 2
    xSTCxxxx = SC = En garde (prêt à combattre)
    xSTDxxxx = SD (Neutre)
    xTK1xxxx Parlant 1 (hochement de tête, mouvement des bras) = pas d'équivalent
    xTK2xxxx Parlant 2 = pas d'équivalent
    xTK3xxxx Parlant 3 = pas d'équivalent
    xWLKxxxx = WK = Marchant

    En gris italique : les animations que l'on ne peut guère réutiliser car elles n'ont pas d'équivalent..
    Les différentes animations ne possèdent pas tous les mouvements listés ci-dessus et certaines en possèdent de spécifiques que je n'ai pas indiqué ici.

    2nde étape (création d'un fichier ____e.BAM)
    Ensuite, on va devoir créer des orientations manquantes. Dans IWD/BG2, chaque action animée est répartie en 2 fichiers :
    - le premier contient 5 angles d'animation (S, SO,O,NO,N)
    - le second, ayant le suffixe _____e, ne contient que 3 angles (NE,E,SE), qui ne sont que la symétrie des angles Nord-Ouest, Ouest et Sud-Ouest du premier fichier.

    Les animations de PST n'ayant pas les fichiers BAM de second type, on va devoir créer un fichier ____e.BAM pour chaque animation, en se basant sur les fichiers récupérés dans PST et en y appliquant un effet de symétrie (miroir).

    Ce serait assez laborieux à faire manuellement, heureusement, DLTCEP permet de faire tout cela automatiquement ! Génial !!! (et un grand merci à Avenger)
    Seules quelques anims de format particulier (nombreuses frames ou autres) passent à la trappe (nous verrons les cas particuliers ensuite - pour info, il suffit de les modifier en amont en les ramenant à un nombre de points de vue standard pour éviter ce problème)

    • Ouvrir le fichier .BAM sous DLTCEP ("Load external BAM")
    • Dans l'onglet "Tools", choisir "Create mirror frames", et DLTCEP crée automatiquement le bon nombre de frames (8) avec les 5 premières vides et les trois dernières en miroir).
    • Il ne reste plus qu'à enregistrer sous (Save Bam As) (...et DLTCEP nous prépare le nom de fichier en ajoutant le suffixe E au fichier que l'on vient d'ouvrir, du travail de pro !)


    On procèdera ainsi pour toutes les anims, excepté la dernière xxxxWK qui pose parfois un petit soucis :
    Si DLTCEP ne parvient pas à appliquer son effet miroir, un message d'erreur apparait :
     "This function works only on special animation bams. See the manual !"
    Il se contente alors de créer une copie. Cela se produit généralement avec les anims de types WK, et globalement avec celles ayant plus de  5 séquences (0-4). Les anims de PST où les créatures marchent, sont représentées sur plus d'angles (un luxe inexistant sous BG2/IWD !) et ont 8 séquences (0-9) : DLTCEP ne pige pas ce qui se passe et affiche cette erreur.
    La encore, le programme a tout prévu, sans devoir passer sous BAMWorkshop pour supprimer des anims, il dispose d'un outil tout prêt, pour réduire les anims à 5 :
    - dans l'onglet "Tools", choisir "Reduce orientation" et en principe, ça marche nickel !
    Il reste plus qu'à appliquer l'effet miroir, qui ce coup-ci fonctionne parfaitement, et bien entendu enregistrer l'anim.

    2b - création de l'anim TW/TWE
    Les anims de BG2/IWD disposent de séquences qui représentent la créature morte/allongée.  Il ne s'agit pas d'une animation, mais simplement de deux images fixes déclinées sous les angles de vue classique (S, SO, O, NO, etc..). Or on ne trouve que très rarement cette anim dans PST, et sous des noms différents (xCOLxxx ou DEADxxxx).
    Le plus simple est alors de faire une copie de l'animation de la créature mourant, et de ne garder que les frames finales où elle est étendue à terre sous les différents angles.

    Pour cette procédure, DLTCEP nous aide bien là encore :

    • faire une copie de l'animation de la créature mourant (xxxxDE) et la renommer correctement : xxxxTW
    • l'ouvrir dans DLTCEP
    • Dans l'onglet "Tools", choisir l'option "Drop all but last" (supprimer toutes les frames sauf les 2 dernières)
    • Enregistrer l'anim, puis, comme pour les cas précédents, dans l'onglet "Tools", choisir l'option "Create mirror frames" afin d'avoir son pendant _____e.
    • Enregistrer sous (Save Bam As) la nouvelle anim xxxxTWe, et le tour est joué.


    3ème étape (redimensionner l'animation)
    L'échelle des personnages est légèrement plus grande sous PST. Si l'on garde des anims de même taille pour des créature humanoïdes, on obtient systématiquement des "ogres" sous BG/IWD ! Il faut donc les redimensionner !
    On utilisera un programme qui fonctionne en mode commande : Bam resizer
    Son intérêt majeur, est de pouvoir traiter des fichiers par lot. Il suffira de taper une commande pour que toutes les frames de toutes les anims soient redimensionnées: un sacré gain de temps !
    Pour le faire fonctionner, il faut lancer, sous Windows, la console de commande (Exécuter -> cmd) et se positionner dans le dossier où se trouve Bam resizer.

    pour rappel :
    pour changer de disque dur, on écrit simplement son nom de volume, par ex. d:
    pour remonter dans un répertoire parent, utiliser la commande cd..
    pour se placer dans un répertoire donné, utiliser la commande cd /[nom du répertoire] par exemple cd /utilitaires/bamresize
    ... sinon la commande help offre la liste des commandes disponibles et le commutateur  /? après une commande, permet d'avoir l'aide qui est associée à cette commande.

    Attention au chemin dans lequel se trouve "bamresize.exe" (dossier de -8 caractères, pas d'espaces, etc.). Si l'on a un chemin d'accès du type :
    G:\Sauvegardes permanentes\Programmes\Jeux\Utilitaires d'Édition de Jeux\ = non fonctionnement assuré
    Le plus simple est de copier le dossier à la racine d'un disque dur pour travailler.

    Par défaut le programme redimensionne à 75 %, mais on peut changer ce paramètre.

    exemples de syntaxes :
    bamresize MN03A1.bam
     -> Redimensionne toutes les frames du fichier MNO3A1.bam à 75% et crée un fichier MNO3A1R.bam

    bamresize -p 90 c:\extractedBams\*.bam
     -> Redimensionnes toutes les frames de tous les fichiers .bam présents dans le dossier \extractedbams à 90%

    75% est un bon réglage et fonctionne correctement pour la plupart des anims, mais on peut l'ajuster au pourcentage que l'on souhaite (pour des anims d'humains, la réduction est trop grande : prendre une valeur comme 90%)

    4ème étape (optionnelle)
    On contrôlera l'animation dans le jeu après l'avoir redimensionnée afin de voir s'il est nécessaire de passer par cette étape.
    Le redimensionnment n'est parfois pas parfait. Il arrive que durant le déroulement du processus, une frame soit déplacée d'un pixel. Ce n'est pas notable lorsque la créature se déplace, mais on le remarque sur des scène fixes, donnant l'impression que la créature se soulève. Il faudra retravailler le fichier .bam sous BamWorkshop, en remplaçant les frames décalées par des frames proches. L'animation perd un peu en "richesse" de mouvements, mais c'est la solution la plus simple.

    Exemple d'un fichier ayant 12 frames par direction, et dont 3 d'entre elles sont décalées :

    Original..........Corrigé
    1...................1
    2...................2
    3...................3
    4...................4
    5...................5
    6...................6
    7 décalé....... 6 (copie)
    8 décalé........11 (copie)
    9 décalé........11
    10 décalé......12
    11
    12

    Quelques exemples (archives .rar contenant des fichiers .bam) :

    moine Moine  Ange déchu ratRat

     


    2 commentaires
  • modifié le 14 septembre 2016

    Icewind Dale II, avec 307 animations, contient beaucoup plus de créatures qu'Icewind Dale (225). Comme lui, il reprend bon nombre d'animations des Baldur's Gate I et II (qui n'en avait que 126) :toutes celles des PJ, des civils, certains animaux; mais aussi de Planescape Torment (qui sont d'ailleurs vraiment excellentes !).

    Pour assurer une continuité, et éviter sans doute de s'emmêler les pinceaux, les développeurs ont conservé les mêmes références aux mêmes animations au travers des différents jeux, dans les fichiers .IDS et les fichiers .BAM.
    Par exemple l'Ours noir est à l'adresse 0x7200 BEAR_BLACK et les fichiers .bam qui lui sont associés s'appelent MBERG1, MBERG1E, MBERG2, MBERG2E. Comme IWD2 est sorti après BG2, toutes les références des anims de BG2 existaient déjà, et divers fichiers d'IWD2 indiquent que les développeurs avaient intégré leur références dans le jeu, dans l'optique peut-être de les utiliser, ou simplement pour éviter d'utiliser des références existant déjà. Pourtant, si l'on parcourt les fichiers .bam, on se rend vite compte que toutes n'ont pas été utilisées. Impossible d'avoir les anims d'Elminster ou de Volo, des animaux sympa comme les élans, les daims ou les lapins, etc.
    Comme ces références sont "connues" du moteur du jeu, il peut suffire de copier les fichiers .bam correspondant aux anims que l'on veut rajouter dans le dossier override pour qu'elles puissent être utilisées par le jeu. Encore faut-il les connaître, et pouvoir les manipuler aisément (et qu'elles fonctionnent, car toutes ne semblent pas opérationnelles). C'est pourquoi il est préférable d'avoir recours à deux fichiers particulièrement utiles, ANIMATE.SRC et ANIMATE.IDS, et de modifier ce second fichier afin de pouvoir les utiliser dans des fichiers .CRE ou des scripts.

    ANIMATE.ids & ANIMATE.src

    Deux fichiers tiennent lieu d'index, et permettent de connaître les références et d'appeler facilement les animations des créatures du jeu, via un alias (c.a.d un nom associé à un chiffre, et plus facile à retenir qu'elle) : ANIMATE.ids et ANIMATE.src.
    Ce fonctionnement est un peu différent de BG2 qui utilise deux fichiers .ids pour indexer les animations, et offre la possibilité d'ajouter de nouvelles animations au jeu : ANIMATE.ids et ANISND.ids.

    • Le fichier animate.ids indique l'adresse des animations qui existent dans le jeu, et leur associe un nom qui permet de les appeler facilement dans des fichiers .CRE ou des scripts.
    • Le fichier animate.src est une simple liste de toutes celles connues par le moteur du jeu. Il nous renseigne sur les références des fichiers .bam qui sont invariablement associées à certaines adresses.
      Malheureusement, toutes les références listées ne sont pas utilisables. Un certain nombre ne peuvent être appelées, et font planter le jeu si l'on cherche à les utiliser (voir en fin de page)

    Quand on se penche sur ce fichier ANIMATE.SRC (consultation sous NearInfinity, puis exportation pour une utilisation plus souple - le fichier s'ouvre avec un simple éditeur de texte), on constate qu'il liste la quasi totalité des anims de BG2 (seulement une quinzaine ne sont pas listés comme les variations de couleur des Dragons) ainsi que la totalité de celles d'IWD et les nouvelles d'IWD2 lui-même.
    Parmis les références et les fichiers .BAM auxquels elle renvoient, on se rend compte qu'un certain nombre n'ont jamais été utilisées par le jeu (fichiers .bam inexistants, aucune référence dans des fichiers .CRE, des dialogues ou des scripts). Au total, une quarantaine d'animation dont une vingtaine de BG2 et une vingtaine d'IWD1.

    Chaque animation est listée selon une syntaxe qui reprend celle des jeux dont elle provient :

    // CGAMEANIMATIONTYPE_BEAR_BLACK
    0x7200=MBERG1
        pour les anims issues des Baldur's Gate

    // Barbarian 3
    0xF798=MBA3WK
        pour les anims issues d'Icewind Dale et créées pour IWD1/IWD2

    À la différence de BG2 où l'on doit créer des entrées dans le fichier anisnd.ids pour pouvoir ensuite en ajouter dans animate.ids, le fichier animate.src nous prémâche donc le travail ! Les références étant connues, il suffit :

    1. d'ajouter celles que l'on souhaite au fichier ANIMATE.ids
    2. de récupérer les fichiers .bam qui leur sont associés tels quels et de les copier dans le dossier OVERRIDE d'Icewind Dale 2

    Ajout des références au fichier ANIMATE.ids

    Le fichier ANIMATE.ids, comme la plupart des fichiers .ids, est un outil de modding dans le sens où le moteur du jeu n'a pas besoin de lui pour tourner (on peut marquer n'importe quoi dans ce fichier sans que ça ait la moindre conséquence sur les fichiers existants et le fonctionnement du jeu).
    En revanche lors de la création ou la modification de fichiers existants, les fichiers .ids servent à associer une adresse (par exemple 0x6403) à un nom (SKELETON), plus facile à retenir. Si dans un fichier .CRE on souhaite appeler l'animation du Squelette, on pourra le faire en indiquant sa référence en hexadécimal ou tout simplement son nom. Le moteur du jeu trouvera la première via le second, grâce à la "table de concordance" que représente le fichier ANIMATE.ids.

    Supposons que l'on veuille ajouter Drizzt et Volo. On va d'abord rechercher leurs références dans le fichier animate.src, et l'on obtient :

    // CGAMEANIMATIONTYPE_VOLO
    0x2100=UVOLG1

    // CGAMEANIMATIONTYPE_DRIZZT
    0x6400=UDRZ1G1

    • La première ligne indique, après l'expression CGAMEANIMATIONTYPE_,  le nom sous lequel l'animation est appelée par convention. Dans la mesure du possible, et dans l'optique du modding où d'autres personne peuvent être amenées à travailler avec les mêmes fichiers, autant respecter cette convention.

    • La seconde ligne contient l'adresse à laquelle l'animation qui lui correspond est connue dans le jeu (le moteur du jeu ne connait que celle-là : à une adresse donnée correspond une référence d'animation, et aucune des deux ne peut être changée)

    Ouvrons maintenant le fichier animate.ids
    Si l'on est familier avec celui de BG2, on remarque que le classement des références varie entre BG2 et IWD : il est fait selon l'adresse pour les anims de BG2 puis selon le nom pour IWD2. Ce classement est pratique car il permet de trouver les références d'une animation de manière assez rapide. Du point de vue du fontionnement du jeu, peu importe où l'on écrit une référence, seule la syntaxe [adresse] [nom] et son exactitude comptent.

    Pour garder la logique du fichier, et éviter de perdre son temps à chercher une référence par la suite, autant ajouter nos deux références à la place qu'elles ont dans le fichier .ids de BG2, en recopiant les références d'adresse et de nom que l'on a notées précédemment :

    0x2100 VOLO
    0x4000 STATIC_NOBLE_MAN_CHAIR
    0x4002 STATIC_NOBLE_MAN_MATTE
    0x4010 STATIC_NOBLE_WOMAN_CHAIR
    ...
    0x6312 THIEF_FEMALE_DWARF
    0x6313 THIEF_FEMALE_HALFLING
    0x6400 DRIZZT
    0x6402 MONK
    0x6403 SKELETON

    Modification optionnelle : Un fichier .ids commence par indiquer le nombre de références qu'il contient (307 dans le fichier original). Comme nous venons d'en ajouter deux, il convient de modifier ce chiffre (ainsi on saura du premier coup d'oeil dans quelle mesure ce fichier a été modifié). Nous aurons donc désormais :

    309
    0x2100 VOLO
    0x4000 STATIC_NOBLE_MAN_CHAIR
    0x4002 STATIC_NOBLE_MAN_MATTE
    ...

    Il ne reste plus qu'a récupérer les fichiers .bam dans Baldur's Gate 2, en se basant sur le nom que nous a donné le fichier .src : UVOLG1 et UDRZ1G1. Le plus simple est d'utiliser NearInfinity pour ce travail, puisqu'il liste entre autres tous les fichiers .bam d'un jeu et permet de les extraire.
    L'animation se composant de plusieurs fichiers .bam, il faudra récupérer tous ceux dont la racine du nom est UVOL et UDRZ, puis les copier dans le dossier OVERRIDE d'IWD2.

    attention

    Il reste aussi à récupérer/ajouter les sons associés à la créature et à modifier le fichier sounds.ini en conséquences... mais ceci fait l'objet d'un autre article !

     

    Peut-on ajouter de nouvelles animations de créatures à Icewind Dale 2 ?

    Les références des animations de créatures que le jeu connaît sont codées dans le fichier .exe du jeu, ce qui voudrait dire modifier ce fichier, et ne peut être fait que par un programmeur (ce qui a été fait pour le moteur de BG2, grace au mod "Infinity Animations" d'Erephine, mais qui n'existe pas pour l'heure pour Icewind dale I et II)
    Au niveau du modding, à défaut d'ajouter, on se contentera de connaître ces références, de savoir à quoi elles sont associées et de remplacer les fichiers qu'elles appellent.

    C'est en utilisant NearInfinity et ses fonctions de recherches que l'on peut arriver à savoir quelle animation est associée à un fichier .cre et plus rarement des fichiers .bcs ou .dlg
    ... ce qui nous réserve certaines surprises :

    1. un certain nombre de références sont manquantes dans le jeu (leurs fichiers .bam ne sont pas présents dans le jeu). Les animations appelées par ces références étant manquantes, on peut mettre celles de son choix, sous le nom connu par la référence, en prenant garde qu'elles soient de la même structure que celle qui était appelée (c'est ce que nous venons de voir dans cet article)

    Deux sources de références nous indiquent les animations que le jeu connait:
    - le fichier ANIMATE.IDS liste toutes les références des animations utilisées par le jeu, telles qu'on les trouvent dans des fichiers .CRE ou .BCS... et pourtant toutes ne le sont pas ! Il manque purement et simplement les fichiers .bam d'une bonne vingtaine, qui proviennent toutes d'IWD1. On peut bien entendu récupérer ces fichiers et les copier dans le dossier OVERRIDE, mais rien n'empêche d'en mettre de nouvelles, en respectant comme toujours leur structure (A1-WK, G1-G26)

    Listes des animation manquantes, listées dans le fichier animate.ids, avec le nom du fichier .bam sous lequel elles doivent être appelées et son type :

           

    Ref. Décimal Refs. Hexa Nom
    Fichier .bam Type
    60168 0xEB08 Animated Plate MANI [A1-WK]
    60184 0xEB18 Animated Plate 2 MAN2 [A1-WK]
    60200 0xEB28 Animated Plate 3 MAN3 [A1-WK]
    60401 0xEBF1 Arundel MARU [A1-WK]
    63384 0xF798 Barbarian Warrior 3 MBA3 [A1-WK]
    59249 0xE771 Barbarian Shaman 1 MBA4 [A1-WK]
    59265 0xE781 Barbarian Shaman 2 MBA5 [A1-WK]
    59308 0xE7AC Barbarian, Icasaracht MBAI [A1-WK]
    60217 0xEB39 Belhifet MBE1 [A1-WK]
    60233 0xEB49 Belhifet, Priest MBE2 [A1-WK]
    32516 0x7F04 Golem, Iron_BG2 (audio non-modifiable) MIGO [G1-G26]
    60265 0xEB69 Lich, White MLIC [A1-WK]
    32548 0x7F24 Pirate - (audio non-modifiable)
    NPIR [G1-G26]
    32554 0x7F2A Sailor (Marin) - (audio non-modifiable)
    NSAI [G1-G26]
    60241 0xEB51 Seer (voyante d'HoW)
    MSEE [A1-WK]
    59672 0xE918 Shadow, Buff MSH2 [A1-WK]
    60337 0xEBB1 Shrieker (criard) MSHR [A1-WK]
    59385 0xE7F9 Umber Hulk, Vodyanoi MUM2 [A1-WK]
    57938 0xE252 Water Weird (Élémental d'Eau) MWWE [A1-WK]
    58201 0xE359 Wight 2 MWI2 [A1-WK]
    58217 0xE369 Wight 3
    MWI3 [A1-WK]


     

    - le fichier ANIMATE.SRC liste toutes les références des animations connues par le jeu. Là encore, un grand nombre d'animation, en plus de celles précedemment indiquées, n'ont pas été utilisées par le jeu. Leurs références n'apparaissent dans aucun fichier du jeu, et les développeurs ne les ont donc pas intégrées au fichier ANIMATE.IDS.
    Il s'agit en quelques sorte de "fossiles de programmation", le moteur d'IWD2 étant construit par-dessus celui des Baldur's Gate, dont certains peuvent être activés et d'autres non.
    Leur utilisation peut poser problème : certaines font planter le jeu, d'autres ne peuvent pas être sonorisées (on a beau associer un son à leur réf., il n'est pas joué), d'autres enfin marchent parfaitement !

    Liste de celles qui marchent parfaitement :

    // CGAMEANIMATIONTYPE_SIRINE - Sirène
    0x2000=MSIRG1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_VOLO - Volo
    0x2100=UVOLG1

    // CGAMEANIMATIONTYPE_OGRE_MAGE - Ogre-Mage
    0x2200=MOGMG1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_DRIZZT - Drizzt 
    0x6400=UDRZ1G1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_SAREVOK - Sarevok
    0x6404=USAR1G1

    // CGAMEANIMATIONTYPE_OGRILLON - Ogrillon
    0x7001=MOGNG1

    // CGAMEANIMATIONTYPE_BASILISK - Basilic
    0x7100=MBASG1

    // CGAMEANIMATIONTYPE_ELEMENTAL_BG2 - Élémental de Feu BG2
    0x7310=MFIEG11

    // CGAMEANIMATIONTYPE_GIBBERLING - Grouilleux
    0x7800=MGIBG1

    // CGAMEANIMATIONTYPE_KOBOLD_XVART - Xvart
    0x7C00=MXVTG1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_KOBOLD_TASLOI - Tasloï
    0x7C01=MTASG1 

    // CGAMEANIMATIONTYPE_ZOMBIE - Zombie
    0x7D00=MZOMG1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_TROLL - Troll
    0x7F00=MTROG11

    // CGAMEANIMATIONTYPE_KOBOLD - Kobold
    0x8200=MKOBG1 (fausses couleurs)

    // CGAMEANIMATIONTYPE_EAGLE - Aigle
    0xD000=AEAGG1 (1 bam statique)

    // CGAMEANIMATIONTYPE_SEAGULL - Goéland
    0xD100=AGULG1 (1 bam statique)

    // CGAMEANIMATIONTYPE_VULTURE - Vautour
    0xD200=AVULG1 (1 bam statique)

      Liste des références qui posent problème (plantage ou non affichage dans le jeu) :

    0x3000 ANKHEG
    0x6401 ELMINSTER

    0x7311 ELEMENTAL_FIRE_SMALL
    0x7703 GHOUL_SHADOW
    0x7F09 SAHUAGIN
    0x7F0C KUOTAI
    0x7F0D LICH
    0x7F0E DEMILICH
    0x7F0F TROLL_SMALL
    0x7F12 VAMPIRE
    0x7F14 GITHYANKI
    0x7F15 BEHOLDER_SMALL
    0x7F16 MOOSE
    0x7F17 RABBIT
    0x7F19 DANCING_SWORD
    0x7F20 GROUNDHOG
    0x7F21 PHEASANT
    0x7F22 VAMPIRE_FEMALE
    0x7F23 SAHAUGIN_LARGE
    0x7F28 KUO-TOA_LARGE
    0x7F2C AMISH_SOLDIER
    0x7F2D WYVERN_FAMILIAR
    0x7F30 BODHI
    0x7F31 ELLESIME
    0x7F35 MIST_CREATURE
    0x7F36 SHADOW_THIEF
    0x7F37 JON_IRENICUS

    Le fait qu'une adresse pose problème empêche nullement de récupérer l'animation qui lui est associée par défaut; il faudra juste l'associer à une autre adresse appellant une animation de même type, et attribuer aux fichiers .bam les noms qui y correspondent.
    Je n'ai par exemple pas pu réutiliser les anims d'Elminster aux références qui lui sont attribuées ( 0x6401 ELMINSTER) : l'animation n'apparaissait pas dans le jeu ! (d'autres font purement et simplement planter le jeu)

    [ Globalement, c'est surtout avec des anims de type G1-G26 que ça bloque. La solution consiste à convertir ces animations en animations de type A1-WK. J'indique la procédure à cette page -> ]

    Après plusieurs tests, j'ai réussi à afficher les .bam d'Elminster en utilisant l'adresse des anims de Sarevok (0x6404 dont l'animation, par chance, ne me plait pas des masses...) J'ai donc dû entrer comme référence dans le fichier animate.ids 0x6404 ELMINSTER et surtout renommer les fichiers .bam de l'anim d'Elminster sous le nom de celle de Sarevok (USAR1A1, USAR1A3, USAR1A5, USAR1G1, USARW2, et leurs pendants xxxxxxE)


    2. d'autres sont inutilisées, au sens où les fichiers .bam existent, mais aucune créature et aucun script ne les utilise.
    Leur modification est à priori possible, sans crainte de répercussions dans le jeu, mais n'a pas été totalement vérifiée.
    Dans ce cas, il sufit, pour remplacer les fichiers .bam, de copier dans le dossier OVERRIDE les nouvelles animations ayant le nom de celle que l'on veut remplacer, en prenant les même précautions que précédemment vis à vis de leur structure (A1-WK, G1, etc...)

    Liste des références du fichier ANIMATE.IDS inutilisées par le jeu :

    53248   0xD000 BIRD, EAGLE (Aigle)  - AEAG [G1]
    53760   0xD200 BIRD, VULTURE (Vautour) - AVUL [G1]
    58120   0xE308 Ghoul - MGH2 [A1-WK]
    58136   0xE318 Ghoul 2  - MGH3 [A1-WK]
    58249   0xE389 Mummy  - MMUM [A1-WK]
    32562   0x7F32 Slayer - MSLY [G11]
    58441   0xE449 Svirfneblin armé d'une hache - MSVI [A1-WK] 


    1 commentaire
  • En écho aux articles écrits à ce sujet (Création d'une map avec l'éditeur d'AoM et Ajout de nouvelles textures dans l'éditeur), voici un récapitulatif des programmes utiles pour tirer pleinement parti de l'éditeur d'Age of Mythology en tant qu'outil de création de maps pour Baldur's Gate ou Icewind Dale :

    New Editor
    Ajoute de nombreuses fonctions à l'éditeur, mais celle qui m'intéresse le plus, pour la création de maps est celle qui permet de faire une capture écran de grande taille de la map créée dans l'éditeur.
    Télécharger New Editor v.9.5 pour AoM seul
    Télécharger NEW X EDITOR 3 pour AoM avec The Titans

    Merci à son concepteur : Reyk

    AoMEd v.06C-05 [11.01.2005]   Télécharger AoMEd v.06c-05
    Permet de convertir différents formats propres à AoM, vers des formats standards :

    • DDT vers BMP et vice versa
    • XMB vers XML
      ...

    Très utile pour créer de nouvelles textures, ou modifier certains paramètres de l'interface.
    Attention j'ai connu des problèmes avec la version 06B  , c'est pourquoi celle que je mets en partage est la v.06C-05.
    Vous pouvez télécharger l'ensemble des versions sur la page : http://games.build-a.com/aom/files/

    Merci à son concepteur : Ykkrosh

    AoE3Ed [11.01.2005]   Télécharger
    J'ai connu des soucis pour convertir les fichiers .XMB en .XML avec les différentes versions d'AoMEd, je crois que ça vient surtout de la présence de l'expansion "The Titans"... bref.
    Grâce à l'utilitaire "FileConverter.exe", la conversion s'opère sans problèmes.

    Merci à son concepteur : Ykkrosh


    BAR Explorer   Télécharger BAR Explorer
    v.1.1.7 – Nov 22, 2002
    Indispensable pour extraire certains fichiers que l'on souhaite modifier, logés dans des archives .BAR

    Merci à son concepteur : Vachu


    votre commentaire
  • dernière mise à jour : 6 juillet 2015


    Nous avons vu dans l'article précédent comment utiliser l'éditeur d'AoM pour créer de nouveaux fonds de carte, disposant de reliefs agrémentés de rivières ou autre, et permettant de changer des paysages de BG1/BG2 à la platitude un peu surannée.
    Une fois que l'on commence à s'amuser à créer des cartes, on peut vouloir améliorer l'éditeur, en l'enrichissant de nouvelles textures. Car si les textures d'origine ne sont pas mal, des jeux comme Oblivion, Titan Quest, Spellforce 2 ou même Age of Empires III en ont de très bonnes dont je ne vois aucune raison de se priver !

    Il faudra procéder en deux grosses étapes

    1. Création de la texture (qui peut se réduire à une simple conversion de format de fichier)
    2. Importation dans l'éditeur

    1 - Création de nouvelles textures
    Les textures d'AoM ont leur propre format .DDT et leur taille doit être de 128x128 pixels ou 256x256 (noter qu'on ne peut pas réutiliser les textures d'Age Of Empires III elles aussi en .DDT, telles quelles pour AoM : leur taille est différente et fait planter l'éditeur. Il faudra donc les convertir, malgré qu'elles aient la même extension)
    Le plus grand format n'est pas toujours le meilleur : les dalles en 256 sont souvent pixellisées et doivent être passées en 128 (j'ai été obligé de le faire pour pas mal de textures récupérées sur Spellforce ou Titan Quest) même si le 128 donne plus vite un côté répétitif... Il vaut donc mieux tester et ne pas hésiter à rester en 128.
    Les "bons" 256 sont ceux que l'on créés à partir de 128. Prendre une texture de 512 et la réduire à 256 n'est pas toujours satisfaisant, loin s'en faut.
    Des dalles de 512x512 plantent le programme !


    Fort heureusement, il existe un programme, AoMEd v.06c-05 qui permet de passer d'un format basique comme le .BMP vers .DDT
    Pour créer de nouvelles textures, il suffira donc d'avoir un .BMP que l'on convertira ensuite en .DDT
    Format :
    BMP 24-bit 128x128 ou 256x256 (en 32 bits, la texture est incorrectement convertie et affichée par l'éditeur) penser à supprimer la couche alpha s'il y en a une.

    Conversion :
    Utiliser AoMEd v.06c-05  (merci à son concepteur, Ykkrosh)
    Attention, la version v.06b plante !

    • Lancer le programme, et choisir "Direct File Conversion"
    • sélectionner le fichier .bmp à convertir
    • indiquer le répertoire où le fichier .ddt sera enregistré, et éventuellement son nom (il prend par défaut celui du .bmp)
    • Préciser le format .DDT (... il y a pas mal de choix...heureusement le premier est le bon !) : Paletted [16-bit], no alpha [0]
    • ...et préciser le Mipmap levels : 2 (par défaut)

    La conversion par groupe "Bulk conversion" fonctionne mal, pour ne pas dire qu'elle n'a jamais correctement marché, on procèdera donc fichier par fichier...

    Bon, maintenant il nous reste à pouvoir utiliser notre texture dans l'éditeur. C'est un peu fastidieux à apprendre la première fois, mais avec un minimum d'organisation, ça se fait ensuite sans peine.

    2 - Installation - utilisation des textures dans l'éditeur
    On place les nouveaux fichiers .ddt dans le dossier :
    ...\Age Of Mythologie\textures\terrain
    (On peut modifier "à chaud" les textures contenues dans ce dossier, pour les tester seulement : si l'éditeur est lancé, elle apparait alors et est utilisable)
    Par défaut ce dossier est vide, il sert donc spécialement à ajouter de nouvelles textures à l'éditeur.

    Ça se complique un peu (surtout en perte de temps que l'on aimerait passer à autre chose) quand il faut modifier deux fichiers terraintypes.xml et blends.txt pour paramétrer/utiliser plus facilement les textures dans l'éditeur.
    Il va falloir d'abord récupérer ces deux fichiers dans des archives .bar (...format spécifique...programme spécifique...qu'est-ce qu'on s'amuse !), les modifier et les placer enfin dans le même répertoire \textures\terrain

    • Récupérer les programme BAR Explorer
    • Avec BAR Explorer, parcourir le fichier textures2.bar (localisé dans le répertoire \nom du jeu\terrain).
    • Extraire les fichiers terrain\terraintypes.xmb (vers la fin du second tiers de la liste)  dans un dossier à part, ainsi que le fichier blends.txt.
    • Avec AoMEd,  convertir le fichier terraintypes.xmb en .xml (éditable avec Notpad ou autre)
    • Modifier ces 2 fichiers (voir ci-dessous)
    • Les placer dans le répertoire \terrain\textures

     

    terraintypes.xml indexe les noms des textures et permet de les classer dans l'éditeur par type de terrain (snow, sand, etc...), en y ajoutant certaines caractéristiques (comme leur couleur sur la minimap...).
    L'éditeur range automatiquement par ordre alphabétique les textures qui appartiennent à un type de terrain (inutile donc de vouloir faire son propre rangement dans une section).
    Ce fichier s'édite très facilement (format texte) et permet d'avoir ses propres noms de fichiers, et son propre classement.
    Lorsqu'on crée/modifie le fichier .XML, il est indispensable de ne pas conserver une copie du fichier .XMB du même nom dans le répertoire terrain du jeu (les fichiers .XMB ayant la priorité sur les fichiers .XML) L'éditeur le récrée automatiquement au lancement, à partir du fichier .XML (en d'autres termes :

    • si le fichier .XMB est présent, le fichier .XML n'est pas lu
    • si le fichier .XMB est absent, il est créé à partir du fichier .XML

    Ajout d'une entrée pour une texture dans le fichier terraintypes.xml :
    Il suffit d'indiquer le nom du fichier à utiliser (sans son extension .ddt), en ajoutant/modifiant une ligne existante dans la catégorie de type de terrain à laquelle on veut l'associer.
    Restrictions sur les noms : pas d'accents ni d'espaces !
    Le plus simple est alors de reprendre une ligne qui liste une texture, et d'y mettre le nom de la nouvelle texture.
    Si j'ai créé le fichier "terrain_songglass_09.ddt" et qu'il s'agisse d'une texture de neige, dans le section
    <uiclass uiname="Snow">
    j'ajouterai la ligne :
    <subtype mapcolor="183 206 210">terrain_songglass_09</subtype>
    (mapcolor="xxx xxx xxx" permet d'indiquer la couleurs RVB qu'aura la texture sur la minimap - son intérêt est donc minime)

    blends.txt défini les priorités des textures les unes sur les autres, ce qui a un impact sur leur fusion ("blend"). Le fichier texte est d'ailleur explicité, en anglais. Je n'ai pas poussé trop en avant l'investigation du fonctionnement de ce fichier... si vous vous en sentez le courage je serai ravi d'en partager les fruits !
    Dans la section BlendOrder, il va s'agir d'indiquer le nom des nouvelles textures selon la priorité que vous voulez leur accorder (une texture de terrain, d'herbe, passera en général par dessus une texture de rocher, de même pour l'eau ou la neige qui recouvrent des étendues). La liste fonctionnant comme un empilement, les textures du début de liste seront celles du dessous, celles de la fin correspondront au dessus.

    Une fois les fichiers terraintypes.xml et blends.txt correctement modifiés, il suffit de les placer dans le dossier \textures\terrain, en pensant bien à supprimer le fichier terraintypes.xmb si il est présent.

    En principe, il ne reste plus qu'à voir ce que ça donne dans l'éditeur.

    Pensez alors que les maps que vous créerez ne seront utilisables/chargeables que si les textures que vous avez ajoutées existent et sont accompagnés des bons fichiers terraintypes.xml et blend.txt

     

    J'ai mis une archive en partage, où vous pourrez télécharger un stock de textures à utiliser dans l'éditeur :  Textures Editeur AoM

     


    votre commentaire
  • dernière modifications : 10 octobre 2012

    Il existe une foule de moyens pour créer l'image de fond qui servira de map aux jeux de type Baldur's Gate / Icewind Dale.
    Le premier et le plus simple consiste généralement à reprendre celles existantes, en faisant des collages (vive le tampon sous Photoshop !) qui se fondent plus ou moins bien. Le problème auquel on se heurte alors est celui du manque d'unité graphique et d'originalité : en reprennant des morceaux de maps de BG1, avec un brin de BG2 et certaines maps d'IWD, on en arrive à un patchwork plus ou moins hétéroclite qui laisse toujours un goût de déjà vu...


    Le plus complexe consiste à les créer entièrement dans un logiciel 3D (comme 3Ds Max), puis à en tirer un screen qui sera généralement retravaillé sous des programmes comme Photoshop, à la manière des graphistes qui ont fait les maps de ces jeux. Ce qui implique un  énorme travail de modélisation en amont (architectures, élément du paysage) et bien entendu la maîtrise de logiciels 3D. Ce qui n'est pas à la portée de tout le monde.

    Quand j'ai essayé de faire mes propres maps, voulant essayer de faire mieux que la première solution, et n'ayant pas la maîtrise suffisante pour me hisser à la seconde, j'en ai trouvé une qui permet de composer un paysage avec des reliefs réalistes, très simplement : en utilisant l'éditeur de scénario d'Age Of Mythology ! Grâce aux modifications que lui a apporté Reyk, il est possible de réaliser un screenshot de bonne qualité, qui pourra servir de très bonne base de travail.
    Celui d'Age of Empire III serait encore mieux, mais il ne permet hélas pas de faire des screens de grande taille.

    Un exemple de map faite avec l'éditeur d'AoM

    Un exemple de map faite avec l'éditeur d'AoM, qui m'a servi de point de départ pour la zone AR1405. Cliquez pour télécharger l'image en haute résolution.

    Procédure :

    0. Avoir AoM d'installé (!!)

    1. Installer le nouvel éditeur.
    Il existe une version pour AoM seul, et une version pour AoM et l'add-on Titans. Pour ce qui nous concerne (réaliser une map en relief) ils sont tous deux équivalents. Tout dépend de la configuration de votre installation.

    L'installation se fait sans problème, et le nouvel éditeur s'intègre parfaitement au jeu : il dispose simplement d'un stock d'options en plus dont une très intéressante : la réalisation de screenshot de grande taille, en JPG.

    2.Création d'une map.
    Une fois le jeu lancé, rendez-vous dans l'éditeur. Vous pouvez alors créer une map, en ayant à l'esprit certaines contraintes :
    - La taille du screenshot est fixe (10240 x 6912 pour le plus grand): plus la map sera de grande taille, et plus les reliefs seront petits.

    Il existe un moyen de modifier la taille du screenshot, mais outre qu'elle produit un fichier très volumineux (50 - 60 Mo) elle implique des manipulations supplémentaires.
    J'indique la procédure ci-dessous, pour information :

    1. Avec AomEd, convertir le fichier "uieditormenu.XMB" qui se trouve dans le dossier "data" d'AoM en "uieditormenu.XML", afin de pouvoir le modifier facilement avec un éditeur de texte.
    2. penser à supprimer le fichier .xmb, désormais obsolète et qui sera recrée au prochain lancement du jeu par conversion automatique du fichier .xml en .xmb
    3. Ouvrir le fichier uieditormenu.XML
    4. à la ligne 1068 (faire une recherche du mot "supascreenshot" pour aller plus vite), remplacer la valeur:
                Scenario Large
                <command>supascreenshot(10000)</command>
    par une valeur au choix : 15000, 20000... Attention à la taille du fichier qui sera alors générée, qui peut prendre pas mal de temps et faire planter le programme selon les capacités de votre ordi!
    5. Enregistrer les modifs, lancer AoM et se rendre dans l'éditeur pour faire un screenshot, en choisissant "Scenario large" (puisque c'est ce type de capture qui a été modifié dans notre exemple)


    Il vaut mieux avoir un screen trop grand, que l'on redimensionne ensuite sous Photoshop à sa guise, que l'inverse. Évitez les carte au-dessus de 200x200.

    - L'échelle des personnages est inférieure à ceux de Baldur's Gate. La végétation paraîta petite, de même pour les bâtiments, si vous voulez les réutiliser. Pour se donner une idée de la taille d'un personnage des jeux de Black Isle dans une carte d'AoM, le mieux et d'utiliser une unité de type "cyclope". Il correspond à peu près à un personnage de Baldur.

    - On ne peut pas choisir l'angle de vue ! Et c'est très regrettable. La prise de vue se fera selon l'angle de vue par défaut, ce qui oblige à construire sa map en conséquences.

    - On peut jouer sur l'éclairage (position du soleil, qualité de la lumière) mais ces paramètres ne sont pas enregistrés avec la map. Il faut donc prendre soin de le enregistrer comme nouveaux réglages, si l'on veut les avoir et les réutiliser lorsqu'on chargera la map une autre fois.

    - La map étant en losange, seule la partie se trouvant dans un rectangle inscrit dans le losange sera utilisable par la suite (à moins de se livrer encore à des collages...)

    Documents

    3. Capture écran
    Capture écran : Se rendre dans l'onglet "DOSSIER" -> "Capture d'écran", et choisir l'option "Scénario" pour avoir une image de taille maxi.
    Prendre un format en JPG (± 24 Mo...le TGA n'apporte rien de plus = 270 Mo la capture !)

    Documents

     Le fichier est enregistré dans le dossier Mes documentsMy GamesAge of MythologyScreenshots

     


    2 commentaires
function ChangeLang(masq, affich) { var x = document.getElementsByClassName(masq); var i; for (i = 0; i < x.length; i++) { x[i].style.display = "none"; } var y = document.getElementsByClassName(affich); var i; for (i = 0; i < y.length; i++) { y[i].style.display = "block"; } }