Page 1 sur 1

[TUTORIEL] FICHIERS BAM (10) : TESTER et IMPLANTER une NOUVELLE ANIMATION de CRÉATURE

Posté : lun. 18 févr. 2013, 23:33
par Freddy_Gwendo
COMMENT TESTER ET INTÉGRER UNE ANIMATION DE CRÉATURE DANS LE JEU (partie 1)





Nos fichiers bam terminés, il convient de les tester dans le jeu.
Enfin !
C'est la partie la plus jouissive de toute la procédure... ;)


Pour ce faire, vous avez le choix entre deux techniques, non exclusives, et même plutôt complémentaires.

Personnellement, j'utilise les deux : la première pour tester rapidement mes nouveaux fichiers d'animation, la seconde pour les intégrer définitivement dans le jeu.


:rtfm: >> Autant la première peut s'effectuer rapidement sur une version vanilla du jeu (BG II + ToB + patch officiel), autant la seconde nécessite une installation moddée.



A. FONCTIONNEMENT DES ANIMATIONS DANS LE JEU.

Dans BG1 et BG2, la liste des animations disponibles est gérée par deux fichiers .idsANIMATE.ids et ANISND.ids – qui en référencient les index.

Pour ceux qui les découvriraient, les fichiers .ids (« identifiers » en anglais) sont des fichiers de tables d'allocation qui contiennent les index de variables nécessaires au fonctionnement du jeu (actions pour les scripts, alignement des créatures, projectiles utilisés par les sorts et les armes, etc.)

  1. Le fichier ANIMATE.ids recense les animations en leur attribuant un index et un nom (plus facile à lire dans une liste qu'une valeur en hexa...)
  2. Le fichier ANISND.ids contient ces mêmes données ainsi qu'un code de 4 lettres permettant d'identifier les fichiers concernant l'animation.


Pour être plus concret, en voici deux extraits :

Image

Image


Le premier champ de ces fichiers (« Value ») contient l'index (l'adresse) de l'animation que le moteur du jeu reconnaît.
Le second (« Identifier ») contient le nom sous lequel l'animation est référencée (par exemple OGRE_HALF pour Demi-Ogre). La longueur de cette chaîne est limitée à 34 caractères.

Le fichier ANISND.ids présente ce nom différemment en lui rajoutant le suffixe « CGAMEANIMATIONTYPE_ » devant le nom, et intercale entre l’index et le nom une information supplémentaire, un code de 4 lettres (MOGH) qui caractérise l’animation et servira de préfixe à tous les fichiers concernant l’animation.

:rtfm: Lorsqu’on veut modifier ces fichiers, il faut IMPÉRATIVEMENT effectuer les modifications sur les deux fichiers en même temps, sous peine de crash.


Dans la troisième partie de ce tuto, nous reviendrons sur l'utilité du fichier ANISND.ids dans la création d'une nouvelle animation, ainsi que son usage pour affecter des sons à une créature (partie 4).


Posté : lun. 18 févr. 2013, 23:47
par Freddy_Gwendo
COMMENT TESTER ET INTÉGRER UNE ANIMATION DE CRÉATURE DANS LE JEU (partie 2)





B. TEST DES NOUVELLES ANIMATIONS DANS LE JEU.


Bonne nouvelle, nous n'avons pas besoin de cavalerie lourde pour cette étape.

Le plus simple pour tester une nouvelle animation, c'est d'utiliser l'index d'une animation existante.

Personnellement, j'utilise systématiquement ceux :

  • de l'Ombre IWD [0xea10 ic_shade] pour tester les animations au format IWD.
  • du Chevalier Démon [0x2300 death_knight] pour le format BG1 Simple Monster.
  • du Spectateur [0x7f02 beholder] pour le format BG2 Split.
  • de Mélissane [0x7f3d melissan] pour le format BG2 Unsplit.
  • de Démogorgon [0x1300 demigorgon] pour le format BG2 Split 4 Parts.
  • de la Wyverne [0xa000 wyvern] pour le format BG1 Long Monster.
  • et de la Wyverne majeure [0x1000 wyvern_big] pour le format BG1 Long Monster 4 Parts.



Comme il faut effectuer une petite manip pour disposer de l'Ombre IWD (à moins que vous n'ayez installé un mod l'implantant), je prendrai pour exemple la Salamandre [0xe900 ic_salamander] pour le format IWD.

