Speed Strike
Plus d'infos
Downloads
Tutorial (HL Source)

Actualité CS
Le site de news esports français
Les news cs françaises
 
Mapping FR
CMF-maps - le site des mappeurs francophones
Maps-on-line
 
Mappeurs FR
Tazus maps
Tazus maps
PtitLoup++
Coucouoeuf maps
TheMonk
 
Ressources (internationales)
 

 

2005 03 18 ›› Convertir un WAD HL en matériaux pour HL²

 › Préambule

Certains d'entre vous ont peut-être essayé, tout comme moi, de convertir leurs fichiers wad en utilisant la fonction de Hammer "Convert WAD to VMT" et obtenu ce terrible message d'erreur pour quasiment toutes les textures :

Ce qu'il y a de terrible dans ce message, est qu'aucune explication n'est donnée sur le net, nulle part (enfin, sur google search quoi).

En fait, celle-ci est simple : votre texture ne possède pas de fichier descriptif du matériau qu'elle représente et donc Hammer ne peut en effectuer le remplacement dans le fichier vmf.

Car cette opération de conversion "Convert WAD to VMT" ne concerne en fait que l'arrangement des textures du rmf (fichier original de votre map, version hl) dans le vmf (version hl²), c'est à dire l'application des coordonnées des textures, de leur scaling et de leur orientation.

Encore faut-il créer les fichiers associés à la texture et qui décrivent plus précisément le matériau représenté afin que le jeu puisse traduire les effets visuels appropriés.

Cela se fait en deux étapes :

extraire les textures au format tga avec xwad et créer les fichiers vmt qui décrivent comment le moteur graphique l'utilisera,
à partir des ficheirs tga, créer les fichiers vft qui sont les textures elles-mêmes.

 › I. xwad.exe : WAD -> VMT et TGA

Tout commence par l'utilisation de l'utilitaire xwad. Son rôle est d'extraire chacune des textures de votre fichier wad et de créer les tga correspondant. Vous trouverez celui-ci dans le répertoire SteamApps\ < email > \sourcesdk\bin.
Lancez-le, vous afficherez l'aide du programme :

Je ne vais pas détailler les paramètres car je ne les connais pas mais on va s'intéresser à deux d'entre eux :

BaseDir : votre répertoire de travail, celui en dessous duquel seront créées les répertoires contenant les textures au format HL²
WadFile : le répertoire où se trouve votre fichier wad.

Typiquement, vous allez créer un fichier bat ou un raccourci contenant ces paramètres. Pour une raison que je ne m'explique pas encore, le paramètre -vtex (cf. exemples dans l'aide de xwad.exe) fait planter la commande et ne crée que la première des textures :

La commande à utiliser est donc :

[C:\Steam]\steamapps\ < email > \sourcesdk\bin\xwad.exe -BaseDir [C:\Steam]\steamapps\ < email > \sourcesdk_content\cstrike\mapsrc -wadfile [C:\Steam]\steamapps\ < email > \sourcesdk_content\cstrike\mapsrc\monfichier.wad

([C:\Steam] correspond au chemin vers le répertoire Steam)

Vous obtenez alors deux répertoires en-dessous de votre BaseDir : materials et materialsrc. Un sous-répertoire pour chacun d'eux porte le nom de votre fichier wad, se qui permet de conserver vos textures "à part".

