Kurz gesagt
- World Partition speichert große Level in einer einzigen persistenten Datei und unterteilt den Arbeitsbereich in Rasterzellen.
- Zellen werden zur Laufzeit abhängig von der Position der Streaming-Quellen und den Rastereinstellungen geladen und entladen.
- HLOD kann entfernte Objekte in nicht geladenen Zellen durch Proxy-Geometrie darstellen.
- Vor der HLOD-Erstellung müssen die betreffenden Actors einer HLOD-Schicht zugewiesen und ihre Mobility-Werte auf Static gesetzt werden.
Die offizielle Dokumentation von Unreal Engine beschreibt World Partition als ein System, das große Level in einem einzigen persistenten Level in Zellen aufteilt und diese zur Laufzeit lädt und entlädt. Dieser Leitfaden erklärt, wie Sie das System für architektonische Umgebungen, weitläufige Landschaften und Visualisierungsszenen im großen Maßstab einrichten und entfernte Geometrie mit HLOD behandeln können. Da die Dokumentation keine bestimmte Unreal-Engine-Version angibt, werden Menü- und Optionsnamen hier so wiedergegeben, wie sie in der Quelle stehen.
1. Ein World-Partition-Projekt oder -Level erstellen
Bei einigen Vorlagen in der Kategorie Games ist World Partition beim Start eines neuen Projekts standardmäßig aktiviert. Bei den Vorlagen Blank, First Person, Third Person, Top Down und Vehicle Advanced ist die Option Enable Streaming jedoch standardmäßig deaktiviert. Prüfen Sie daher die Option Enable Streaming in World Settings, wenn nicht nur die Szene partitioniert, sondern auch das Streaming der Zellen aktiviert werden soll.
Um eine große offene Umgebung als Ausgangspunkt einzurichten, wählen Sie File › New Level, dann den Kartentyp Open World und klicken Sie auf Create. Beim Typ Open World sind World Partition, One File Per Actor, Data Layers und Hierarchical Levels of Detail standardmäßig aktiviert. Die Beispielkarte in der Dokumentation enthält eine 2 km x 2 km große Landscape mit Außenbeleuchtung.
Um ein vorhandenes Level zu konvertieren, können Sie Tools > Convert Level verwenden. Alternativ lässt sich das Kommandozeilen-Tool ausführen. Der Beispielbefehl in der offiziellen Dokumentation lautet:
UnrealEditor.exe QAGame -run=WorldPartitionConvertCommandlet Playground.umap -AllowCommandletRenderingMit -ReportOnly können Sie den geplanten Vorgang melden lassen, ohne die Konvertierung durchzuführen. -ConversionSuffix fügt der zu Testzwecken konvertierten Karte _WP hinzu und hilft so, das Quell-Level zu erhalten. Bevor Sie die Option -DeleteSourceLevels verwenden, die Quell-Level löscht, sollten Sie prüfen, welche Dateien erhalten bleiben müssen und wie der Team-Workflow aussieht.
2. Das Zellen-Streaming an die Szene anpassen
World Partition unterteilt das Level in Rasterzellen, die zur Laufzeit verwendet werden können. Das Laden und Entladen der Zellen hängt von der Position der Streaming-Quellen und den Runtime-Grid-Einstellungen ab. Der Player Controller kann standardmäßig als Streaming-Quelle dienen; zusätzlich lässt sich die Komponente World Partition Streaming Source zur Szene hinzufügen.
Beispielsweise kann an einer Teleport-Position vorübergehend eine Streaming-Quelle aktiviert werden, damit die umliegenden Zellen geladen sind, bevor der Spieler dort ankommt. Die Komponente bietet Optionen wie Target Grid, Priority und Target State. Target State legt fest, ob sich überschneidende Zellen in den Zustand Loaded oder Activated wechseln. Die Blueprint-Funktion Is Streaming Completed gibt an, ob das Streaming der von der Komponente erfassten Zellen abgeschlossen ist.
Die Runtime-Grid-Einstellungen befinden sich im Abschnitt World Partition Setup des Panels World Settings. Die Dokumentation verwendet standardmäßig ein 2D-Runtime-Hash-Raster und weist darauf hin, dass die Verwendung mehrerer Raster die Leistung beeinträchtigen kann. Die folgenden Maße sind Beispielwerte aus der Dokumentation und sollten nicht als feste Empfehlung für jede Szene verstanden werden.
| Einstellung | Beispiel aus der Dokumentation | Wirkung |
|---|---|---|
| Cell Size | 256 m x 256 m x 256 m | Legt die Größe der Zellen fest. |
| Loading Range | Radius von 768 m | Legt fest, in welcher Entfernung um die Streaming-Quelle Zellen geladen werden. |
3. Eine HLOD-Schicht für entfernte Umgebungen erstellen
Durch das Zellen-Streaming sind Objekte in Bereichen, die gerade nicht geladen sind, möglicherweise nicht sichtbar. Das World-Partition-HLOD-System stellt diese Bereiche mithilfe von Proxy-Meshes dar. Laut Dokumentation kann dieser Ansatz die Anzahl der Draw Calls pro Frame reduzieren und die Leistung verbessern.
Um eine neue HLOD-Schicht zu erstellen, wählen Sie im Content Drawer im Menü + Add den Pfad Miscellaneous › HLOD Layer. Wählen Sie den Schichttyp passend zu den Inhalten der Szene:
Instancing stellt die ursprünglichen Static Meshes mit niedrig aufgelösten LOD-Einstellungen über Instanced-Static-Mesh-Komponenten dar. Die Dokumentation nennt Imposter für Bäume und Pflanzen als geeignete Anwendungsbeispiele für diesen Typ.
Merged Mesh fasst Static-Mesh-Actors in einem einzelnen Proxy-Mesh zusammen.
Simplified Mesh fasst Actors in einem einzelnen Proxy-Mesh zusammen und vereinfacht zusätzlich die Geometrie.
Für Merged Mesh und Simplified Mesh werden eigene Einstellungen angezeigt. Je nach Schichttyp lassen sich Optionen für Lightmap-UVs, Materialvereinfachung, das Zusammenführen von Meshes und die Proxy-Erstellung anpassen. HLODMaterial wählt das Basismaterial für das Material-Baking bei zusammengeführten oder vereinfachten Schichten aus. Laut Dokumentation reicht das Standardmaterial für die meisten Anwendungsfälle aus.
4. HLOD-Erstellung starten und Ergebnis prüfen
Damit HLOD erstellt werden kann, müssen Sie Actors einer HLOD-Schicht zuweisen, ihre Mobility-Werte auf Static setzen und die HLOD-Erstellung aktivieren. Die Schicht lässt sich über die HLOD-Eigenschaft im Details-Panel des Actors, die Eigenschaft Default HLOD Layer einer Data Layer oder über World Settings zuweisen. Anschließend können Sie Build > Build HLODs wählen oder das WorldPartitionHLODsBuilder-Commandlet ausführen.
Auswirkungen auf den Workflow für Architekturvisualisierung
World Partition ermöglicht es, in einem großen Gelände-, Campus- oder Umgebungsmodell nur die benötigten Teile der Szene zu verwalten, anstatt alles gleichzeitig zu laden. Bei der Teamarbeit kann One File Per Actor, bei dem Actors in separaten Dateien gespeichert werden, den Bedarf verringern, die Level-Datei auszuchecken, während andere Actors bearbeiten. HLOD wiederum hilft dabei, entfernte Landschafts- und Gebäudeteile sichtbar zu halten.
Zellgröße und Ladebereich sollten jedoch anhand der Projektanforderungen getestet werden. Die Beispielwerte aus der Dokumentation sollten nicht unverändert auf jede Szene übertragen werden. Die Verarbeitung großer Geometrien mit kleinen Sample-Abständen in den Einstellungen für Simplified Mesh kann viel Speicher beanspruchen. Bei zusammengeführten Meshes, die in der Ferne angezeigt werden, kann das Deaktivieren von Distance Fields Speicher sparen. Die Dokumentation enthält keine Angaben zu Lizenz, Preis oder bestimmten Hardwareanforderungen. Vor der Umsetzung sollten Sie daher auch die verwendete Unreal-Engine-Version und die Projekteinstellungen des Teams prüfen.
Häufige Fehler
Davon ausgehen, dass das Zellen-Streaming aktiviert ist: Bei einigen Vorlagen ist Enable Streaming deaktiviert. Prüfen Sie die Option in World Settings.
Jedem Actor denselben HLOD-Typ zuweisen: Für Bäume kann Instancing infrage kommen, für zusammengefasste Gebäude andere Schichttypen.
Vor der HLOD-Erstellung vergessen, Mobility auf Static zu setzen: Laut Dokumentation ist dies eine der Voraussetzungen für die Erstellung.
Beispielwerte für das Raster als verbindliche Vorgabe betrachten: Zellgröße und Ladebereich sollten passend zum Umfang der Szene getestet werden.
Quellen
2 QuellenQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Für Architektur- und Visualisierungsbüros in der Türkei liegt der größte Nutzen von World Partition darin, dass große Umgebungen nicht mehr zwingend auf einmal geladen werden müssen und die gemeinsame Arbeit am selben Level erleichtert werden kann. Bei Campusprojekten, weitläufigen Landschaften oder Außenraumvisualisierungen lassen sich Zellen-Streaming und HLOD gemeinsam einsetzen.
Die Beispielwerte für Zellen und Ladebereiche direkt auf ein Projekt zu übertragen, ist jedoch möglicherweise kein guter Ausgangspunkt. Sie sollten anhand der jeweiligen Szene getestet werden. Auch der Speicherbedarf kleiner Sample-Abstände bei Simplified Mesh sollte berücksichtigt werden. Die Dokumentation macht keine Angaben zu Lizenz, Preis oder Hardwareanforderungen. Büros sollten deshalb die Kompatibilität mit ihrer verwendeten Version und die Leistung auf der vorhandenen Hardware gesondert prüfen.
Häufige Fragen
Wofür wird Unreal Engine World Partition verwendet?
Das System unterteilt ein großes Level in einem einzigen persistenten Level in Rasterzellen. Abhängig von der Position der Streaming-Quellen werden die Zellen zur Laufzeit geladen und entladen.
Was ermöglicht HLOD in Unreal Engine?
HLOD kann entfernte Actors in nicht geladenen World-Partition-Zellen durch Proxy-Meshes darstellen. Laut Dokumentation kann dies die Anzahl der Draw Calls reduzieren und die Leistung verbessern.
Welche Voraussetzungen müssen vor der HLOD-Erstellung erfüllt sein?
Die Actors müssen einer HLOD-Schicht zugewiesen, ihre Mobility-Werte auf Static gesetzt und die HLOD-Erstellung aktiviert werden.