J'indiquerai dans la rubrique « Trucs et astuces » la manière de récupérer les slots d'animations prévus dans le moteur mais non disponibles dans les fichiers .ids.



1. Charger dans DLTCEP un fichier de créature déjà existant.

Nous allons maintenant utiliser l'onglet Creature de DLTCEP.
Lancez la commande "Edit > Creature (CRE)" :

Image


Comme pour les animations, on obtient une fenêtre de paramétrage vierge :

Image


Plutôt que de s'embêter à créer une nouvelle créature – puisque ce n'est qu'un test – autant en utiliser une qui existe déjà.
Il suffit de la charger avec le bouton "Load Creature". Une nouvelle fenêtre s'ouvre en haut à gauche :

Image


Sélectionnez la créature correspondant à une Salamandre : ICSALFIR.


:rtfm: Astuce : Si vous ne connaissez pas le nom du fichier à charger, utilisez la fonction "Search next" après avoir saisi le nom de la créature à rechercher dans la case à gauche (ici, « Salamandre »). DLTCEP positionnera le curseur sur la première créature contenant ce nom, puis sur la seconde...


J'en profite pour vous donner les références des créatures permettant de tester les autres formats que nous avons étudiés :

ImageImageImage

ImageImageImage



Comme vous pouvez le constater, le fichier ICSALFIR contient toutes les informations de codage d'une Salamandre, dont le champ Creature animation :

Image


C'est ce champ qui enregistre l'index du fichier ANIMATE.ids :

Image


En vérifiant le fichier ANISND.ids, l'index 0xe900 renvoie les données suivantes : MSAL CGAMEANIMATIONTYPE_SALAMANDER.

Image


MSAL correspond au 4 premières lettres des fichiers .BAM de l'animation de la Salamandre.



3. Modifier les paramètres du fichier.

:!: Cette étape est facultative.

La réaction de la créature n’est pas bonne : 0xff enemy. Si vous l’importez telle quelle, sa première réaction sera d’attaquer le groupe. Adieu le test !

Sauf à l'aide d'une petite astuce que je vous indiquerai plus bas dans le point 6.

Image


Si vous le souhaitez, vous pouvez modifier la réaction de la Salamandre en sélectionnant "0x05 controlled" dans la liste "Reaction".
Ainsi, la Salamandre sera sélectionnable et contrôlable par un simple clic, comme n‘importe quel autre personnage du groupe.

Image

Image




3. Sauvegarder le fichier.

Sauvegardez la créature sous un nom différent afin de ne pas écraser la créature du jeu.
Personnellement, j'utilise toujours le même pour chaque format (GW01 pour IWD, GW00 pour BG1 Simple Monster...).



4. Copier les fichiers d'animation (.BAM) dans le répertoire override.

En l'état, votre créature sera représentée sous la forme d'une Salamandre de feu puisqu'elle utilise les fichiers originaux de BG2.

Pour pouvoir tester nos fichiers .BAM, il suffit de les copier dans le répertoire override en remplaçant leur préfixe "XXXX" par "MSAL".

Note : je n'ai pas choisi au hasard les 6 slots que je vous indiqués. Normalement, leurs fichiers d'animation ne doivent pas se trouver dans le répertoire override, mais dans une des archives .bif. Il n'y a donc aucun risque de modifier le jeu.
Une fois le test terminé, il suffira de supprimer les nouveaux fichiers .BAM de ce répertoire pour revenir à une version « normale » du jeu.
De toute façon, si un mod avait modifié ces fichiers, votre système d'exploitation vous demanderai une confirmation avant de les écraser. Dans ce cas, il suffirait d'annuler l'opération, de sauvegarder les fichiers MSALxx(E).BAM quelque part, puis de recommencer l'opération en acceptant l'écrasement. Une fois le test effectué, il vous suffirait de recopier les fichiers sauvegardés dans le répertoire override.



5. Tester votre nouvelle animation dans le jeu.

Ici, je teste la conversion d'un des Serpents d'Arcanum.

Lancez BG2 et utilisez la CLUAConsole pour importer votre nouvelle créature :

Image



Le code a saisir est : "CLUAConsole:CreateCreature("Nom du fichier de la Créature")".

Pour moi, les créatures à tester au format IWD sont toujours GW01.cre.

La créature apparaît à l'écran : le cercle de sélection vert indique que vous pouvez contrôler tous les aspects de votre nouvelle animation.

