Affichage des résultats 1 à 1 sur 1

Discussion: [WeiDU] Installer facilement les slots d'animation des créatures selon le jeu moddé

  1. #1
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644

    Flèche [WeiDU] Installer facilement les slots d'animation des créatures selon le jeu moddé

    Pour rendre son mod compatible à la fois avec les versions classiques et Enhanced, il faut modifier un certain nombre de paramètres. Parmi ceux-ci, il en est un qui est assez pénible, le champ qui attribue un slot d'animation à une créature.

    En effet, selon que l'on utilise BG2, BG2 et Infinity Animations ou BG2EE, BGEE, SoD ou IWDEE, les valeurs de ce champ peuvent changer. Ce n'est pas très compliqué à gérer si on installe peu de créatures et si ces dernières utilisent des slots d'animation classiques, mais pour peu qu'on installe des dizaines de créatures dont certaines utilisent des animations non vanilla, ça peut vite devenir pénible de devoir coder ça, ou tout simplement de devoir créer des fichiers cre spécifiques à chaque jeu.

    Si certains ne semblent pas convaincus, voici un petit tableau illustrant mon propos.

    BGII - ToB
    INFINITY ANIMATIONS
    BG2EE
    SoD
    BGEE
    IWDEE
    Code
    Animation
    Bam
    Code
    Animation
    Bam
    Code
    Animation
    Bam
    Code
    Animation
    Bam
    Code
    Animation
    Bam
    Code
    Animation
    Bam
    0x1200 DRAGON_RED MDR1 0x1200 DRAGON_RED MDR1 0x1200 DRAGON_RED MDR1 0x1200 DRAGON_RED MDR1 0x1200 DRAGON_RED MDR1 0x1200 DRAGON_RED MDR1
    0x5100 FIGHTER_MALE_HUMAN_LOW CHMB 0x6420 L_FIGHTER_MALE_HUMAN XHMF 0x5100 FIGHTER_MALE_HUMAN_LOW CHMB 0x5100 FIGHTER_MALE_HUMAN_LOW CHMB 0x5100 FIGHTER_MALE_HUMAN_LOW CHMB 0x5100 FIGHTER_MALE_HUMAN_LOW CHMB
    0x7f40 GOLEM_MINI MGLM 0x7f40 GOLEM_MINI MGLM 0x7f40 GOLEM_MINI MGLM 0x7f40 GOLEM_MINI MGLM
    0x5c01 FIRE_GIANT_2 µJX 0x7f47 GIANT_FIRE_2 MFI2 0x7f47 GIANT_FIRE_2 MFI2 0x7f47 GIANT_FIRE_2 MFI2 0x7f47 GIANT_FIRE_2 MFI2
    0xe0c0 TROLL_SNOW MTSN 0xe0c0 TROLL_SNOW MTSN 0xe0c0 TROLL_SNOW MTSN 0xe0c0 TROLL_SNOW MTSN 0xe0c0 TROLL_SNOW MTSN
    0x5032 BEBILITH_NWN µBY
    0x5fc5 UNICORN_WHITE ØCX GW_UNICORN_WHITE GWU1 GW_UNICORN_WHITE GWU1 GW_UNICORN_WHITE GWU1 GW_UNICORN_WHITE GWU1

    Vous constaterez que même pour des animations plutôt classiques, la valeur du champ animation peut changer, mais aussi le nom des fichiers bam utilisés. De plus, les jeux Enhanced ne disposent pas forcément de tous les fichiers BAM ou ini nécessaires. La raison invoquée étant l'allègement du poids de téléchargement des jeux.


    C'est la raison pour laquelle je me suis amusé à automatiser tout ça.

    Le principe est simple :

    1. J'ai comparé les fichiers ANIMATE.IDS, ANISND.IDS et les fichiers ini (pour les versions Enhanced) des jeux et j'en ai produit un tableau comparatif. Puis j'ai attribué un nom générique (CODE COMPARATIF) pour chaque animation. J'en ai profité pour ajouter mes nouvelles animations déjà enregistrées sur SHS. En voici un extrait :

    Code:
    /*      |        Infinity Animations          |                BG2EE                  |                 SoD                   |                 BGEE                  |                IWDEE                   |
     FORMAT | ANIMATE.IDS (IA)              BAM   |  ANIMATE.IDS (BG2EE)           BAM    |  ANIMATE.IDS (SoD)             BAM    |  ANIMATE.IDS (BGEE)            BAM    |  ANIMATE.IDS (IWDEE)           BAM     | => CODE COMPARATIF
    -- 0 ----------- 1 --------------------- 2 ------------ 3 --------------------- 4 ------------- 5 --------------------- 6 ------------- 7 --------------------- 8 ------------- 9 --------------------- 10 -------------------------- */
    
    BG1_ML4,  WYVERN_BIG,                   MWYV,    WYVERN_BIG,                   MWYV,     WYVERN_BIG,                   MWYV,     WYVERN_BIG,                   MWYV,     WYVERN_BIG,                   MWYV      =>  WYVERN_BIG         
    BG1_ML4,  WYVERN_WHITE_BIG,             1AC,     WYVERN_WHITE_BIG,             MWYV_WH,  WYVERN_WHITE_BIG,             MWYV_WH,  WYVERN_WHITE_BIG,             MWYV_WH,  WYVERN_WHITE_BIG,             MWYV_WH   =>  WYVERN_BIG_WH

    2. Je charge ce tableau avant d'installer mes créatures.
    3. Lorsque j'installe un fichier .CRE, je lance une fonction qui va directement détecter l'existence et la valeur du slot correspondant à CODE COMPARATIF dans le fichier ANIMATE.IDS.
    3b. Pendant que j'y suis, je vérifie l'existence dans le jeu de tous les fichiers BAM, BMP (palettes) et INI nécessaires pour afficher l'animation.
    4. La fonction écrit directement la valeur du champ animation dans le fichier CRE en fonction du jeu.
    5. Si le code de l'animation n'existe pas, pour éviter de planter la procédure, je lui attribue la valeur 0.
    5b. Si un des fichiers nécessaires n'est pas présent, il est répertorié dans le fichier GWDiamant_missing_anim.txt dans le répertoire du jeu afin de pouvoir gérer son installation.

    Code:
    INCLUDE ~%MOD_FOLDER%/lib/GW_Cre_Def_Anim.tpa~				// Charge les fonctions nécessaires
    
    LAM ~GW_DEFINE_ANIMATION_SLOTS~						// Définition des valeurs string des slots d'animation des créatures selon le moteur du jeu.
    
    COPY ~%MOD_FOLDER%/Mycre.cre~ ~override/Mycre.cre~
    
    	PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN				// protects against invalid files
    
    		LPF ~GW_CRE_DEF_ANIM~ STR_VAR GWdef_anim = "WYVERN_BIG_WH" RET GW_nvanimation END
    
    		PATCH_IF (GW_nvanimation = "-1") BEGIN			// IDS_OF_SYMBOL returns "-1" if it does not find %GWdef_anim% in animate.ids
    			WRITE_LONG 0x028 0
    		END ELSE BEGIN
    			WRITE_LONG 0x028 EVAL "%GW_nvanimation%"	// Animation ID (ANIMATE.IDS)
    		END
    
    	END
    Notes :

    • J'ai adapté la procédure utilisée par mon mod et j'ai testé cette dernière brièvement sur une autre installation. Je l'ai postée car je serai peu disponible les dix prochains jours. Prévenez-moi s'il y a un problème et je le règlerai aussi vite que possible.
    • Rien ne vous empêche de changer la valeur CODE COMPARATIF dans le fichier GW_Cre_Anim_table.tpa.
    • Je n'ai pas fait de contrôle pour BG2 sans IA car ça ne m'est d'aucun intérêt. Mais s'il le faut, je pourrais l'ajouter à terme.
    Fichiers attachés Fichiers attachés
    Dernière modification par Freddy_Gwendo ; 02/04/2017 à 12h03.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

