当前位置: 首页 > news >正文

AirSim/Cosys-AirSim 游戏开发(二)使用自定义场景

在实际的开发过程中很少会只用 AirSim 自带的 Blocks 场景,通常需要用到自定义的一些环境和模型,依托于强大的 UE 引擎可以较为逼真地完成场景渲染。这篇博客记录了如何从头开始导入一个自定义场景并加载 AirSim 插件。

【Note】:由于 UE Editor 和商店的版本迭代,有些按钮或工具位置会有变动,我这里使用的是 5.5.1 + UE5 的组合。

核对以下软件版本:

  • Windows 10;
  • UE Launcher + UE5;
  • Visual Studio 2022;
  • AirSim / Cosys-AirSim;

当前所有操作都在Windows上完成,后面会介绍 PX4 和 MAVLINK 在不同设备上通讯

因为我本身不是做 UE 的,只是工作中需要用到 UE,这篇博客是站在一个机器人算法工程师角度展开,因此部分内容可能不太专业,如果存在错误还请在评论区留言,我会在第一时间处理。


1. 从 Epic 商店中选择场景素材

虽然可以直接从浏览器的方式进入商店,但我个人习惯从本地的 Launcher 进入商店,可以少占用一个浏览器的收藏位。

启动 Epic Game Launcher 后按照顺序执行以下操作:

  1. 进入 “库” 标签页;
  2. 下拉到软件最下面找到 “Fab 库” 的位置;
  3. 点击黄色的 “请访问 Fab.com” 链接;

在这里插入图片描述

2025年06月05日 的在线商店长下面这个样子:

在这里插入图片描述

往下拉一些找到 Environments 标签,这个标签里都是可下载的环境,对于初学 AirSim 来说里面的免费资源足够折腾了。

在这里插入图片描述

进入页面后可以在上方的 Price 筛选器中勾选 Free 筛选出免费的场景素材:

在这里插入图片描述

这里以 Downtown West Modular Park 资源为例,选中并点击进去:

在这里插入图片描述

因为我已经将这个资源添加到我的库里了,所以页面右侧显示 “已添加”,如果你之前没有操作过应该可以看见 Add to My Library 按钮,点击并添加到自己的库中,然后刷新页面就可以看见 View in Launcher 按钮。

【Note】:在我写这篇博客的时候点击 View in Launcher 按钮只会自动打开 Epic Launcher,并不会自动添加到本地,需要点击 View in My Library 按钮后手动下载。

在这里插入图片描述

在弹出的 Epic Launcher 中有时候会自动刷新,如果你没看见新加的场景则可以手动刷新一下:

在这里插入图片描述

因为这里添加的是 素材 而不是 工程,所以我们需要自己新建一个工程并将这个素材添加到工程中。


2. 新建一个空白工程

在上一步的 Epic Launcher 中选择右上角的 启动 Unreal Engine 5.5.1 按钮先将UE引擎启动。

【Note】:这里每个人安装的 UE 引擎版本不一样因此可能会存在差异,但这一步的操作都是为了启动引擎创建新的工程。

在这里插入图片描述

在启动后按照下面的流程新建一个工程:

  1. 点击 SIMULATION 标签;
  2. 选择一个存放工程的位置;
  3. 【可选】在 Project Name 中修改你的工程名,这里我偷懒就不修改了;
  4. 点击 Create 创建工程;

在这里插入图片描述

创建工程按钮被点击后 UE 会进行一些基础元素的编译与构建,这一步会花费一点时间,然后自动弹出以下画面,到达这一步至少说明你的 UE 引擎都正常,没有缺少必要的库或文件。

在这里插入图片描述


3. 将场景添加到工程中

3.1 下载资源库场景

先将上面弹出的操作界面关闭,回到 Epic Launcher 中点击 添加到工程 按钮

在这里插入图片描述
在弹出的页面中按照以下顺序操作:

  1. 勾选 显示所有工程
  2. 选择刚才创建的工程 MyProject
  3. 如果你的引擎和我的一样是 UE 5.5.1 那么需要以兼容的形式运行,在 选择版本 中选择一个版本号差距最小的;
  4. 点击 添加到工程

在这里插入图片描述

确认后 Epic Launcher 会自动下载这个资源,等待下载完成即可:

在这里插入图片描述

下载完成后会自动打开新建的工程,这里建议先将下载好的资源备份一份,以免误操作导致损坏文件导致重新下载。位置就在你的工程目录下的 Content 文件夹中,以我的路径为例 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject\Content

