创建和设置虚幻环境#

本页面包含从头到尾设置 AirSim 虚幻环境的完整说明。虚幻商城有多个环境,您只需几分钟即可开始使用。也可以使用 turbosquid.comcgitrader.com 等网站上的环境,但需要多花一点功夫(这里是教程视频)。此外,还有几个免费环境可用。

下面我们将使用虚幻商城中一个名为“Landscape Mountain”的免费可下载环境,但其他任何环境的步骤都是相同的。

Linux 用户须知#

Linux 没有 Epic Games Launcher,这意味着如果您需要创建自定义环境,您将需要一台 Windows 机器来完成。一旦您有了虚幻项目文件夹,只需将其复制到您的 Linux 机器上即可。

分步说明#

  1. 确保 AirSim 已构建并且已安装 Unreal 4.27,如构建说明中所述。
  2. Epic Games Launcher 中,单击“学习”选项卡,然后向下滚动并找到 Landscape Mountains。单击 Create Project 并下载此内容(约 2GB 下载)。

    current version

  3. 打开 LandscapeMountains.uproject,它应该会启动虚幻编辑器。

    unreal editor

    注意

    Landscape Mountains 项目支持的虚幻引擎版本最高为 4.24。如果您没有安装 4.24,您应该会看到一个名为 Select Unreal Engine Version 的对话框,其中包含一个下拉菜单,可供选择已安装的版本。选择 4.27 或更高版本,将项目迁移到支持的引擎版本。如果您已安装 4.24,您可以通过在 Windows 资源管理器中导航到相应的 .uproject 文件,右键单击它,然后选择 Switch Unreal Engine version... 选项来手动迁移项目。

  4. 文件菜单中选择新建 C++ 类,在类类型上保留默认,单击下一步,保留默认名称MyClass,然后单击创建类。我们需要这样做,因为虚幻项目至少需要一个源文件。它应该会触发编译并打开 Visual Studio 解决方案LandscapeMountains.sln

  5. 转到您的 AirSim 仓库文件夹,并将 Unreal\Plugins 文件夹复制到您的 LandscapeMountains 文件夹中。这样,您自己的虚幻项目现在就有了 AirSim 插件。

    注意

    如果 AirSim 是全新安装,即以前从未构建过,请确保在复制 Unreal\Plugins 文件夹之前从根目录运行一次 build.cmd,以便同时包含 AirLib 文件。如果您已对 Blocks 环境进行了更改,请确保从 Unreal\Environments\Blocks 运行 update_to_git.bat 以更新 Unreal\Plugins 中的文件。

  6. 编辑 LandscapeMountains.uproject,使其看起来像这样

    {
        "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. 编辑 Config\DefaultGame.ini,在末尾添加以下行

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

    这样做会强制虚幻引擎将所有必要的 AirSim 内容包含在项目打包构建中。

  8. 关闭 Visual Studio 和 Unreal Editor,然后在 Windows 资源管理器中右键单击 LandscapeMountains.uproject,选择 Generate Visual Studio Project Files。此步骤会检测虚幻项目中的所有插件和源文件,并为 Visual Studio 生成 .sln 文件。

    regen

    提示

    如果缺少 Generate Visual Studio Project Files 选项,您可能需要重新启动机器以使虚幻 Shell 扩展生效。如果仍然缺少,请在虚幻编辑器中打开 LandscapeMountains.uproject,然后从 File 菜单中选择 Refresh Visual Studio Project

  9. 在 Visual Studio 中重新打开 LandscapeMountains.sln,并确保“DebugGame Editor”和“Win64”构建配置是活动的构建配置。

    build config

  10. F5 运行。这将启动虚幻编辑器。虚幻编辑器允许您编辑环境、资产和其他游戏相关设置。您首先要在环境中做的是设置 PlayerStart 对象。在 Landscape Mountains 环境中,PlayerStart 对象已经存在,您可以在 World Outliner 中找到它。确保其位置设置如所示。这是 AirSim 插件将创建和放置载具的地方。如果它太高,那么载具会在您按下播放后立即掉下来,可能会导致随机行为

    lm_player_start_pos.png

  11. Window/World Settings 中,如下所示,将 GameMode Override 设置为 AirSimGameMode

    sim_game_mode.png

  12. 在虚幻编辑器中转到“编辑->编辑器偏好设置”,在“搜索”框中键入“CPU”,并确保“在后台时使用较少 CPU”未选中。如果您不这样做,当虚幻窗口失去焦点时,虚幻引擎会大大减慢。

  13. 请务必保存这些编辑。点击虚幻编辑器中的“播放”按钮。参阅如何使用 AirSim

恭喜!您现在正在您自己的虚幻环境中运行 AirSim。

选择您的载具:汽车还是多旋翼#

默认情况下,AirSim 会提示用户选择使用哪种载具。您可以通过设置 SimMode 轻松更改此设置。请参阅使用汽车指南。

将您的环境更新到最新版本的 AirSim#

一旦您按照上述说明设置好环境,您应该经常将本地 AirSim 代码更新到 GitHub 上的最新版本。以下是执行此操作的说明

  1. 首先将clean.bat(Linux 用户为clean.sh)放入您环境的根文件夹。运行此文件以清理虚幻项目中的所有中间文件。
  2. 在您的 AirSim 仓库中执行 git pull,然后执行 build.cmd(Linux 用户为 ./build.sh)。
  3. 将 [您的项目]/Plugins 文件夹替换为 AirSim/Unreal/Plugins 文件夹。
  4. 右键单击您的 .uproject 文件并选择“生成 Visual Studio 项目文件”选项。Linux 不需要此操作。

常见问题#

还有哪些酷炫的环境?#

虚幻商城有数十个预构建的极其详细的环境,范围从月球到火星,以及其间的一切。我们用于测试的环境名为模块化社区包,但您可以使用任何环境。另一个免费环境是无限之刃系列。另外,如果您在 Epic Game Launcher 的“学习”选项卡下查找,您会找到许多可以使用的免费示例。我们最喜欢的一个是“男孩与他的风筝”,它是一个 100 平方英里高度详细的环境(注意:您将需要一台非常强劲的电脑才能运行它!)。

当我按下“播放”按钮时,出现了一些视频而不是我的载具。#

如果环境附带 MatineeActor,请将其删除以避免任何启动演示序列。可能还有其他方法可以删除它,例如,点击蓝图按钮,然后是关卡蓝图,然后查看事件图中的 Begin Play 事件。您可能需要断开任何可能启动“matinee”的连接。

有没有简单的方法可以将我的虚幻项目中的代码与 AirSim 仓库中的代码同步?#

当然有!您可以在 AirSim\Unreal\Environments\Blocks 中找到一堆 .bat 文件(Linux 为 .sh)。只需将它们复制到您自己的虚幻项目中即可。其中大多数都非常简单且不言自明。

我收到关于地图的错误。#

您可能需要为您的项目设置默认地图。例如,如果您使用模块化社区包,请在项目设置 > 地图和模式中将编辑器启动地图和游戏默认地图设置为 Demo_Map。

我看到环境有“添加到项目”选项,但没有“创建项目”选项。#

在这种情况下,创建一个没有初始内容的空白 C++ 项目,然后将您的环境添加到其中。

我已经有了自己的虚幻项目。如何将其与 AirSim 一起使用?#

将您在上一节中构建的 Unreal\Plugins 文件夹复制到您的虚幻项目文件夹的根目录。在您的虚幻项目的 .uproject 文件中,向“Modules”对象添加 AdditionalDependencies 键,如我们上面在 LandscapeMountains.uproject 中所示。

"AdditionalDependencies": [
    "AirSim"
]

并将 Plugins 部分添加到顶级对象

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