IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> AirSim中使用多种模型无人机进行仿真 -> 正文阅读

[游戏开发]AirSim中使用多种模型无人机进行仿真

本文实现的效果

先看符不符合自己需求,再决定是否阅读本文内容。

本文实现的效果图

实践部分

准备三维模型

首先,需要准备好 fbx 类型的三维无人机模型,将目标无人机模型分成机身和旋翼两大部分打包。其中螺旋桨部分,可以只打包一个螺旋桨变成 fbx 文件(毕竟太细节也不关注),也可以分成4个分别打包。一般直接从三维模型网站购买模型文件,常用的网站如 cgtrader,不过模型一般是收费的,博主也是花了大几百才买到几个三维模型。为了降低交流学习的门槛,大家可以在我的下载资源里(Matrice200, Inspire2)使用积分下载 DJI Matrice200, DJI Inspire2的无人机模型资源,压缩包里面已经将无人机机身和螺旋桨拆分封装了,可以直接导入UE4中使用,但是需要注意,这些模型仅作交流学习使用用于商业或变道销售会侵犯他人权益!

修改仿真模型

无人机三维模型拆分打包的部分就不在该篇文章中具体说明了,博主也是没有三维建模基础,花了半天摸索了3ds Max后也能够成功将机身和螺旋桨拆分打包,如果这一块有较多人有问题的话可以留言评论,后续可以单独出一篇教程。

替换模型机身和螺旋桨

本文中只修改无人机的外形以及相机方向位置,并不会直接从头建立无人机蓝图,修改底层飞控以及物理参数设置。

  1. 打开虚幻工程,在内容浏览器栏空白处右键,建立一个新的文件夹用于存放转换后的模型资产,以新建"DemoFile"文件夹为例。
    在这里插入图片描述

  2. 选中新建的文件夹,在右方空白区域右键,选择导入到/Game/…/DemoFile
    在这里插入图片描述

  3. 选择无人机机身模型FBX文件,打开
    导入机身

  4. 在导入选项中,根据图片里面的说明进行设置。
    在这里插入图片描述

  5. 选择螺旋桨模型,可以同时导入
    在这里插入图片描述

  6. 同时导入时,需要注意取消勾选合并网格体,
    在这里插入图片描述

  7. 现在可以看到,机身和螺旋桨均已导入转换成静态网格体
    在这里插入图片描述

  8. 现在将AirSim中自带的无人机模型进行修改。首先跳转到我们新建的文件夹下。
    在这里插入图片描述
    将我们编译好的AirSim插件文件夹中找到无人机的默认蓝图文件,将其复制到我们的文件夹下。
    在这里插入图片描述

  9. 回到虚幻中,可以看到默认的无人机蓝图文件,然后我们双击打开,进行修改。
    在这里插入图片描述

  10. 选择视图窗口,然后点击无人机机身,在细节栏找到静态网格体选项,然后选择为我们自己的无人机静态网格体,不过现在一般是没有材质纹理的,那块可以自己选择相应的文件(导入转换成资产后就能浏览到)
    在这里插入图片描述

  11. 修改完机身和螺旋桨后,保存,再对无人机螺旋桨的位置进行微调,这个只需要耐心和时间,在左上角透视,基本三视图(光照情况下更好看)视角中进行调整即可。至此,即可完成外形修改。然后重复上述步骤,可以做出更多自定义的无人机仿真模型。

修改settings.json配置文件

根据官方settings.json文件说明,在自己的settings配置文件中添加路径以及为单个模型引用设置。大概流程是,先把所有用到的蓝图模型路径添加到"PawnPaths"中,每个路径设置一个标识符(如"Default" “Matrice200”),在后面单个无人机模型说明时只需要引用标识符即可,具体修改可以参考我的配置文件。大家只需要修改 ‘/Game/’ 后面的路径即可,有多少自定义的模型文件就写多少路径,需要自己灵活调整。

{
  "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
  "SettingsVersion": 1.2,
  "SimMode": "Multirotor",
  "PawnPaths": {
    "Default": {"PawnBP": "Class'/Game/Matrice200/BP_FlyingPawn.BP_FlyingPawn_C'"},
    "Matrice200_1": {"PawnBP": "Class'/Game/Matrice200/Matrice200_1.Matrice200_1_C'"},
    "Matrice200_2": {"PawnBP": "Class'/Game/Matrice200/Matrice200_2.Matrice200_2_C'"}
  },
  "ClockSpeed": 1.0,
  "Vehicles": {
    "Drone0": {
      "VehicleType": "SimpleFlight",
      "PawnPath": "Default",
      "X": 2, "Y": 0, "Z": 0, "Yaw": 0
    },
    "Drone1": {
      "VehicleType": "SimpleFlight",
      "PawnPath": "Default",
      "X": 0, "Y": 0, "Z": 0, "Yaw": 0
    },
    "Drone2": {
      "VehicleType": "SimpleFlight",
      "PawnPath": "Matrice200_1",
      "X": 0, "Y": -2, "Z": 0, "Yaw": 0
    },
    "Drone3": {
      "VehicleType": "SimpleFlight",
      "PawnPath": "Matrice200_2",
      "X": 0, "Y": 2, "Z": 0, "Yaw": 0
    }
  }
}

开始仿真

修改完settings.json文件后进行保存,回到虚幻中运行即可看到最终的效果图像。有问题可以留言讨论,提前祝大家新年快乐。

Reference

AirSim(11) - 改变无人机的形状 - 宁子安的文章 - 知乎 https://zhuanlan.zhihu.com/p/362502080
AirSim 官方文档支持 https://microsoft.github.io/AirSim/settings/#PawnPaths

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:14:37  更:2022-01-30 19:15:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:48:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码