Freddy_Gwendo a écrit :
Paul, comme indiqué dans mon MP, je me permets de modifier la mise-en-page de ton post pour le rendre plus "lisible", le fond étant très riche.
Bonsoir,
Déjà, je suis content que le résultat actuel, même s’il est loin d’être dans sa version définitive, vous plaise. Autant que possible, je prendrai en compte vos suggestions et recommandations.
Notes, explications, et réponses, un peu dans le désordre :
Cet Éditeur qui nous est offert ici, est un véritable laboratoire.
Effectivement, c’est l’idée générale : j’essaye au maximum de laisser l’utilisateur choisir ce qu’il veut, même si ce n’est pas possible dans le jeu original. J’autoriserai ainsi sans doute à utiliser des colormaps même sur des objets par exemple, ou des layers d’effets spéciaux, voire même normalement à laisse l’utilisateur la possibilité d’utiliser ces propres colormaps (et donc de les créer… je devrais sans doute prévoir un module pour ça).
>>
QUESTIONS DIVERSES :
Dans certains cas, les objets animés/non animés ou bien les Tiles ne seront pas raccords (...) MergeDCC facilitera t il cette démarche de correction ?
Mmm, s’il ne s’agit que de modifier les dimensions de l’animation, alors à priori oui. De là à dire que ça sera aussi bien que photoshop, ça m’étonnerait, mais bon, l’interpolation sur le principe c’est pas dur. Ca restera une option. J’ai Paint Shop Pro comme modèle à la maison, et j’apprécie le fait de pouvoir redimensionner mes images parfois en interpolation, mais parfois simplement en terme de « pixel resize », c’est-à-dire sans inventer de nouvelles couleurs.
(...) Est-il toujours d'actualité de pouvoir visualiser/manipuler les DS1 dans MergeDCCV2 ?
Heu, j’ai peut être raté quelque chose (ou alors on s’est mal compris avant), mais j’ai pas prévu. L’outil est dédié aux animations, pas aux cartes. Alors oui, on peut toujours faire évoluer l’outil pour qu’il fasse plus de choses ... mais c’est mon premier programme Windows, et je m’aperçoit de plus en plus souvent que mon choix de départ de ne pas faire une application « plein écran » (multi-documents) mais plus simple (mono-document) m’handicapera pour faire évoluer l’interface de manière idéale, donc les DS1, c’est compromis. Le mieux serait que je recommence de zéro… mais c’est hors de question, je terminerais cette application dans l’état où elle est, et cette leçon me servira pour mes futurs outils Windows.
Grand amateur de FX et de sorts en particulier, sauf erreur, je ne vois pas ces fichiers à l'inverse de Dr Tester, dans MergeDCC. Seront ils bel et bien intégrés ?
Pour l’instant, c’est prévu, mais il y a des problèmes spécifiques à ces animations. Si je l’implémente, alors dans « Animation Type » j’ajouterais une ligne exprès pour eux, et sans doute qu’alors les 3 listes « token » à « mode » disparaitront pour faire place à une autre interface...
Exemple de difficultés : le paladin utilise des auras, ça c’est facile c’est juste 1 animation qu’on dessine en 1er, et le joueur par-dessus. Mais prend le sort « bouclier de lames » (ou un truc comme ça) de l’assassin : cette animation est en fait décomposée en 2 partie : la moitié arrière, qu’on dessine avant le joueur, et la moitié avant, qu’on dessine en dernier, après le joueur. Je ne perds pas espoir d’ajouter ce genre d’animations dans l’éditeur, mais je garderais sans doute ça pour la fin, c’est un domaine à part entière.
Effets Spéciaux Intégrés (overlays/sorts), avec 2 Boss en photos.
Je n’ai rien fait, ça fait partie de l’animation elle-même.
Certains objets/monstres disposent dans le jeu d'effets associés (typiquement un piège/monstre lanceur de flammes) comment faire pour les ré-associer ? MergeDCCv2 pourra t il s'en charger ?
Ouille ! C’est pas prévu du tout. Prend un piège ou un monstre qui crache du feu en continu (genre Diablo tiens) : ce n’est pas une animation, mais des « missiles » en forme de flammes qui sont lancé pendant un certain temps. Je ne vais pas recréer la gestion des « missiles », c’est extrêmement complexe, avec des données coté client et coté serveur, et avec des choses en dur dans le jeu que je ne peux pas retrouver. Je pourrais (peut-être, pas sûr) aller chercher dans les fichiers .txt du jeu et indiquer à l’utilisateur que telle animation utilise telle et telle autre animations comme sorts, mais ça sera tout.
On appréciera de pouvoir avec souplesse "à la molette" décliner les variantes (variant).
Je n’ai rien fait de spécial : j’ai utilisé un contrôle natif de windows ]Pourquoi dans certains cas il manque certaines vues aux animations ? (...) Ex : HK/DD/WL (bon pour celui je crois comprendre ... l'oiseau ne marche pas ... ^ ^) ?[/QUOTE]
Pour ce cas précis, HK est une invocation du Druide (debug\extracted_files\data\global\excel\MonStats.txt, code = HK). Le design de ce « monstre » a été pensé comme un sort magique, pas un véritable monstre, sans doute la raison de l’absence d’animation « Marche ». Quand un monstre ou un joueur meurt, il passe d’abord par l’animation DT (death = en train de mourir) et ici on voit l’aigle disparaitre. L’étape d’après est DD (dead = cadavre immobile), mais évidement ici il n’y a plus rien à afficher. Pourquoi alors prendre la peine de faire une animation vide ? Je te renvois aux concepteurs du jeu pour avoir la réponse
Mais où est l'assassin ?, et comment recourir dans MergeDccV2 aux sprites des classes des personnages originaux ?
Il te faut le fichier « d2char.mpq » pour les 5 classes de bases, et d2exp.mpq pour l’assassin et le druide. L’assassin est le token « AI ». Si tu veux le voir comme sur ton dessin : COF = Players / AI / HT2 / NU, met tous les composants de l’armure à LIT (HD TR LG RA LA S1 S2), et des griffes CLW ou SKR dans chaque mains RH et LH.
Palettes incorrectes /Pixellisation : BC, LW, RWS, ZS ...
Je n’ai simplement pas encore implémenté le choix de la palette, j’ai forcé pour l’instant l’utilisation de la palette de l’acte 1. La majorité des animations du jeu sont prévues pour être utilisées dans n’importe quel acte du jeu, donc leurs pixels n’utilisent que les couleurs communes aux palettes des 5 actes. Mais parfois, comme dans ton cas, certaines animations sont liées à un acte donné, donc elle utilisent également en plus les couleurs spécifique de l’acte, pour améliorer le rendu final. C’est le problème qu’on appelle « act-dependant color » souvent à Phrozen keep.
Animation Figées : CJ/OP.
Je pense que c’est une animation qui n’est pas dans le jeu. La preuve : le code CJ ne figure pas dans le fichier data\global\excel\Objects.txt. Exemples d’animation de résidus dans les MPQ : TW, GB
2) Est il prévu des fonctions : reset, back/forward concernant toutes les modifications susceptibles d'être apportées ?
Heu, non. Bien que ce soit possible d’être programmer. Mais je ne vois pas l’intérêt ici.
3) Sera t il possible d'avoir un aperçu sous formes de vignettes ou bien une trace écrite de nos modifications ?
Tu pourrais me donner quelques exemples ? En tout cas j’ai prévu que l’on puisse sauvegarder un fichier spécial éditeur, qui ne contient aucune image mais l’état des réglages fait à une animation. Un genre de fichier paramètre qu’on passe à l’actuel merge_dcc quoi.
4) Serait il possible d'une façon ou d'une autre de recouvrir aux noms originaux accordés aux fichiers par les développeurs ?
Heu, je ne vois pas trop ce que tu veut dire. Si c’est à quoi je pense : lors de l’export, le nom de l’animation sera choisi par l’utilisateur, et je lui donnerais plusieurs éléments facultatifs à utiliser dans le ou les noms de fichiers exportés, tel que le nom du fichier COF par exemple.
5) Comment s'effectuera la gestion des archives, sous quelles arborescences ?
J’avoue ne pas comprendre. Archives ?
6) Qu'en est il du nommage ou du renommage des fichiers en vue de leurs classement dans le contexte de la conversion ?
C’est l’utilisateur qui choisira le répertoire et le nom (ou les noms dans le cadre d’images) qui seront exportés. A lui de s’organiser.
Je sais que je teste une version intermédiaire. Mais as-tu prévu d'inclure une bibliothèque de messages permettant d'expliquer à quoi correspond chaque option
Non. Par contre une doc html expliquant un maximum de choses, oui.
Qu'est-ce que l'option "spider web translucency ?
...
Tout à fait Gwendo, moi-même je me demandais d’où pouvait provenir toutes ces appellations concernant l'onglet "special effect"
Aïe, allons-y pour une explication un peu technique alors. Dans les fichiers COF, chaque layer a ses propriétés, et l’une d’entre elle est une valeur indiquant la manière de dessiner le layer. Le jeu utilise 6 valeurs (0 1 2 3 4 et 6). En mode Direct3D, je ne sais pas comment le jeu gère ces valeurs, mais en mode fenêtré (256 couleurs), il utilise des colormaps contenues dans les fichiers PL2 du jeu. C’est en analysant ces colormaps, et en faisant des tests que j’en ai déduis l’effet recherché, et je lui ai donné un nom.
- Ainsi, j’ai remarqué que les valeurs 0 1 et 2 étaient simples à reproduire, puisque c’est simplement un niveau de transparence, 25, 50 ou 75%.
- 3 correspond à un genre d’alpha blending un peu particulier, ou chaque couleur porte en elle son propre niveau d’alpha blending, basé sur sa luminance.
- 4 c’est un effet « Luminance » : le layer à dessiner prend la luminance en fonction de la luminance qu’il y a sous lui. Ainsi sur un fond complètement noir, un layer serait totalement noir, mais sur un fond totalement blanc, alors le layer serait dessiné tel quel.
- 6 c’est ce que j’ai fini par appeler « spider web translucency », parce que je ne comprends pas très bien comment il a été généré, et que j’ai remarqué qu’il est utilisé presque exclusivement sur des objets qui ont des toiles d’araignées.
Pour de plus amples informations sur ce qu’est une colormap, un tutoriel
ici.
Serait-il possible d'avoir une option "plein écran" ?
Trop tard : il faudrait que je recode beaucoup trop de chose. Ou alors tu voudrais voir quoi en plein écran, j’ai peut être mal compris ?
Dallage animé :
Le fond de transparence qui bouge derrière chaque animation prend vraiment la tête.
Je l’ai arrêté, ça sera dans le prochain update. J’ai coupé l’animation. Ca me servait au départ surtout parce que je ne pouvais pas bouger les animations dans la fenêtre et je voulais voir les auras en alpha blending sur différent pixels de fond. Je le désactiverai par défaut, mais l’animation sera une option, vu que Salomon semble y tenir
La possibilité de choisir un fond pour l'aperçu de l'animation, histoire de voir comment elle peut s'intégrer dans un décor.
C’est prévu.
Ajouter des options de lecture aux animations (play, avance, stop..).
C’est prévu aussi.
1) Serait il possible de bénéficier en option : d'une grille 2d et de 2 grilles en Perspective : Dimétrique/Isométrique fidèles (vues Diablo vs BG) ?
Hmm, si c’est ce que je pense, ça sera facile. En tout cas comme je compte pouvoir charger à tout moment n’importe quelle image comme fond d’écran à l’animation, rien n’êmpeche d’y mettre une grille, ça sera une autre façon de procéder.
>>
PROBLÈMES SPÉCIFIQUES aux BAMS :
Freddy_Gwendo a écrit :
Même s'il n'est pas encore terminé, tu n'imagines pas les semaines de modding qu'il m'aurait épargnées si j'avais eu sa version définitive pour convertir les animations Diablo II !
Oui, j’arrive un peu après la guerre, c’est dommage. Et quand je pense que je n’ai réalisé que cette année que je pouvais programmer en Windows alors que j’aurais pu quasiment commencer 10 ans plus tôt ! Car je n’ai pas changé de langage ni d’environnement de programmation par rapport à ce que je faisais déjà il y a 10 ans ... Zut. :/
Gestion des Tailles de Sprites (...) :
Je compte implémenter un zoom juste pour mieux voir l’animation (mais ça ne change rien lors de l’export), et une option de redimensionnement de sprite. L’un n’empêchant pas l’autre, bien sûr.
Les ombres :
- Pour le moment je fais comme dans le jeu, ou presque. C’est pourquoi je trouve que c’est pas bon. Ce que tu appelles « le rendu et la définition des couches d'ombres successives », pour moi c’est un défaut du jeu, que je compte régler. On ne devrait pas voir plusieurs couches d’ombres, mais une seule. C’est parce que les layers sont parfois partiellement recouverts par d’autre, ET parce que dans le jeu les ombres sont générées layer par layer, que les parties communes se voit appliquer N couches d’ombres. Je suis surpris, tu as l’air de trouver ça bien. Moi qui voulais définitivement supprimer ce que je considère comme un bug ] Je vais donner le contrôle de la direction et la taille de l’ombre, donc la même du côté droit plutôt que gauche, aucun problème... sauf visuel : le personnage est éclairé par le haut à droite, et l’ombre serait également à droite ? Enfin bon, c’est l’utilisateur qui décidera.
Problèmes techniques de fabrication de bam :
En fait, lorsque tu superposes plusieurs bam sur un fond de carte, il y en a forcément une qui prend le dessus sur les autres.
J’avoue que je ne saisis pas très bien. Si possible, tu pourrais me montrer un exemple ? Ça m’intéresse beaucoup.
Un fichier bam ne peut pas être constitué d'images de taille supérieuré à 256x256 (...) À ce sujet, j'ai commencé à alimenter une rubrique qui recense tous les formats d'animations de créatures disponibles [THREAD=25038]ici[/THREAD].
Lecture très intéressante. Effectivement, ça a l’air très complexe. Ce que j’en retiens pour le moment, c’est que l’outil devrait pouvoir créer des BAM avec les directions voulues (pas forcément toute) et dans l’ordre voulu, mais également avec la possibilité d’avoir des directions vides (cas des BAM qui contiennent les directions « mirroirs »).
Par ailleurs, certaines animations de créatures et de monstres supposent une palette externe associée à leurs fichiers bam. Il est alors impératif que la créature concernée dispose de fichiers d'animation (pour chaque action) fabriqués à partir de la même palette.
Je n’avais pas pensé à ça. Ok, je devrais donc laisser la possibilité à tout moment de recoloriser n’importe quel layer à la demande, de manière à ce que toutes les animations d’un token puissent utiliser une palette de couleur donnée. Il vaut donc mieux éviter les BAM d’effet spéciaux ayant leurs propres couleurs.
Dans le cas des animations de créatures ou de monstres, il serait très important qu'une option permette de créer un (ou au maximum 2) fichier(s) gif regroupant toutes les actions et toutes les directions d'un même objet.
Donc, même si je n’exporte qu’en BMP dans un premier temps, de manière à faciliter la création d’un GIF plus tard par un outil externe, il faut donc que je prévois quelque chose pour que chaque image BMP ai la même taille que celles d’autres animations (même token, autres modes par exemple). Hmmm, je ne vois pas d’interface facile à utiliser pour ça pour le moment, mais *techniquement* c’est très facile (merge_dcc actuel le gère déjà, c’est le système de « box » dans les fichiers INI).
La possibilité d'exporter une frame seule ou une séquence (pourquoi pas une option permettant d'indiquer une fourchette de frames, de x à y) ?
Ok, j’implémenterai ça, d’une manière ou d’une autre.
L'idéal serait de pouvoir exporter des mouvements et des angles donnés dans un format de fichier gérant la transparence, histoire de s'éviter le détourage.
L’effet spécial « delete dark pixels » ne suffit pas à résoudre les problèmes de détourage ? Si non, alors je veux bien un exemple car je ne comprends pas le problème alors.
La possibilité d'appliquer une palette de couleurs à l'animation (.pal par exemple, ou .act) - mais ce travail se fait très bien sous photoshop.
Je suppose que tu entends par là qu’il faut recoloriser l’animation avec une autre palette que celle d’origine ? Donc avec une perte de qualité généralement, et des options telles que « nearest color » ou « error diffusion ». Ça devrait être facile, et c’est déjà prévu.
Animations du portail :
On est bien d’accord que le rendu « alpha-blending » ne peut pas s’exporter sous BG (seulement le « delete dark pixel » ) ? C’est vrai que c’est joli dans le jeu, et dans l’outil, mais à moins de vouloir faire une illustration pour un site web par exemple, ce genre de rendu n’est pas utilisable dans BG.
>>
ENFIN :
Pourrais tu maintenant qu'on y voit assez clair, nous dire stp, ce que devra être capable de faire MergeDcc V2 et ce qu'il ne sera pas capable de faire ?
==> il sera un exporteur d’animation de Diablo II doublé d’une trousse à outil, avec prévisualisation en temps réel. Le maximum de contrôle doit être donné à l’utilisateur, surtout concernant les couleurs (colorsmaps), le choix du background, et les spécificités de chaque layer. Il y a l’optique de Mod Making, donc les retouches et l’exportation des animations doit pouvoir être très flexible. Dans l’absolu, c’est un outil qui doit pouvoir automatiser le maximum de choses qui sont actuellement faites « à la main », tout en gardant une interface « normale » (j’ai Paint Shop Pro comme modèle).
==> Je compte implémenter un système de regroupement de layers entre eux, et chaque groupe serait sa propre animation lors de l’export : si tous les layers sont dans le même groupe alors il y aura 1 BAM au final, mais si chaque layer est dans son propre groupe, alors lors de l’export il y aura autant de BAM que de layer.
==> en terme d’export, je vise aussi bien comme utilisateur les mod maker voulant récupérer les animations de Diablo II dans leur jeu, que les personnes qui voudrait simplement avoir une belle animation pour un site web par exemple.
Et dans ce cas, quels outils, d'après toi, pourraient se substituer à ses lacunes ou compléter ses fonctions (notamment en terme d'édition graphique, son principal atout) ?
Heu, bof bof, sans opinions.
Envisages-tu certaines compatibilités avec des programmes officiels (plug-in Photoshop par ex.) ou issues de la scène du modding ... ?
Non, aucune. Notez que je n’ai rien contre, donc si vous avez des suggestions, vous pouvez toujours demander, peut-être qu’il y aura moyen que je fasse quelque chose.
J’avais utilisé DLTCEP il y a longtemps, mais à part analyser une animation de PST, et quelques CRE, je m’en suis guère servi. Pour ma part, à moins que vous ne me fassiez changer d’avis, l’outil sera complètement indépendant, quittes à reproduire une partie de ce qui est fait dans ces outils si vous avez besoin.
Quelles compétences t’ont été indispensables pour : Penser & Réaliser cet Outil ?
Hmmmm... Imagination, rigueur, expérience, patience (liste non exhaustive). Ha, et la capacité à pouvoir rogner sur le sommeil
J’ai utilisé (et utilise encore) certaines règles personnelles adoptées au fil de mes expériences. Totalement en vrac... Inutile de se lancer dans la programmation de suite, je planifie des choses dans ma tête, et quand c’est flou ou compliqué, je le travail sur le papier. Ça aide beaucoup à se persuader qu’on sera capable de faire l’outil, ça évitera aussi d’arrêter en plein milieu parce qu’on serait mal partie du départ. Il est évidement important de prévoir à l’avance tout ce que l’appli devra faire, pour coder directement de la bonne façon dès le départ. Mais il est aussi utile de décider ce qu’elle ne devra PAS faire, il faut savoir se limiter. Il faut aussi, entre les 2, laisser de la place à la modularité, pour pouvoir faire ce que j’ai oublié au départ.
Je me prévois aussi une sorte de plan de route, quitte à le remettre en cause plus tard, mais au moins ça donne des étapes successives, donc je sais où je vais, et où j’en suis. Je commence par coder un squelette, et j’étoffe à partir de là. Quoi qu’à ce sujet, c’est mon expérience acquise qui me donne souvent intuitivement la manière de faire.
Coté interface, c’est comme pour les documentations que je fais : je me demande comment, moi, j’aimerais la trouver si je recevais le produit fini. Il faut que ce soit intuitif pour l’utilisateur, et pratique (vu mes compétences graphiques, j’ai fait une croix sur la beauté visuelle, je me concentre donc sur le coté pratique)…
Bon, j’ai déjà raté quelques trucs : finalement l’application aurait dû être multi-document (« plein écran ») [je m’étais posé la question au départ], mais ça aurait été plus compliqué à programmer, et comme c’est mon 1er programme Windows, tant pis.
Coté programmation, je suis moyennement satisfait de mon code. Avec le recul, je me dit que c’est pas assez « propre », pas assez modulaire, que certaines fonctions sont trop compliquées… bah, ça me servira de leçon pour la prochaine application Windows.
D’un autre côté, si je mets ça en balance avec le fait que c’est ma 1ère appli Windows, je m’en sors bien je pense. De toute façon, il y a toujours l’idéal à obtenir d’un côté, et les concessions que je dois faire de l’autre.
Bon, à la prochaine (avec je l’espère un export en BMP, même si toutes les options ne seront pas là).