:read: Outre les différentes actions que vous pouvez visualiser (marcher, attaquer, lancer des sorts...), il existe un « truc » pour visualiser une bonne partie de ces actions.

Comme souvent, la bonne vieille CLUAConsole en est la clé.

Après avoir importé votre créature dans le jeu, utilisez les combinaisons de touches [Ctrl S] et [Ctrl A].

  1. Sélectionnez la créature en cliquant sur son cercle vert avec la souris.
  2. [Ctrl S] sélectionne le type d'action à visualiser.
  3. [Ctrl A] lance l'animation sélectionnée.



Voici la liste des actions disponibles dans l’ordre :

  • Pause (SD).
  • Ready (SC).
  • Attack-Slash (A1).
  • Attack-Backslash (A2).
  • Attack-Jab (A3).
  • Attack-Shoot (A4).
  • Damage (GH).
  • Die (DE, puis TW).
  • Sleep (SL).
  • Awake (GU).
  • Conjure (SP).
  • Cast (CA).


Elle ne les inclut cependant pas toutes, comme Walk, etc. Mais c’est un bon test.

Action Attaque 1 :
Image


Action Attaque 2 :
Image



Mais vous pouvez éviter les étapes 2 et 3 de ce chapitre en utilisant la technique suivante.



6. Tester votre nouvelle animation dans le jeu (bis).

Si vous n'avez pas modifié les paramètres de réaction de la créature et qu'elle apparaît « ennemie » dans le jeu :

Image


Il suffit d'utiliser la combinaison de touches [Ctrl Q] en positionnant la souris sur son cercle de sélection rouge :

Image


Non seulement, le cercle de sélection devient vert, mais sur la droite de l'écran, vous constatez que la créature a intégré le groupe !

En cliquant dessus, vous pouvez sélectionner ses armes :
Image


ses sorts :
Image


Et accéder à ses écrans :
Image


Vous pouvez maintenant tester toutes ses animations à votre guise.

Le test précédent ([Ctrl S] et [Ctrl A]) fonctionne aussi.


Posté : mar. 19 févr. 2013, 00:04
par Freddy_Gwendo
COMMENT TESTER ET INTÉGRER UNE ANIMATION DE CRÉATURE DANS LE JEU (partie 3)





C. INTÉGRER UNE NOUVELLE ANIMATION DANS LE JEU À L'AIDE DU MODULE « INFINITY ANIMATIONS ».

La nouvelle animation testée et validée, il nous faut maintenant l'intégrer dans le jeu.

J'élimine délibérément la solution de facilité qui consiste à utiliser un slot d'animation existant et à remplacer ses fichiers .BAM par les miens.
D'abord parce que ça provoquera des situations cocasses, voire dérangeantes, lorsqu'une Salamandre de la Sphère Planaire apparaîtra sous la forme d'un Serpent Arcanum !
Et surtout parce que même si certains slots ne sont pas utilisés par le jeu, vos choix pourront entrer en conflit avec ceux de moddeurs ayant effectué les mêmes pour introduire des animations différentes.

Je préfère utiliser le mod Infinity Animations (I.A.) qui patche l’exécutable et modifie les fichiers ANIMATE.ids et ANISND.ids pour rajouter des centaines de slots d‘animation utilisables.

Même si j'admets volontiers que I.A. n'est pas parfait (notamment grands risques de ralentissement du jeu si on ne « biffe » pas le répertoire override après son installation, obligation d‘inclure une routine d‘installation d‘I.A. dans votre mod - ou au moins une routine le détectant -, bugs avérés avec certains mods comme Aurora‘s Shoes), il reste le meilleur outil à votre disposition si vous souhaitez introduire de nombreuses nouvelles animations dans le jeu, comme c'est mon cas avec plus d'une cinquantaine... ;)

En attendant une externalisation de la gestion des animations évoquée pour les versions Enhanced....


Pour illustrer ce chapitre, je vous montrerai comment j'ai intégré les conversions des Rats et des Serpents d'Arcanum.



1. Lancez l'utilitaire ia_reference_picker_v1.02.exe.

Une fois I.A. installé, lancez l'utilitaire ia_reference_picker_v1.02.exe situé dans le sous-répertoire "referencepicker" du répertoire "infinityanimations" :

Image


Sélectionnez la commande "claim an animation" pour définir un slot pour votre animation.



2. Initialisez la liste des animations disponibles.

