Stack O Bot ist ein Beispiel-Projekt, das als Lernressource für die Spieleentwicklung mit Unreal Engine erstellt wurde. Es demonstriert verschiedene Engine-Funktionen, darunter die prozedurale Inhaltsgenerierung (PCG), Blueprints und Level-Instanzen. Das Beispielprojekt umfasst In-Game-Entwicklerkommentare, die Designentscheidungen und die Implementierung erläutern, sowie kommentierte Blueprints und Materialien.
In Stack O Bot steuert der Spieler einen Roboter-Charakter aus der Third-Person-Perspektive und muss eine Reihe von Plattform-Herausforderungen und physikbasierten Rätseln abschließen. Es unterstützt ein breites Spektrum von Geräten, von Mobilgeräten bis hin zu High-End-PCs, und kann mittels Tastatur und Maus, Controllern und Touchscreen-Eingabe gesteuert werden.
Diese Seite erklärt, wie Sie das Beispielprojekt „Stack O Bot“ öffnen, bietet einen Überblick über die wichtigsten Funktionen des Projekts und Links zur zugehörigen Dokumentation für weiterführendes Lernen.
Öffnen des Projekts Stack O Bot
Das auf dieser Seite beschriebene „Stack O Bot“-Beispiel wurde mit Unreal Engine 5.6 erstellt. Um das ältere „Stack O Bot“-Beispiel auszuprobieren, laden Sie das Projekt für Engine-Versionen vor 5.6 herunter.
Befolgen Sie diese Schritte, um das Beispielprojekt „Stack O Bot“ zu öffnen:
Navigieren Sie in Fab zum Beispiel Stack O Bot und klicken Sie auf Add to My Library.
Alternativ können Sie im Fab-Plugin für Unreal Engine nach dem Beispiel suchen.
Navigieren Sie zu Stack O Bot und klicken Sie auf Projekt erstellen.
Navigieren Sie im Epic Games Launcher zu Unreal Engine > Bibliothek > Fab-Bibliothek.
Geben Sie einen Namen und einen Speicherort für Ihr Projekt ein.
Wählen Sie 5.6 als Engine-Version aus.
Klicken Sie auf Erstellen. Das Projekt wird geöffnet.
Weitere Informationen zum Zugriff auf Beispielinhalte und das Fab-Plugin für Unreal Engine finden Sie unter Beispiele und Tutorials.
Empfohlene Systemanforderungen
Stack O Bot wurde entwickelt, um ein breites Spektrum von Geräten zu unterstützen, einschließlich Mobiltelefone und PCs. Der Inhalt skaliert über mehrere Detailstufen und ist vollständig mit Mobilgeräten kompatibel.
Die folgenden Systemspezifikationen werden für einen PC empfohlen:
Windows 10 64-Bit-Version 1909, Revision .1350 oder höher oder Versionen 2004 und 20H2, Revision .789 oder höher
Windows 11 ist mit Unreal Engine 5 kompatibel und erfüllt die empfohlenen Spezifikationen.
Intel- oder AMD-Quad-Core-Prozessor mit mindestens 2,5 GHz
32 GB System-RAM
8 GB VRAM
DirectX-11- oder -12-kompatible Grafikkarte
Navigieren im „Stack O Bot“-Projekt
Nachdem Sie das „Stack O Bot“-Projekt geöffnet haben, wird standardmäßig die Karte Lvl_Empty im Level-Editor geöffnet. Die Karte bietet einige Bildschirm-Informationen zur Verwendung des Beispielprojekts.
Die meisten Inhalte des Beispielprojekts befinden sich im Ordner /Inhalt/StackOBot/. Die Hauptspielkarte, Lvl_StackOBot, befindet sich im Ordner /Inhalt/StackOBot/Maps.
Klicken Sie auf das Spielen-Symbol in der Haupt-Symbolleiste, um das Spiel zu spielen.
Das Spiel beginnt mit einem Hauptmenü, das in der Karte Lvl_MainMenu enthalten ist. Klicken Sie auf SPIELEN, um zur Karte des Hauptspiels zu navigieren, Lvl_StackOBot.
Die Hauptspielkarte enthält Blasen-Symbole, die einen Entwicklerkommentar auslösen, wenn sich der Spieler nähert. Dieser Kommentar erläutert einige Implementierungsdetails und Design-Entscheidungen, die Entwickler bei der Erschaffung von Stack O Bot getroffen haben.
Der Inhalt der Entwickler-Kommentar-Blasen befindet sich im Ordner /Inhalt/DevCom.
Stack O Bot – Steuerelemente im Spiel
Um Stack O Bot zu spielen, kann der Spieler eine Tastatur und Maus, einen Controller oder die Touchscreen-Steuerung verwenden.
| Action | Tastatur und Maus | Controller | Touch (siehe Bild unten) |
|---|---|---|---|
Verschieben | W, A, S, D | Linker Thumbstick | 1 |
Umsehen | Maus | Rechter Thumbstick | 2 |
Springen | Leertaste (drücken) | Untere Taste (drücken) | 3 (drücken) |
Jetpack | Leertaste (halten) | Untere Taste (halten) | 3 (halten) |
Greifen | E | Rechter Trigger | 4 |
Pausieren | Escape oder linke Umschalttaste | Start-Taste | 5 |
Stack O Bot – Funktionen
Dieser Abschnitt beschreibt die im Beispielprojekt Stack O Bot verwendeten Funktionen und die Speicherorte der zugehörigen Assets im Projektordner.
Level-Einführung
Stack O Bot beginnt mit einer Einführung in das Level, das als Level-Sequenz mit dem Sequencer erstellt wurde. In der Level-Sequenz werden drei kinematografische Kameras und eine Kameraschnittspur eingesetzt, um sich durch das Level zu bewegen und verschiedene Elemente der Spielkarte zu zeigen.
Die Level-Sequenz (SQ_Lvl1_fly) befindet sich im Ordner /Inhalt/StackOBot/Maps.
Anpassbarer Third-Person-Charakter
Das Projekt Stack O Bot enthält einen Third-Person-Charakter, der sich bewegt, springt und mit Nicht-Spieler-Charakteren (NPC) und Objekten interagieren kann. Der Blueprint für den Charakter, BP_Bot, kombiniert ein Animationsdiagramm, ein Control-Rig und anpassbare Materialien.
Das Animationsdiagramm wird für die Animation des Charakters in verschiedenen Zuständen verwendet, beispielsweise zum Stehen, Laufen oder Springen. Das Control-Rig wird für kontextbezogene Animationen verwendet, etwa zur Positionierung der Füße des Charakters auf verschiedenen Oberflächen, und um die Hand beim Drücken von Tasten zur Taste zu führen. Die anpassbaren Materialien umfassen Parameter zum Ändern von Farbkombinationen und den Gesichtsausdrücken des Charakters.
Der BP_Bot-Blueprint befindet sich im Ordner /Inhalt/StackOBot/Blueprints/Character, die Charakteranimationen und Materialien befinden sich im Ordner /Inhalt/StackOBot/Characters/Bot.
Prozedurale Inhaltsgenerierung (Procedural Content Generation, PCG)
Die Karte in Stack O Bot wird mit prozeduraler Inhaltsgenerierung (PCG) erstellt. PCG wird für die Erstellung vieler Assets verwendet, darunter die schwebenden Inseln, die Vegetation, die Plattformen, die hexagonalen Kuppeln, die Zäune und die Münzen-Spawner.
Die Plattformen werden erstellt, indem eine Größe eingestellt wird und bestehende Kachelstücke sowie eine Reihe von Regeln verwendet werden, um die visuelle Konsistenz der Plattformen zu gewährleisten. Kuppeln sind über die Karte verteilt, aber Sie können auch einen Level-Ein- und -Ausgang festlegen, der frei von Kuppeln ist.
Die Zäune werden mit einem PCG-System erstellt, das einen Spline, PCG_BP_FenceSpline, sampelt und Regeln anwendet, um die verschiedenen Teile des Zauns zu generieren, wie z. B. Pfeiler und Endkappen. Die Karte umfasst Münzen-Spawner, die ebenfalls PCG verwenden, um Münzen entlang eines Spline zu spawnen.
Den PCG-Inhalt finden Sie im Ordner /Inhalt/StackOBot/Blueprints/PCG.
UV-freie Smart-Materialien
Das „Stack O Bot“-Projekt verwendet intelligente UV-freie Materialien, um hochwertige Texturen auf jedes Mesh in der Karte mit einer Beton-, Metall- oder bemalten Oberfläche anzuwenden, etwa auf die schwebenden Plattformen, die Metallzylinder und die Metallteile der Bio-Kuppelstruktur. Anstatt UV-Kanäle für jeden Abschnitt eines Mesh zu erstellen, fügte das Team jedem Mesh mithilfe von Modellierungstools Scheitelpunktfarben hinzu. Die Smart-Materialien verwenden dann die Scheitelpunkt-Farben, um die Textur auf jedem Mesh zu positionieren.
HLOD-Generierung
Die Karte in Stack O Bot ist groß und enthält viele Assets zum Rendern. Daher verwendet das Projekt das System Hierarchischer Detaillierungsgrad (HLOD) in Unreal Engine, um die Performance beim Spielen des Spiels zu verbessern.
StateTree-NPC-Verhalten
Stack O Bot umfasst NPCs, die mit dem Spieler-Charakter interagieren können. Die NPCs gehen in bestimmten Bereichen der Karte herum, jagen den Spieler, wenn sie in der Nähe sind, stoßen mit dem Spieler zusammen, um ihn wegzustoßen, und können zerstört werden, wenn der Spieler-Charakter auf ihren Kopf springt. Das NPC-Verhalten wird mit einem StateTree gesteuert, der die verschiedenen Zustände definiert, die jeder NPC haben kann (zum Beispiel untätig, laufend oder tot), sowie die Aktionen, die der NPC in jedem Zustand ausführen sollte.
Der StateTree für die NPCs befindet sich im Ordner /Inhalt/StackOBot/AI/STree_Bug.
Modulare Level-Instanzen
Stack O Bot verwendet Level-Instanzen, um wiederverwendbare modulare Level-Segmente zu erstellen. Zum Beispiel gibt es Level-Instanzen mit Varianten der schwebenden Inseln, mit denen Sie Spielkarten bauen können, ohne für jedes neue Gebiet einzigartigen Inhalt erstellen zu müssen.
Jede Level-Instanz kann als eigenständige Karte gespielt oder zu einer World Partition-Karte hinzugefügt werden. Bei der Platzierung auf einer anderen Karte hat jede Instanz eine Transformation, sodass sie gedreht und positioniert werden kann.
Sie können Objekte zu einer Instanz hinzufügen, die im Details-Panel des Objekts als Nur Hauptwelt getaggt wurden. Diese Objekte werden nur angezeigt, wenn die Instanz als eigenständige Karte gespielt wird, und nicht, wenn Sie die Karte als Level-Instanz in einer World Partition-Karte verwenden. Aktivieren Sie das Kontrollkästchen Nur Hauptwelt bei Beleuchtung, Spielerstarts und anderen Objekten, die Sie nicht in der World Partition-Karte verwenden möchten, aber beim Testen und Debuggen der Level-Instanz als eigenständige Karte verwenden wollen.
Level-Instanzen befinden sich im Ordner /Inhalt/StackOBot/Maps/LevelInstances. Level-Instanzen, die als „Nur Hauptwelt“ getaggte Objekte verwenden, verfügen über einen Main World-Ordner, der diese Objekte enthält.
Physik-basierte Interaktionen
Stack O Bot verwendet die Physik-Systeme von Unreal Engine, um Physik-Objekte, Interaktionen und Zerstörung zu implementieren.
Physik-Objekte wie stapelbare Kisten werden vom Spieler-Charakter mit einem Physik Handle gegriffen. Objekte wie Bounce-Pads und Lüfter verwenden Physik-Befehle, um den Spieler in die Luft zu schleudern. Schwebende Plattformen und Brücken verwenden eine Physik-Beschränkung-Konfiguration. Zerstörbare Objekte wie Dächer und Respawn-Plattformen verwenden eine vorgebrochene Geometriesammlung, die vom Chaos-Hauptfeld ausgelöst wird.
Die Physik-Objekte befinden sich im Ordner /Inhalt/StackOBot/Blueprints/PhysicsElements.
Dynamische Kamera
Stack O Bot verwendet einen benutzerdefinierten Spieler-Kamera-Manager (BP_CamManager), um drei verschiedene Kameratypen zu erstellen:
Eine Third-Person-Kamera, die dem Spieler folgt
Eine gesperrte Third-Person-Perspektive, die darauf ausgelegt ist, verschiedene Elemente der Spielkarte aus einem kinematografischen Winkel zu zeigen
Eine 2D-Seiten-Scrolling-Implementierung, die den Stil klassischer 2D-Plattformspiele wiederspiegelt
Die Third-Person-Kamera, die dem Spieler folgt, wird im größten Teil der Hauptkarte verwendet. Auf bestimmten sich bewegenden Plattformen wechselt die Kamera in die gesperrte Third-Person-Perspektive. Es gibt einen Teil der Karte, in dem die Kamera in die seitwärts scrollende Perspektive wechselt.
Der Kamera-Manager wechselt mithilfe eines Blueprint-Actor (BP_GameCamVolume), der Logik im Kamera-Manager und eines Interface (BPI_CamManager) zur Kommunikation zwischen dem Manager und dem Blueprint-Actor zwischen allen drei Kameratypen.
Der Kamera-Manager und der Spielkamera-Volumen-Blueprint befinden sich im Ordner /Inhalt/StackOBot/Blueprints/Kamera.
Gameplay-Interaktionen
Stack O Bot enthält eine Interaktions-Handler-Komponente, die jedem Actor hinzugefügt wird, mit dem der Spieler interagieren kann. Das gilt für Objekte wie Schaltflächen und Druckplatten.
Objekte, die gegriffen werden können, wie die Kisten, haben den GRAB-Actor-Tab, der von der Funktion Grab_Check in BP_Bot geprüft wird. Gegriffene Objekte werden von der Funktion Grab_Update aktualisiert.
Die Handler-Komponente befindet sich im Ordner /Inhalt/StackOBot/Blueprints/GameElements. Die Greifen-Logik ist im Blueprint BP_Bot enthalten, der sich im Ordner /Content/StackOBot/Blueprints/Character befindet.
Zielverfolgung
Stack O Bot implementiert ein Zielsystem mithilfe des Spiel-Modus. Sie können interaktive Actors mit dem Booleschen Operator IsObjective in der Interaktions-Handler-Blueprint-Komponente taggen. Wenn der Spieler mit dem getaggten Actor interagiert, wird das Ziel aktualisiert.
Die Ziele werden in der Benutzeroberfläche (UI) des Spiels verfolgt. Der Interaktions-Handler sendet den Objektstatus an die Benutzeroberfläche und aktualisiert die Benutzeroberfläche bei Bedarf.
Ziele werden auf der Karte durch den Actor BP_Portal, der ein Licht pro Ziel hat, auch visuell dargestellt. Die Lichter gehen an, wenn die Ziele abgeschlossen wurden. Nachdem alle Ziele abgeschlossen wurden und alle Lichter leuchten, wird das Portal aktiviert und die Trigger-Kollision aktiviert. Diese Aktivierung erlaubt es dem Spieler, die Karte durch Betreten des Portals abzuschließen. Die Interaktions-Handler-Komponente verwaltet die Logik für die Beleuchtung und das Portal.
Die Interaktions-Handler-Komponente (BPC_InteractionHandler) und der Portal-Blueprint (BP_Portal) befinden sich im Ordner /Inhalt/StackOBot/Blueprints/GameElements. Das Benutzeroberflächen-Asset (HUD_InGame) befindet sich im Ordner /Inhalt/StackOBot/Blueprints/Framework.