本文实现的效果
先看符不符合自己需求,再决定是否阅读本文内容。
实践部分
准备三维模型
首先,需要准备好 fbx 类型的三维无人机模型,将目标无人机模型分成机身和旋翼两大部分打包。其中螺旋桨部分,可以只打包一个螺旋桨变成 fbx 文件(毕竟太细节也不关注),也可以分成4个分别打包。一般直接从三维模型网站购买模型文件,常用的网站如 cgtrader,不过模型一般是收费的,博主也是花了大几百才买到几个三维模型。为了降低交流学习的门槛,大家可以在我的下载资源里(Matrice200, Inspire2)使用积分下载 DJI Matrice200, DJI Inspire2的无人机模型资源,压缩包里面已经将无人机机身和螺旋桨拆分封装了,可以直接导入UE4中使用,但是需要注意,这些模型仅作交流学习使用,用于商业或变道销售会侵犯他人权益!
修改仿真模型
无人机三维模型拆分打包的部分就不在该篇文章中具体说明了,博主也是没有三维建模基础,花了半天摸索了3ds Max后也能够成功将机身和螺旋桨拆分打包,如果这一块有较多人有问题的话可以留言评论,后续可以单独出一篇教程。
替换模型机身和螺旋桨
本文中只修改无人机的外形以及相机方向位置,并不会直接从头建立无人机蓝图,修改底层飞控以及物理参数设置。
-
打开虚幻工程,在内容浏览器栏空白处右键,建立一个新的文件夹用于存放转换后的模型资产,以新建"DemoFile"文件夹为例。 -
选中新建的文件夹,在右方空白区域右键,选择导入到/Game/…/DemoFile -
选择无人机机身模型FBX文件,打开 -
在导入选项中,根据图片里面的说明进行设置。 -
选择螺旋桨模型,可以同时导入 -
同时导入时,需要注意取消勾选合并网格体, -
现在可以看到,机身和螺旋桨均已导入转换成静态网格体 -
现在将AirSim中自带的无人机模型进行修改。首先跳转到我们新建的文件夹下。 将我们编译好的AirSim插件文件夹中找到无人机的默认蓝图文件,将其复制到我们的文件夹下。 -
回到虚幻中,可以看到默认的无人机蓝图文件,然后我们双击打开,进行修改。 -
选择视图窗口,然后点击无人机机身,在细节栏找到静态网格体选项,然后选择为我们自己的无人机静态网格体,不过现在一般是没有材质纹理的,那块可以自己选择相应的文件(导入转换成资产后就能浏览到) -
修改完机身和螺旋桨后,保存,再对无人机螺旋桨的位置进行微调,这个只需要耐心和时间,在左上角透视,基本三视图(光照情况下更好看)视角中进行调整即可。至此,即可完成外形修改。然后重复上述步骤,可以做出更多自定义的无人机仿真模型。
修改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
|