18. Sept. 2024

Fortnite’s Re:Imagine London – London in UEFN zum Leben erwecken

Re:Imagine London (Inselcode: 1442-4257-4418) ist eine Zusammenarbeit zwischen den weltberühmten Zaha Hadid Architects (ZHA) und Epic Games, um einen bekannten Bereich von London detailgetreu nachzubilden. Fortnite-Spieler sind dazu eingeladen, beim Projekt mitzuhelfen, indem sie ihre eigenen einzigartigen Gebäude auf der Insel entwerfen.

Dieses Projekt hat mehrere Hauptziele:
  • Es soll eine neue Art von Gameplay im Unreal Editor für Fortnite (UEFN) zur Schau stellen.
  • Es soll über die Grenzen von Verse und anderen UEFN-Features hinausgehen und ihr volles Potenzial austesten und verbessern.
  • Es soll zur Schau stellen, wie Fortnite innovative Ideen für ein breit gefächertes Publikum auf interessante Weise vorstellen kann.
  • Es soll erkunden, wie erfahrene Nutzer von Unreal Engine ihr Wissen in UEFN anwenden können.
  • Und vor allem soll es Spieler dazu inspirieren, sich vorzustellen, wie Städte in Zukunft noch begehbarer, lebhafter, grüner und nachhaltiger sein können.

ZHA hatte bereits Erfahrung mit der Unreal Engine und spielte eine wichtige Rolle bei diesem Projekt. Sie haben nicht nur die Gebäude entworfen, sondern auch das Gameplay geschaffen und Architektur sowie Baukonzepte aus der echten Welt integriert. ZHA und Epic haben auch mit Accucities zusammengearbeitet – ebenfalls Experten mit der Unreal Engine – die besonders akkurate Modelle von London in UEFN integriert haben, um den spielbaren Bereich im Spiel zu erstellen.

Um mehr über die Geschichte von Re:Imagine London zu erfahren, schaut euch dieses Video auf dem B1M-YouTube-Kanal an.
 

Eine neue Art von Gebäude

Re:Imagine London stellt ein komplett neues Bausystem vor, das in Verse geschrieben wurde. Spieler haben die Auswahl aus sechs verschiedenen Arten von Bauten (Fußweg, Struktur, Park, Gewerblich, Büro und Wohngebäude) und designen sie, indem sie Voxels dieser Art an einer Baustelle platzieren.
Gebäudearten
Der Bereich, den Spieler erkunden können, umfasst mehrere ikonische Wahrzeichen, darunter St. Paul’s Cathedral, die Tate Modern Gallery und Shakespeare’s Globe Theatre. Innerhalb des spielbaren Bereichs von London gibt es vier Baustellen.

Baustellen 2

Spieler legen die Form und Kategorie der Gebäude fest, indem sie Voxel platzieren, während das neue System automatisch realistische Gebäude generiert. ZHA hat die modularen Teile entworfen und die Regeln festgelegt, mit denen diese Teile zusammengefügt werden, wodurch Gebäude erstellt werden können, die wesentlich größer als ein einziger Voxel sind.

Fertiger Bau

Werte
 

Voxel-Raster und Ray-Casting

Im Herzen von Re:Imagine London befindet sich ein 3D-Raster aus „Zellen“ für jede Baustelle, das Informationen über die Art der vorhandenen Bauvoxel speichert (falls vorhanden). Die Implementierung hiervon in Verse ist relativ einfach, wenn man ein Array „optionaler“ Referenzen verwendet. Zusätzlich folgt eine einfache Ray-Casting-Routine einer Startposition und einer Richtung durch das Raster, bis es auf eine belegte Zelle trifft.

Voxel-Ray-Casting
 

Input-Handhabung

Die Insel verwendet eine Reihe von Eingabeauslöser-Geräten, um auf Steuerungen wie Feuern (Voxel hinzufügen), Zielen (Voxel entfernen), Nächster/Vorheriger Gegenstand (Kategorie ändern) und Spitzhacke (benutzerdefiniertes Menü öffnen) zu reagieren.

Wenn ein Spieler die Schusstaste drückt, überprüfen wir zunächst, ob er sich in einer „Bauzone“ befindet. Dann führen wir einen Ray-Cast durch, um festzustellen, welchen Voxel er betrachtet. Wenn zutreffend, wird an diesem Ort ein neuer Voxel hinzugefügt.
 

Prozedurale Generierung in Verse

Re:Imagine London implementiert zwei Arten von prozeduraler Generierung in Verse: Shape Grammar und Wave Function Collapse. Shape Grammar wird auf 3D-Gebäude (Struktur, Gewerblich, Büro und Wohngebäude) angewendet, wohingegen Wave Function Collapse für „flache“ 2D-Bereiche (Fußwege, Parks) verwendet wird.

Für beide Techniken hat das Team eine große Anzahl modularer Gebäude-Props erstellt (insgesamt 330), die Verse dann in der Laufzeit spawnt. Der Code ist deterministisch und löscht/spawnt Objekte nur wenn erforderlich.

Teile

Hier ist eine kurze Beschreibung davon, wie diese Techniken funktionieren:
 

Shape Grammar

Zuerst werden alle Voxel jeder Kategorie in größere Konvex-Boxen aufgelöst, um Shape Grammar anzuwenden.

Auflösboxen

Shape Grammar besteht aus einfachen Regeln, bei denen jede Regel eine Box einnimmst und eine oder mehrere Unterboxen für weitere Regeln generiert. Zum Beispiel könnte eine Regel eine hohe Kiste zu einem „Boden“ schneiden, der nur einen Voxel hoch ist, wohingegen eine andere Regel den Ecken eine Regel zuweist und den Wänden eine andere. Eine besondere Regel spawnt ein Objekt mit der Größe und an dem Ort der Box.

