• dernière modification : 31 octobre 2023

    Fichiers propres à une map nocturne

    Depuis Baldur's Gate I, il est possible d'enrichir une map d'une version nocturne de la toile de fond (Extended night). Cela permet essentiellement d'ajouter des lumières et des ambiances lumineuses à des scènes de villes ou à des campements. Baldur's Gate I et Baldurs Gate II les utilisent régulièrement, Icewind Dale I et Icewind Dale II... pas du tout, et c'est bien dommage.

    Pour qu'une map nocturne soit pris en charge par le moteur du jeu, il est nécessaire d'avoir créé 4 fichiers supplémentaires à ceux qui constituent une map, et qui vont avoir les mêmes noms  avec le suffixe N en plus :

    - ARxxxxN.TIS : Le plus évident, c'est la version nocturne de la map. La manière la plus simple de le créer à partir d'un .jpg ou .bmp est d'utiliser Near Infinity (NI) et ses outils de conversion d'image (Tools -> Convert -> Image to TIS)
    - ARxxxxN.MOS : c'est la version réduite de la map, qui s'affiche dans le jeu lorsqu'on accède à l'option Map. On peut utiliser là encore NI ou MOSWorkshop pour le générer à partir d'une image.
    - ARxxxxN.WED : -> qui regroupe les walls, mais surtout la référence du fichier .tis à appeler. Comme on le génère par simple copie du fichier .wed original, il faut bien penser à le modifier via NI pour le faire pointer vers le fichier xxxxxxN.tis nocturne que l'on aura créé.
    - ARxxxxLN.BMP : ce sont les informations d'éclairage qui s'appliquent à la carte nocturne et permettent que les PJ et les PNJ soit éclairés différement sur la map.

    Petite précision sur la création du fichier .tis

    Il faut prendre en compte le fait que, pour l'affichage d'une map nocturne, le moteur du jeu va ajouter des filtres bleutés liés à la nuit, comme c'est déjà le cas dans les maps normales. Il faut donc tenir compte de cet ajout ultérieur de filtres, lors de la création de l'image de fond de la map nocturne, pour éviter de se retrouver avec une map trop sombre et/ou trop bleuté une fois dans le jeu. Donc :
    -> ne pas forcer sur les valeurs sombres/bleutés

    -> en revanche, accentuer les lumières supplémentaires car elles seront rabaissées par les filtres nocturnes :

    fichier originalfichier original

     

    fichier in game
    fichier in-game

     Modifiaction du fichier .are

    Il faut ensuite modifier le fichier original .are, afin que le moteur du jeu soit renseigné que pour cette map, il existe des fichiers nocturnes à utiliser. On le fait très simplement dans des programmes d'édition comme IETME, DLTCEP et bien entendu Near Infiinty en cochant le flag "Extended night" (offset &48)

    Les Baldur's Gate I & II et Icewind Dale I utilisant tous la même version du fichier .are (1.0), la création et le fonctionnement sont identiques pour chacun et ne posent aucun problème.
    C'est pour Icewind Dale II et sa version 9.1 que les choses se corsent.

    Dysfonctionnement des maps nocturnes dans IWD2

    Le moteur d'Icewind dale II n'a pas fini d'offrir des surprises, même 20 ans après.
    On se demande ce qui a pu passer par la tête des développeurs pour mettre en place un fonctionnement aussi tordu... qui ressemble surtout à un détournement du fonctionnement des maps nocturnes, vu que le jeu n'en utilise aucune. Bref. Si les developpeurs sont encore vivants, s'ils tombent sur cet article et s'ils veulent venir témoigner à la barre, malgré que la probabilité de la réunion de ces trois conditions soit proche du zéro absolu, je suis prêt à entendre leur témoignage avec mansuétude !

    Toujours est-il que dans IWD2, lorsqu'on crée une map nocturne (Extended night) et que l'on renseigne le champ Extended Night du fichier .are, on a la mauvaise surprise de s'apercevoir une fois que l'on teste sa map dans le jeu, que si la map nocturne s'affiche nickel, la version diurne de la map n'est plus du tout prise en compte. Seule la map nocturne est affichée, quelle que soit l'heure de la journée.
    Ce qui est quand même un peu problématique et rend l'utilité de la manoeuvre totalement nulle.


    ...corrigé par un script

    Après une forte dépression, deux tentatives de suicide par noyade sous la douche heureusement ratées (mais des inondations chez les voisins du dessous malheureusement réussies), trois bières et quatre paquets de chips sauvagement égorgés, et en fouillant quand même parallèlement dans les actions scripts, je suis tombé sur l'action-script 301 SetExtendedNight(I:TrueOrFalse*BOOLEAN), que seul IWD2 possède et pour cause, puisqu'il est le seul jeu à avoir le dysfonctionnement évoqué ci-dessus. L'IESDP étant muet à son sujet je suis parti à l'aventure avec une bonne surprise à la clé.

    Là où la mécanique est assez tordue, ce que pour utiliser une map nocturne, il ne sert à rien de la définir comme telle dans le fichier .are, au contraire... Il faut bien entendu disposer des 4 fichiers supplémentaires ARxxxxN.tis, ARxxxxN.wed, ARxxxxN.mos, ARxxxxLN.bmp, mais le flag "Extended night" du fichier .are doit de préférence être laissé vide.

    Ce n'est que par un script que l'on activera/désactivera la prise en charge de la map nocturne, lequel script sera par exemple appelé au chargement de la map et ressemblera un peu à ceci :


    IF
        TimeOfDay(DAY)
    THEN
        RESPONSE #100
            SetExtendedNight(FALSE)
    END

    IF
        TimeOfDay(NIGHT)
    THEN
        RESPONSE #100
            SetExtendedNight(TRUE)
    END

     On aura alors le plaisir d'avoir les version diurnes et nocturnes de notre map selon les heures de la journée !

    Dans le jeu original, cet action script est utilisé systématiquement dans les maps 5010 à 5030 de la Forêt maudite, en étant toujours placé sur FALSE, conjointement au flag "Extended night" actif sur la plupart des fichiers .are.
    Il semble que l'idée des développeurs ait été de forcer l'affichage d'une map en mode nocturne quand le flag Extended night est activé, alors qu'aucune map nocturne n'existe -> ces maps ont systématiquement une ambiance nocturne quand on y entre. Ce n'est que lorsque certaines conditions sont remplies que, via le trigger IsExtendedNight() et l'action script SetExtendedNight(FALSE) que les maps redeviennent "normales", et disposent donc de la lumière du jour.
    De plus, d'après des captures écrans faites, quand une map est en mode Extended Night, les filtres nocturnes appliqués sont moins intenses que lorsques on est dans une map classique en mode nocturne.
    De même la map des champs du carnage (AR6200), utilise cet action script, conjugué au fait là encore que le flag "Extended night" du fichier .are est activé, alors qu'aucun fichier nocturne n'existe pour cette map. Il s'agit sûrement là aussi de forcer un affichage nocturne qui ne prend fin que dans certaines conditions (voir script AR6200.bcs), bref de "scénariser" la scène et de pouvoir régler certaines ambiances lumineuses selon certaines conditions.


    ... Mais du coup, le fonctionnement classique des maps nocturnes, que le jeu original n'utilise pas à proprement parler, passe à la trappe et devient bordélique à utiliser pour les moddeurs, même aguerris, tel votre modeste serviteur.

     


    votre commentaire