Nicht eingeloggt
Registrieren

Zone Portals - Wie trenne ich eine Map in Teilst├╝cke

Zone Portals - Wie trenne ich eine Map in Teilst├╝cke?

Wenn man einen Level baut, dann besteht er meist aus 20.000 und mehr Polygone. Die Grafikengine ist nicht in der Lage so viele Polygone auf einmal darzustellen, weshalb sie eine Auswahl ├╝ber die sichtbaren Polygone vornimmt. Im Durchschnitt schafft sie es jedoch zwischen 100 und 200 Polygone anzuzeigen. Welche das sind entscheidet die Engine automatisch. Ist der Raum recht gro├č, braucht die Engine sehr lange, um herauszufinden, welche Polygone angezeigt werden, und welche nicht. Wenn der Raum jedoch einigerma├čen klein ist, hat es die Engine schon entschieden einfacher. Klar, je kleiner der Raum, desto weniger Polygone, desto mehr Performance. Und eins ist sicher: "Das merkt man beim spielen" (aus Erfahrung: Man kann einen Level meist um bis zu 50% schneller machen - mehr Frames/sec.).



Anmerkung zum Vorwort: Dieses Tutorial ist wahrscheinlich im Jahr 2000 oder 2001 entstanden. Die Werte beziehen sich auf damalige Rechner und deren Rechenleistung. Heutzutage k├Ânnen wesentlich mehr Polygone als 100 bis 200 angezeigt werden. Maps in denen pro Bild 800 und mehr Polygone angezeigt werden sind auf aktuellen Rechnern durchaus spielbar.

 

Wenn man einen Level baut, dann besteht er meist aus 20.000 und mehr Polygone. Die Grafikengine ist nicht in der Lage so viele Polygone auf einmal darzustellen, weshalb sie eine Auswahl ├╝ber die sichtbaren Polygone vornimmt. Im Durchschnitt schafft sie es jedoch zwischen 100 und 200 Polygone anzuzeigen. Welche das sind entscheidet die Engine automatisch. Ist der Raum recht gro├č, braucht die Engine sehr lange, um herauszufinden, welche Polygone angezeigt werden, und welche nicht. Wenn der Raum jedoch einigerma├čen klein ist, hat es die Engine schon entschieden einfacher. Klar, je kleiner der Raum, desto weniger Polygone, desto mehr Performance. Und eins ist sicher: "Das merkt man beim spielen" (aus Erfahrung: Man kann einen Level meist um bis zu 50% schneller machen - mehr Frames/sec.).

Es gibt eine Einfache L├Âsung gro├če Levelgebilde in kleinere Abschnitte zu unterteilen, indem man eine Unterteilungen in maximal 64 "Zones" vornimmt. Die dabei entstehenden "Zone Portals" (Zonenbegrenzungen) sind im Spiel nicht sichtbar, wenn sie Luft/Luft trennen. Trennt eine "Zone Portal" aber Wasser/Luft (o.├Ą.) sollte man eine sichtbare "Zone Portal" setzen. Das kann zum Beispiel ein "Window" oder "Water" sein.


Wie lege ich Zonen an?

Generell kann eine Zone jede gew├╝nschte 3D-Form haben und mu├č nur zu ihren angrenzenden Nachbarzone mit einer "ZonePortal" abgetrennt sein. Jedoch ist darauf zu achten, da├č eine ZonePortal" nicht zu gro├č sein darf. Positioniere sie immer in engen G├Ąngen, ├ľffnungen und L├Âchern. Ziehe sie auf keinen Fall einfach quer durch den Raum, denn dann bringt die Zone meist keinen Performancegewinn, im Gegenteil, die Performance sackt sogar in den Keller!

Ein Tipp: ZonePortals machen sich besonders gut innerhalb von T├╝rrahmen oder Fenster├Âffnungen.



(Abbildung: 01a & 01b)

In unserer Abbildung (01) kannst du die Menge an Polygonen und Fl├Ąchen sehen, die vollst├Ąndig dargestellt werden m├╝├čten, wenn keine "Zone Portal" gesetzt wurde. Mit einer Zone Portal allerdings sind es erheblich weniger. Zwar sinkt oin teilbereichen die Darstellungs-Qualit├Ąt, trotzdem merkt man das kaum. Denn der abgetrennte Raum ist im Spiel schon sichtbar, jedoch nur mit entsprechend weniger Filtern belegt. Auf Distanz sieht man die Unterschiede sowieso nicht so deutlich. Aber die Level-Performance steigt dadurch enorm an, zur Freude der sp├Ąteren Spieler! Nichts ist schlimmer, als daneben getroffen zu haben, nur weil der Level an bestimmten Stellen "Lag"-Effekte zeigt.


Erstellen von Zonen
Um eine Zone anzulegen, mu├č mindestens eine ZonePortal gesetzt werden. Als Beispiel kannst du UT AS-Frigate.unr (vgl. Abbildung: 01) nehmen, Viele R├Ąume die mit je einer T├╝re verbunden sind. Die Zone Portals wurden so gesetzt, da├č sie jeweils im T├╝rrahmen sitzen. Sie trennen jeweils den einen vom anderen Raum zu jeder offenen Seite ab. Eine maximale Sichtweite von 512 WE (Welteinheiten) wird im Schiffsrumpf eingehalten. Die sehr verwinkelt gebaute Struktur ist trotz enorm hoher Polygonanzahl v├Âllig fl├╝ssig zu spielen.

