Compresser
les textures directement dans sa map
(
Wadinclude / Nowadtexture )
Introduction
Le
moteur graphique du jeu Half-Life stocke les textures dans
des fichiers externes, appelés wads .
Ces fichiers
sont ensuite consultés au moment de la compilation ou du lancement d'une map quand la map est chargée
en mémoire.
Quand une nouvelle map est chargée, Half-Life
cherche les fichiers wads dans le répertoire de Valve (pour
des maps HL standards, HL ne regarde qu'ici) ou dans le répertoire
spécifique d'un mod si nécessaire (par exemple, les fichiers
wads consultés pour jouer avec une map Counter-strike peuvent se trouver
dans les répertoires Valve et/ou Cstrike).
Quand des textures-custom sont utilisées dans une map personnelle, Half-Life doit connaître les références
de ces textures afin de charger la map avec succès.
Ces textures
peuvent être distribuées dans un nouveau fichier .wad
attaché à la map (et portant le même nom, en
général) ou bien elles peuvent être intégrées
dans la map (dans le fichier .bsp) au cours du processus
de compilation.
Intégrer des textures dans une map custom augmentera la taille du fichier .bsp lui-même mais il existe
plusieurs raisons pour lesquelles un auteur pourrait vouloir intégrer
ces textures dans sa map :
- Ca lui épargne de devoir distribuer trop de
fichiers pour faire tourner sa map.
- Il
peut vouloir empêcher que ses textures soient utilisées
dans une autre map sans sa permission.
Il y a deux façons d'inclure des textures dans un fichier
.bsp, toutes les deux décrites ci-dessous. :
- -wadinclude (la meilleure, avec des options contrôlables)
- -nowadtextures (la plus facile et la plus sûre),
Garder à l' esprit : l'option Wadinclude intègrera au .bsp les textures que tu as utilisé dans ta map uniquement si elles font partie du ou des wads que tu désignes au compilateur (il y a donc un risque d'oubli), tandis que la seconde option Nowadtextures intègrera toutes les textures utilisées à un endroit ou un autre dans ta map, y compris celle inutile que tu auras oublié sur une face cachée par exemple ou celle que tout le monde possède déjà (il y a donc un risque d'augmentation de poids du bsp). Ce qui implique donc de faire preuve de rigueur quel que soit ton choix. |
-wadinclude
C'est le meilleur et le choix le plus souple quand on choisit d'intégrer
des textures dans sa map. Il n'est possible que si vous utilisez
les outils ZHLT " Zoner's_Tools " pour compiler. Il vous permet de désigner un fichier
.wad en particulier, duquel seront extraites les textures à
intégrer. Cette option n'intègrera les textures
désignées que lorsque vous les utiliserez dans votre map ( donc pas le .wad
tout entier ).
Pour l'essentiel, -wadinclude est l'option la plus couramment utilisée
de nos jours lorsqu'on veut intégrer des textures parce qu'elle est plus
contrôlable et ne gonfle pas sans raison la taille de votre
fichier .bsp en intégrant des textures que tout le monde
possède déjà, à la différence
de l'option -nowadtextures.
Utiliser -wadinclude
On considèrera dans tous les exemples ci-dessous que
faitmaison.wad
est le nom du fichier de textures que vous voulez utiliser, et que
votremap est
le nom de votre fichier .map.
- Worldcraft : écrivez «-wadinclude faitmaison» dans le
champ des paramètres relatif à hlcsg (sans les
guillemets, bien sûr). Remarquez que l'appellation ".wad"
n'est pas nécessaire dans cette ligne, et sachez que
le paramètre -wadinclude peut être ajouté
avant ou après le paramètre «$path\$file».
Donc vous devriez lire dans le champ des paramètres hlcsg
: $path\$file -wadinclude faitmaison
-
Si
vous utilisez un fichier .bat (batch file) : dans votre
fichier batch, écrivez
«-wadinclude faitmaison» après «hlcsg.exe».
Ca
devrait ressembler à ça :
hlcsg.exe -wadinclude faitmaison votremap
- Si vous
utilisez Batch Compiler ou Zhlt Gui (note: il semble que son wadinclude ne marche pas) : écrivez faitmaison
dans le champ Wad Include qui se
trouve dans le principal écran de réglage.
Pour ma part j'utilisais Batch Compiler, qui ne m'a jamais déçu (si vous en installez une version récente, n'oubliez pas de mettre à jour votre .NET framework sans quoi il ne fonctionnera pas. Cékoiça, ce .net? Les moteurs de recherche sont tes amis mais l'auteur de Batch Compiler, Nem's, sur son site propose un lien pour le télécharger).
Remarques importantes
sur l'utilisation de -wadinclude
1.
Assurez-vous que vous utilisez bien les derniers ZHLT < ZHLT Info> pour compiler. Pour archiver, voici l'ancien lien des Zhlt tools
C'est actuellement le codeur Amckern (un australien très sympa) issu des forums Natural Selection, qui paraît s'occuper du développement de cet outil ( zhlt 3.4 , février 2006 ), prenant le relais d'XP-Cagey.
2.
Il n'est pas nécessaire de préciser le chemin complet
vers votre faitmaison.wad, et en fait cela peut même provoquer
des problèmes quand vous utilisez TBCC ou autres compilateurs .bat. Je vous recommande
de simplement écrire le nom de votre fichier wad, sans
ajouter le chemin ni le ".wad" à la fin. Rectifiez ensuite si ça ne fonctionne pas. Soyez organisé.
3.
Après coup, vous devriez toujours vérifier votre fichier d'information
sur la compilation (le fichier .log portant le même nom que
votre map : ici, votremap.log) pour vous assurer que les textures nécessaires ont
bien été intégrées à partir
des wads spécifiés. Jetez un oeil à cet extrait
de mon fichier log de démonstration (utilisant Worldcraft),
et à la ligne surlignée :
----- BEGIN hlcsg -----
Command line: C:\PROGRA~1\HAMMER\ZHLT_V~1.3\HLCSG.EXE -wadinclude
fy_chunt C:\mes documents\mapping\fy_chunt.map
Using
Wadfile: \sierra\half-life\valve\halflife.wad
Using Wadfile: \sierra\half-life\counter-strike\cstrike\cstrike.wad
Including Wadfile: \program files\hammer\zhlt.wad
Including Wadfile: \program files\hammer\fy_chunt.wad
added
13 additional animating textures.
Texture usage is at 0.59 mb (of 4.00 mb MAX)
3.68 seconds elapsed
A
noter que certains compilateurs écriront "Embedding" au lieu de "Including".
Assurez-vous
que tous les wads que vous avez désigné pour fonctionner
en wadinclude sont bien présentés sous la forme surlignée
dans l'exemple.
4. Le paramètre -wadinclude peut comprendre des noms partiels
de fichiers ou même des noms de répertoires ! C'est
une propriété très puissante dont vous devez
apprendre à tirer avantage. C'est une manière pratique
d'intégrer à partir de plusieurs wads en utilisant
un seul -wadinclude, au lieu d'utiliser plusieurs paramètres
-wadinclude.
Par exemple, si vous appelez plusieurs de vos fichiers
faitmaison1.wad, faitmaison2.wad, faitmaison3.wad, etc.., tout
ce que vous aurez besoin de faire sera d'écrire «-wadinclude
faitmaison» et tous ces wads seront désignés
pour participer à l'intégration des textures dans
votre map, ceci grâce à la compréhension des
noms tronqués (l'exemple équivalent dans Windows
serait de chercher un fichier sous la forme faitmaison*.wad).
Ou encore vous pourriez vous contenter de déposer tous
les fichiers wads personnels que vous voulez utiliser dans un
répertoire créé pour l'occasion (ex: Sierra\Half-Life\wouadtextures)
: dans ce cas, écrivez «-wadinclude wouadtextures»
et tous les wads déposés dans ce répertoire
se verront concernés par le processus d'intégration
des textures (les anglophones appellent ça "matching
partial filenames"). Nul besoin de vous préciser
la souplesse de ce système pour qui fait beaucoup de maps
ou d'essais et ne veut pas se tromper.
Pour clarifier un peu plus ce point, référons-nous
à nouveau à mon log de compilation précédent.
Remarquez qu'il est écrit dans la ligne de commande tout
en haut «-wadinclude fy_chunt», ce qui désigne
donc toute texture de fy_chunt.wad comme candidate à l'intégration
si elle est utilisée (dit d'une autre façon : si je n'avais utilisé
aucune texture provenant de ce wad dans la map concernée
par cette compilation, le compilateur aurait tenu compte de l'ordre -wadinclude
mais, après vérification, il n'aurait finalement intégré aucune texture de ce wad).
Ce qu'il faut savoir, c'est que j'aurais aussi
bien pu écrire n'importe lequel des 4 ordres suivants pour
obtenir des résultats strictement identiques :
-wadinclude
fy_chu
-wadinclude CHUNT
-wadinclude hUnT
-wadinclude prog (car mon fy_chunt.wad se trouve dans mon répertoire C:\program
files)
Etc. Ce
procédé implique également, si vous l'utilisez
correctement, que :
-nowadtextures
J'en parle car c'est l'option originale de compilation des textures dans les fichiers
.bsp. Nous lui devons le respect, à cette grande ancêtre :)
-nowadtextures intègre toutes les textures utilisées
de tous les wads utilisés, dans le fichier .bsp final.
C'était
une option disponible dans les premiers outils de compilation qcsg.exe de Half-Life, et elle a été conservée par les outils ZHLT. La
documentation des ZHLT Zoner's tools prétend que l'option
-nowadtextures a été rendue obsolète par l'arrivée
de -wadinclude, pourtant -nowadtextures demeure encore assez utile à cause de sa simplicité. Certes, elle est condamnée
parcequ'elle intègre toutes les textures utilisées
dans votre map. Or d'évidence il n'est pas nécessaire
d'intégrer des textures que tout le monde possède
déjà, comme celles issues des halflife.wad, liquids.wad
et xeno.wad (ainsi que, quand vous mappez pour Counter-Strike, le
ctrike.wad ou les wads des maps officielles du mod). Mais si vous
utilisez dans votre map des textures issues d'un certain nombre
de wads considérés comme non-standards, alors -nowadtextures
est une façon rapide de s'assurer
que tout joueur qui téléchargera votre map (en .bsp)
n'aura pas besoin de charger des wads complémentaires pour
pouvoir y jouer et ne se trouvera pas devant un message d'erreur genre couldn't load map nomdevotremap.bsp ou can't find lenomduwad.wad.
Pour
résumer, -nowadtextures gonfle sans nécessité
la taille de votre .bsp final, mais elle est rapide et facile à
régler et utiliser. Si vous débutez en mapping et voulez procéder à des tests simples de votre map, c'est une option simple et efficace.
NB : avec l'apparition des versions commerciales Counter-strike : Condition Zero et Day Of Defeat, il est redevenu possible de ne plus posséder d'emblée les wads d'Half-life je suppose.
Utiliser
-nowadtextures Tous
les exemples ci-dessous considèrent que votre map s'appelle
votremap.
CONCLUSION
Comme
vous venez de le voir, -wadinclude est l'option la plus puissante
et la plus pratique pour intégrer des textures dans votre
map (.bsp), tandis que -nowadtextures est la méthode
la plus facile.
Apportez une attention particulière
aux astuces des «Notes importantes sur l'utilisation du -wadinclude» ,
qui pourraient vous épargner des complications en tirant
partie de la flexibilité de l'outil -wadinclude.
Nb: si vous voulez voir la map fy_chunt (créée pour CS 1.5) que je cite en exemple Fy_Chunt . Content de l'avoir faite, cette map de shoot.
|