Hé bien, ça ressemble à un coup de coeur ça. Me voilà complètement rassuré
Mes réponses et divers remarques, en vrac :
* quelques animations (très rare cas) sont en format DC6 et non DCC, par exemple la mort (DT) de Diablo (DI), ou plusieurs animation de Méphisto (MP). Elle ne sont pas décodées par l'outil pour l'instant. C'est pas très dur à implémenter, mais je pense que ça attendra un peu.
* Pour le monstre "TN", tu vois un carré pâle dans lequel il y a les mouvements d'eau. J'ai corrigé ce bug (car c'en était un) dans la version "bugsfix". Maintenant tu ne voit plus le carré. Ca le faisait aussi sur quelques autre animations.
* J'ai prévu (pour bien plus tard) qu'au 1er lancement de l'application, la fenêtre de sélection des MPQ s'ouvrirai automatiquement, l'utilisateur novice sera moins perdu.
* A ce sujet (ton 1) ) : seul les MPQ sufisent, l'installation du jeu n'est pas requise. Dans l'absolu, un seul répertoire de type "mod directory" peut également suffire. Il suffit qu'il recré l'arborescence qu'on a dans les MPQ. De plus, par défaut l'appli charge quelques ressources depuis les MPQ, mais j'ai prévu un sous-répertoire "ressources" qui contient une copie des fichiers dont elle a besoin, pour se rabattre dessus si les MPQ ne sont pas disponibles.
Après c'est comme le ferait le jeu : si tu renseignes tous les MPQ *et* un Mod Directory, alors l'appli cherche les fichiers à extraire dans l'ordre suivant : mod directory, à défaut patch_d2.mpq, à défaut d2exp.mpq, à défaut d2data.mpq, à défaut d2char.mpq.
* "2) L'Editeur pourrat il lire des MPQ et/ou des fichiers provenant de Mod issus de la de la communauté diablo ? (de la communauté BG à l'issue de l'integration des fichiers .BAM) ?"
>> il est capable de lire de n'importe quel MPQ, encore faut-il mettre à jour le fichier "ressources\listfiles.txt" de l'appli pour les nouveaux chemins de fichier. Sauf si le Moddeur à pris la peine, lui, de mettre à jour le fichier "(listfile)" contenu dans les MPQ. L'appli n'est pas capable (mais dans l'absolu on pourrais le prévoir), de lire les fichiers .txt du jeu et d'en déduire les paths.
Si tu parlais plutôt de la possibilité pour l'appli de lire des fichers .BAM, ce n'est pas prévu. Mais pourquoi pas, si le besoin est là. Au pire je peut tout à fait prévoir 2 interfaces complètements différentes selon que ça soit un fichier de Diablo II ou de BG qui sera choisi.
* "3) L'Editeur pourrat il, à l'avenir, lire des MPQs de Diablo 1 et les convertir in-fine en .BAM ?"
>> pareil, ce n'est pas prévu du tout. Mais là encore s'il y a un besoin, ça peut se faire... sur le principe *tout* peut se faire, faut voir la difficulté et le temps que ça prendrais.
* "4) L’Éditeur est il gourmand en ressource ?"
>> Bonne question. Réponse courte, et sans même à avoir à vérifier : + que DrTester sans aucun doute. Après, je suis contre les applis gourmandes, donc dans la mesure du possible je suis raisonnable.
J'ai fait un petit test : appli de base (la version "bugfixes" par contre, qui corrige un énorme bug de fuite de mémoire par rapport à celle que tu as testé) : l'animation de l'assassin tourne, et d'après Process Explorer l'appli utilise alors 80 Mo et quelques. Après avoir regardé toutes les animations des monstres HTH A1, je voit que j'ai eu un pic dans les 140 Mo. Mais ça dépend de l'animation actuellement regardée. Au passage, dans ces 140 Mo il y a 20 Mo de cache (ça évite d'aller réextraire un fichier du MPQ alors que qu'il avais été extrait peut être 2 secondes avant). Je pourrais économiser encore plus, mais bon, 140 Mo pour un ordinateur moderne, c'est rien. L'appli pendant le même test a utilisé un maximum de 530 handles, c'est moins que mon Firefox actuellement ouvert (600), pas d'abus de ce coté là non plus donc.
Ha, par contre, actuellement l'appli est configurée pour sauvegarder automatiquement (pour debug éventuel) sur le disque dur TOUS les fichiers extraits des MPQ (COF, DCC, TXT, PL2...) au fur et à mesure de la sélection de nouvelles animations. Chez moi mon répertoire "MergeDCCv2_sources\debug\extracted_files" fait dans les 124 Mo. Le test ci-dessus, lui, a généré dans les 63 Mo. Bon pareil, c'est raisonable, et ça sera désactivé par défaut plus tard.
* "5) Quid des fonctions de l'export des fichiers/animations et de leurs choix d'extensions ?"
>> Pour l'instant j'ai prévu de pouvoir sauvegarder sous plusieurs formes (d'ailleurs, je pense à mettre des cases à cocher pour pouvoir extraire sous plusieurs format en même temps). Il y aura évidément des images en PCX, BMP et TGA (les formats natifs d'Allegro). Normalement du PNG plus tard si j'arrive à l'intéger dans l'appli (il n'y a pas de raison, mais ça sera certainement du boulot). Allez soyons fou, peut être du GIF aussi (mais là j'aurais du mal). Il y aura bien sur du BAM, et le BAMC sera possible aussi (de mémoire c'est juste un BAM compressé avec zlib. ou quelque chose comme ça). Pour faire suite à un très vieux projet que j'ai en tête, j'aurais aussi (mais pas gagné) le format DCC (utile pour les moddeurs Diablo II).
Coté format en images, j'ai prévu de laisser une certaine lattitude à l'utilisateur pour le nommage des images. Je pense que je lui donnerais des variables genre %f = n° de frame, %df = direction dans le COF, %dc = direction dans le DCC, %m = mode, etc ... et il saisira un format de nom de fichier du genre "%t%df-HTH%f\%layer\%f.dcc". Enfin, quelque chose comme ça.
Pour les images toujours, je donnerais aussi d'une manière ou d'une autre le choix de la palette finale, celle utilisée par l'appli par défaut, mais n'importe quelle autre pour permettre des conversions aisées. A charge pour l'appli de convertir l'animation (avec sans doute une perte de qualité).
* "6) L'Editeur conservera t-il l'option de lire les animations en éclatés, en effet dans certains cas il semblerait que l'on puisse utiliser certains animation déconstruites afin d'en improviser/reconstruire certaines dans l'IE (en particulier pour les têtes notamment de monstres ou de crânes) ?"
>> Je supose que tu ne parlais pas d'animation avec les éléments séparés entre eux par du vide, mais plutôt de ne pouvoir extraire qu'une partie des layers ? Alors ça oui. D'ailleurs tu peut déjà attribuer la variante "(none)" à tous les layers sauf un, la tête par exemple, pour voir ce que ça donnera. J'avais pensé à rajouter un contrôle pour chaque layer qui permettrais d'attribuer un "groupe" à chacun des layers. Si on veut au final n'avoir qu'une seule image au lieu de plusieurs (1 par layer), on donnerais le même groupe à tous les layers (ce que fait le "mergedcc" d'origine). Mais si tu vuet regrouper 2 layers sur la même image (bras gauche + avant bras gauche + bouxlier par exemple), tu attribuerais le même groupe à ces 3 layers. L'exportation serait alors avec 1 jeu d'image par groupe.
EDIT :
* "A propos qu'est ce que exactement l'alpha-blending et tout particulièrement son rôle en ce qui nous concerne [Diablo vs BG] ?"
>> "alpha", c'est le canal "alpha" des images en millions de couleurs (32bpp). Pour chaque pixel il y a un niveau "d'alpha" (transparence) plus ou moins fort. Et "l'alpha blending" c'est l'art de mélanger les couleurs de 2 images entre elle en fonction du niveau de transparence de l'image du dessus.
Dans les animations Diablo II, il n'y a pas vrai capacité à gérer 1 niveau alpha par pixel (c'est seulement du 256 couleurs). L'astuce est que chaque couleur de la palette à une luminance associée, et on attribue un niveau alpha à chaque couleur de la palette (et non pas à chaque pixel !) selon ce niveau de luminance. Autrement dit : tous les pixels complètement rouge d'une animation auront tous exactement le même niveau de transparence, ici plutôt opaque vu que "complétement rouge" est très lumineux. Si tu veut mélanger 2 images *utilisant la même palette de couleur* entre elles, alors il te faut un tableau de 256*256 éléments (toutes les combinaisons de mélange de la couleur de fond avec la couleur du dessus), chaque élément étant le numéro de couleur dans cette palette de couleur qui se rappoche le plus de la combinaison des 2 couleurs... 65 Ko donc.
Bref, dans l'outil, et dans le jeu, les effets spéciaux sont plutot agréable a regarder, du fait de l'implémentation du (faux) alpha blending. Par contre pour BG ce n'est pas géré, et il faudra donc que je supprime les pixels sombre d'un layer utilisant cet alpha blending.