Dans materials, vous aurez les vmt qui sont donc les fichiers de matériaux. Ces fichiers servent à définir comment le moteur graphique doit gérer la texture : type de lightmap, texture elle-même, shaders de fallback (si DirectX 9 n'est pas détecté par exemple) et autres surfaceprops (pour rendre le matériau de la texture réel)...

Maintenant il nous faut transformer les tga en fichier de texture au format HL².

 › II. vtex : TGA -> VFT

De la même façon que xwad, vtex se trouve dans le répertoire SteamApps\ < email > \sourcesdk\bin.

Encore une fois, plusieurs paramètres. Celui qui va nous intéresser pour le moment est -mkdir. Le suivant, pour plus tard, sera -vmtparam.

mkdir : permet de créer un répertoire ou "ranger" les fichiers obtenus ; pour une raison qui m'échappe, vtex ne le crée pas automatiquement s'il n'existe pas,
vmtparam : permet de passer des valeurs additionnelles comme par exemple, voir section "En faire davantage".

Pour plus d'informations, consultez la référence du Source SDK Documentation.

Le programme s'utilise donc en fichier bat ou raccourci. N'oubliez pas de passer vos fichiers tga en paramètres. Pour cet exemple nous aurons donc :

[C:\Steam]\SteamApps\ < email > \sourcesdk\bin\vtex.exe -mkdir G:[C:\]\SteamApps\ < email > \sourcesdk_content\cstrike\materialsrc\de_nuked\*.tga

Avec ce programme, le résultat se trouve directement dans le répertoire du mod, sous materials : un répertoire portant le nom du sous-répertoire où se trouvait les fichiers tga a été créé. Dans notre cas, il s'agit de Steam/ < email > /counter-strike source/cstrike/materials/de_nuked :

En fait ce répertoire se crée par rapport au sous répertoire de sdksource_content : cstrike, hl2, hl2dm ou celui de votre mod. Les habitués auront reconnu le Game Directory.

Copiez-y maintenant les fichiers de matériaux vmt du BaseDir (répertoire de travail) et (re)lancez Hammer. D'où l'intérêt par ailleurs de définir le BaseDir comme étant le Game Directory.

Il ne vous reste plus qu'à cliquez sur "Convert WAD to VMT" du menu Fichier et Hammer va s'occuper de prendre vos textures et de les replacer telles qu'elles étaient dans le wad d'origine.

 › Erreurs possibles
J'ai correctement paramétré mon fichier bat / raccourci pour lancer xwad mais quand je le lance, rien ne se passe, aucun répertoire portant le nom de on fichier wad n'est créé, aucun fichier vmt non plus !
   
 

Il se peut que vous ayez besoin de copier le fichier GameInfo.txt du mod pour lequel vous mappez dans le répertoire où se trouve le fichier bat / raccourci sur xwad. Vous trouverez ce fichier à la racine du mod lui-même ([C:\steam]\steamapps\ < email > \counter-strike source\cstrike pour Cstrike Source par exemple).

Pour une raison que je ne m'explique pas, j'ai eu besoin de le faire au début mais plus maintenant, même après l'avoir effacé !

   
J'ai paramétré xwad avec le répertoire de cs:s pour éviter de copier les fichiers vmt mais ils n'apparaissent pas !
   
  En fait, si vous avez utilisé le répertoire steam/steamapps/ < email > /counter-strike source/cstrike, comme windows est toujours basé sur ms-dos et que ms-dos ne prend pas en compte les espaces dans les noms de répertoire (ou de fichiers), xwad aura copié les fichiers vmt et tga dans le répertoire steam/steamapps/ < email > / counter-strike. Il faut encadrer votre paramètre BaseDir avec des guillements comme ceci : "steam/steamapps/ < email > /counter-strike source/cstrike"
   
Je lance vtex mais j'obtiens l'erreur "SteamStartup() failer : StealStartup(0xf,0x12f218) failed with error 108: The local Steam Service is not running".
 
Vous n'avez pas lancé le SDK. Certains programmes, comme vtex, nécessite que des dlls spécifiques soient en mémoire pour fonctionner.
   
Je lance vtex et après la première texture, il me dit "Can't open: [C:/steam]/steamapps/ < email > /counter-strike source/cstrike/materials/monfichier/
xxx.vtf
" :
   
  Vous avez oublié la paramètre -mkdir qui permet à vtex de créer le répertoire monfichier/.
   
J'ai copié les fichiers de matériaux (vmt) dans le répertoire materials/monfichier/ mais la conversion dans Hammer m'affiche toujours "ERROR: No matching material. Cannot convert" ?
   
  Relancez Hammer pour qu'il charge au démarrage les fichiers de matériaux en mémoire.

 › En faire davantage
Vous pouvez inclure vos textures dans le bsp avec bspzip, un utilitaire qui se trouve dans le répertoire sourcesdk/bin... Plus d'infos par ici : Source SDK Documentation.
 
Utiliser le paramètre -vparam de l'utilitaire vtex pour préciser le champ $surfaceprop metal (par exemple). Cela permettrait de typer un groupe de texture en une seule fois plutôt que de les faire une par une (!).
Je n'ai pas encore eu le temps de vérifier cela.