Pour définir un nouveau slot, l'utilitaire a besoin de connaître l'ensemble des animations déjà disponibles. Il vous demande donc de lui en donner la liste :

Image


Vous la trouverez dans le forum d'Infinity Animations dans le sujet « Animation Listings ». Allez directement au dernier message et copiez la liste contenue dans les balises de code.
N'oubliez aucun caractère !

Puis copiez-la à l'emplacement du curseur :

Image


Appuyez sur le bouton "Continue" pour valider la saisie.



3. Choisissez le format de votre animation.

Après un cours instant de traitement, une nouvelle fenêtre s'ouvre :

Image


Chaque bouton correspond à un format d'animation. Il ne vous reste plus qu'à choisir celui qui correspond à votre nouvelle animation.

Ce qui nous intéresse ici, ce sont les animations au format IWD :
Image




4. Définissez les propriétés de votre animation.

Quelque soit le format choisi, nous arrivons sur la même fenêtre appelée « Almost there » :

Image


Cette fenêtre vous permet de définir certains paramètres de votre animation (variables selon le format).

– La taille du cercle de sélection : Image

– L'inclusion d'un paperdoll : Image

:!: :rtfm: N'activez cette option que si l'animation concerne une créature qui peut se joindre au groupe ou qui sert de support à une métamorphose.


– Et un choix de palette éventuelle : Image


Pour le Rat Arcanum, j'ai choisi les paramètres NORMAL 3, no (pas de paperdoll) et unpaletted. Validez vos choix en appuyant sur le bouton "Go".

Image


Une nouvelle fenêtre (« Verify ») récapitule vos choix et vous demande de les valider ou de les annuler.
Si vous les annulez, il vous faudra recommencer la procédure.



5. Affectez un nom à votre animation.

Après validation, vous devez saisir le nom de votre nouvelle animation.

Image


Souvenez-vous ! Ce nom ne doit pas dépasser 34 caractères.

Je choisis donc un nom assez explicite pour mon animation de rat géant noir d'Arcanum, et je valide :

Image




6. Recueillir les données nécessaires pour enregistrer votre animation.

Après un traitement rapide, deux nouvelles fenêtres s'ouvrent :

Image


En haut, la plus grande (« New List (do not edit) ») a actualisé la liste des animations que nous avons copiée au tout début de la procédure.

En bas, la plus petite (« Add to your WeiDU installer ») vous offre des lignes de code gratuites pour intégrer vos animations dans les fichiers ANIMATE.ids et ANISND.ids.
Mais nous y reviendrons dans un instant.
Auparavant, nous allons étudier les deux autres fenêtres disponibles.

Lecteur a écrit : Comment ça – Deux autres fenêtres ?
Où sont-elles ?


En fait, ce sont deux autres fenêtres qui se substituent à la petite.
Appuyez sur le bouton "to listing".

Image


Comme son nom l'indique (« Add to your ANIMATE.IDS/ANISND.IDS »), cette nouvelle fenêtre vous donne automatiquement les lignes à rajouter aux fichiers ANIMATE.ids et ANISND.ids pour que le jeu reconnaisse votre nouvelle animation.

Appuyez sur le bouton "to WeiDU".

Image


Cette fois, vous obtenez les lignes de code nécessaires à l'installation d'un mod à l'aide de WeiDU.


Mais revenons à notre rat. Si vous vous promenez dans la fenêtre supérieure (en prenant soin de ne surtout pas en modifier le contenu), vous finissez par découvrir le préfixe de votre animation : µIW.

Image

Lecteur a écrit : Et où est passé le nom de l'animation ?
Et son index : 0x50e6
Ce n'est pâs le bon : 0x5323


S'il n'apparaît pas à ce stade, c'est normal : si vous aviez bien lu l'écran à droite, vous auriez constaté que cette ligne concerne les animations IWD LARGE (5'), or mon Rat a été codé en SMALL (3'). L'utilitaire a seulement ajouté une ligne vide qui ne sera pas utilisée pour éviter d'utiliser le code µIW pour une créature LARGE.
Si je descend encore la liste, je vais trouver mon animation :

Image


Normalement, à ce moment, vous devriez sauter directement aux points 7. à 8. suivants.

Mais comme j'ai 7 autres animations à intégrer, je vais faire une digression pour vous montrer la liste finale.