在这里插入图片描述

3.2 导入场景到操作界面中

返回到 UE Editor 中开始导入场景,按照下面的步骤依次操作:

  1. 打开 左下角 的资源抽屉 Content Drawer
  2. 将左侧文件目录展开,这里使用的是 Downtown_West
  3. 进入到 Maps 文件夹中;
  4. 双击 Demo_Enviroment 等待场景加载完成;

【Note】:不同的资源文件在第3、4步可能存在文件选择差异,但只要是制作合规的场景都有 Level 标签

通常情况下会自动递归加载需要的场景文件,如果你发现显示的不全可以手动进入 Sub-Level 文件加载一些其他场景,这个资源里的子文件中有不同的天空背景,感兴趣的可以多尝试下。

在这里插入图片描述

在场景正确加载后必须检查一下是否可用,点击上方绿色的 Play 按钮进入环境,想要退出的话点击 Esc 即可结束仿真。

在这里插入图片描述

3.3 设置工程默认关卡

在确认环境能正确加载并运行后 Ctrl + S 保存,此时如果你直接退出,然后再在 Launcher 中打开的话仍然显示的是空白场景,这是因为没有设置 默认关卡,按照下面的步骤设置默认关卡:

  1. 在上方工具栏中点击 Edit,然后在下拉菜单栏中点击 Project Settings
  2. 弹出窗口的左侧选择 Maps & Models
  3. Default Maps 中的 Editor Starup Map 中选择 Demo_Enviroment 场景;
  4. 在下面的 Game Default Map 中也选择 Demo_Enviroment 场景;

经过上述操作后下一次打开就是默认的这个场景了。

在这里插入图片描述


4. 创建空的 C++ 类

【Note】:有些工程自带一个空的 C++类 就不需要执行这一步,如果你的下拉菜单中 Generate Visual Studio Project 是灰色不可选中的,那么需要手动创建。这个类基本用不上,是为了引导 UE 生成 Visual Stuido 工程用的。

点击上方工具栏中的 Tools ,在下拉菜单中选择 New C++ Class

在这里插入图片描述

在弹出的页面中点击 Next

在这里插入图片描述

类名可以随意起,用默认也无所谓,点击 Create Class

在这里插入图片描述

等走完进度条后先不要打开编辑器,选择 No 即可:

在这里插入图片描述

此时你的 工程目录下应该会自动生成一个 MyProject,.sln 文件:

在这里插入图片描述

然后关闭 Editor 准备编译 AirSim 插件。


5. 编译 AirSim 插件

这里无论你使用的是 AirSim 还是 Cosys-AirSim 都需要先找到对应的插件位置,但好在两个库的结构基本一致,所以 UE 插件路径也相似。

5.1 复制 Plugins/AirSim 文件夹

我这里以我用的 Cosys-AirSim 为例,其 UE 插件位置在 C:\Users\Lucks\Desktop\Cosys-AirSim\Unreal\Plugins

在这里插入图片描述
然后前往你的工程目录,我这里是 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject,如果你的工程目录中有 Plugins 文件夹则直接进去并粘贴上一步复制的 AirSim 文件夹,如果没有就手动创建并复制进去。

在这里插入图片描述

5.2 编辑 MyProject.uproject 文件

回到你的工程目录中使用文本编辑器打开你的 MyProject.uproject 文件并进行编辑:

在这里插入图片描述

然后在 “Plugins” 元素中添加以下字段:

{"Name": "AirSim","Enabled": true	
}

修改完成就保存并关闭。

在这里插入图片描述

5.3 生成 Visual Studio 工程文件

回到工程目录中,右键点击 MyProject.uproject 在弹出的菜单中选择 Generate Visual Studio project file 等待生成结束。

在这里插入图片描述


[可选] 6. 配置 Visual Studio 工程

如果你想要在这个工程上验证一下官方的无人机起降Demo可以按照下面的流程进行,官方 Demo 的核心是里面的一个 cpp 文件,执行了无人机起飞、运动几米、拍照、降落这几个动作。

在上面工程文件成功生成后就可以双击打开 MyProject.sln 启动 Visual Stuido:

在这里插入图片描述

6.1 新建一个空白工程

右键 Games 然后在 Add 中新建一个空白工程 New Project
在这里插入图片描述

在弹出的窗口中直接选择 Empty Project 就够用了,我这里给工程起名为 SelfDemo

在这里插入图片描述

6.2 复制 HelloSpawnedDrones.cpp 文件