Die "Zone Portals" sind Ebenen, es sind keine 3D-Polygone, das w├Ąren W├Ąnde, man k├Ânnte nicht hindurchgehen! Da hinter der "Zone Portal" auf beiden Seiten freier Raum ist, kann man durch sie hindurchgehen. Man sieht sie also sp├Ąter im Spiel auch nicht!


(Abbildung: 02)

Um eine "Zone Portal" zu gestalten mu├č zuerst deren Gr├Â├če angegeben werden, benutze dazu aus der Werkzeugleiste die "Ebenen-Bauform", klicke mit der rechten Maustast darauf. Es sollte ein Fenster erscheinen, welches unserer Abbildung (02) gleicht. Dort kann man bei "Height" und "width" solltest du eine Gr├Â├če w├Ąhlen, die deine Bauform an beiden Seiten um mindestens 16 WE ├╝berragt. So kannst du zu 100% Sicher gehen, da├č keine Verbindung zwischen den beiden Zonen besteht, die du trennen willst. Sollte deine Ebenen-Bauform nicht genau passen, kann es sein, da├č die nachfolgenden Schritte nicht richtig klappen werden.

Positioniere den "Sheet" (die Ebenen-Bauform) an der gew├╝nschten Stelle und klicke das Werkzeug "Add Special Brush" (Doppelseitige "Brush" hinzuf├╝gen) mit der linken Maustaste an. Das nachfolgende Fenster sollte sichtbar werden:


├ändere die "Prefabs"-Option auf "Zone Portal", eigentlich sollten jetzt die einstellungen f├╝r eine nicht sichtbares Portal eingestellt sein (vgl. unsere Abbildung: 03). Bei einer Maskierten Textur funktionieren die Zonen meistens nicht, da sie dann nicht dicht sind. Jedoch ist ein Transparenz-Effekt mit deaktivierter Sichtbarkeit ("Invisible" Haken wegnehemn!) durchaus m├Âglich.


(Abbildung: 03)

Bei allen anderen "Zone Portals" sollte die Textur keine Rolle spielen, da sie sp├Ąter im Spiel sowieso nicht angezeigt wird.


Eigenschaften von Zonen

Den Zonen kann jeweils ein eigener Effekt zugeteilt werden, wie zum Beispiel "LavaZone", "SlimeZone" oder "WaterZone". Diese Eigenschaften werden dann ├╝ber eine Unterklasse von "ZoneInfo" geregelt. Diese findest du im Klassen-Browser unter "*Info/*ZoneInfo" (vgl. Abbildung: 04). Klappst du beide Klassen auf, so kannst du alle m├Âglichen "ZoneInfos" sehen. Setze jeweils eine Sinnvolle Variante ein, indem du sie im Browser markierst und danach im 3D-Fenster auf eine Fl├Ąche klickst, an der du sie positionieren willst. W├Ąhle dann im Kontextmen├╝ "Add ZoneInfo here".



(Abbildung: 04)

Eine Zone ohne Eigenschaften ist nur eine halbe Zone, deswegen sollte man die "ZonenInfo"-Eigenschaften individuell ab├Ąndern. Selektiere die "ZoneInfo" und klicke mit der rechten Maustaste auf sie. W├Ąhle im Kontextmen├╝ "ZoneInfo Properties (X selected)...", ein Fenster wie auf unserer Abbildung (05) sollte erscheinen.

Achtung: Die "*SkyZoneInfo" ist ein Sonderfall, ihr Gebrauch wird in unserem Kapitel "SkyBox / Au├čenwelten" gesondert behandelt.

Anzeigen von Zonen
Im UnrealED gibt es eine Option, erstellte Zonen sichtbar zu machen. Sie versteckt sich im Ansichten-Fenster (im oberen Men├╝). Dr├╝cke einfach dieses Symbol:

"Zone Portal Alt+2" - zeigt die Zonen- & Portal-Ansicht ansicht im akt. Fenster

Um diese Ansicht wiede auszuschalten mu├čt du auf einen dieser Kn├Âpfe dr├╝cken, die im folgenden aufgelistet sind:

"Realtime Preview P" - Echtzeit Modus (animiertes Wasser, Licht u.s.w.)
"Top View Alt+7" - Fenster-Ansicht von oben
"Front View Alt+8" - Fenster-Ansicht von frontal
"Side View Alt+9" - Fenster-Ansicht von der Seite
"Perspective Alt+1 " - zeige die perspektivische Ansicht
"Texture Usage Alt+3" - zeige die Textur-Gruppen Ansicht
"BSP Cuts Alt+4" - zeige die - BSP-Schnitte Ansicht
"Textured Alt+6 " - zeige die - Texturen Ansicht
"Dynamic Light Alt+5" - zeige dynamischen Lichtfall


ENDE