Nicht eingeloggt
Registrieren

Skybox - Himmel, Horizont oder Außenwelt

Ein guter Unreal-Level hat nicht nur Räume, Wände, Säulen, Hallen und Gänge, wichtig ist auch ein optimal angepasster Himmel, der womöglich auch noch interessante Effekte in sich birgt. Animationen, Mover und Blendenflecke sind in der "Sky Box" ebenso möglich, wie etwa eine 360 Grad-Sky Box, die sich um die eigene Achse dreht. Diese kann auch optisch den ges. Level umgeben.



(Abbildung: 01)


Gleich vorneweg zum Verst√§ndnis: Die "Sky Box" kann in Wirklichkeit wesentlich kleiner sein, als wie sie sp√§ter im Spielverlauf wirken soll! Ihr braucht also jetzt keine Angst davor zu haben, euern Level v√∂llig umbauen zu m√ľssen, nur um einen "Sky Box"- oder "Fake Backdrop"-Effekt benutzen zu k√∂nnen. Normalerweise ist die "Sky Box" das letzte, was man in einem Level baut, sie wird immer seperat zum restlichen Level erstellt. Dadurch kann man sogar zu jedem sp√§teren Zeitpunkt in bestehende Level eine "Sky Box"-Implementation vornehmen.

Um einen "Sky Box"-Effekt zu erstellen, sollte man schon ein oder mehr Räume oder Level gebaut haben.

Die Anwendung des Effekts
Alle Fl√§chen des begehbaren Levels, die mit "Fake Backdrop" gekennzeichnet sind, zeigen die Ansicht der Kamera, die du in deiner, vom Rest des Levels abgetrennten "Sky Box" gestetzt hast. Wenn deine "Sky Box" mit realistischen Texturen ausgestattet ist. dann kann sieht es im Spiel aus, als g√§be es einen weiter entfernten Horizont. Du kannst aber deine "Sky Box" auch so gestalten, da√ü sie selbst geometrische Formen enth√§lt, die eine Landschaft darstellen (z.Bsp.: eine tiefe Schlucht). Du gestaltest und texturierst deine "Sky Box", wie einen normalen Levelabschnitt. Fast alle g√§ngigen Klassen stehen auch hier zur Verf√ľgung. Abzuraten ist jedoch von der Verwendung transparenter Fl√§chen (z.Bsp.: Fenster) oder Spezial-Effekte (z.Bsp.: Nebel). Diese w√ľrden die Performance negativ beeinflussen und dabei nicht einmal fehlerfrei dargestellt werden k√∂nnen.

Erstellen eines Test-Levels mit "Fake Backdrop"

 

(Abbildung: 02)


Nat√ľrlich kannst du sp√§ter sch√∂nere Formen f√ľr deine Level finden, doch zum √ľben reicht es, wenn wir so wenig wie m√∂glich Schnick-Schnack im Weg haben. F√ľr unsere Zwecke reicht es also mit zwei W√ľrfelformen zwei R√§ume zu erstellen. √Ėffne zun√§chst √ľber: "File/New Level" eine neue, leere Leveldatei und speichere sie unter einem beliebigen Namen ab (benutze: "TEST-1.unr" o.√Ą). Danach klickst du mit der rechten Maustaste auf das W√ľrfel-Werkzeug und w√§hlst im Kontextmen√ľ "Cube Properties ..." aus. F√ľlle dann im kleinen Fenster die Eingaben mit folgenden Beispielwerten:

Solid (Punkt setzen)
Height: 1024
Width: 1024
Breadth:1024


Setze den großen Raum, wir haben unseren genau im Zentrum des Levels positioniert.
Lade im Textur-Browser das Textur-Packet "ShaneDay.utx" (falls Vorhanden, sonst tut es auch jedes andere Packet). Kleide die W√§nde, sowie die Decke mit der hellblauen Textur "Daysky0" aus. (Sie sieht aus, wie strahlender Himmel. so kannst Du, wenn du einen komplexen Level aufbaust immer sehen, wo der Himmel ist). Selektiere alle Fl√§chen, indem du sie im 3D-Fenster mit gedr√ľckter "Strg"-Taste auf die entsprechenden Fl√§chen klickst. Wenn alle Himmelstexturen selektiert sind (360 Grad Drehung!), klickst du mit der rechten Maustaste auf die selektierte Fl√§che und w√§hlst im Kontextmen√ľ "Surface Properties (X selected)..." aus. Es erscheint folgendes Fenster:


(Abbildung: 03)


Suche dann im "Effects"-Layer nach der Option "Fake Backdrop", setze den Haken (siehe Abbildung: 03). Alle "Fake Backdrop" gekennzeichneten Fl√§chen werden im Spiel nicht mit ihrer normalen Textur, sondern mit der Kamera-Ansicht aus der "Sky Box" belegt. Zuguterletzt w√§hle f√ľr den Boden eine normale Bodentextur aus.

Erstellen der "Sky Box"
Als n√§chstes solltest du eine W√ľrfel-Bauform mit folgenden Werten erstellen:

Solid (Punkt setzen)
Height: 128
Width: 256
Breadth:256


Dies wird dann unsere eigentliche "Sky Box"!

