• mise à jour 20 août 2015

    Cette page reprend les liens de téléchargement des logiciels évoqués dans le petit article sur l'importation de modèles 3D.

     

    OBLIVION / MORROWIND / FALLOUT 3 / SKYRIM

    NifSkope v.1.1.3.36 : pour visualiser rapidement les modèles avec leurs textures (merci à l'équipe de Nifskope)

    FOMM (Fallout Mod Manager) v.0.13.21
    : pour extraire les meshes et les textures des archives .bsa de ces différents jeux (merci à Timeslip et Kaburke)
    Bien que le développement de FOMM semble être en stand by, vous pouvez vérifier la présence de nouvelles versions sur cette page de sourceforge.

     BSA Browser v.1.7-1395 : un autre outil pour extraire les archives .bsa, FOMM nécessitant la présence de Fallout 3 pour fonctionner. (merci à Fawzib Rojas)

    Plugin NifTools (lien vers la page générale)  : pour importer des modèles dans 3ds, Blender ou Maya.
    Niftools pour 3ds Max - version 3.5.5.4728 ¦¦ Miroir ¦¦ Il faut creuser sur le site de Niftool pour trouver cette version du plugin pour 3ds, qui marche pourtant très bien, et prend en charge un grand éventail de versions de 3ds Max (depuis Max 5 jusqu'à 3ds Max 2012, en versions win32 et x64).

     

    Neverwinter Nights 2

    MDBView v0.5b : pour visualiser rapidement les modèles de Neverwinter Nights 2 (merci à Denice)

    Plugin nwnutilsmaxplugins v.2.3 : pour importer des modèles de NWN2 dans 3ds

     

    Titan Quest

    MeshView v1.13 (31.12.2014) : pour visualiser les modèles de Titan Quest, et les exporter en .obj (merci à Tamashi pour ce programme, auquel il semble continuer de travailler !)
    MeshView v1.12 (ancienne version)

    Arc Explorer v1.0 : pour parcourir et extraire le contenu des archives .arc (merci à Benjamin Haisch)

    Texture Viewer v1.1 : pour afficher et convertir les textures .tex (merci à Max McGuire)


    votre commentaire
  • dernière modification : 14.01.2019

    J'indique ici brièvement les programmes qui permettent d'accéder aux modèles et aux textures de certains jeux, ainsi que les plugins disponibles pour les importer dans un logiciel 3D comme 3DS Max (mais des plugins existent aussi en général pour d'autres logiciels 3D, comme Blender ou Maya). Pour télécharger rapidement ces programmes, rendez-vous sur cette page.
    L'intérêt est de disposer d'un nombre extrêmement important de modèles en tous genres (intérieurs, architecture, objets, armes...), de taille plus que suffisante pour être intégrés dans des décors de BG2 ou IWD; et de pouvoir les positionner, les agencer entre eux de la manière que l'on veut, en jouant sur des éclairages, en modifiant des textures, etc. etc.
    Bref une base de travail immense !

    Si certaines infos ne sont pas assez développées, n'hésitez pas à me l'indiquer pour que je les approfondisse.

      

    MORROWIND / OBLIVION / FALLOUT 3 / SKYRIM 

    Grâce à une communauté très active autour de ces jeux, on dispose de tous les outils nécessaires pour accéder aux modèles et aux textures, puis les importer dans 3ds. On dispose ainsi d'une base de travail très riche qui peut grandement aider à la création de nouveaux modèles.

    Visionner les modèles de Morrowind, Oblivion, Fallout 3 et Skyrim
    Utiliser NifSkope développé par la petite équipe de NifTools. Il permet de voir les modèles, leur animation, leurs textures, il offre aussi la possibilité d'éditer les textures en créant un tif basé sur le mapping (clic droit sur un modèle -> texture -> export template).
    Seules les dernières versions (1.1.xxx) permettent de visualiser les modèles de Skyrim.

    Importer des modèles 3D d'autres jeux



    Le paramétrage de l'affichage des textures n'est pas évident, il suffit en fait de pointer les fichiers .bsa du jeu en question dans l'option Fichiers -> Fichiers de ressources.
    Il vaut mieux aussi faire ce réglage dans Rendu --> Settings -> Rendering, et ajouter un dossier en pointant vers le répertoire du jeu ou dans lequel les fichiers .bsa du jeu ont été extraits.

    Accéder aux modèles et aux textures
    Les modèles et les textures sont dans des archives .bsa
    Il faut donc utiliser un programme particulier pour ouvrir ce type de fichiers.

    Morrowind / Oblivion / Fallout 3 / Skyrim :
    Fallout Mod Manager (FOMM)
    [Télécharger Fallout Mod Manager v.0.13.21]
    Son interface est très bien faite, et il permet d'ouvrir les archives .BSA de ces différents jeux; c'est pourquoi je conseille de l'utiliser de préférence (seule contrainte : avoir Fallout 3 d'installé, autrement impossible d'utiliser FOMM)
    Aucun problème pour parcourir et extraires les archives .bsa, avec possibilité de les trier par extension ou par nom, ce qui peut s'avérer très pratique pour extraire un contenu ciblé.

    Si l'on n'a pas Fallout 3, impossible d'utiliser FOMM. Dans ce cas, on se rabattra sur BSA Browser pour Skyrim (BSA Browser v.1.7-1395)

    Des utilitaires propres à Morrowind et Oblivion ont été faits en leurs temps. Ceux comme BSA Browser, pour Morrowind, ou BSA Commander, pour Oblivion, ne peuvent ouvrir que les fichiers .BSA des jeux pour lesquels ils ont été conçus, ce qui oblige à jongler encore avec des programmes différents.


    Pour Morrowind, on ira chercher les fichiers .BSA Morrowind.bsa, Bloodmoon.bsa dans le dossier Data files du jeu.

    Pour Oblivion, extraire le contenu des fichiers Oblivion - Meshes.bsa et Oblivion - Textures - Compressed.bsa (gros fichiers de 700 Mo et 1Go et quelques) localisés comme toujours dans le dossier Data du jeu)

     oblivion_rendu


    f3_rendu


    I
    mporter les modèles dans 3ds (3ds max 5 à 3ds max 2012)
    Les modèles sont au format .nif
    Leurs animations (mouvements) sont au format .kf
    Les textures au format .tga / .dds
    Il faut installer le plugin développé par  Niftools, pour 3ds max ( 3.7.3.5622 pour 3ds max 5 à 3ds max 2012 win 32 & x64), Blender ou Maya, afin de pouvoir importer ces modèles dans ces logiciels 3D.

    Tous les meshes ne peuvent cependant pas être importés (notamment ceux des Landscape). Ceux que l'on n'aura pu importer en .nif pourront toujours être exportés en .OBJ dans Nifskope - précédemment indiqué pour visionner les meshes - puis importés en .OBJ dans 3Ds. Le procédé est imparfait là encore (certains composants passent parfois à la trappe, et l'on doit passer un peu de temps à réattribuer les textures).

    N'hésitez pas à consulter le forum où l'on peut trouver les dernières versions à télécharger, ainsi qu'un certain nombre de réponses et de conseils.

    Paramétrage des chemins d'accès dans NifSkope

    Lors de l'installation du plug-in, il nous est demandé d'indiquer les répertoires où se trouvent les meshes (modèles) et les textures. On peut indiquer les répertoires des jeux, mais je trouve plus prudent d'extraire et d'utiliser des fichiers indépendants.
    Lorsqu'on indique le chemin, il ne faut pas inclure le dossier /Meshes ou /Textures, le plugin ajoutant tout seul ces derniers.

    Les modèles doivent s'importer correctement avec leurs textures.
    Si ce n'est pas le cas, c'est que le chemin des meshes et des textures est incorrect et il faudra le corriger :

    Si l'on s'est trompé ou si l'on souhaite modifier ce paramètre, on peut consulter et modifier le fichier MaxNifTools.ini qui gère les paramètres du plugin, dans :

    [rep. de 3DsMax]\plugcfg\MaxNifTools.ini

    Après ouverture du fichier avec Notepad ou tout autre éditeur de texte, on remarque que chaque jeu a une section dédiée, dans laquelle on peut s'assurer que les chemins d'accès sont bien renseignés. Par ex :

    MeshRootPath=G:\Outils 3ds\jeux\Oblivion
    TextureRootPath=G:\Outils 3ds\jeux\Oblivion

    TextureSearchPaths=${RootPath}\Textures;${TextureRootPath}\Textures

    On remarque que par défaut, le programme ajoute un sous répertoire \Textures au chemin d'accès qui est associé aux valeurs ${RootPath} et ${TextureRoothPath}, puisque c'est leur chemin d'accès par défaut dans le jeu.

    Modifer les indications pour qu'elles s'accordent avec le chemin où se trouvent les textures que vous avez extraites.

    La valeur ${RootPath} est assignée à la ligne du même nom :

    RootPath=${InstallPath}\Data

    En cas d'installation manuelle du jeu, il ne possèdera pas de valeur ${InstallPath}, récupérée dans la base des registres. On pourra toujours lui en attribuer une :

    RootPath=F:\Jeux\Oblivion\Data

    Mais l'on peut tout simplement modifier directement les lignes TextureRootpath et TextureSearchPaths :

    TextureSearchPaths=G:\Docs3D\Textures\Oblivion;

    objets skyrim

    Un petit exemple d'objets récupérés dans Skyrim...

    NEVERWINTER NIGHTS 2

    Les modèles sont nettement moins travaillés qu'Oblivion, mais certains sont vraiment intéressants et peuvent faire une très bonne base de travail.
    Là encore, on va procéder en trois étapes : visualisation des modèles, récupération dans des archives, puis importation dans 3Ds, via un plugin.

    Visionner les modèles de Neverwinter Nights 2
    Pour consulter rapidement les modèles, utiliser MDBView [Télécharger MDBView béta v.0.5]
    Pour plus d'informations, n'hésitez pas à faire un tour sur le site Vault FR, ou sur le site NWN2.fr

    Accéder aux modèles et aux textures
    Les archives sont au format .ZIP, aucun problème donc pour les parcourir et extraire ce qui nous intéresse.

    Importer les modèles dans 3ds (jusqu'à la version 2010)
    Les modèles sont au format .mdb : il faudra donc un plugin pour les lire
    Les textures au format .dds : le standard actuel des textures 3d, aucun problème donc.
    Il faut installer le plug-in nwn2utilsmaxplugins v2.3.0 [Télécharger], pour pouvoir importer les modèles dans 3Ds max.

    versions de 3ds max prises en charge :
    32 bits : 3ds Max 4.2, 5, 6, 7, 8, 9, 2008, 2009, 2010
    64 bits : Max 9, 2008, 2009, 2010

    Les versions ultérieures ne sont pas prises en charge à l'heure actuelle.
    N'hésitez pas à vous rendre sur le site anglais Neverwinter Vault, pour voir d'éventuelles mises à jour.

    TITAN QUEST - GRIM DAWN

    Certains modèles sont vraiments bien foutus, une chance de pouvoir étendre les possibilités de création. On procèdera encore en trois étapes : récupération dans des archives des meshes et des textures, visualisation-exportation des modèles et des textures dans un format standard, importation dans un logiciel 3D

    Accéder aux modèles et aux textures
    Les composants (images, sons, maps,...) du jeu sont compressés dans des archives de type .ARC (dans le dossier Ressources du jeu)

    ARC Explorer [Télécharger ARCExplorer v1.0] permet de consulter/extraire ce type de fichiers
    (il s'utilise très basiquement, on peut décompresser un fichier seul, ou une archive complète)

    Pour pouvoir afficher correctement par la suite les textures des modèles avec MeshView, il est nécessaire, d'une part d'extraire la totalité des textures dans un dossier, et d'autre part de ne pas toucher à la structure de ce dossier - comme il est constitué d'une floppée de sous dossiers imbriqués les uns dans les autres, on a vite envie de le réorganiser à sa manière... ce qui pose hélas des problèmes ensuite puisque les textures sont référencées pour être à un emplacement précis.

    Visionner les modèles de TITAN QUEST ou de GRIM DAWN, les EXPORTER au format .OBJ
    Pour consulter rapidement les modèles, utiliser MeshView [Télécharger MeshView 1.12].
    Ce programme requiert Framework 4.0 pour pouvoir se lancer.
    Il nécessite aussi la présence de XNA Framework 3.1 ou XNA Framework 4 pour pouvoir lire les fichiers .TEX et .DDS.
    Tamschi a sorti en 2014 une dernière version de MeshView qui semble ne plus nécessiter XNA Framework, mais je n'ai pu tester son efficacité, étant donné qu'XNA Framework est déjà installé sur mon système. Même si son développement est encore en phase béta, elle semble pleinement fonctionnelle : Meshview 1.13
    Le site de Tamschi ne semble plus être opérationnel depuis 2018.

    Grim Dawn quant à lui est livré avec un programme, Viewer.exe, qui permet de visualiser tous les meshes du jeu. S'il ne permet pas de les exporter en .obj ou autre, il reste un très bon outil d'exploration.

    Utilisation de MeshView
    (merci à Tamme Schichler pour la création, la mise en partage et la mise à jour de ce programme)



    L'interface du programme est assez particulière et peut laisser perplexe : pas de barre de menus. En fait, les menus apparaissent selon ce que l'on sélectionne dans la fenêtre de gauche :
    - si l'on clique sur Camera -> possibilité de changer le zoom, l'angle de vue, etc..
    - si l'on clique sur Light : possibilité d'ajouter des lumlières
    - si l'on clique sur Mesh, différents menus selon la partie du mesh que l'on sélectionne, dont la possibilité de charger un modèle et de l'exporter en OBJ

    Charger un fichier .msh
    Après avoir lancé MeshView, cliquer, dans le menu de gauche sur "Meshes", et choisir "Load Mesh" dans le menu en bas à droite.

    Il suffit de pointer alors sur un fichier .msh que l'on aura précédemment extrait, pour le charger dans le programme.

    Pour afficher un autre mesh, il faut penser à fermer celui que l'on vient d'ouvrir :
    -> cliquer sur la ref du mesh, et cliquer sur "close"


    Afficher ses textures
    Il est nécessaire d'avoir installé XNA Framework 3.1 ou 4.0 pour que les textures puissent s'afficher.
    Si malgré cela les textures ne s'affichent pas correctement, il s'agit probablement d'un chemin d'accès qui a été modifié (en déplaçant les fichiers .tex ou en réorganisant les dossiers). Le programme indique les refs. de celles qui sont absentes dans l'onglet Textures. En cliquant sur une référence listée, il est possible de charger le fichier .tex dont MeshView a besoin pour afficher correctement un modèle.

    Utiliser la caméra
    Son fonctionnement n'est pas très intuitif et ne peut être fait directement par des combinaison de touches avec la souris comme on peut le faire dans tout logiciel 3D.

    infos caméra
    Il est possible d'afficher l'image en vue iso...ce qui peut être pratique pour des screenshots rapides.
    Il est toutefois difficile d'afficher les grands volumes (architectures)

    Exporter un meshe en .OBJ :
    Après avoir chargé un fichier .msh :
     -> Dans le menu de gauche clic sur "Mesh", afin de dérouler l'arboressence qu'il contient
     -> Sélectionner le sous-menu "Mesh (v11) qui amène une fenêtre offrant un certain nombre d'options, dont "save partial data (.obj)"

    Importer les textures et les modèles dans 3ds

    • Les textures (... en nombre important) sont au format .TEX, qu'il s'agisse des textures (qui fonctionnent comme des fichiers .DDS), ou des composants 2D.
      MeshView liste, dans l'arborescence "Textures", le nombre et les références de celles qui sont utilisées par le modèle que l'on a chargé - ce qui est très pratique !
      Chaque texture fonctionne par paire  : l'image, la texture à proprement parler qui est utilisé dans le canal diffus, et son relief, qui est utilisé dans le canal bump.

      Texture Viewer [Télécharger Texture Viewer v.1.1] permet de lire les .TEX, et de les convertir en .TGA, JPG ou PSD (s'utilise lui aussi très très basiquement : ouverture d'un point .TEX, et possibilité de l'exporter)
      Note pour Grim Dawn : Le jeu est fourni avec une multitude de programmes pour faire du modding, parmi ceux-ci, un programme du même nom, Texture Viewer permet d'afficher et convertir des fichiers .tex en .psd, .tga (à préférer aux .jpg ou .bmp qui ne prennent pas en charge les masques alpha). Il est d'ailleurs possible via le programme d'associer rapidement la lecture des fichiers de type .tex avec MeshViewer.

      On génère des textures en TGA, afin d'avoir le masque alpha, indispensable pour certaines textures ayant une transparence (feuillages, textures "trouées", etc.)
      Utiliser ensuite Photoshop pour convertir les TGA en .DDS (automatisation par lots avec scripts) : le gain de taille des fichiers est énorme (parfois du 1/10).
      (il est nécessaire d'avoir installé le plug-in de NVIDIA - NVIDIA Texture Tools for Adobe Photoshop - qui permet de charger/enregistrer des fichiers .DDS dans Photoshop)

      TQ Texture Tools [Télécharger TQ Texture Tools]
      Plus rapide que TextureViewer, il permet de convertir par lot un ensemble de fichiers .tex en .dds Il ne permet pas en revanche de les visionner.
      Tout est dit dans le Readme : il suffit de faire un glisser/déplacer d'un fichier .tex ou d'un dossier contenant des fichiers .tex vers le programme TQ.Texture.Extract.exe pour que le programme les convertisse en fichier .dds. Simple et royal ! Un dossier nommé "dds" est automatiquement créé dans le dossier où l'on est allé chercher les textures. Merci encore à Tamme Schichler !


    • Les modèles sont au format .msh
      3ds max : Importation d'un fichier via un script (MSH Tool)
      Un script a été développé pour 3ds max 9 (fonctionnel sous 3ds max 2010-2017), [ MSH Tool 1.0.8.3]. Il permet d'importer directement les .msh de Titan Quest ou Grim Dawn, mais tous les modèles ne sont pas correctement pris en charge et certains renvoient un message d'erreur. Les textures doivent être ajoutées manuellement.
      Pour pouvoir utiliser le script dans 3ds max, il faut procéder "à l'ancienne", en ajoutant un bouton dans la barre des outils via le menu Customize :

      Customize
      -> Customize User Interface
       -> Toolbars

         -> Group : Main UI
         -> Category : MSH Tools
      -> glisser/déplacer sur la barre des outils le bouton "Import MSH" et/ou le bouton "Export MSH"
      On peut ensuite importer/exporter un .msh de Titan Quest ou Grim Dawn.

      Exportation d'un .msh en .obj via MeshView
      En l'absence de plugin pour importer les modèles de Titan Quest dans un logiciel 3D, MeshView 1.12, dont j'ai parlé ci-dessus, permet de les exporter dans le format .OBJ, un standard des formats 3D pour échanger des modèles entre différentes applications 3D, parfaitement pris en charge par 3ds.

     

    Note sur l'utilisation des meshes importés :
    Aucune hiérarchie ni différenciation des différents éléments qui composent un modèle n'est faite, ce qui rend l'utilisation des groupes d'objets très laborieuse.
    Si par exemple on récupère un temple, un étal de marchand, un navire, composés d'une multitude d'objets, on aura le plus grand mal à en extraire certains composants car tous sont fusionnés dans un même élément. Pour sélectionner un objet, on en est réduit à sélectionner toutes les faces qui le composent, ce qui peut prendre pas mal de temps.

    Par conséquent il vaut mieux utiliser les objets en bloc, tels quels, sans chercher à en extraire des éléments, ou se focaliser sur les objets simples.

    Cyclope TQ


    6 commentaires
  • Fichiers .bam et palettes

    Les fichiers .bam sont en 256 couleurs (8bits). On parle dans ce cas de couleurs indexées, car il existe un index dans lequel chaque numéro de 0 à 255 se voit attribuer une référence de couleur. Cet index forme ainsi une palette (ou Table de couleur) dont les nuances sont appelées via des numéros, pour colorer les différentes parties d'une image.
    Ce qui veut bien entendu dire qu'une animation ne peut avoir que 256 couleurs différentes (les deux premières étant réservées pour la transparence et l'ombre d'une animation, leur nombre effectif est de 254). Cela peut paraître peu, et pourtant c'est largement suffisant pour avoir des rendu très nuancés. D'ailleurs, nombre d'animations utilisent moins d'une cinquantaine de nuances !
    Mais surtout, il faut bien comprendre que ces couleurs sont attribuées selon leur numéro d'index et non pas selon leur nuance par le moteur de l'Infinity Engine (et donc par Bamworkshop 2 ou DLTCEP) : telle animation n'aura pas du brun d'attribué, mais par ex. les références n°20,21,22,23,24 qui peuvent correspondre à différentes nuances de brun dans telle palette, mais peuvent être toutes autres dans telle autre.

    Par exemple, si l'on applique une table de couleur dont les nuances sont identiques, mais indexées à des numéros différents (par ex. les mêmes bruns dont je viens de parler, mais aux n° 178,179,180,181,182), les couleurs seront complètement faussées, et nos nuances de bruns ne seront pas du tout appliquées à l'endroit que l'on voulait.

    Un exemple, où l'on voit deux images différentes, en apparence identiques (même rendu dans un logiciel comme Photoshop) mais qui n'ont rien en commun de part la structure de leur palette :


    Si l'on applique la seconde palette sur une image qui a été construite avec la première, on obtient ceci :

    palette2
    Un autre point important à avoir à l'esprit est qu'une seule palette est utilisée pour toutes les images qui composent une animation. Il est donc indispensable, lorsqu'on créée ou modifie des animations 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.

     

    Travailler un .bam dans un logiciel d'édition d'image comme Photoshop :
    Pour s'assurer du respect des couleur, il faudra exporter une image et sa palette. Lorsqu'on chargera le fichier dans un programme d'édition, on lui appliquera alors la palette :
    1. Dans BamWorkshop II (et surtout pas le 1 !), exporter un frame en .bmp
    -> Frame -> Export -> choisir le format .bmp
    2. Toujours dans BamWorkshop 2, enregistrer la palette (.pal)
    -> Colors -> Edit Palette -> Save

    3. Ouvrir le .bmp dans Photoshop et le convertir en couleurs indexées en utilisant la palette .pal enregistrée (selon les cas, il suffit de Forcer certaines couleurs seulement, par ex. les 2 premières)

    Conversion d'une Animation de PST en fausses couleurs
    Telle qu'elle, une animation de PST en fausse couleurs est inutilisable. Il faut lui appliquer une nouvelle palette pour qu'elle le soit.
    L'essentiel du travail consiste donc à créer la palette de son choix, en respectant l'index des couleurs de l'animation de PST. On utilise ensuite simplement BamWorkshop 2 pour l'appliquer à l'ensemble des images de chaque animation.

    À ce sujet, on peut consulter sur Spellhold Studios le gros travail qu'à fait Erephine dans son mod "Infinity Animations" qui comprend notamment la conversion/création d'animations en fausses couleurs (dernière version : v.3 - fev. 2011) de PST vers BG.

    1. Création de la palette (Photoshop)
    Les différentes parties d'une animation en fausses couleur de PST sont colorées avec des gammes de couleurs très nuancées (32 parfois 48 nuances ou plus), on peut obtenir donc un joli rendu. Le seul inconvénient est que, contrairement à Baldur's Gate dont la palette pour les fausses couleurs est fixe et donc identique pour toutes les animations de ce type, la palette varie de schéma selon les animations.

    En fait, comme on le voit dans les exemples ci-dessus, une partie, les 128 première couleurs, est variable, tout en ayant quand même un schéma d'organisation. Les 128 autres sont fixes. Il faudra donc créer des palettes différentes selon l'animation à convertir (le plus simple est d'abord de consulter sa table de couleur dans BamWorkshop 2 pour voir sa structure).

    Nous allons prendre pour exemple de conversion, l'animation de la paysanne, CA_MID :

    paysanne
    Les couleurs s'organisent ainsi :
    0 -> transparence
    1 -> ombre
    2 à 127 -> habits 3
    128 à 159 -> Chevelure
    160 à 181 -> habits 1
    182 à 213 -> Peau
    214 à 255 -> habits 2

    La nouvelle devra donc s'organiser selon cette structure. Chaque logiciel d'image dispose de ses propres outils pour créer et modifier des palettes. Je prendrai l'exemple de Photoshop, sur lequel je travaille, mais je pense que le démarche doit être semblable avec des logiciels comme Paint, The Gimp ou autre.

    Dans Photoshop, on peut enregistrer/charger des nuancier de couleur, ce qui peut être pratique pour conserver des nuances de couleurs à réutiliser dans différentes palettes.
    On ajoute des couleurs au nuancier à partir du Sélecteur de Couleur (dbl. clic sur une couleur).  Il suffit de se placer sur la couleur de son choix puis de cliquer sur "Ajouter au nuancier".
    Il faut répéter cette opération pour toutes les couleurs que l'on souhaite utiliser, d'où l'intérêt d'enregistrer ensuite son nuancier (fichier .ACO), pour pouvoir le réutiliser par la suite et en changer aisément.

    Un technique plus spontanée et plus simple consiste à créer un dégradé dans une image à part, qui tiendra lieu de nuancier. Elle se résume à une suite de carrés qui ont été numérotés pour plus de facilités lorsqu'on appliquera les couleurs ensuite :

    palette

    En jouant sur la balance de couleur ou sur la teinte/saturation, on modifie très rapidement les nuances. Il ne restera plus qu'à venir y piocher dedans avec la pipette lors de la création de la table des couleurs.

    Une fois que l'on dispose des nuances de couleurs que l'on souhaite, il reste à éditer la table de couleur, et à modifier les couleurs :
    Double clic sur les couleurs à changer, et utiliser celles du nuancier de son choix à la place, via la pipette et le sélecteur de couleur.
    Enregistrer ensuite la Table de couleur ainsi modifiée (fichier .pal)

    2. Application de la nouvelle palette aux fichiers .bam (Bamworkshop 2)
    Ouvrir Bamworkshop, et charger le fichier .bam que l'on souhaite modifier.
    Cliquer sur "Colors", -> Edit Palette (Shift+K) -> Load et charger le fichier .pal qui vient d'être créé.
    Valider l'opération par OK : en principe, la palette s'applique parfaitement à l'animation.

    paysanne modif

    Enregistrer les changements, et faire de même pour tous les autres fichiers .bam de l'animation.




    1 commentaire
  •  dernière édition : 09.05.2014

    L'objet de cet article est d'indiquer la procédure pour convertir des animations de type G1-G26, fréquentes dans Baldur's Gate, vers le format A1-WK propre à Icewind Dale.
    Quand on cherche à ajouter des animations à IWD2, on se rend compte que la plupart des emplacements disponibles le sont pour des animations de type A1-WK (voir l'article "Ajouter des animations à IWD2"). De plus ce format est plus standardisé avec toujours le même nombre de séquences, peu nombreuses, faciles à contrôler et modifier. Il dispose en revanche de moins d'angles de vues d'où une perte de qualité à ce niveau, et des animations aux déplacements plus saccadés lorsqu'elles changent de direction.

    Outils requis :
    Bamworkshop 1
    DLTCEP

    Généralités sur les fichiers .bam

    Un fichier .bam est une animation qui peut regrouper différents mouvements déclinés sous différents points de vue.
    Chaque point de vue de chaque mouvement est représenté par une séquence, qui appelle un certain nombre d'images (ou frames). Les différentes images, qui peuvent être très nombreuses (plusieurs centaines) selon la richesse des mouvements représentés, utilisent toutes une seule et même palette de couleur, limitée à 256, et intégrée dans le fichier .bam. Certain types de fichiers .bam (et notamment certaines animations comme celles en fausses couleurs) ont des palettes pré-définies que le moteur du jeu manipule : si on les modifie par méconnaissance ou par erreur, c'est le why assuré.
    Dans le cas qui nous préoccupe, on ne touchera pas à la palette des couleurs, mais seulement aux séquences et au frames.


    Chaque fichier xxxx.bam fonctionne de pair avec un fichier xxxxE.bam qui traite la symétrie de l'image. À eux deux ces fichiers forment l'ensemble des points de vue d'un même mouvement.


    Fonctionnement des séquences et des frames

    Les séquences fonctionnent comme un index, une liste de lecture, qui appelle une suite de frames, selon leur numéro. Elles ne contiennent donc rien, et aucune image n'est intégrée à elles. Leur suppression n'a auncun effet sur les frames. L'intérêt de ce mode de fonctionnement est de pouvoir appeller la même image plusieurs fois, ou pour plusieurs séquences différentes, sans multiplier par autant de fois le poids de l'animation. On peut donc manipuler les séquences, leur nombre, leur organisation sans crainte d'endommager les images d'un fichier .bam (au pire il ne sera pas lu).
    Les séquences d'une même animation ont toutes le même nombre de frames.
    Un fichier .bam de type A1-WK ne contient que 5 séquences, qui correspondent à 5 angles de vue d'un même mouvement. On symbolise ces angles de vues par des points cardinaux (N, S, NO, etc..)

    Les frames sont les images à proprement parler qui constituent les différents moments des mouvements d'une animation, vus sous différents angles. Leur taille peut varier dans une même animation, mais elle ne peut dépasser 255x255 px.
    Un fichier .bam peut contenir de nombreuses frames (600 est un chiffre fréquent,on peut dépasser le millier...surtout avec les animations mal optimisées !) dont des frames qui ne sont pas jouées, puisqu'on ne voit que celles qui sont appellées par les séquences.
    Dans Bamworkshop, quand on supprime une frame dans la fenêtre "Frame" on ne fait qu'enlever sa référence dans l'index de la séquence. L'image en tant que telle n'est pas effacée. Il faut se rendre dans la fenêtre "Manage frames" pour supprimer ou importer des images.

    Pour les animations de type A1-WK, les 5 séquences d'une attitude donnée, c'est à dire d'un même fichier .bam et de sa symétrie, doivent avoir rigoureusement le même nombre de frames, autrement le moteur du jeu risque de planter au chargement. En revanche, les différentes attitudes, représentées via les fichiers xxxxA1.bam, xxxxCA.bam, xxxxWK.bam etc., peuvent avoir un nombre de frames non identique.
    De même pour les animations de type BG1/BG2 où les différents mouvements sont soit réunis dans un même fichier .bam, soit répartis sur plusieurs fichiers : les séquences qui traitent d'un même mouvement, sous ses différents points de vue, doivent impérativement avoir le même nombre de frames, et ce nombre doit se répercuter dans les fichiers xxxxxE.bam qui gèrent la symétrie.

    Différence de structure des fichiers .bam de type G1-G26 et A1-WK

    Les animations de type G1-G26 sont différentes de celles d'IWD2. Outre les noms et les mouvements auxquels ils sont associés, la plus grosse différence tient surtout à leur structure, par le nombre et l'organisation de leurs séquences.

    Les animations d'IWD ont seulement 5 séquences correspondant à 5 angles de vue (S,SO,O,NO,N) par fichier .bam. Chaque fichier .bam est indépendant et illustre un mouvement (marche, chute ,attaque...)

    Les animations de type G1-G26 disposent de plus d'angles de vue (9); mais chaque fichier fonctionne comme une partie d'un ensemble recomposé par le moteur du jeu, dont il garde la structure globale. Dans chaque fichier est donc prévue la place des différents mouvements des autres fichiers, 6 pour les mouvements G1-G15, 7 pour les mouvements G2-G26. On se retrouve avec des fichiers ayant 9x6=54 et 9x7=63 séquences, alors que seules 9 séquences sont "fonctionnelles", toutes les autres séquences sont laissées "vides" :

    Séquences G1 G11 G12 G13 G14 G15
    [1 à 9] vide Marche vide vide vide vide
    [10 - 18] debout vide vide vide vide vide
    [19 - 27] vide vide passif vide vide vide
    [28 - 36] vide vide vide blessé blessé  = G13 vide
    [37 - 45] vide vide vide vide blessé & tombe vide
    [46 - 54] vide vide vide vide à terre = G15 à terre

     

     

     

     

     

     

     

     

     

     

    Séquences
    G2 G21 G22 G23 G24 G25 G26
    [1 à 9] ATT.1 vide vide vide vide vide vide
    [10 - 18] vide ATT.2 vide vide vide vide vide
    [19 - 27] vide vide ATT.3 vide vide vide vide
    [28 - 36] vide vide vide ATT.4 vide vide vide
    [37 - 45] vide vide vide vide ATT.5 vide vide
    [46 - 54] vide vide vide vide vide Sort vide
    [56 - 63] vide vide vide vide vide vide Sort

      

     N.B. par "vide", j'entends une séquence qui ne contient aucune attitude représentée par une suite de frames et qui n'est pas affichée dans le jeu; par opposition aux séquences où une attitude précise est représentée. Mais il est important que chaque séquence, même "vide" contienne au moins une frame (n'importe laquelle puisqu'elle ne sera pas affichée), faute de quoi le jeu peut planter.

    Sur cette structure générale se greffent un certain nombre de cas particuliers, gérés par le moteur du jeu. Par exemple les séquences d'animation G1 -debout peuvent se trouver dans les séquences [19-27], dans ce cas, les séquences d'animation G12- passif se retouveront dans les séquences [10-18].
    Lorsque les mêmes séquences sont utilisées par deux fichiers .bam ou plus, ces séquences sont identiques. On le retrouve souvent par exemple dans les animations de combat, G2-G26, où le même mouvement d'attaque se retrouve dans les fichiers G2, G21, G22, qui sont alors identiques.

    Cette rapide analyse de la structure des fichiers G1-G26 montre qu'il est nécessaire de modifier complètement ces fichiers pour en faire des animations de type A1-WK.

    Différences de noms et de mouvement associé :

    Baldur's Gate
    Animations G1-G26
    Icewind Dale 1 et 2
    Animations A1-WK
    xxxxG1.bam [Debout, passif]
    xxxxG11.bam [marchant]
    xxxxG12.bam [debout, passif 2]
    xxxxG13.bam [blessé]
    xxxxG14.bam [chute et mort]
    xxxxG15.bam [allongé]
    xxxxG2.bam [attaque1]
    xxxxG21.bam [attaque2]
    xxxxG22.bam [attaque3]
    xxxxG23.bam [attaque4]
    xxxxG24.bam [attaque5]
    xxxxG25.bam [Invocation sort]
    xxxxG26.bam [lancement sort]
    xxxA1.bam: [attaque1] = G2
    xxxxA2.bam: [attaque2] = G21
    xxxxA3.bam: [attaque3] = G22
    xxxxA4.bam: [attaque4] = G24
    xxxxCA.bam: [lancement sort] = G26
    xxxxDE.bam: [mourant, tombant] = G14
    xxxxGH.bam: [blessé] = G13
    xxxxGU.bam: [se relevant] absent, à créer !
    xxxxSC.bam: [sur ses gardes] = absent, à créer !
    xxxxSD.bam: [Debout, passif] = G1
    xxxxSL.bam: [dormant] = G15
    xxxxSP.bam: [Invocation] = G25
    xxxxTW.bam: [mort] = G15
    xxxxWK.bam: [marchant] = G11

    À cela s'ajoute pour chaque fichier, sa symétrie :
    xxxxA1e.bam, xxxxA2e,.. xxxxWKe.bam

    Mais revenons à nos moutons...

    0. Préparation des fichiers, renommage

    Le premier travail consiste à renommer les fichier xxxxG1 à xxxxG26
    On aura donc :

    xxxxG1.bam    -> xxxxSD.bam
    xxxxG11    -> xxxxWK
    xxxxG12    -> xxxxSC
    xxxxG13    -> xxxxGH
    xxxxG14    -> xxxxDE et xxxxGU
    xxxxG15    -> xxxxSL et xxxxTW
    xxxxG2      -> xxxxA1 - A4
    xxxxG21    -> xxxxA1 - A4
    xxxxG22    -> xxxxA1 - A4
    xxxxG23    -> xxxxA1 - A4
    xxxxG24    -> xxxxA1 - A4
    xxxxG25    -> xxxxSP
    xxxxG26    -> xxxxCA

    Toutefois, on aura rarement l'occasion d'avoir cet éventail complet, car de nombreuses animations de créatures sont reprises dans plusieurs références, ou sont tout simplement inexistantes. Ce qui ne pose pas de problème dans le jeu : il n'est pas nécessaire que toutes les animations d'une créature existent, et l'on n'encourt pas de risque de plantage si le jeu demande une animation qui est absente pour un type d'action donné. L'action ne sera pas affichée, tout simplement. En consultant les animations des différentes créatures, on constate :

    Pour l'attaque, la grande majorité des animations se limitent à un ou deux mouvements différents, A1 A2, ou A1 A4. Quelques unes seulement en ont 3, et aucune n'en a 4. Mais ça reste possible si on le souhaite. Inversement, de nombreuses animations de BG reprennent le même mouvement d'attaque pour G2, G21,G22,G23,G24.

    Si l'on veut entrer dans les détails, ont peut créer des animations spécifiques à un type d'arme. Il faudra alors décliner une animation de l'arme seule, correctement synchronisée avec le corps, pour toutes les attitudes. L'animation a une syntaxe typique, basée sur le type d'arme : xxxxAA1, xxxxAA2 pour une hache (Axe); xxxxSA1,xxxxSWK, pour une épée (Sword), ce qui allonge considérablement le travail et n'est pris en charge par le jeu que pour de très rares animations !


    xxxxSC n'est souvent qu'une copie de xxxxSD pour les monstres ou les animaux.
    xxxxCA et xxxxSP ne sont utiles que pour des créatures faisant appel à la magie
    xxxxTW se résume à une frame, que l'on récupère dans xxxxDE
    xxxxGU peut se créer rapidement par inversion de l'animation de chute récupèrée dans xxxxDE

    Ce qui ramène souvent à 6 le nombre de mouvements indispensables.

    Dans le même ordre d'idée, on constate aussi que certaines animations de BG (notamment les animaux ou les monstres "basiques") se résument à peu de mouvements différents et comportent de nombreuses copies.
    Par exemple, l'Élan (AMOO) :

    amooG1 = comportement passif
    amooG11 = animal en marche
    amooG12 = amooG1
    amooG13 = inclus dans amooG14
    amooG14 = animal blessé, tombant, allongé et mort
    amooG15 = inclus dans amooG14

    amooG2 = fragment de G1
    amooG21 = amooG2
    amooG22 = amooG2
    amooG23 = amooG2
    amooG24 = amooG2
    amooG25 = amooG2
    amooG26 = amooG2

    Au final, on n'a que 3 fichiers .bam sur 12 de nécessaires pour créer notre animation !
    Et l'on pourra s'épargner de créer A2, A3, A4, SC, CA, SP, TW ce qui ramène notre animation à 7 fichiers. En revanche certains mouvements doivent être bien étudiés car il reposent sur des séries de réptition de frames, complexes à reproduire, et peuvent prendre du temps.

    Il est donc très utile de prendre d'abord le temps de visualiser les différents fichiers .bam d'une animation (dans Near Infinity par exemple), avant de se lancer à corps perdu dans son édition ou au contraire de se décourager face au travail à faire. C'est parfois plus simple qu'il n'y paraît.

     

    1. Modification des bam existants :
    Le plus gros travail consiste à éditer chaque fichier .bam, et supprimer les séquences en trop.

    Pour supprimer les séquences vides, le mieux est d'utiliser BamWorkshop 1

    (DLTCEP n'est pas très fiable à ce niveau, et Bamworkshop 2 est à proscrire : le programme essaie de corriger automatiquement l'index quand on supprime des frames, mais hélas il s'emmêle vite les pinceaux, et l'affichage des frames part complètement en live : utilisation à proscrire si on ne veut pas perdre du temps ! L'affichage des séquences/frames n'est pas non plus bien actualisé lorsqu'on fait des modifications, ce qui peut encore amener des erreurs. Bref, si Bamworkshop 2 est excellent pour la gestion/modification des palettes, il n'est pas du tout approprié pour ce type de boulot)


    - Lancer Bamworshop premier du nom et ouvrir le fichier .bam à modifier
    - Dans la fenêtre "Séquences", cliquer sur chaque séquence, et supprimer toutes les séquences vides, les orientations en trop, et les séquences redondantes. Bref il ne doit rester que 5 séquences [0 - 4] correspondant aux orientations :

    0 : Sud
    1 : Sud-Ouest
    2 : Ouest
    3 : Nord-Ouest
    4 : Nord

    Pour supprimer une séquence, le plus simple est de faire un clic droit sur la séquence concernée, puis de choisir "Delete sequence" (et répondre par l'affirmative à la question "Are you sure..." oui, on est sure)
    Cette phase de travail étant particulièrement casse-bonbons, il vaut mieux sauvegarder une fois qu'elle est terminée !

    À ce stade, on peut très bien s'arrêter là et passer à l'étape 3. Le fichier .bam que l'on aura conservera toutes les vieilles frames de l'ancienne version, et ne sera pas vraiment optimisé ni facile à retravailler, mais il fonctionnera parfaitement. D'ailleurs, dans certains cas où les séquences se comportent à la manière d'une partition musicale, avec de nombreuses répétitions, et crescendo/decrescendo de frames, il vaut mieux en rester là.

    L'étape suivante va supprimer définitivement de nombreux frames, pour ne garder que ceux qui sont utilisés pour la nouvelle animation. Cela permet d'avoir une animation plus légère, et clairement organisée. En revanche, il va falloir recréer entièrement les 5 séquences; ce qui peut prendre très peu (à peine 1 ou 2 minutes) ou beaucoup de temps (1 heure)

    2. Optimisation du fichier .bam
    Le fait de supprimer des séquences n'ayant aucune incidence sur les frames, on se retrouve avec un fichier bam comprenant de nombreuses frames dont moins d'un tiers sont réellement utilisées. Si l'on veut ne garder que les frames utiles au nouveau format, il va falloir supprimer les autres. Bamwokshop ayant ses limites, le fait de supprimer des frames va nous obliger à recréer entièrement les 5 séquences, ce qui peut prendre un temps très variable.
    Avant de se lancer dans cette procédure, il vaut mieux consulter l'organistion des séquences qui représentent un mouvement.

    •  Si le mouvement est traduit par une simple suite de frames (1,2,3,4,5..), cela ne prendra pas plus que 2 trois minutes.
    •  Si l'on rencontre une suite de répétitions (par ex. 1,1,2,2,3,3,4,4,5,5..) ça va déjà être plus long.
    •  Si l'on est face à un mouvement complexe, représenté par une longue suite d'images, ressemblant à une parition musicale (par ex. 1,1,2,2,3,3,3,3,2,2,1,1,2,2,3,3,3,3,4,4,5,5,5,4,4,3,3,2,2,2,2,3,3,4,5,6,7,7,7...) ça peut vraiment, vraiment, prendre du temps sous Bamworkshop 1 (en revanche cela peut se faire très vite sous DLTCEP qui permet d'ajouter des frames de façon ultra-rapide)

    Ces précautions prises...

    Suppression de frames
    Dans un premier temps, il faut repérer les n° des frames qui sont utilisés par les séquences qui restent, en cliquant sur chaque séquence, puis en cliquant sur Frame, pour voir les références des frames qui lui sont associées (il suffit de les noter sur un bout de papier)


    Par  ex : bamworskhop - manage0: 0-16; 1: 156-172; 2: 312-328; 3: 468-484; 4 : 624-640

    On va alors utiliser un outil très pratique dans BamWorkshop, la gestion de Frames, que l'on appelle depuis
    -> Edit > Manage frames
    Ou plus simplement en cliquant sur "Manage"

    Toutes les frames sont alors affichées.
    - Sélectionner celles qui sont inutiles, puis cliquer sur "Delete" (la combinaison Shift+clic fonctionne bien, mais pour des lignes entières). Pour y voir clair parmis ces séquences, rien n'empêche de garder une ou plusieurs frames vides entre les animations de deux séquences différentes (pour plus de lisibilité, je termine toujours une ligne d'anim avec des frame vides)

    Bamworkshop - Manage frames


    Maintenant que l'on a gardé seulement les frames qui nous intéressent, les séquences d'origine ne nous servent plus à rien, et par surcroit elles poseraient des problèmes puisque leur index est devenu erroné. Par ex. les frames n°164-173 sont devenues n°10-19. Or la séquence 1 continue à "appeler" les frames 164-173. Comme elles ne correspondent à rien, l'animation n'afficherait rien.
    C'est ce problème qu'à essayé de résoudre Bamworkshop 2...sans y parvenir !!! Le programme tente de reconstruire l'index lorsqu'on supprimer des images ou des séquences, mais il s'emmêle vite les pinceaux dans les références et l'animation devient inutilisable.

    Création de séquences et ajout de frames
    - Supprimer toutes les séquences 0 à 4 et en créer 5 nouvelles (clic droit dans la fenêtre Sequence -> Add sequence)
    - Associer les frames à chaque séquence (clic droit dans la fenêtre Frame -> Add Frame et sélectionner les frame à associer à une séquence donnée). Les différentes séquences doivent impérativement avoir le même nombre de frames (autrement le jeu a de forte chances de planter au lancement)

    bamworkshop  - ajouter des frames

    Cette opération faite, le fichier ne contient finalement que les 5 nouvelles séquences, et les frames qui sont appelées sont correctement ordonnées : on peut enregistrer son fichier .bam, et voir s'il est bien lu par Near Infinity ou DLTCEP (le plus simple est de le copier dans le dossier override)

    Il ne reste plus qu'à faire pareil pour les autres fichiers .bam !

    3. Création des bam ___e
    (cette phase de travail est identique à celle décrite dans l'article sur la conversion des animations de PST)

    La particularité des anims de type A1-WK par rapport aux animations G1-G26, est de gérer la symétrie (elle se résume à trois points de vues NE,E,SE) dans un fichier à part, de même nom, auquel est ajouté le suffixe "e" : xxxxA1e, xxxxA2e,... xxxxWKe. Ce fichier contient 8 séquences : 5 vides, et les 3 qui viennent d'être indiquées.
    On pourrait les créer manuellement, mais il se trouve que DLTCEP offre la possibilité de faire automatiquement cette procédure.

    • Ouvrir un 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.
    • Enregistrer (Save Bam As) (...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 !)

    Après avoir répété l'opération pour chacun des 13 fichiers, on dispose maintenant des 26 fichiers .bam propres aux animations de type A1-WK.

    Conversion des animations de Baldur's Gate pour IWD2




    votre commentaire
  •  

    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