Erstellen und Einrichten einer Unreal-Umgebung#

Diese Seite enthält die vollständige Anleitung von Anfang bis Ende zur Einrichtung einer Unreal-Umgebung mit AirSim. Der Unreal Marketplace bietet mehrere Umgebungen, die Sie in nur wenigen Minuten nutzen können. Es ist auch möglich, Umgebungen von Websites wie turbosquid.com oder cgitrader.com mit etwas mehr Aufwand zu verwenden (hier ist ein Tutorial-Video). Außerdem gibt es mehrere kostenlose Umgebungen.

Unten verwenden wir eine kostenlos herunterladbare Umgebung vom Unreal Marketplace namens Landscape Mountain, aber die Schritte sind für jede andere Umgebung gleich.

Hinweis für Linux-Benutzer#

Es gibt keinen Epic Games Launcher für Linux, was bedeutet, dass Sie eine Windows-Maschine benötigen, um eine benutzerdefinierte Umgebung zu erstellen. Sobald Sie den Unreal-Projektordner haben, kopieren Sie ihn einfach auf Ihre Linux-Maschine.

Schritt-für-Schritt-Anleitung#

  1. Stellen Sie sicher, dass AirSim kompiliert ist und Unreal 4.27 installiert ist, wie in den Build-Anweisungen beschrieben.
  2. Klicken Sie im Epic Games Launcher auf den Tab "Learn", scrollen Sie nach unten und suchen Sie Landscape Mountains. Klicken Sie auf Create Project und laden Sie diesen Inhalt herunter (~2 GB Download).

    current version

  3. Öffnen Sie LandscapeMountains.uproject. Dies sollte den Unreal Editor starten.

    unreal editor

    Hinweis

    Das Landscape Mountains Projekt wird bis zur Unreal Engine Version 4.24 unterstützt. Wenn Sie 4.24 nicht installiert haben, sollten Sie einen Dialog mit dem Titel Select Unreal Engine Version sehen, mit einem Dropdown-Menü zur Auswahl aus den installierten Versionen. Wählen Sie 4.27 oder höher, um das Projekt auf eine unterstützte Engine-Version zu migrieren. Wenn Sie 4.24 installiert haben, können Sie das Projekt manuell migrieren, indem Sie zum entsprechenden .uproject-Datei im Windows Explorer navigieren, mit der rechten Maustaste darauf klicken und die Option Switch Unreal Engine version... auswählen.

  4. Wählen Sie im File-Menü die Option New C++ class, lassen Sie den Standardwert None für den Klassentyp, klicken Sie auf Next, lassen Sie den Standardnamen MyClass und klicken Sie auf Create Class. Wir müssen dies tun, da Unreal mindestens eine Quelldatei im Projekt benötigt. Dies sollte eine Kompilierung auslösen und die Visual Studio-Lösung LandscapeMountains.sln öffnen.

  5. Gehen Sie zu Ihrem Ordner für das AirSim-Repository und kopieren Sie den Ordner Unreal\Plugins in Ihren LandscapeMountains-Ordner. Auf diese Weise hat Ihr eigenes Unreal-Projekt nun das AirSim-Plugin.

    Hinweis

    Wenn die AirSim-Installation neu ist, d.h. noch nicht zuvor kompiliert wurde, stellen Sie sicher, dass Sie build.cmd vom Stammverzeichnis ausführen, bevor Sie den Ordner Unreal\Plugins kopieren, damit auch die AirLib-Dateien enthalten sind. Wenn Sie einige Änderungen in der Blocks-Umgebung vorgenommen haben, stellen Sie sicher, dass Sie update_to_git.bat aus Unreal\Environments\Blocks ausführen, um die Dateien in Unreal\Plugins zu aktualisieren.

  6. Bearbeiten Sie die Datei LandscapeMountains.uproject, sodass sie wie folgt aussieht

    {
        "FileVersion": 3,
        "EngineAssociation": "4.27",
        "Category": "Samples",
        "Description": "",
        "Modules": [
            {
                "Name": "LandscapeMountains",
                "Type": "Runtime",
                "LoadingPhase": "Default",
                "AdditionalDependencies": [
                    "AirSim"
                ]
            }
        ],
        "TargetPlatforms": [
            "MacNoEditor",
            "WindowsNoEditor"
        ],
        "Plugins": [
            {
                "Name": "AirSim",
                "Enabled": true
            }
        ]
    }
  7. Bearbeiten Sie die Datei Config\DefaultGame.ini, um die folgende Zeile am Ende hinzuzufügen

    +MapsToCook=(FilePath="/AirSim/AirSimAssets")

    Dadurch wird Unreal gezwungen, alle notwendigen AirSim-Inhalte in verpackten Builds Ihres Projekts einzuschließen.

  8. Schließen Sie Visual Studio und den Unreal Editor und klicken Sie mit der rechten Maustaste auf die Datei LandscapeMountains.uproject im Windows Explorer und wählen Sie Generate Visual Studio Project Files. Dieser Schritt erkennt alle Plugins und Quelldateien in Ihrem Unreal-Projekt und generiert eine .sln-Datei für Visual Studio.

    regen

    Tipp

    Wenn die Option Generate Visual Studio Project Files fehlt, müssen Sie möglicherweise Ihren Computer neu starten, damit die Unreal Shell-Erweiterungen wirksam werden. Wenn sie immer noch fehlt, öffnen Sie LandscapeMountains.uproject im Unreal Editor und wählen Sie Refresh Visual Studio Project aus dem File-Menü.

  9. Öffnen Sie LandscapeMountains.sln erneut in Visual Studio und stellen Sie sicher, dass die Build-Konfiguration "DebugGame Editor" und "Win64" die aktive Build-Konfiguration ist.

    build config

  10. Drücken Sie F5, um auszuführen. Dadurch wird der Unreal Editor gestartet. Der Unreal Editor ermöglicht es Ihnen, die Umgebung, Assets und andere spielbezogene Einstellungen zu bearbeiten. Das Erste, was Sie in Ihrer Umgebung tun möchten, ist, ein PlayerStart-Objekt einzurichten. In der Landscape Mountains-Umgebung existiert das PlayerStart-Objekt bereits und Sie finden es im World Outliner. Stellen Sie sicher, dass seine Position wie gezeigt eingerichtet ist. Hier wird das AirSim-Plugin das Fahrzeug erstellen und platzieren. Wenn es zu hoch ist, fällt das Fahrzeug herunter, sobald Sie auf Play drücken, was potenziell zu zufälligen Ergebnissen führt.

    lm_player_start_pos.png

  11. Unter Window/World Settings, wie unten gezeigt, setzen Sie den GameMode Override auf AirSimGameMode

    sim_game_mode.png

  12. Gehen Sie im Unreal Editor zu 'Edit->Editor Preferences' und tippen Sie im Suchfeld 'CPU' ein. Stellen Sie sicher, dass 'Use Less CPU when in Background' deaktiviert ist. Wenn Sie dies nicht tun, wird UE dramatisch verlangsamt, wenn das UE-Fenster den Fokus verliert.

  13. Stellen Sie sicher, dass Sie diese Bearbeitungen speichern. Drücken Sie den Play-Button im Unreal Editor. Sehen Sie wie man AirSim benutzt.