Discussions similaires

  1. [TDD] Impossible d'installer la version WeiDU
    Par Darien Liadon dans le forum Méga-mods : Big Picture, The Darkest Day, Shadow Over Soubar, Tortured Souls, Check The Bodies, Nev
    Réponses: 36
    Dernier message: 19/01/2015, 14h03
  2. [HELP] STRUCTURE EXACTE des fichiers bam d'animation des créatures et des monstres
    Par Freddy_Gwendo dans le forum Menace sur le Royaume de Diamant Éternel
    Réponses: 36
    Dernier message: 20/02/2013, 21h38
  3. [IA] Conseil pour Infinity Animation Core Weidu beta 5
    Par colonel klinck dans le forum Méga-mods : Big Picture, The Darkest Day, Shadow Over Soubar, Tortured Souls, Check The Bodies, Nev
    Réponses: 0
    Dernier message: 23/11/2011, 11h31
  4. [BGT] Installer BGT, BP-WeiDU et quelques autres mods
    Par Makunouchi dans le forum Baldur's Gate Reloaded : les mods TUTU et Baldur's Gate Trilogy
    Réponses: 1
    Dernier message: 24/01/2010, 17h34
  5. [OUTIL OBSOLÈTE] IEEP : Problème d'animation de créatures
    Par Anubis dans le forum [ARCHIVES] Outils de la préhistoire
    Réponses: 1
    Dernier message: 07/07/2005, 22h24

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250