>> :!: En pratique, je le répète, NE FAITES SURTOUT PAS CE QUE JE VAIS FAIRE : après chaque saisie d'une nouvelle animation, passez directement aux points 7. à 8..


Puisque cet utilitaire ne gère qu'une animation à la fois, il faut tout recommencer depuis le début.

Surtout ne cliquez pas sur le bouton "Done!" avant que je ne vous le dise. Sinon, vous perdriez tout votre travail.

Avant de sortir de l'utilitaire – que vous deviez intégrer d'autres animations ou pas –, copiez la liste des animations dans le presse-papier à l'aide de la commande "Copy to clipboard".

Vous pouvez alors quitter l'utilitaire ("Done!"). Relancez-le, copiez le contenu du presse-papier dans l'écran « Get the current list first. » avant de paramétrer une autre animation. Le tout 7 fois afin d'obtenir ceci :

Image


Vous remarquerez au passage le pourcentage d'emplacements encore disponibles : 91 %. Sachant que cette liste comprend près de 200 nouvelles animations issues soit de mes conversions Diablo II, soit de mon mod, vous voyez qu'il reste de la marge !

Et voilà 8 nouvelles animations intégrées dans le jeu !

Intégrées, c'est vite dit car ce n'est pas encore terminé. ]7. Mettez-à-jour la liste officielle des animations d'I.A.[/color]

Avant toute chose, vous devez savoir qu'Infinity Animations est avant tout un mod de partage de nouvelles animations.
Pour éviter toute confusion entre moddeurs – notamment que deux mods utilisent le même slot pour deux nouvelles animations différentes –, les utilisateurs d'I.A. s'engagent à diffuser publiquement leurs animations et à centraliser les slots qu'ils emploient.

Certes, ce n'est pas obligatoire (notamment si vous créer un mod de conversion totale), mais si vous comptez publier vos travaux, cela vous évitera bon nombre d'incompatibilités.

Le processus est simple et s'effectue en deux étapes.


7.a. Mise-à-jour de la liste des animations.

L'objectif est de mettre-à-jour la liste des animations officielles d'I.A. que vous avez utilisée.
Après avoir intégré une ou plusieurs animations et avant de quitter l'utilitaire, copiez la liste des animations dans le presse-papier ("Copy to clipboard").

Image


Au passage, vous constatez que la commande "Copy to clipboard" a été remplacée par le simple message "*copied*".

Par sécurité, je préfère la sauvegarder aussitôt dans un fichier .txt. Mais vous n'êtes pas obligé de le faire.

Puis connectez-vous au forum d'Infinity Animations et postez cette liste dans le sujet « Animation Listings ». N'oubliez pas de la copier dans les balises de code ([codebox] [/codebox]) afin de préserver son format.


7.b. Partage des nouvelles animations.

Votre animation référencée, il vous reste à « uploader » ses fichiers .BAM (ou au moins indiquer un lien où les télécharger) dans la rubrique IA Content thread du même forum.


Avant de quitter l'utilitaire, vous avez deux dernières choses à faire.



8. Renommez les fichiers .BAM de votre animation.

Pour que le moteur du jeu reconnaisse les fichiers .BAM de votre nouvelle animation, vous devez les renommer en utilisant le préfixe assigné par I.A.

Si je reprend l'exemple du Rat, voici mes fichiers de test :

Image


puis, renommés avec le bon préfixe µIW :
Image


:rtfm: Évitez dans la mesure du possible d'utiliser la commande "batch rename files" de la grande fenêtre « New List (do not edit) ».

En effet, cette commande censée renommer automatiquement les fichiers .BAM en utilisant le préfixe défini par I.A. ne fonctionne pas parfaitement.
Elle vous demande de saisir le chemin du répertoire où se trouvent vos fichiers d'animation, et leur ancien préfixe, puis se charge de leur changement de nom.
En pratique, il semble que l'utilitaire ait du mal à reconnaître certaines arborescences.
Ceci dit, le pire qu'il puisse vous arriver n'est pas très grave : les fichiers .BAM ne sont pas renommés !
Mais pour éviter toute perte de temps, préférez renommer vos fichiers vous-même.



9. Modifier les fichiers ANIMATE.ids et ANISND.ids.

La dernière étape pour que votre animation soit opérationnelle consiste à les intégrer dans les deux fichiers .ids qui les gèrent.

