Zurück
Fortnite’s Re:Imagine London – London in UEFN zum Leben erwecken
Das Fortnite-Team
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:
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.
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.
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.
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.
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.
Hier ist eine kurze Beschreibung davon, wie diese Techniken funktionieren:
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.
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.
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.
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.
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.
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!
Damit sich die Stadt lebendig anfühlt, wurden drei Techniken verwendet:
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.
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!
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.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.
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.
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.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.
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.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.
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.
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.
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.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.
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.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
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.
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.
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!