Hello,
Un petit tutoriel rapide sur l'utilisation des actions "transfer sky", ça servira pour Necromantic Thirst
Ca fait un moment que je devais l'écrire.
Objectif du tutoriel : apprendre à utiliser les actions de ligne "transfer sky" (271 : Transfer Sky Texture to Tagged Sectors et 272 : Transfer Sky Texture to Tagged Sectors (flipped)) pour transférer une texture de ciel spécifique, indépendante du ciel de l'épisode en cours, et pouvant s'appliquer localement à une partie de la map.
Outils utilisés : Ultimate Doom Builder 3.0.0.3764, mais le principe s'applique à n'importe quel éditeur de maps pour Doom
Niveau du tutoriel : débutant
Format de map : MBF / "Boom+"
Les "transfer sky", une action MBF ou Boom ?Avant de démarrer avec le tutoriel, un point de détail : les actions 271 et 272 permettant le transfert des ciels ne sont pas 100% compatibles Boom. Ce sont des actions ajoutées par le port MBF (Marine's Best Friend), et elles ne fonctionnent pas avec le vieux port Boom de base.
Par contre, elles fonctionnent parfaitement avec les ports compatibles Boom les plus utilisés (tels que PrBoom, PrBoom-plus, et bien évidemment GZDoom et autres). Du coup, ces actions de transfert de ciel sont très utilisées dans les maps compatibles Boom, mais c'est un abus de langage.
Bref, pour faire court, ces actions fonctionnent sur les maps compatibles Boom (-complevel 9) avec les ports les plus utilisés, donc ne vous prenez pas la tête, ça va marcher
Transférer un ciel, pourquoi faire ?Imaginons que l'on fasse un wad avec 3 maps, et que visuellement, on veuille que les deux premières maps se passent pendant la journée et la troisième map se passe la nuit.
Par défaut, les ciels sont définis comme suit :
- Un premier ciel pour les maps 01 à 11 inclus (texture SKY1)
- Un second ciel pour les maps 12 à 20 inclus (texture SKY2)
- Un troisième ciel pour les maps 21 à 32 inclus (texture SKY3)
Du coup, dans notre exemple, si on veut que notre troisième map se passe la nuit, on ne peut pas, car le ciel de la map 03 sera identique au ciel des maps 01 et 02 et on ne pourra donc pas faire de transition jour/nuit.
C'est là que les transferts de ciel entrent en jeu. Ils vont nous permettre d'appliquer une texture de ciel sur les secteurs que l'on veut (via des actions de ligne et des tags).
PrincipePrenons un exemple de map simple :
Cette map est en MAP01, elle aura donc le ciel normal du premier épisode de Doom II :
Nous voulons maintenant que le ciel soit remplacé par le ciel du troisième épisode.
Pour ce faire :
1) Dessiner un secteur isolé en dehors de la map :
2) Sur l'une des lignes de ce secteur, mettre la texture de ciel souhaitée
en tant que upper texture :
3) Sur la ligne sur laquelle on vient de positionner le ciel en upper texture, définir la ligne d'action 271 : Transfer Sky Texture to Tagged Sectors et un nouveau tag :
4) Appliquer le tag sur chaque secteur sur lequel on veut que le nouveau ciel apparaisse :
Et voilà !
Rendu in-game :
/!\ Il est important de n'oublier aucun secteur lorsqu'on applique le tag, car sinon, on aura des "trous" dans le ciel et on verra le ciel par défaut dans ces trous.
Appliquer le transfert de ciel à des secteurs ayant déjà un tagImaginons maintenant que certains secteurs sur lesquels on voudrait transférer un ciel aient déjà un tag.
Par exemple, le téléporteur ici aura déjà un tag 2 :
On ne peut donc pas lui donner le tag 1 du transfert de ciel.
A ce moment-là, c'est très simple :
1) Rajouter un vertex sur la ligne qui transfère le ciel afin de créer deux lignes d'action :
2) Sur la seconde ligne, définir l'action sur le tag 2 :
Décalages de textures : attention à l'offset horizontalDans le cas où on transfère le même ciel sur plusieurs tags différents, il peut arriver que l'on ait des décalages bizarres sur le ciel et que la texture de ciel ne soit pas uniformément alignée.
Cela peut venir d'un offset horizontal sur la texture :
Il vaut mieux mettre un offset à 0 sur chaque ligne de transfert de ciel.
Ainsi, pas de problème de décalage.
Transfert de ciel "inversé" (horizontalement) avec l'action 272L'action 272 (Transfer Sky Texture to Tagged Sectors (flipped)) s'utilise exactement de la même façon :
Elle permet de transférer le ciel tout en retournant horizontalement la texture de ciel.
Autres utilisationsA noter que l'on peut aussi :
- Utiliser des transferts de ciel différents pour différentes zones de la map
- Transférer des textures de ciel animées, par exemple pour faire un ciel orageux (exemple : Swift Death map 30) ou un ciel avec une cascade (exemple : Saturnine Chapel).
Lien du wad d'exempleWad d'exemple : https://www.dropbox.com/s/q4m41zv8ub4etcx/Tutoriel_TransferSky_WH_29-05-2021.zip?dl=1