Herzlichen Glückwunsch! Sie führen nun AirSim in Ihrer eigenen Unreal-Umgebung aus.

Wahl Ihres Fahrzeugs: Auto oder Multirotor#

Standardmäßig fragt AirSim den Benutzer, welches Fahrzeug verwendet werden soll. Sie können dies einfach ändern, indem Sie SimMode einstellen. Bitte beachten Sie die Anleitung zur Verwendung des Autos.

Aktualisieren Ihrer Umgebung auf die neueste Version von AirSim#

Sobald Sie Ihre Umgebung gemäß den obigen Anweisungen eingerichtet haben, sollten Sie Ihren lokalen AirSim-Code häufig auf die neueste Version von GitHub aktualisieren. Unten finden Sie die Anweisungen dazu.

  1. Fügen Sie zuerst clean.bat (oder clean.sh für Linux-Benutzer) in den Stammordner Ihrer Umgebung ein. Führen Sie diese Datei aus, um alle Zwischen-Dateien in Ihrem Unreal-Projekt zu bereinigen.
  2. Führen Sie git pull in Ihrem AirSim-Repository aus, gefolgt von build.cmd (oder ./build.sh für Linux-Benutzer).
  3. Ersetzen Sie den Ordner [your project]/Plugins durch den Ordner AirSim/Unreal/Plugins.
  4. Klicken Sie mit der rechten Maustaste auf Ihre .uproject-Datei und wählen Sie die Option "Generate Visual Studio project files". Dies ist für Linux nicht erforderlich.