Setze den W√ľrfel mit Hilfe des "Abziehen" Werkzeugs etwas entfernt von deinem Testlevel-W√ľrfel (vgl. Abbildung: 01). W√§hle im Textur-Browser ein Packet mit geeigneten Texturen (z.Bsp.: "DDayFX.utx" falls vorhanden) kleide deinen W√ľrfel mit Texturen aus. (In unserem Beispiel empfielt sich Textur "HOR1") f√ľr die Decke des Raumes noch eine schwarze Textur mit Sternen (z.Bsp.: "ShaneSky.utx" / "STARS"). Fehlt noch der Boden, den wir auch mit einer dunklen Textur belegen (z.Bsp.: "ShaneSky.utx" / "PANTILES"). Am Ende dieses Schrittes solltest du den Level einmal rendern und abspeichern.

Als n√§chstes setzen wir in die "Sky Box" und in unsere eigentliche Level-Box eine Lampe, schlie√ülich wollen wir sp√§ter ja auch etwas sehen! Die Lampe findest du im Kontextmen√ľ, wenn du mit der rechten Maustaste auf eine Fl√§che (Textur) klickst, an der du die Lampe setzen willst. In unsere "Sky Box" m√ľssen wir jetzt noch eine Kamera setzen, die den Standpunkt eines Betrachters kennzeichnet, der in die Skybox blickt. Du kannst diesen Aktor im Klassen-Browser finden. √Ėffne dazu die Klasse "-*Info" dort kannst du eine Subklasse Namens "-*SkyZoneInfo" finden. W√§hle diese an und setze sie genau in die Mitte unserer "Sky Box" (siehe Abbildung: 04).


(Abbildung: 04a & 04b)

So, damit wäre unsere "Sky Box" fertig. Setze am besten einen "PlayerStart" in die große Level Box. Suche dazu den "*PlayerStart" unter "-*NavigationPoint" im Klassen-Browser, und klicke mit der rechten Maustaste auf die Bodentextur der Level Box, wähle: "Add PlayerStart here". Du solltest jetzt den Level nochmals rendern und abspeichern.



Mögliche Abänderungen
Wenn du einen Level erstellen willst, der √§hnlich unserer Abbildung (01) frei im Raum steht, der mag wom√∂glich eine Drehbewegung einstellen. Dazu mu√ü man die "SkyZoneInfo" (Abbildung: 04b) in der 3D-Ansicht mit der rechten Maustaste anklicken und im Kontextmen√ľ auf: "SkyZoneInfo Properties (X selected)...". Folgendes Fenster sollte sich √∂ffnen:


(Abbildung: 05)

In diesem Fall ist es die original Einstellung der UT DM-Phobos.unr "SkyZoneInfo".
Sie zeigt eine unendliche Drehbewegung des Kamerawinkels.

√Ėffne dazu im "Properties"-Fenster die Einstellung "Movement" und dann "RotationRate". Die drei enthaltenen Optionen: "Pitch", "Roll" und "Yaw" sorgen f√ľr die gew√ľnschte Drehbewegung. Versuche ein bi√üchen herum, was alles zu √§ndern ist, doch bleibe bei werten von "0" bis maximal "2048", denn alle anderen Einstellungen, die H√∂her sind k√∂nnten zu schwerwiegenden Darstellungsfehlern im Spielverlauf f√ľhren. Wichtig ist, da√ü die Option: "bStatic" auf False gesetzt wird.


ENDE
Eine sogenannte Skybox ist auch unter dem Begriff "realistischer Himmel" einzuordnen. Mit Hilfe des Texture-Properties-Befehls "Fake Backdrop" lassen sich bestimmte Fl√§chen des Levels ausblenden und mit dem Inhalt aus der seperat erstellten Skybox ersetzen. So wirkt es sp√§ter, als ob eine weitl√§ufige Himmelsfl√§che den Level umgibt. Angewendet werden kann der Effekt nat√ľrlich nicht nur f√ľr den Himmel, sondern auch f√ľr Fensterl√∂cher, Bodenl√∂cher oder andere Fl√§chen, an denen man einen Effekt erreichen will, als ob der Raum dahinter noch weiter gehen w√ľrde ...

 


Testlevel erstellen
Als erstes brauchen wir einmal ein Test Level. Baut einen Raum 512 x 512 x 512. Dann klickt alle W√§nde au√üer dem Boden an und w√§hlt "Fake Backdrop". So und jetzt bauen wir die eigentliche Skybox. √Ėffnet einmal als erstes die Texturpacks: "GenFX.utx, Genfluid.utx und ShaneSky.utx". Dann erstellt einen Brush mit den folgenden Massen: 256(h) 1024(b) 1024 (l) Verschiebt ihn irgendwo hin, etwa so wie auf dem Bild:




subtractet den Brush! Fliegt jetzt mit der Kamera, in der 3D-Ansicht hinein und gestalltet ihn innen schön. Etwa so wie ich es hier auf dem Bild gemacht habe:



Wenn ihr die Skybox fertig gestaltet habt öffnet ihr den "Actor Browser" und geht unter "Info", dann unter "ZoneInfo" und dort wählt ihr "SkyZoneInfo" aus. Addet nun dies "SkyZoneInfo" in die Skybox. Etwa so:



Jetzt schnell rebuilden und testen (vergesst nicht einen Playerstart zu setzten). Wenn ihr alles richtig gemacht habt sollte das jetzt so im Spiel aussehen:





ENDE