Je ne traiterai pas de la technique de modification manuelle de ces fichiers (leur rajouter les lignes définies dans la fenêtre « Add to your ANIMATE.IDS/ANISND.IDS »).
En effet, même si elle est très simple à réaliser, elle pose des problèmes d'incompatibilité avec les autres mods.

Je lui préfère la technique de patch de ces fichiers avec le fichier tp2 d'installation de votre mod.

Si je ne reviendrai pas sur la définition du fichier tp2 (pour toute information, consultez le tuto d'Armand (Le bâton du moddeur – Partie 1, Chapitre 1 – Fonctions et composition du fichier tp2), je vous indique les lignes à insérer dans le tp2 pour intégrer votre animation.


C'est assez simple puisqu'elles sont fournies dans la petite fenêtre « Add to your WeiDU installer » :

APPEND ~animate.ids~ ~0x5323 RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~
APPEND ~anisnd.ids~ ~0x5323 µIW CGAMEANIMATIONTYPE_RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~

Il suffit de les « copier-coller » dans votre fichier tp2 :

Code : Tout sélectionner


APPEND ~animate.ids~ ~0x5323 RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~
APPEND ~anisnd.ids~ ~0x5323 µIW      CGAMEANIMATIONTYPE_RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~

COPY ~MyMod/Rat~ ~override~
La dernière ligne copie les fichiers .BAM dans le répertoire override, avec MyMod/Rat représentant le répertoire dans lequel se trouvent les fichiers µIWxx(E).BAM.


Pour exemple, voici les lignes du tp2 concernant les 8 animations des rats et des serpents Arcanum présents dans mon mod :

Code : Tout sélectionner

APPEND ~animate.ids~ ~0x5323 RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~
APPEND ~anisnd.ids~ ~0x5323 µIW      CGAMEANIMATIONTYPE_RAT_GIANT_BLACK_ARCANUM~ UNLESS ~^0x5323~
APPEND ~animate.ids~ ~0x5324 RAT_GIANT_BROWN_ARCANUM~ UNLESS ~^0x5324~
APPEND ~anisnd.ids~ ~0x5324 µIX      CGAMEANIMATIONTYPE_RAT_GIANT_BROWN_ARCANUM~ UNLESS ~^0x5324~
APPEND ~animate.ids~ ~0x5325 RAT_GIANT_GRAY_ARCANUM~ UNLESS ~^0x5325~
APPEND ~anisnd.ids~ ~0x5325 µIY      CGAMEANIMATIONTYPE_RAT_GIANT_GRAY_ARCANUM~ UNLESS ~^0x5325~
APPEND ~animate.ids~ ~0x5326 RAT_GIANT_GREEN_ARCANUM~ UNLESS ~^0x5326~
APPEND ~anisnd.ids~ ~0x5326 µIZ      CGAMEANIMATIONTYPE_RAT_GIANT_GREEN_ARCANUM~ UNLESS ~^0x5326~
APPEND ~animate.ids~ ~0x5327 SNAKE_LIGHT_GREEN_ARCANUM~ UNLESS ~^0x5327~
APPEND ~anisnd.ids~ ~0x5327 µJA      CGAMEANIMATIONTYPE_SNAKE_LIGHT_GREEN_ARCANUM~ UNLESS ~^0x5327~
APPEND ~animate.ids~ ~0x5328 SNAKE_GREEN_ARCANUM~ UNLESS ~^0x5328~
APPEND ~anisnd.ids~ ~0x5328 µJB      CGAMEANIMATIONTYPE_SNAKE_GREEN_ARCANUM~ UNLESS ~^0x5328~
APPEND ~animate.ids~ ~0x5329 SNAKE_RED_ARCANUM~ UNLESS ~^0x5329~
APPEND ~anisnd.ids~ ~0x5329 µJC      CGAMEANIMATIONTYPE_SNAKE_RED_ARCANUM~ UNLESS ~^0x5329~
APPEND ~animate.ids~ ~0x532A SNAKE_YELLOW_ARCANUM~ UNLESS ~^0x532[Aa]~
APPEND ~anisnd.ids~ ~0x532A µJD      CGAMEANIMATIONTYPE_SNAKE_YELLOW_ARCANUM~ UNLESS ~^0x532[Aa]~

COPY ~Diamant/Bam/RAT_ARC~ ~override~
COPY ~Diamant/Bam/SNA_ARC~ ~override~

Note : en fait, dans un souci d'allègement, mon tp2 appelle une librairie qui réunit toutes les modifications effectuées sur les fichiers .ids et copie les fichiers .BAM dans le répertoire override. Mais peu importe, les commandes sont les mêmes.


10. Créer une créature utilisant votre nouveau slot d'animation.

Pour tester le Rat Arcanum, je charge un rat déjà existant :
Image
Puis je modifie l'index du champ Creature animation :
Image
Les 8 nouvelles lignes d'index de mes animations ont été rajoutées dans le fichier ANIMATE.ids.

Il suffit de sauvegarder le fichier sous un autre nom et de le tester in-game.

[/size][/font]

Posté : mar. 19 févr. 2013, 00:12
par Freddy_Gwendo
COMMENT TESTER ET INTÉGRER UNE ANIMATION DE CRÉATURE DANS LE JEU (partie 4)





D. ATTRIBUER DES SONS À VOTRE ANIMATION.


>> :!: Cette étape est facultative.


Vous aurez remarqué que certaines créatures émettent des sons lorsqu’elles effectuent certaines actions. Ces sons sont gérés de deux manières :

  • Soit dans le fichier .cre.
  • Soit dans un fichier 2da. lié à un slot d’animation.



Je traiterai ici de la manière d’attribuer des sons à une animation par l’intermédiaire du fichier 2da.



1. Définir une base de données de sons.

Les fichiers sons utilisés sont au format .wav.
Je passe sur la manière dont vous pouvez les obtenir : exportation avec un utilitaire de modding (Near Infinity, WinBiff̷) , téléchargement sur Internet, exportation et conversion à partir d’un autre jeu…

Une fois ces fichiers définis, vous devez les attribuer à votre animation par l’intermédiaire d’un fichier 2da.



2. Structure générale des fichiers 2da.

Les fichiers 2da stockent des informations nécessaires au moteur du jeu (XP par niveau, nombre de sorts disponibles par niveau, progression du TAC0 par niveau, PV par niveau̷) .

Leur format est assez simple : comme leur nom l’indique ("2-Dimensional Array"), ils sont constitués d’un tableau de données (lignes / colonnes).

Ils sont d’ailleurs parfaitement éditables dans votre éditeur de texte préféré.



3. Structure des fichiers 2da. associés aux animations : théorie.

Certains contiennent donc des références aux sons émis par toutes les créatures utilisant un même type d’animation (même code de 4 lettres) selon les actions (séquences) qu’elles effectuent.

Prenons par exemple le premier fichier 2da de cette série : le fichier MAIR.2da.
Il correspond à la ligne 0x7320 MAIR CGAMEANIMATIONTYPE_ELEMENTAL_AIR du fichier ANISND.ids, c'est-à-dire le slot d'animation des Élémentaires d'Air.

Image



La première ligne contient le préfixe de l'animation et un nom qui la définit, séparés par un « / ».
La seconde ligne contient la valeur par défaut des données du fichier.
La troisième ligne contient l'entête des colonnes. Dans le cas particulier de ce type de fichier 2da., nous n'avons que « SOUND ».
Les lignes suivantes contiennent les données du fichier.


:rtfm: ATTENTION ! Surtout, ne travaillez pas ces fichiers avec DLTCEP car ce dernier n'affiche que la première colonne de données :

Image



Par ailleurs, voici les règles de fonctionnement de ces fichiers :

a. Les lignes sont regroupées par paires – chaque paire correspondant à une action, elle même répertoriée dans le fichier SEQ.ids :

Code : Tout sélectionner

0 SEQ_ATTACK
1 SEQ_AWAKE
2 SEQ_CAST
3 SEQ_CONJURE
4 SEQ_DAMAGE
5 SEQ_DIE
6 SEQ_HEAD_TURN
7 SEQ_READY
8 SEQ_SHOOT
9 SEQ_TWITCH
10 SEQ_WALK
11 SEQ_ATTACK_SLASH
12 SEQ_ATTACK_BACKSLASH
13 SEQ_ATTACK_JAB
14 SEQ_EMERGE
15 SEQ_HIDE
16 SEQ_SLEEP
b. La première ligne de chaque paire contient la référence du fichier son associé à la séquence.

c. La seconde ligne de chaque paire contient le numéro de la frame de la séquence du fichier .BAM qui lance le son à jouer.

d. Tous les sons sont joués tant que la créature n'est pas rendue silencieuse (STATE_SILENCED).

e. Les lignes Battle_Cry et Selection ne sont utilisées que si le fichier .CRE de la créature ne contient pas de référence prédéfinie de son pour ses champs battle cry et selection.


Après la théorie, passons à la pratique.



4. Structure des fichiers 2da. associés aux animations : pratique.

D'abord, il arrive que deux sons soient attribués à une même action, comme pour les dragons :
Image

Parfois, c'est même trois sons, comme pour le Solaire :
Image

Quoi qu'il en soit, le fonctionnement reste le même :

a. Si plusieurs sons ont été définis pour une même séquence, un seul est joué de manière aléatoire.

b. Aucun son n'est joué si la valeur enregistrée est identique à la valeur par défaut (ici ***), ou si elle est nommée « nosound » : Comme aucun fichier nosound.wav n'existe, ce son sera considéré comme invalide par le moteur et aucun son ne sera joué.


Dans notre exemple, l'Élémentaire de l'Air dispose de 3 sons d'attaque : airel01, nosound et nosound, joués respectivement aux frames 2, 0 et 0.
Lorsqu'il attaque, le moteur choisit au hasard un de ses sons. Donc, il y a en théorie une chance sur 3 pour qu'il produise le son airel01.wav et deux chances sur trois pour qu'il reste silencieux (puisque nosound est une valeur invalide). Mais nous verrons plus loin que ce n'est pas le cas !
Lorsqu'il est touché, il produira toujours le son airel06.wav.
Il ne produira aucun son lorsqu'il s'endort, se relève, lance un sort et marche.


Quant au dragon rouge, il utilisera les sons red01 et red 02 pour les actions Battle_Cry and Selection. Mais Firkraag utilisera à la place les sons référencés dans son fichier .cre.


:rtfm: J'attire maintenant votre attention sur un bug (ou plutôt un dysfonctionnement) présent dans ToB :

Lorsqu'une ligne dispose de plus de deux références de son, le moteur ne choisit au hasard que les deux références extrêmes (la première et la dernière).
Ainsi, toute créature représentée par l'animation d'un solaire (MSOL CGAMEANIMATIONTYPE_SOLAR) n'émettra jamais le son solarg02 lorsqu'elle attaque.



5. Créer son propre fichier 2da.

Plutôt que de créer ex-nihilo un fichier 2da, le plus simple est d'en charger un dans un éditeur de texte et de le modifier.

Voici celui que j'ai créé pour mes Gargouilles :
Image
Après avoir choisi et renommé mes fichiers sons, j'ai modifié le fichier MDR1.2da du Dragon rouge avec ces nouvelles références et l'ai sauvegardé sous le nom µDL.2da. correspondant à la référence de l'animation de la Gargouille dans le fichier ANIMSD.2da.

Reste à le copier dans le répertoire override.

Dans le cadre d'un mod, le plus simple est de le transférer dans le répertoire contenant les fichiers .BAM de la créature et de les copier ensemble dans le répertoire override avec le fichier d'installation tp2 :

Code : Tout sélectionner


APPEND ~animate.ids~ ~0x5296 GARGOYLE_DIABLO~ UNLESS ~^0x5296~
APPEND ~anisnd.ids~ ~0x5296 µDL      CGAMEANIMATIONTYPE_GARGOYLE_DIABLO~ UNLESS ~^0x5296~

COPY ~Diamant/Bam/GAR~ ~override

L'étape la plus pénible a été l'écoute et la nomenclature des fichiers sons : comme ils sont très courts (pas plus de 2-3 secondes), faire la différence entre un son évoquant une blessure ou la mort peut parfois relever du parcours du combattant, et je ne parle même pas des différences de qualité d'oreilles de chacun.

Bref, je suis persuadé que 4 personnes qualifieraient de manière différente les fichiers de sons d'un même lot.
Donc, ne vous prenez pas trop la tête et attribuez chaque son à une séquence selon votre propre ressenti.

Cependant, si vous utilisez des fichiers sons provenant d'I.E., il y a de fortes chances pour qu'ils répondent au schéma suivant, enfin... dans le meilleur des cas... :
  • xxxx01 : BATTLE_CRY.
  • xxxx01-02 : SELECT.
  • xxxx03-05 : ATTACK.
  • xxxx06 : DAMAGE.
  • xxxx07 ou 09 : DYING.

C'est fait, votre nouvelle créature est terminée et prête à être implantée dans votre mod.

[/size][/font]