Les Skybox

Écrit le 06/01/2004 par Bl@de
Dernière mise à jour : 06/04/2006

Introduction

Une SkyBox ? Mais qu'est-ce donc ? C'est tout simplement le cube qui entoure toute votre map (si, bien-sûr, la map est en extérieur ou une partie l'est), celui-ci est texturé à l'aide de textures (6 par skybox, une par face donc) pour donner un effet d'environnement extérieur...

Exemple :

Voici la skybox de CTF-Face3 telle qu'on la voit dans l'éditeur :

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox0.jpg

Voici ce que ça donne dans le jeu :

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox1.jpg

Créer le cube qui servira de skybox

Commencez par charger le package de texture SkyRenders.utx (c'est ici ou sont stockées pas mal de textures de skybox, il y en a aussi dans cp_wasteland et AWCity, mais celle-ci sont d'un type plus avancé), choisissez quel skybox vous voulez utiliser (dans notre map d'exemple nous utiliserons la skybox Aborea)

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox2.jpg

La syntaxe du nom d'une skybox est comme cela :

"nom_de_la_skybox_direction" ce qui donne pour notre texture Nord de Aborea "halfskynorth" vous pouvez très bien, si vous créez de nouvelles textures de sky les appeler VilleNord, celà ni changera rien à l'effet mais pour une meilleure lecture je vous conseille tout de même de faire comme pour les maps officielles...

- Floor = Bas
- Roof = Haut
- North = Nord
- South = Sud
- West = Ouest
- East = Est

Sélectionnez la texture de bas ou de coté de votre skybox peu importe, puis créez un brush d'une taille hexadécimale, c'est-à-dire en puissance de 2, tel que 2x2, 4x4, 8x8, 16x16, 32x32, 64x64... pour notre skybox ça sera plutôt 4096*4096*4096, 8192*8192*8192 ou encore 32768*32768*32768 etc... (pour notre map d'exemple nous utiliserons 4096*4096*4096).

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox3.jpg

Subtractez-le puis placez-y une ZoneInfo (Actor>Info>ZoneInfo)

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox4.jpg

Astuce: Si vous trouvez l'icône de votre zoneinfo trop petite, allez dans les propriétés de celui-ci et allez dans Display>DrawScale puis mettez un chiffre plus élevé que 1, 10 devrait très bien faire l'affaire dans la plupart des cas.

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox5.jpg

Sélectionnez les 6 faces de ce cube puis allez dans les propriétés de surfaces (F5) puis cochez FakeBackdrop ce qui permettra à votre skybox d'être toujours éclairée et d'être identifiée comme telle.

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox6.jpg

Créer le cube qui servira de référence

C'est dans ce cube que sera réglé le positionnement des textures pour une simplicité accrue.
A coté de votre cube de 4096, créez un cube de la taille de votre texture de skybox, dans notre cas ça sera 1024*1024*1024 car les textures de la skybox de Aborea sont de 1024*1024.

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox7.jpg

Placez les textures de votre skybox dans le cube de 1024 au bon emplacements pour que tout soit bien aligné, sélectionnez les 6 surfaces du cube de 1024 puis dans les propriétés de surface (F5) cochez Unlit.

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox8.jpg

Voila, à présent il vous faut placer une SkyZoneInfo dans le cube de 1024 pour que ce cube soit reconnue comme référence de votre skybox (Actor>Info>ZoneInfo>SkyZoneInfo)

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox9.jpg

Faite la même opération décrite plus haut si l'icône de votre SkyZoneInfo est trop petite.

A présent faites un clic droit sur la barre d'outil d'en haut puis faites: View>show backdrop (SHIFT+K)

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox10.jpg

Voila, comme ça vous voyez la skybox telle qu'elle sera in-game.

Astuce: si ça ne change rien quand vous faites View>show backdrop, il faut faire un "rebuild all" histoire de tout mettre à jour.

Corriger les bugs d'alignement

Mais ? Que vois-je ? L'effet n'est pas du tout bon, il y a un problème au niveau des arrêtes ! Regardez par vous même !

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox11.jpg

En fait, toutes les textures de skybox (ou presque) ont un bug au niveau des bords sur 1 ou 2 pixels, donc nous devons remédier à tout ça !

Attention: si vous avez créé vos textures de skybox, normalement tout devrait être ok ;)

Bon, il y a 2 solutions pour remédier à ce problème :

- 1) Créez le cube de référence un tout petit peu plus petit que votre taille de texture, donc dans notre cas je mets 1020*1020*1020 à la place de 1024*1024*1024 puis ça devrait bien passé.

- 2) en scalant un peu la texture et en ajustant à l'aide de F5>Pan/Rot/Scale.

Je vous conseille fortement d'utiliser la 1ère solution.

A la fin vous devriez arriver à un résultat du genre :

http://www.game-lab.com/images/tuts/unrealed_skybox/skybox12.jpg

Voila, je crois que vous en savez suffisamment sur les skybox à présent !