• Conversion des Animations de PST au format IWD

     

    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

     

    « Ajouter des animations manquantes à Icewind Dale IIConversion des animations de Baldur's Gate pour IWD2 »

    Tags Tags : , , , , , , , , , , ,
  • Commentaires

    1
    Freddy Gwendo
    Samedi 3 Décembre 2016 à 11:03

    Juste une petite info :

    Pour éviter les problèmes de décalage induits par Bamresize, utilise plutôt la fonction Resize des effets de post-production de NI.

    1. Elle est plus performante que celle de Bamresize.

    2. Tu peux contrôler en temps réel le résultat sur les séquences (un grand merci à Argent77 qui a accepté de répondre favorablement à ma demande car c'était assez pénible de devoir recharger la bam pour vérifier le résultat des modifs).

    3. Cerise sur le gâteau : depuis plusieurs versions, toujours à ma demande, le convertisseur de bam dispose d'une fonction "session" qui permet de sauvegarder dans un fichier ini les manipulations que l'on effectue sur un fichier bam. Du coup, tu peux créer des fichiers ini mémorisant les séquences et l'ordre des frames, la modification de la palette, etc...

    Avec une bonne bibliothèque d'ini, créer un fichier bam devient un jeu d'enfant : il me suffit de sélectionner inventaire.ini pour créer automatiquement une bam d'inventaire sans avoir à créer les séquences et à saisir les coordonnées des images ; Red75% pour réduire une bam à 75 % ; et je te passe les ini de coloration... ;)

     

    Freddy

      • Dimanche 11 Décembre 2016 à 19:22

        Merci de l'info. NearInfinity est un super outil de modding et grâce au travail d'Argent77, il a été encore bien amélioré. J'ignorais qu'il disposait de ce genre de fontions.
        Il faudrait qu'Argent77 s'attaque à un programme comme IETME pour lui donner un coup de neuf !



    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :