如何在谷某地球飞行模拟中导入简单飞机开发的飞机模型

news2024/11/15 9:48:37

如何在谷某地球飞行模拟中导入简单飞机开发的飞机模型

简飞的飞友们!我并没有弃坑,只不过我不是你们想象的那样设计飞机。我之前写过一篇图文讲解如何在谷某地球里规划飞行航线:

手把手教你驾驶西锐SR-22小飞机在美国大峡谷中穿行icon-default.png?t=N7T8https://blog.csdn.net/VincentYoung/article/details/131183908?spm=1001.2014.3001.5502

而现在,我要导入由SimplePlanes开发建模的飞机仿真模型导入进谷某中飞行。

众所周知,谷某飞行模拟里面只有两款飞机可以选择:

谷某地球并不是个开源软件,我本来以为无法扩展开发新机型,直到,有一天我在电脑中搜索f16无意中在谷某地球的安装路径中找到f16.acf这么一个文件,我发现它是一个纯文本文件:

那就意味着我可以拿它来搞点事情了。

添加新模型?不,只是修改已有模型

使用tree命令来查看谷某飞行模拟的文件夹结构:

PS C:\Program Files\Google\Google Earth Pro\client\res\flightsim> tree /f
卷 系统 的文件夹 PATH 列表       
卷序列号为 64DA-4693
C:.
│  flightsim.ini
│  
├─aircraft
│      f16.acf
│      sr22.acf
│      
├─controller
│      generic.ini
│      genius_maxfighter_f16u.ini
│      logitech_attack3.ini      
│      logitech_extreme_3d.ini   
│      logitech_force_3d.ini
│      logitech_freedom.ini
│      saitek_cyborg_evo.ini
│      saitek_x52.ini
│      speed_link_black_hawk.ini        
│      speed_link_black_widow.ini       
│      speed_link_cougar_flightstick.ini
│      speed_link_dark_tornado.ini      
│      xbox_360.ini
│
├─hud
│      generic.ini
│      sr22.ini
│
├─keyboard
│      generic.ini
│      sr22.ini
│
└─planet
        earth.ini

非常简单,flightsim.ini好像是根配置文件。

我就在这个文件里面添加了自己飞机的一个条目,测试一下,但是,谷某地界面GUI中并未显示我新加的选项,我也没有找到谷某地球软件的界面可以在哪里进行扩展开发。

谷某地球的GUI界面并不是开源的,只能在自带的两款机型中选择,所以,下面的所有工作,都是在原有的模型基础之上修改,当然,在修改之前要先做好备份。

文件结构

文件夹aircraft包含了飞行气动模型配置文件 .acf,每个文件对应一款型号,它是飞行模拟的核心配置文件。

文件夹controller包含 .ini格式配置文件配置不同型号的外设飞行摇杆的使用。但是,GEFS本身就不是那种大型精细的飞行模拟软件我认为不需要连接外设,而更倾向于直接用键盘鼠标来驾驶飞行。

文件夹hud包含为不同型号飞机配置HUD平显的**.ini** 配置文件,其中F16使用的是generic.ini文件。

文件夹keyboard包含了用键鼠飞行的**.ini** 配置文件,默认配置就很好无需修改。

文件夹planet包含了 .ini格式文件配置不同行星的参数,默认只有一个配置即我们地球自己,但是你可以为火星单独新建一个配置文件。

没有驾驶舱?实际上你可以给GEFS添加一个虚拟驾驶舱画面的。

飞行动力学模型FDM

原始的两个飞行动力学模型对于大多数飞行已经够用,但是,仍然有两个痛点。

高超音速飞机

一个痛点就是长距离跨大洋洲际飞行,我曾画过一条从亚洲飞美洲的航线,计划很完美,但飞行很无聊。GEFS并没有可以让人离开电脑休息的自动飞行模式,也没有时间加速功能,我只能必须一直握着鼠标控制稳定飞机好几个小时。

我需要一款高超音速飞行的飞机,能够让我在半个小时之内飞到地球上任意地点。

我们飞友有一句名言“力大砖飞”,就是说,只要动力足,板砖飞上天,所以,修改f16.acf文件:

增加动力减少质量,这样就能让F16飞出高超音速!

点击下载高超音速飞机的.acf配置文件icon-default.png?t=N7T8https://aesuib.github.io/GoogleEarth/f16-HyperSonic.acf

将下载的该文件重命名为f16.acf并替换谷某自身的f16.acf文件,爽去吧!

(模拟飞行)五分钟飞到第一岛链

注意!这模型飞的太快了!驾驶她必须要轻轻操作,否则整个谷某地球软件就会崩溃,从跑道上起飞只需要把油门推动一点即可,而降落则需要把油门彻底降低到零。

低速高机动直升机

另一个痛点就是在飞机上仔细观察地面地形,这就要求飞机既要飞的慢,又要转弯迅速,最好还能随处降落起飞,比如我之前飞过的这样:

手把手教你驾驶西锐SR-22小飞机在美国大峡谷中穿行

所以,选择一款直升飞机最合适,但是原装自带的都是固定翼飞机模型,修改为旋翼飞机的启动模型,就需要对 .acf文件里面进行重大的改动。

我谷某搜索了很久,终于找到了:

New Flyable Planes for Google Earthicon-default.png?t=N7T8https://googleearthcommunity.proboards.com/thread/4186/new-flyable-planes-google-earth

还有这个链接:

Planes For Google Earth Flight Simulatoricon-default.png?t=N7T8https://www.gearthblog.com/blog/archives/2009/08/planes_for_google_earth_flight_simu.html

但是第二个网页里面的模型下载链接都已经失效了,这网页太老了,锁眼公司的官网都已经关张了。所以,我下载了第一个页面里面的所有模型,并且抢救性挖掘保存在了我的空间里面了:

文件模型
f16 f35.acfF-35
f16 typhoon.acfTyphoon
f16 p51.acfP-51
f16 m2000.acfMirage-2000
f16 gripen.acfGripen
f16 f15.acfF-15
f16 su27.acfSu-27
f16 crj900.acfCRJ-900
f16 apache.acfApache

这些模型里面有一架旋翼机,阿帕奇Apache,使用阿帕奇的飞行动力学文件替换原装的西锐SR22的,就可以飞直升机了!

(模拟飞行)超轻型蚊式直升机鸟瞰黄山光明顶

注意!直升机很难飞,尤其是对于飞惯了固定翼飞机的飞行员来说。

记住,这架阿帕奇的起落架是固定式的,飞行时要保持伸出的状态。由于直升机没有襟翼flaps,飞行时也不要操作襟翼。猛拐弯的操作,要侧倾滚的同时按住小键盘区域的0或enter按键,没有小键盘区域的话就按住shift+左右键,这样来蹬舵转身。恢复杆和舵请按C按键或小键盘的5按键。直升机降落,要慢慢的接近降落场,轻轻的下降保持稳定的下降率。

警告:不要加速超过200Knots,不仅仅是这个飞机模型不要超过速度限制,而且也是因为如果你飞地太快它将让谷某地球不堪重负崩溃而死。

Apache的FDM从原装的F16改变了很多:

你可以随意更改它。

2D驾驶舱

除了HUD平显,你还可以给GEFS添加一个2D驾驶舱。谷球本身是支持导入3D模型的,但是3D模型必须只能添加到地表上一个位置,或者在地球上绘制一个轨迹让3D模型运动起来,3D模型并不能贴在视角镜头上面,所以只能给飞行模拟添加一个2D驾驶舱贴图。

2D驾驶舱并不是一个模拟驾驶舱,仪表板上面的飞行仪表并不能真实运作,只是一张贴图,静态的,叠加显示在窗口里渲染画面之上。但这也比原本没有驾驶舱的谷某飞行模拟好多了。一般的飞机驾驶舱飞行员仪表,飞行仪表板位于视野下侧,左右两侧有飞行驾驶舱风挡玻璃的窗框。

最重要的是,风挡玻璃是透明的,这样你就可以从2D驾驶舱贴图上的风挡玻璃看穿出去,正常的看到舱外视野,缩写为OTW(Out-The-Window),你必须能从驾驶舱内飞行员头部位置看到舱外看到蓝天大地。所以,最终所需要的图片应该是.png格式,在OTW部分是透明的。

开动!

根据飞行任务选择一款飞机型号

所以首先需要制作一张驾驶舱图片。以上面所讲的低慢飞行为例

为了能在天上飞行中更好的鸟瞰大地,这架飞机应该有很大很大的舷窗风挡,而大多数固定翼飞机的风挡视角在下视方向的可视角度非常受限,所以建议最好选择一款直升机,并且飞机越小舷窗越大越好,最终,我找到了蚊式直升机icon-default.png?t=N7T8https://composite-fx.com/models/xe/

在SimplePlanes官方网站上找到该款飞机的仿真建模

选择SimplePlanes飞行模拟软件来找到该型号飞机模型,这是沙盒建模类游戏,全世界有很多的玩家设计师,几乎为全世界所有的飞机型号建造了模型并且上传到该网站,你可以查找到任何一款模型。我最终找到了mosquito在这里由设计师Alucard689建造的。

绿幕mod扩展插件

还需要安装Green Screen Mod,用以在驾驶舱内拍照截图驾驶舱画面。

拆除风挡框架上的风挡玻璃

模型上的有色风挡玻璃会干扰在绿幕前的截图效果,所以,要手动拆除删掉这些玻璃零件。

必须仔细检查每一个要拆除零件的与其它零件的连接关系,断开连接后再删除,否则就会把连带的要保留的零件给一起拆除掉了。

一块一块地拆除窗玻璃,最终完成品在这里:

进入绿幕飞行吧!

Green Screen snapshot

在软件首页选择菜单第二项:Mod Sandbox Maps

然后选择绿幕地景,如果有很多地景选择项的话。

起飞!你就会发现你深陷一片红或者一片绿之中,随意选择一个位置,截图一张

按快捷键F9隐藏SP软件本身的叠加在画面最顶层的界面GUI,再按F12快捷键截图。

如何从简单飞机导出透明玻璃的座舱截图

使用ONLYOFFICE将截图修改为透明效果

原始截图准备好了,背景是绿色或者红色这样的单一颜色。为了将OTW部分设为透明,我选择了使用ONLYOFFICE,而不是PhotoShop,来进行图片编辑。

在ONLYOFFICE里面有一个扩展插件叫做Photo Editor图片编辑功能,这是默认即安装的,选择这个图片再点击工具栏上的这个按钮就可以打开图片编辑器了。

首先调整亮度brightness:

将滑块向右拖动,是的红色的OTW部分的颜色越来越浅,最后变为基本全白的样子,然后:

选中开启remove white复选框清除白色功能,左右拖动滑块,移除图片里面色彩为白色的地方的颜色信息,使得白色的地方变为透明,点击OK确认保存编辑工作,就能看见驾驶舱图片的透明玻璃效果了,但是目前的飞行仪表板部分仍然是颜色过浅的状态。

再把颜色调深回正常状态:

新建一页ppt,从右侧边栏的页面属性框中,将该页ppt的背景颜色随意设置一个非白颜色。将刚才页面中编辑好的浅色透明座舱仪表图片拷贝到这个新建的第二页ppt里面:

在图像编辑器插件中再次调节亮度滑块,向左拖动,将飞行仪表板颜色调节至正常的样子:

这样就完成了,将该图片导出另存为.png图像文件:

确保文件名后缀是.png

使用任意一款图片查看器打开,这张图片确实是背景透明的:

完工的蚊式驾驶舱仪表2D贴图如下

KML屏幕贴图生成器

你应该编写一个.kml文件来指定这个.png图片文件的路径,在谷地里面加载这个kml文件。为简化开发,我在网络上找到一个小工具软件,KML ScreenOverlay Maker

The KML Screen Overlay Maker Utilityicon-default.png?t=N7T8https://freegeographytools.com/2007/the-kml-screen-overlay-maker-utility

KML Screen Overlay Maker Utility, Concludedicon-default.png?t=N7T8https://freegeographytools.com/2007/kml-screen-overlay-maker-utility-concluded

再次,为了避免互不联网上面的特别老旧的东西消失灭绝,我保护性挖掘出来存储在这里了:

ScreenOverlayMakerInstall.zipicon-default.png?t=N7T8https://aesuib.github.io/GoogleEarth/ScreenOverlayMakerInstall.zip

它非常简单:

首先,选择要加载的图片,就是刚刚制作的.png文件。

然后,保存出.kml文件,并不需要把它保存到谷球的安装路径中去。

然后,创建一个network link,启动谷球,这会弹出一个窗口,手动指定一下你自己的googleearth.exe的路径,确认后,这个工具就会自动打开谷球,你的2D驾驶舱就会出现在画面里。

下一步,在overlay size部分,x和y都选择fraction,设置一个数值,对于我自己的显示器分辨率来说选择1是最好的。

最终,别忘了拖动这个kml从谷球临时位置到我的位置,保存下来以后使用。

你也可以打开这个最终kml文件来查看里面到底是什么内容,其实很简单:

<?xml version="1.0" encoding="UTF-8"?>

<kml xmlns="http://earth.google.com/kml/2.2">

<ScreenOverlay>

<color>ffffffff</color>
<drawOrder>99</drawOrder>
<Icon>

<href>F:\GoogleEarthFlightSimulation\mosquitodown.png</href>

</Icon>

<size x="1" y="1" xunits="fraction" yunits="fraction" />

</ScreenOverlay>

</kml>

HUD平显

我原本想使用原装HUD平显不再改动,但是,当我导入一个喷气式战斗机的驾驶舱之后,我发现效果是这样的:

2D驾驶舱仪表板叠加显示在最上层,将HUD平显部分覆盖到下层去了,这样,很多重要的HUD平显信息就看不见了,所以我不得不专门为该款喷气式战斗机而修改HUD平显了。

驾驶舱图片在这里:

开发完的平显HUD文件在这里icon-default.png?t=N7T8https://aesuib.github.io/GoogleEarth/generic%20J20.ini

首先备份好原始文件,然后再修改hud文件夹下的 generic.ini 这个文件。对于我的战斗机来说,需要移动HUD平显中各个要素的位置并缩小各个要素的尺寸。幸好该文件非常简单,只有不到160行代码,我做了如下这些修改:

最终成品

2D战斗机驾驶舱,高超音速飞行动力学FDM,有功能的HUD平显仪表画面,可以在一个小时之内飞抵地球任意位置!

该视频展示了我驾驶歼20战斗机从亚洲东部的中国北京直飞南美洲阿根廷的布宜诺斯艾利斯,仅仅花费了一个小时的飞行时间,另外这个视频在飞行中段开启了加速效果因而视频缩短到只有不到半个小时。

(模拟飞行)一个小时从北京飞到地球另一端的阿根廷布宜诺斯艾利斯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1013401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 恶意挖矿镜像应急实例

01、概述 当网络流量监控发现某台运行多个docker容器的主机主动连接到一个疑似挖矿矿池的地址时&#xff0c;需要快速响应和排查&#xff0c;以阻止进一步的损害。 面对docker容器的场景下&#xff0c;如何快速分析和识别恶意挖矿容器?本文将分享一种应急响应思路&#xff0c;…

【基础篇】三、SpringBoot基础配置

文章目录 0、模块的复制1、配置文件格式2、yaml语法3、yaml数据读取方式4、关于封装自定义对象来读取yaml配置的思考4、多环境启动5、配置文件分类 0、模块的复制 平时要大量创建模块时&#xff0c;可以直接复制模块&#xff0c;打开project的目录&#xff1a; 复制粘贴&#…

LeetCode142.环形链表-II

这道题和上一道题几乎没有任何区别啊&#xff0c;为什么还是中等难度&#xff0c;我用上一道题的解法一分钟就写出来了&#xff0c;只不过返回的不是true和false而是节点&#xff0c;以下是我的代码&#xff1a; public class Solution {public ListNode detectCycle(ListNode…

接口自动化测试推荐用什么框架?

在推荐接口自动化测试框架时&#xff0c;需要考虑多个因素&#xff0c;包括项目需求、技术栈、团队经验和个人偏好。 以下是几个常用的接口自动化测试框架供你参考&#xff1a; Postman&#xff1a; Postman是一个功能强大且易于上手的接口测试工具&#xff0c;它提供了许多…

卡尔曼滤波应用在数据处理方面的应用

卡尔曼滤波应用到交通领域 滤波器介绍核心思想核心公式一维卡尔曼滤波器示例导入所需的库 滤波器介绍 卡尔曼滤波器是一种用于估计系统状态的数学方法&#xff0c;它以卡尔曼核心思想为基础&#xff0c;广泛应用于估计动态系统的状态和滤除测量中的噪声。以下是卡尔曼滤波器的核…

学Python的漫画漫步进阶 -- 第十步

学Python的漫画漫步进阶 -- 第十步 十、异常处理10.1 第一个异常——除零异常10.2 捕获异常10.2.1 try-except语句10.2.2 多个except代码块10.2.3 多重异常捕获10.2.4 try-except语句嵌套 10.3 使用finally代码块释放资源10.4 自定义异常类10.5 动动手——手动引发异常10.6 练一…

安卓可视大屏寻呼台 兼容标准sip协议

SV-A32i 安卓可视大屏寻呼台 兼容标准sip协议 A32i 是专门针对行业用户需求研发的一款可视大屏寻呼台产品&#xff0c;配备鹅颈麦克风&#xff0c;支持高清免提通话。基于 Android 9.0 系统&#xff0c;可支持第三方Android 应用安装使用&#xff0c;界面使用便捷。采用 10.1 英…

大模型与数据库:AI 时代的双向助推力

随着 AIGC 的时代到来&#xff0c;以 GPT 为首的大型语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;已经成为当今人工智能领域最热门的话题之一。这些强大的模型不仅在内容创意生成、语言翻译和代码辅助等任务中表现出色&#xff0c;还对数据库的发展带…

DatenLord前沿技术分享 NO.35

达坦科技专注于打造新一代开源跨云存储平台DatenLord&#xff0c;通过软硬件深度融合的方式打通云云壁垒&#xff0c;致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题&#xff0c;以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。在本周…

通过机器视觉对硬盘容器上盖的字符进行视觉识别,判断是否混料

 客户的需求  检测内容 硬盘容器上盖字符识别&#xff0c;以判断是否有混料。  检测要求 利用硬盘容器上盖表面字符&#xff0c;来判断是否有混料的情况发生&#xff0c;先识别全部字符。  视觉可行性分析 对贵司的样品进行了光学实验&#xff0c;并进行…

【操作系统】进程,线程和协程的哪些事儿

进程&#xff0c;线程和协程的哪些事儿 进程什么是进程?进程的状态进程的控制结构 线程为什么使用线程&#xff1f;什么是线程&#xff1f;线程与进程的比较线程的实现用户级线程内核级线程轻量级进程 协程协程是什么&#xff1f;协程的优势 区别进程与线程的区别协程与线程的…

【Spatial-Temporal Action Localization(三)】论文阅读2018年

文章目录 1. AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions 时空局部原子视觉动作的视频数据集摘要和结论模型框架思考不足之处时间信息对于识别 AVA 类别有多重要&#xff1f;定位与识别相比有何挑战性&#xff1f;哪些类别具有挑战性&#xff…

Python console cmd命令乱码(无论是os还是subprocess)

给我整无语了&#xff0c;花了一个多小时&#xff0c;根本没找到需要的答案。 网上全是改这样的 五花八门都有&#xff0c;我全部尝试并且还就再排列组合修改&#xff0c;累的。 在下文找到答案&#xff0c;直接os.system(chcp 65001)&#xff0c;问题解决&#xff01;引用文献…

IEC 61850扫盲

目录 1 简介 2 主要特点 2.1 信息分层 2.2 信息模型与通信协议独立 2.3 数据自描述 2.4 面向对象数据统一建模 2.5 带确认服务 2.6 不带确认的服务 2.7 VMD&#xff08;虚拟制造设备&#xff09; 2.8 GOOSE&#xff08;Generic Object Oriented Substation Event&…

LeetCode(力扣)435. 无重叠区间Python

LeetCode435. 无重叠区间 题目链接代码 题目链接 https://leetcode.cn/problems/non-overlapping-intervals/ 代码 class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if not intervals:return 0intervals.sort(keylambda x: x[0])co…

ajax day4

1、promise链式调用 /*** 目标&#xff1a;把回调函数嵌套代码&#xff0c;改成Promise链式调用结构* 需求&#xff1a;获取默认第一个省&#xff0c;第一个市&#xff0c;第一个地区并展示在下拉菜单中*/let pname axios({url: http://hmajax.itheima.net/api/province,}).t…

徐亦达机器学习:Kalman Filter 卡尔曼滤波笔记 (一)

P ( x t P(x_t P(xt​| x t − 1 ) x_{t-1}) xt−1​) P ( y t P(y_t P(yt​| x t ) x_t) xt​) P ( x 1 ) P(x_1) P(x1​)Discrete State DM A X t − 1 , X t A_{X_{t-1},X_t} AXt−1​,Xt​​Any π \pi πLinear Gassian Kalman DM N ( A X t − 1 B , Q ) N(AX_{t-1}B,Q)…

open-interpreter +GTX1080+wxbot+codellama

https://github.com/KillianLucas/open-interpreter/ Open Interpreter&#xff08;开放解释器&#xff09; 可以让大语言模型&#xff08;LLMs&#xff09;在本地运行代码&#xff08;比如 Python、JavaScript、Shell 等&#xff09;。安装后&#xff0c;在终端上运行 $ inte…

窄边极简折叠玻璃门,实现自由推拉及折叠,遥控随意切换透明与磨砂效果

窄边极简折叠玻璃门是一种非常实用和创新的门设计&#xff0c;可以提供各种功能和效果。以下是一些关于窄边极简折叠玻璃门的相关技巧和应用&#xff1a; 1. 自由推拉和折叠&#xff1a;这种门设计允许你自由地推拉和折叠门&#xff0c;根据需要调整门的宽度和开启面积。这使得…

数字人员工成企业得力助手,虚拟数字人为企业注入高科技基因

随着互联网和人工智能技术的快速发展&#xff0c;以“数字员工”为代表的数字生产力&#xff0c;正在出现在各行各业的业务场景中。数字人员工的出现不是替代人类&#xff0c;而是通过技术提高工作效率&#xff0c;实现更加智能化的服务体验&#xff0c;帮助企业实现大规模自动…