前往你的 AirSim 或 Cosys-AirSim 的安装路径,找到 HelloSpawnedDrones.cpp 文件,这个文件就是用来生成一个可用的无人机入口,对于我而言这个文件在 C:\Users\Lucks\Desktop\Cosys-AirSim\HelloSpawnedDrones\HelloSpawnedDrones.cpp

在这里插入图片描述

然后将这个文件复制到刚才新建的空白工程目录下 Source\MyProject 文件夹中,对我而言就是在路径 C:\Users\Lucks\Desktop\AirSim-Self-Env\MyProject\SelfDemo

在这里插入图片描述

在 Visual Stduo 中将这个文件添加到项目中,浏览文件将其加入到编译队列里:

在这里插入图片描述

6.3 设置工程为启动项

右键新建的工程,并在弹出的菜单中选择 Set as Startup Project

在这里插入图片描述

然后就是传统的配置 Visual Stduio 项目步骤了。

6.4 添加包含目录

找到你刚才复制进来的 Plugins/AirSim 的插件文件夹,并将以下三个路径复制进去:

  • Plugins\AirSim\Source\AirLib\include;
  • Plugins\AirSim\Source\AirLib\deps\eigen3;
  • Plugins\AirSim\Source\AirLib\deps\rpclib\include;

在这里插入图片描述

效果如下:

在这里插入图片描述

6.5 添加附加库目录

附加库目录需要根据当前编译条件修改,本质是下面三个路径:

  • Plugins\AirSim\Source\AirLib\lib
  • Plugins\AirSim\Source\AirLib\deps\rpclib\lib
  • Plugins\AirSim\Source\AirLib\deps\MavLinkCom\lib

在这里插入图片描述

次数还需要手动修改路径末尾的信息,为上面的路径添加 $(Platform)\$(Configuration) 结尾,最终效果如下:

在这里插入图片描述

6.6 添加附加依赖项

添加附加依赖项基本和上面一致,将 *.lib 加上即可:

在这里插入图片描述
最终效果如下:

在这里插入图片描述


7. 编译工程

7.1 编译 Visual Studio 工程

Debug + x64 的组合编译工程 MyProject

在这里插入图片描述

如果编译有报错,大概率是 6.46.56.6 没有配置好,仔细检查路径是否正确。

如果确认上面的配置都没有问题,但仍然报错没有找到头文件,你需要去 MyProject 中查看是不是把 HelloSpawnedDrones.cpp 文件放到了工程里,这个文件应该在新建的项目中添加。

7.2 编译 UE 工程

双击打开 MyProject.uproject 然后点击确认即可。

在这里插入图片描述
等待 UE Editor 完全启动后在右上角点击 Settings -> World Settings

在这里插入图片描述

在更新后的右边导航栏中选择 Game Mode 中的 Game Mode Override -> AirSimGameMode

在这里插入图片描述

然后点击 Play 按钮就可以看见无人机生成了:

在这里插入图片描述

相关文章:

  • Web-图片上传出现的错误
  • Apache Druid 架构深度解析:构建高性能分布式数据存储系统
  • 第十三节:第四部分:集合框架:HashMap、LinkedHashMap、TreeMap
  • 联邦学习架构深度分析:支持多家医院协作训练AI模型方案分析
  • vue3 eslint ts 关闭多单词命名检查
  • kafka部署
  • 2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
  • 【Linux篇】0基础之学习操作系统进程
  • SpringCloud——Nacos
  • 免费工具-微软Bing Video Creator
  • 【十年技术演进深度解构:车载充电机(OBC)将成为新能源汽车的“能源大脑”】
  • 软件工程:如何做好软件产品
  • 高效集成AI能力:使用开放API打造问答系统,不用训练模型,也能做出懂知识的AI
  • 倍福 PLC程序解读
  • Linux服务器如何安装wps?
  • 可编辑PPT | 基于大数据中台新能源智能汽车应用解决方案汽车大数据分析与应用解决方案
  • 新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
  • 人工智能的社交课:从博弈游戏到健康关怀
  • elasticsearch-8.17.4
  • Windows 10 IoT 系统深度定制指南:从环境搭建到工业部署
  • 本地电脑做网站服务器/百度快照什么意思
  • 企业在线/seo排名赚钱
  • 大连哪家公司做网站比较好/新开传奇网站
  • 成都品牌网站建设电话/房地产新闻最新消息
  • 网站建设公司一般几个人/whois域名查询
  • 企石镇网站建设公司/市场营销在线课程