Als Teil der Paketierung wird das Automation Tool (manchmal als UAT für Unreal Automation Tool abgekürzt) verwendet, um eine Reihe von Dienstprogramm-Scripts zum Bearbeiten von Unreal Engine (UE)-Projekten durchzuarbeiten. Für den Paketierungsprozess verwendet das Automatisierungswerkzeug einen bestimmten Befehl mit dem Namen BuildCookRun. Dieser Befehl kann den Inhalt für eine Plattform cooken, ihn in das native Format einer Plattform für die Verteilung paketieren, ihn auf dem Gerät bereitstellen, und das Projekt automatisch ausführen (wo anwendbar). Zum Paketieren Ihres Projekts ist allerdings nicht ausschließlich die direkte Verwendung von UAT erforderlich. Verwenden Sie die Schaltfläche Platforms der Werkzeugleiste in UE, um aus verfügbaren Plattformen auszuwählen oder die Befehlszeile zum Cooken und Paketieren der Inhalte für eine Plattform.
Als Teil des Befehls BuildCookRun in UAT beschreiben die folgenden Phasen die verschiedenen Phasen der Paketierungs-Pipeline:
- Build: In dieser Phase werden die ausführbaren Dateien für die ausgewählte Plattform kompiliert.
- Cooken: In dieser Phase wird der Inhalt vorbereitet, indem UE in einem speziellen Modus ausgeführt wird.
- Stage: In dieser Phase werden die ausführbaren Dateien und Inhalte in einen Staging-Bereich kopiert – ein eigenständiges Verzeichnis außerhalb des Entwicklungsverzeichnisses.
- Package: In dieser Phase wird das Projekt in das native Verteilungsformat einer Plattform paketiert.
- Deploy: In dieser Phase wird der Build auf einem Zielgerät bereitgestellt.
- Run: In dieser Phase wird das paketierte Projekt auf der Zielplattform gestartet.
Eine Liste von vordefinierten Aufgaben finden Sie auf der Referenzseite BuildGraph Script Tasks.
Paketierungsmethoden
Da Sie Inhalte zum Testen, Debuggen oder zur Vorbereitung der Veröffentlichung auf verschiedene Weise auf einer Zielplattform bereitstellen können, können Sie Ihre Pakete auf mehrere verschiedene Arten testen:
- Verwenden Sie die UE Toolbar, um schnell einen Teil des aktuell geladenen Levels zum Testen und Debuggen zu erproben.
- Verwenden Sie den Project Launcher, um ein Standardprofil zu verwenden oder ein benutzerdefiniertes Profil zu erstellen, um Aktionen wie Profiling oder Debugging für den neuesten Build Ihres Projekts durchzuführen.
- Nehmen Sie ein bereits verpacktes Spiel und stellen Sie es auf einer Plattform bereit, z. B. eine Konsole oder ein Mobilgerät.
Folgen Sie der Sektion unten, um mehr über diese Paketierungsmethoden zu erfahren und wie Sie ihr Spiel mit ihnen paketieren können.
UE-Werkzeugleiste
Verwenden Sie die Schaltfläche Platforms der UE-Werkzeugleiste, um eine Plattform auszuwählen, für die Sie Ihr Projekt paketieren möchten. Wenn Sie ein Projekt mit dieser Option paketieren, wird das paketierte Projekt in einem von Ihnen ausgewählten Ordner gespeichert, jedoch nicht auf dem Gerät bereitgestellt.
Im Dropdown-Menü unter Platforms können Sie folgende Aktionen ausführen:
-
Erstellen und starten eines Projekts auf dem verfügbaren Gerät, das Sie benötigen. Wenn Sie darauf klicken, cookt der Startvorgang automatisch den erforderlichen Inhalt, erstellt den Code und startet auf der ausgewählten Plattform. Der Build ist eine schnelle Möglichkeit, Funktionalität während der aktiven Entwicklung zu testen, ohne dass Sie jedes Mal, wenn Sie etwas testen müssen, das gesamte Projekt kompilieren und ausführen müssen.
-
Wähle die Zielplattform aus und passe die Build-Konfiguration dafür an (Entwicklung, Auslieferung und so weiter).
In UE 5.4.0 gibt es ein bekanntes Problem: Wenn Sie versuchen, mit der Option „Use Project Setting“ zu paketieren, wird die beim Start des Editors unter Project Settings > Packaging festgelegte Konfiguration verwendet, selbst wenn Sie diese ändern. Um dies zu beheben, starten Sie den Editor neu, um sicherzustellen, dass die neue Build-Konfiguration wirksam wird, oder wählen Sie eine der binären Konfigurationen aus dem Plattformen-Menü anstelle von „Use Project Setting“. Dieses Problem wurde in UE 5.4.1 behoben.
-
Zugriff auf Project Launcher, Device Manager, Packaging Settings und Supported Platforms.
Wenn Sie die Plattform, die Sie bereitstellen möchten, nicht sehen oder sie in diesem Menü ausgegraut ist, können Sie Folgendes prüfen:
- Vergewissern Sie sich, dass Sie das richtige SDK für diese Plattform installiert haben (falls erforderlich) und dass es von der aktuell verwendeten Engine-Version unterstützt wird. Dies kann oft in der Datei UEBuild.cs der Plattform überprüft werden, die sich in Engine/Source/Programmings/UnrealBuiltTools/Platforms befindet. Wenn Sie zum Beispiel sehen möchten, welches SDK für Android unterstützt wird, können Sie in der Datei UEBuildAndroid.cs nachsehen.
- Stellen Sie sicher, dass alle Visual Studio-Erweiterungen oder notwendigen Dateien installiert sind.
- Einige Plattformen (wie Konsolen) erfordern externe Werkzeuge, um das Gerät zu verbinden. Vergewissern Sie sich, dass dies ordnungsgemäß funktioniert und das Gerät erkannt wird.
- Verwenden Sie den Device Manager in der Engine, um jedes Gerät nach Bedarf „einzufordern“, wodurch sichergestellt ist, dass es nur für Ihren lokalen Computer verwendet werden kann.
Projekt-Launcher
Der Projekt-Launcher bietet Ihnen die Möglichkeit, von einem Standort und sogar von einem einzigen Startprofil aus für verschiedene Plattformen bereitzustellen. Um den Projekt-Launcher zu öffnen, klicken Sie auf Platforms > Project Launcher.
Jede Plattform, die bereitgestellt wird, hat ein eigenes Standard-Startprofil (im Hauptfenster aufgeführt). Sie können auch ein benutzerdefiniertes Profil erstellen, das es Ihnen ermöglicht, ein Projekt auf eine bestimmte Weise mit vielen erweiterten Einstellungen zu erstellen. Diese umfassen das Anwenden von Befehlszeilen-Argumenten, das Testen von herunterladbaren Inhalten (DLU) und das Patchen von Releases und vieles mehr.
Weitere Informationen finden Sie auf der Referenzseite für denProjekt-Launcher.
Benutzerdefiniertes Startprofil
Mit dem Projekt-Launcher können Sie ein Custom Launch Profile erstellen, das auf allen Plattformen oder auch nur auf den von Ihnen angegebenen Plattformen verwendet werden kann. Durch diese Profilerstellung können Sie Ihre Inhalte auf bestimmte Weise erstellen, indem Sie festlegen, wie sie gecookt, paketiert und bereitgestellt wird, indem Sie die verfügbaren Build-Operationen verwenden.
Um Ihr eigenes benutzerdefiniertes Startprofil hinzuzufügen, klicken Sie auf der rechten Seite des Fensters auf die Schaltfläche Add.
Danach wird das benutzerdefinierte Startprofil sofort geöffnet. Achten Sie darauf, ihm einen Namen und eine Beschreibung zu geben, damit Sie es später schnell identifizieren können.
Befehlszeile
Mit dem Automation Tool können Sie Ihr Spiel über die Befehlszeile cooken und paketieren. Da alle Build-Vorgänge von UAT ausgeführt werden, kann es direkt auf der Befehlszeile mit RunUAT.bat ausgeführt werden. wenn gültige Argumente angegeben werden.
Die RunUAT-Dateien befinden sich in Engine/Build/BatchFiles. Verwenden Sie für Windows die Datei RunUAT.bat und für Mac/Linux die Datei **RunUAT.sh.
Ein einfacher Cook kann mit den folgenden Befehlszeilenargumenten nach UnrealEditor.exe oder UnrealEditor-CMD.exe durchgeführt werden:
UnrealEditor.exe [SpielName oder .uproject] -run=cook -targetplatform=[Plattform] -cookonthefly -map=[Map-Name]
Das Commandlet muss über -run=cook spezifiziert werden. Ebenso muss eine Plattform für den Cook spezifiziert werden. Es generiert die gecookten Daten für die angegebene Plattform und speichert sie an folgendem Speicherort:
[UnrealEditor Project]/Saved/Sandboxes/Cooked-[Platform]
Das manuelle Erstellen Ihrer Befehlszeilenargumente kann recht aufwändig sein und birgt ein höheres Risiko für unbeabsichtigte Fehler Aus diesem Grund wird empfohlen, eine benutzerdefiniertes Startprofil zu verwenden, um eine korrekte Befehlszeile für Ihren Build zu generieren. Alle im benutzerdefinierten Startprofil eingegebenen Parameter generieren automatisch die Befehlszeile und zeigen sie im Fenster Output Log an, wenn sie zum Cooken und Erstellen des Projekts verwendet wird. Jeder Text, der auf BuildCookRun folgt, kann mit RunUAT.bat direkt als Befehlszeilenargumente übergeben werden.
Nachfolgend sehen Sie ein Beispiel des generierten Output des Projekt-Launcher und der entsprechenden Befehlszeile, die manuell erstellt werden müsste, um sie für RunUAT.bat verwenden zu können:
-
Log-Fenster des Projekt-Launcher
Automation.ParseCommandLine: Parsing Command Line: -ScriptsForProject=MyProject.uproject BuildCookRun -project=MyProject.uproject -clientconfig=Development -
Manuell erstellt
[UnrealEngineRoot]/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project=MyProject.uproject -clientconfig=Development
Weitere Informationen finden Sie auf der Seite Content Cooking
Content-Cooking
In UE wird der Inhalt in bestimmten Formaten gespeichert, die für eine Plattform unterstützt werden (PNG für Texturdaten oder WAV für Audio). Dieser Inhalt kann jedoch in einem Format vorliegen, das von der Plattform, für die Sie entwickeln, nicht verwendet werden kann. Der Cooking-Prozess konvertiert von der UE verwendete Assets in solche, die auf den Plattformen, auf denen sie bereitgestellt werden, gelesen werden können. In einigen Fällen wird der gecookte Inhalt in ein proprietäres Format konvertiert (wie bei Konsolen), das nur von dieser Plattform gelesen werden kann.
Das Cooking von Inhalten für verschiedene Plattformen kann über die Befehlszeile oder über den Projekt-Launcher und sein UE-Interface erfolgen. Bei einigen Plattformen muss der gesamte Inhalt gecookt werden, bevor er auf dem Gerät verwendet werden kann, damit er korrekt funktioniert. Ob dies der Fall ist, müssen Sie möglicherweise bei der Plattform prüfen, für die Sie entwickeln.
Es gibt zwei Möglichkeiten, Inhalte für Ihre Projekte zu cooken: By the book und On the fly.
Cook By the Book
Cook by the Book (CBTB) führt den gesamten Cook-Prozess im Voraus aus, sodass der Build die gecookten Assets alle auf einmal bereitstellen kann und nicht erst bei Bedarf während das Level gespielt wird (wenn Sie einen Cook-Server verwendet haben). Diese Option ist für Entwickler nützlich, die keine Iterationen einzelner Assets durchführen, oder für diejenigen, die möchten, dass das Spiel mit voller Geschwindigkeit läuft, ohne darauf warten zu müssen, dass ein Server den erforderlichen gecookten Inhalt liefert. Normalerweise werden Performancetests und Spieltests diese Methode verwenden.
Wenn Sie ein CBTB durchführen, ist keine zusätzliche Einrichtung für den Build erforderlich. Verwenden Sie den Projekt-Launcher, um ein benutzerdefiniertes Startprofil zu erstellen, und verwenden Sie in der Sektion Cook das Dropdown-Menü, um By the Book auszuwählen.
Wenn Sie spielspezifische Befehlszeilen zum Hinzufügen haben, können Sie die Advanced Settings erweitern und die Argumente zu den Optionen Additional Cooker Options hinzufügen.
Ein Beispiel wäre:
-romcp
Weitere Informationen zu dieser Cook-Methode und ihren verfügbaren Einstellungen finden Sie auf der Referenzseite Projekt-Launcher.
Cook On the Fly
Wenn Sie das Cooken des Inhalts On the Fly (COTF) wählen, wird das Cooking verzögert, bis das Spiel auf der Plattform bereitgestellt wurde. Es werden nur die ausführbaren und einige andere grundlegende Dateien installiert, die die Netzwerkkommunikation mit einem Cook-Server nutzen, um Anforderungen bei Bedarf zu stellen, wenn der Inhalt benötigt wird. COTF erlaubt eine schnellere Iteration für Entwickler, die regelmäßig Änderungen am Inhalt vornehmen, oder für diejenigen, die nur Abschnitte des Spiels erkunden.
Um „Cook On the Fly“ durchzuführen, müssen Sie zuerst einen Cook-Server auf einem Rechner starten, auf dem das vollständige Projekt verfügbar ist. Dies kann entweder Ihre lokale Maschine oder ein Remote-Server sein, der das Cooken durchführt. Der Cook-Server kann ausgeführt werden, indem UE im Befehlszeilenmodus mit dem folgenden Argument mit der UnrealEditor-cmd.exe gestartet wird:
UnrealEditor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly
Greifen Sie auf der lokalen Maschine des Entwicklers auf ein benutzerdefiniertes Startprofil vom Projekt-Launcher zu und legen Sie in der Sektion Deploy die Methode auf File Server fest. Optional können Sie Default Deploy Platform verwenden, um eine einzelne Plattform auszuwählen, oder die Umschalter verwenden, um die Erstellung und Bereitstellung auf mehreren Plattformen zu aktivieren.
Damit die ausführbare Datei weiß, woher sie Inhalte laden soll, muss ihr die IP-Adresse des Computers bekannt sein, auf dem der Cook-Server ausgeführt wird. Dazu müssen Sie die folgende Befehlszeilen-Argumente in der Befehlszeile des Clients übergeben (wobei x.x.x.x für die IP Ihres Hosts steht):
-filehostip=123.456.78.90
Das Argument kann in Ihrem benutzerdefinierten Startprofil unter der Sektion Launch im Textfeld Additional Command Line Parameters angegeben werden. Wenn die IP-Adresse nicht angegeben wird, wird der Build aus vorhandenen lokalen Dateien geladen und es wird nicht versucht, eine Verbindung zum Cook-Server herzustellen.
Weitere Informationen zu dieser Cook-Methode und ihren verfügbaren Einstellungen finden Sie auf der Referenzseite Projekt-Launcher.
Bereitstellen eines Builds
Um einen Build aus dem Projekt-Launcher bereitzustellen, müssen Sie ein Projekt haben, das gecookt und paketiert wurde. Es gibt ein paar Möglichkeiten, wie Sie diesen Typ von Build auf einer Plattform bereitstellen können. Legen Sie in Ihrem benutzerdefinierten Startprofil unter der Sektion Deploy fest, wie Sie den Build bereitstellen möchten.
- File-Server cookt und stellt den Inhalt zur Laufzeit bereit, wenn er für das Gerät benötigt wird.
- Copy to Device kopiert den gesamten gecookten Build zum Gerät.
- Do Not Deploy stellt den Build nach Abschluss des Cook- und Paketierungsvorgangs auf keinem Gerät bereit.
- Copy Repository kopiert einen Build von einem angegebenen Dateispeicherort, um ihn auf einem beliebigen Gerät bereitzustellen
Weitere Informationen zu diesen Bereitstellungsmethoden und ihren verfügbaren Einstellungen finden Sie auf der Referenzseite Projekt-Launcher.