Eine 3D Skybox erstellen
Beispielmap: indextut45.zip
Im vorhergehenden Thema haben wir gelernt, wie man eine 2D Skybox erzeugt. Im Gegensatz zu einer 2D Skybox, die nur aus 6 Texturen besteht, besteht eine 3D Skybox wie der Name schon sagt aus echten 3D-Objekten. Diese kannst du ganz normal aus Brushs bauen. Wichtig dabei ist folgendes:
- 3D Skyboxen sind "Miniwelten", d.h. sie werden später auf das 16-fache ihrer Größe vergrößert und dann dargestellt. Wenn du also einen Brush mit den Maßen 8x8x8 Units hast, wird er dann 16 mal so groß dargestellt. Daher müssen wir im Editor diese Brushs auf 1/16 der Größe verkleindern, so dass sie dann im Spiel so aussehen, wie wir es wollen.
- In einer 3D Skybox dürfen sich keine Playerstarts, NPCs oder sonstige "aktiven" Entities befinden.
- Jede 3D Skybox benötigt ein "light_environment" Entity und ein "sky_camera" Entity.
- du kannst in der 3D Skybox ganz normal Displacements einsetzen, ebenso kannst du auf Seiten von Brushs, die im Spiel nicht sichtbar sind, die Textur "tools/toolsnodraw" benutzen.
Nun wollen wir unsere 3D Skbox erstellen. Du solltest dazu im absoluten Zentrum deiner Map (bei den Koordinaten 0 / 0 / 0) das Entity "sky_camera" erstellen .Dieses Entity dient als Referenz für die 3D Skybox. Von diesem Entity aus blicken dann die Spieler aus der Map in die 3D Skybox.
Nun erstellst du 6 Brushs mit der Textur "tools/toolsskybox" um das "sky_camera" Entity, damit kein Leak entsteht:

Nun wollen wir ein prop_static erstellen, bei "World Model" verwenden wir das hier: "models/props_buildings/row_corner_1.mdl". Wenn du nun auf "Apply" drückst, hast du eine kleine Häuserzeile. Diese kannst du nun schön an das cam_skybox Entity anpassen. Wichtig ist, dass man von dem Model nur die Vorderseite sieht, also die Häuserfront. Da es keinen Boden gibt, könnte es hier sehr unschön aussehen in der Map. Bei mir sieht es so aus:
Nun wollen wir uns ein Gebäude aus einem Brush erstellen und dann in die Skybox setzen. Dies soll ein Hochhaus sein. Zunächst erstellen wir es richtig schön groß. Die Seiten, die der Spieler nicht im Spiel sehen kann, belegen wir dabei mit der "tools/toolsnodraw" Textur. Dann kommt das wichtigste. Wir verkleinern den Brush. 1/16 ist das gleiche wie die Zahl
0.0625. Nun selektieren wir den Brush, den wir verkleinern wollen, und gehen im Menü auf "Tools" und dort auf "Transform". Hier wählen wir nun "Scale" und geben bei X, Y, und Z jeweils die Zahl
0.0625 ein. Dann drücken wir auf "OK". Auf magische Weise ist nun unser Brush geschrumpft:

Nun fehlt nur noch das "light_environment" Entity. Sobald das gesetzt ist, kannst du die Map schon probehalber compilieren. Bei mir sieht es so aus:
Wie du in der Beispielmap sehen kannst, besteht unsere Map eigentlich wirklich nur aus einer Box, jedoch wenn man sich in der Map bewegt, kommt es einem so vor, als befänden sich aussen um den Raum Straßen und Häuser. Valve hat übrigens eine Beispielmap beim Hammer Editor dazu gepackt, diese nennt sich "sdk_3d_skybox.vmf" und befindet sich im im Ordner "Mapsrc" im Ordner "cstrike".
zurück zur Hauptseite