FAQ#

Welche anderen coolen Umgebungen gibt es?#

Der Unreal Marketplace bietet Dutzende von vorgefertigten, außerordentlich detaillierten Umgebungen, von Mond bis Mars und allem dazwischen. Die, die wir zum Testen verwendet haben, heißt Modular Neighborhood Pack, aber Sie können jede Umgebung verwenden. Eine weitere kostenlose Umgebung ist die Infinity Blade-Serie. Alternativ finden Sie im Tab "Learn" im Epic Game Launcher viele kostenlose Beispiele, die Sie verwenden können. Eines unserer Lieblingsbeispiele ist "A Boy and His Kite", eine 100 Quadratmeilen große, hochdetaillierte Umgebung (Vorsicht: Sie benötigen einen *sehr* leistungsstarken PC, um sie auszuführen!).

Wenn ich auf den Play-Button klicke, startet stattdessen ein Video anstelle meines Fahrzeugs.#

Wenn die Umgebung einen MatineeActor enthält, löschen Sie ihn, um Start-Demo-Sequenzen zu vermeiden. Es kann auch andere Möglichkeiten geben, ihn zu entfernen, z. B. indem Sie auf die Schaltfläche Blueprints klicken, dann auf Level Blueprint und im Event Graph nach dem Begin Play-Ereignis suchen. Möglicherweise möchten Sie Verbindungen trennen, die "matinee" starten.

Gibt es eine einfache Möglichkeit, den Code in meinem Unreal-Projekt mit dem Code im AirSim-Repository zu synchronisieren?#

Klar, gibt es! Sie finden eine Reihe von .bat-Dateien (für Linux .sh) in AirSim\Unreal\Environments\Blocks. Kopieren Sie sie einfach in Ihr eigenes Unreal-Projekt. Die meisten davon sind ziemlich einfach und selbsterklärend.

Ich erhalte eine Fehlermeldung bezüglich der Karte.#

Möglicherweise müssen Sie die Standardkarte für Ihr Projekt festlegen. Wenn Sie beispielsweise den Modular Neighborhood Pack verwenden, setzen Sie die Editor Starter Map sowie die Game Default Map auf Demo_Map in Project Settings > Maps & Modes.

Ich sehe die Option "Zum Projekt hinzufügen" für die Umgebung, aber nicht die Option "Projekt erstellen".#

Erstellen Sie in diesem Fall ein neues leeres C++-Projekt ohne Starter-Inhalt und fügen Sie Ihre Umgebung hinzu.

Ich habe bereits mein eigenes Unreal-Projekt. Wie verwende ich AirSim damit?#

Kopieren Sie den Ordner Unreal\Plugins aus dem Build, den Sie im obigen Abschnitt erstellt haben, in das Stammverzeichnis Ihres Unreal-Projekts. Fügen Sie in der .uproject-Datei Ihres Unreal-Projekts den Schlüssel AdditionalDependencies zum "Modules"-Objekt hinzu, wie wir es oben in LandscapeMountains.uproject gezeigt haben.

"AdditionalDependencies": [
    "AirSim"
]

und den Plugins-Abschnitt zum Top-Level-Objekt

"Plugins": [
    {
        "Name": "AirSim",
        "Enabled": true
    }
]