Une texture semi-transparente est une texture qui n'est transparente qu'a certains endroits comme celle-ci :
Cette texture, si elle est correctement utilisée deviendra transparente dans le jeu aux endroits bleu.
Les textures pour le moteur d'Half-Life sont codés sur 8 bits, ce qui donne 256 couleurs differentes, ces couleurs sont classées dans la palette de 0 à 255, pour qu'une texture soit semi-transparente il faut que l'index 255 contienne un bleu pur (0 0 255).
Pour commencer il faut avoir sa texture en bmp dejà prete et ayant des dimensions divisibles par 16. Dans ce tutorial, nous utiliserons l'image suivante :
Nous utiliserons pour creer la texture le logiciel Wally disponible ici.
Lancez Wally et creez un nouveau fichier wad :
Ajoutez votre texture par drag-n-drop dans la fenetre de Wally. Lors de cette opération, Wally converti votre texture en 8 bits, generalement cette conversion de met pas le bleu pur en fin de palette.
Ouvrez votre texture dans wally en double-cliquant dessus et allez dans colors --> edit palette.
On constate que le bleu pur (0 0 255) est a l'index 13 alors qu'il devrait etre à l'index 255 dans la palette pour que la semi-transparence fonctionne.
Si l'on utilise cette texture, en n'oubliant pas de mettre un "{" (sans les guillemets) devant son nom pour signifier que c'est une texture semi-transparente, la texture n'est pas semi-transparente dans le jeu et l'on obtient cela :
Pour que le bleu pur soit à l'index 255 il faut utiliser l'outil "translate colors..." du menu "colors" dans Wally, on obtient la fenetre suivante :
Dans le champ index du cadre "source pixel", il faut mettre l'index du bleu pur (en l'occurence 13) et dans le champ index du cadre "Destination" il faut mettre 255 pour que le bleu pur se retrouve en derniere position de la palette. Il ne faut pas oublier de cocher "Swap indexes" pour que les deux indexs soient échangés et ainsi ne perdre aucune donnés.
Apres cette operation, on obtient la palette correcte avec le bleu pur en dernier :
Il ne faut pas oublier d'ajouter "{" devant le nom de la texture. La texture en maintenant prete à etre utilisée et devrait donné un résultat comme celui la en jeu :
Par Blacknight