Shape Grammar

Jede Regel wird als eine separate Verse-Klasse definiert, die zu einem „Baum“ im Code zusammengesetzt wird. Dieser Ansatz vereinfacht das Erstellen von neuen Regeln, das Experimentieren mit verschiedenen Ideen und das Zuweisen spezieller Stile für jede Gebäudeart. Das Anwenden verschiedener Regeln mit dem gleichen Voxel-Set führt zu verschiedenen Ergebnissen, wie auf dem Bild unten zu sehen.

Vox-Beispiele

Regeln können außerdem ein „verbessertes“ Teil auswählen, wenn bestimmte Voxel-Kombinationen zusammen platziert werden, zum Beispiel ein Park-Voxel und ein Wohngebäude-Voxel.

Upgrade-Teil
 

Wave Function Collapse

Wave Function Collapse (WFC) ist eine Technik, mit der ein Bereich zufällig generiert wird, basierend auf einer Reihe von Regeln, die bestimmen, wie die Teile zusammengefügt werden. Über diese Methode wurde während der „State of Unreal 2022“-Präsentation The Matrix Awakens: Generating a World gesprochen.

Kacheln

In dieser Implementierung wird eine Reihe von Kacheln verwendet und das Team legt dann fest, welche Kacheln nebeneinander platziert werden können. Ein „Label“ wird auf jeden Rand angewendet und Kacheln können nur platziert werden, wenn die Label übereinstimmen. Der Algorithmus wählt einen Ort auf dem Raster aus, fällt eine zufällige Entscheidung aus den möglichen Optionen und leitet die Ergebnisse dieser Entscheidung an die möglichen Optionen an anderen Orten weiter.

Dieser Prozess wird fortgesetzt, bis die gesamte Region generiert ist.

Generierter Park
 

Ansichtsmodus

Um Spielern dabei zu helfen, die Arten von platzierten Voxels zu visualisieren, können sie einen Ansichtsmodus ein- und ausschalten, der farbige Boxen über die Baustelle legt.

Ansichtsmodus

Dieses Feature wurde implementiert, indem normalerweise unsichtbare Boxen gespawnt werden und ein Filmsequenz-Gerät genutzt wird, um eine Materialparameter-Sammlung zu steuern. Die Materialparameter-Sammlung passt wiederum die Materialopazität an. Die Option „Nur Auslöser“ ermöglicht es Spielern, diese Ansicht unabhängig zu kontrollieren, was bedeutet, dass sie sich nur auf den Spieler auswirkt, der sie aktiviert, nicht auf andere Spieler.
 

Gebäude speichern

Spieler können dank des Verse-Persistenz-Features über mehrere Sitzungen hinweg an ihren Gebäuden arbeiten und ihre Kreationen mit Freunden teilen. Gebaute Voxel werden zu einer Reihe von Text umgewandelt, als Array gespeichert und können dann in Zukunft neu geladen werden.
 

Die Insel speichert außerdem Informationen wie die Stufe des Spielers im Spiel, die abgeschlossenen Aufträge und Teile, die freigeschaltet wurden. All das ist mit der Verse-Persistenz möglich!
 

Fußgänger

Ped1

Damit sich die Stadt lebendig anfühlt, wurden drei Techniken verwendet:
  • Sequenzer
    • Wurde zum Animieren von Fußgängern, Autos, Fahrrädern, Booten und Zügen in der Stadt verwendet.
  • StaticMeshes
    • Für Fußgänger, die stillstehen oder einem vorher festgelegten Pfad folgen, wurden StaticMeshes mit Scheitelpunkt-Animationsmaterialien statt Skelett-Mesh-Animationen verwendet. Dieser Ansatz ist effizienter, da er vollständig über die GPU abgewickelt wird. Ihr könnt mehr über diese Technik in unserem Scheitelpunkt-Animationsüberblick erfahren.
  • NPC-Spawnpunkt-Gerät
    • Für Fußgänger in Baustellen wurde das NPC-Spawnpunkt-Gerät mit benutzerdefiniertem Verse-Verhalten verwendet. Diese NPCs laufen durch den Park und über Fußwege und mehr von ihnen werden dynamisch gespawnt, während die Baustelle sich weiterentwickelt. Die NPCs verwenden das MetaHuman-Skelett und ein Fortbewegung-Animationsset.

Ped2alt
 

Prozedurale Musik

Patchwork wurde verwendet, um ein prozedurales Musiksystem zu implementieren, das sich weiterentwickelt, während Spieler bauen. Während das Bauen auf einer Baustelle fortschreitet, wird die Musik zunehmend dynamischer. Drei komponierte Musikschichten wurden in Fusion-Patches importiert und in den Patchwork-Instrument-Player geladen, dann werden sie von einem Midi-Track im Song-Synchronisierung-Gerät ausgelöst. Die Lautsprecher werden lauter oder leiser, je nach Baudichte.
 

Nacht und Tag

Ein benutzerdefinierter Tag/Nacht-Zyklus wurde implementiert, um die Stadt sowohl im Tageslicht als auch bei Nacht zur Schau zu stellen. Ein Sequenzer wurde verwendet, um Lichtverhältnisse im Laufe der Zeit anzupassen und Änderungen via Verse auszulösen.
 


Eine Datenebene ermöglicht es, Laternen leicht an- und auszuschalten. Zusätzlich passt eine Materialparameter-Sammlung die Helligkeit von bestimmten Materialien wie zum Beispiel Fenster bei Nacht an.

Tag und Nacht
 

Wir hoffen, dass es euch Spaß machen wird, Re:Imagine London zu erkunden und Dinge zu erstellen, und dass es euch Ideen für eure zukünftige Inseln geben wird!
 

Zusätzliche Bilder

Gameplay

Boot

Gleiten