微软模拟飞行 经验谈 2 模组插件与外置工具
写在前面
由于个人精力有限,没时间把这部分专栏内容制作成视频;
另,个人觉得专栏形式更适合阅读;如果你阅读完觉得还不错,感谢转发、评论、收藏!

在开始新一篇的经验谈之前,
稍微补充上一篇的遗漏

关于 微软模拟飞行的重新安装 我们还可以备份 用户自定义视角和某些机模的数据文件

在 Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalCache\SimObjects\Airplanes 这个文件夹中,一般储存了机模的 用户自定义视角 和 机模状态 文件,如果你不想重新设置用户自定义视角,或者想保留机模的飞行时间,可以在重新安装系统或游戏时,备份这个文件夹的数据;
在 Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\packages 这个文件夹中,一般储存了插件安装后的开发者写入数据,某些机模的飞行计划调取文件夹也在这里,且这里不只有机模插件相关;如果你能看得懂,也可以进行备份;
接下来我们开始经验谈第二篇,距离上一篇刚好五个月;
模组插件与外置工具
在模拟飞行发展的历史中,绝大部分时间里,模飞平台中的“新”内容都来自三方开发者的开发,不论是付费内容还是免费内容;
一般付费三方插件在三方开发者自己的网站发售,也或是在模飞软件分销商发售,比如Aerosoft、Orbx、simMarket、JustFlight、Flightsim.com都是分销商;
而微软模拟飞行2020,在历史上是首个官方技术版本更新频次和免费+付费内容、更新体量这么多、如此大的一个独立贩售版本模飞软件,甚至引入了内置商店功能,这改变了模飞平台软件的传统定位;
在历史上,在所有的模飞软件平台中,没有哪一个做到了目前这个数量级和定位;
一般来说,微软模拟飞行2020中的文件格式基本继承于FS系列的发展,FS也深度影响了P3D的插件和工具,你可以把P3D理解为FS系列的一个重要分支;
但Asobo微软模拟飞行项目组在过去几年的开发中,开始着手对这个陈旧的系统进行调整,包括修改底层代码和新增API;
短时间内,这种不太稳定的局面会影响三方开发者的开发,但从模飞软件的长远发展来看,不进步、不改变就没有未来;而三方开发者是自己选择加入某一个平台的开发,如果不适应完全可以不进入;
另一个角度,游戏开发不是理想主义,现在的模拟飞行不可能要等到“完美”再发布,所以玩家也要面对这些不完善,如果真的不喜欢,不玩就是了;

过去我们曾经有一种惯性思维,有地位、有过辉煌的三方开发团队的作品都会很优秀,但在微软模拟飞行2020的三方开发生态里,这个惯性被打破;陈年的酒,不见得香;
目前,在微软模拟飞行2020里有很多优秀的三方插件来自于全新的开发组或者是独立开发者,而曾经的王者,截至发稿看,只有 A2A sim 保持了与历史原有的地位相当的开发水准;
不与时俱进,就会被后来者超越,这个情况在微软模拟飞行2020的三方开发中已经不断的被诠释;
过去我们曾经认为XP是对免费、开源开发者更好的模飞平台,
而现在围绕在微软模拟飞行2020生态圈的免费、开源和开发者分享也不逊色;
最后,在开始正式聊经验的时候,聊三方插件必然可能会和聊三方开发者有交集,
我尽可能避开这部分内容;本篇也不涉及具体的某个插件的使用;

模组插件
我个人把基于官方代码结构的,仅需直接放入community文件夹,即可直接使用的这类插件定义为模组插件MOD;
目前微软模拟飞行2020内置商店中的插件基本都属于这一类;
这类模组插件的类型和数量最为广泛,在模飞社区中的绝大多数免费插件都属于这一类;
这类插件的优势是安装快捷,基于官方和三方开发工具SDK制作标准;
但不足之处就是无法实现更多模飞平台架构无法支持的功能和效果;在出现问题时,由于数量太多,这类插件的问题排查也相对繁琐;
在微软模拟飞行2020发布后,我个人使用最多获取免费插件的模飞社区的是:
https://flightsim.to/
这个模飞插件社区;包括我个人发布的免费插件也在此发布,其内容展现特别是版本维护非常方便;
Flightsim.to社区也是微软模拟飞行2020发布后,新生的、发展最快的、超过以往历史的模飞社区;
社区一般会对开发者提交的内容进行适用性、安全性审核,Flightsim.to一开始也是这样,但随着开发者和内容的不断增加,这部分的工作逐渐弱化或消失了,所以在下载之前,尽可能的阅读开发者说明、版本日志,或是用户留言,以保完全;
在这里需要注意的几点:
1. 这类插件是拖拽安装即可使用,但要注意文件夹层级结构;在community文件夹下,是插件的顶级文件夹,在这个文件夹下,你要能看到两个json文件;如果插件在解压时或开发者嵌套了更多的文件夹,游戏将不会识别无法正常加载;

2. 由于三方开发团队的技术水平问题,某些这类插件,会在加载后替换(并不是覆盖源文件,而是调取优先级替换)官方相应的功能文件;这就造成一些机模、美术被替换,无法正确使用或者正确显示;而且这类插件只要在community文件夹中被加载,即使你在游戏中不使用,对其他机模或者功能、美术的影响就会存在;

比如Red Wing Simulations的Lockheed L–1049 Super–Constellation;
只要加载,就会对系统默认的AMS2000 Altitude Management和AS92 Radio功能使用有影响,会对其他机模的美术显示有影响;
这类机模一般在社区有相关使用注释,非飞行勿加载,或者你明确知道影响不会对你的机模造成影响才使用;
在WTT改进航电之后,默认787的玩家多了起来,比如DeimoS Inc.的最新Su–57 Felon版本,对会对B787 (HUD),AS3000 (MFD, PFD, Templates, TSC),Shared NavSystems files,Visual effects有影响;
所以插件开发者水平和不同的插件版本,都可能会影响到你的游戏体验,在使用这类插件时,阅读好开发说明,或者是在社区了解相关信息,则变得必要;否则你在抱怨MSFS又有问题时,其实是你自己没有恰当的使用模飞插件;
3. 某些插件内容,由于内容替换优先级原因,必须在最后被加载才能成为最高优先级调用;
过去(P3D和FS)在遇到这个问题时,我们可以通过手动调整
Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalCache\Content.xml
这个xml文件的方式进行管理,而MSFS已经在SDK Release 0.19.0重新编写了Content.xml相关的功能代码,现在一般玩家几乎可以不再去管理这个文件,除非你的三方插件内容中存在相同内容目标的多个同类插件;
新的Content.xml具体使用方式请自行查阅官方说明文档;
不过,在实际三方开发者遇到这类问题时,还有一种潜规则,
就是在三方插件的顶级文件夹命名时,使用字母“z”开头,
这样大多数情况可以保证这个插件在系统调取时是最后加载的,才能够正常使用;
这样的做法并不多,开发者是为了避免插件中出现相同文件时,可以被优先调取,除非你个人就是开发者,否则很少有玩家会去看别人的插件文件结构和文件内容;
4. 插件的三方开发者水平不一,所以当你安装了新的三方插件后,如果遇到启动崩溃、加载慢,先不要着急,等一等;检查一个插件是否真的有问题的最简单办法就是,在确认你的MSFS在游戏的安全模式启动下运行正常后,只在community里面加载测试插件,来检验是否有问题;
这里就有一个最基础的方法,伪造community文件夹;如果你日常是把插件直接拖放到community文件夹,先把这个文件夹改个名字,例如communityAAA;然后再建立一个空的community文件夹,把需要测试的插件单独放进去,启动游戏测试即可;大可不必,删除文件、移动文件夹去别的位置;
另外由于微软模拟飞行2020并不是单机游戏,如果网络不稳定、服务器不稳定也会引起启动过程中的崩溃,目前游戏启动进度条前50%的部分,基本是本地游戏软件的启动,在这个位置会稍微卡顿一下,之后开始网络数据请求、三方插件加载初始化校对的过程;
如果你能确定时插件引起的问题,最简单的排查方式,是到插件开发者发布插件的源地址进行了解、咨询;这也是我不推荐在某些“未经许可”转发、转载、转存插件的网站或个人那里下载插件的原因之一;
另外,除非你能“技术”上确认自己下载的三方插件文件本体无误,否则和其他朋友确认下插件文件是否都在下载或者传递过程中有不全或损坏文件的情况;一般这种情况很少发生,不过遇到了也很不容易排查;
5. 很多插件是需要与MSFS的SDK版本保持一致,与官方更新内容保持技术一致的,也就是说,插件需要进行“技术性更新维护”;进而,在使用插件时注意版本一致性;如果微软模拟飞行版本更新了,特别是涉及到SU、AAU的版本更新,而插件没有,最好先到插件开发者源地址了解相关说明;
现在,很少有插件只发布一个版本就可一劳永逸;
特别是我们面对微软模拟飞行2020这个每个月都要更新的模飞游戏,在历史上真的没有过,这给三方开发者提出了更多要求,如果你想让自己的三方插件保持优秀的质量品质,那么就要跟上Asobo的更新步伐;

举例来说,
JustFlight的 PA28 啪啪啪系列三个机模,在微软模拟飞行2020平台发布的头半年到一年这个时间段,保持了通航GA类机模的王者地位,但在后续的MSFS版本更新后,PA28的开发者明确表态自己无神顾及这么频繁的更新维护,需要等微软模拟飞行SDK版本更新稳定后,再对机模进行版本更新,谁想到这一等,直到近一年后PA28的开发者才对自己的机模进行更新,而针对更新的修复更新,又过去了几个月;
于此,我在日常审视插件时,第一位的是开发者的态度,其次才是质量;
这里要清楚,插件更新在相对简单的地景类插件也依旧需要,MSFS的世界更新内容,足以让那些不更新维护的地景插件、机场插件沦为淘汰作品;
还有在MSFS上,从WTT被招入MSFS开发项目后,模飞平台的历史性航电更新也进入了里程碑,目前我们已经经历了两次AAU,也就是说,很多机模插件由于调用SDK航电也需要进行适配性更新;
6. 如果你有动手能力,这一类插件很容易可以进行个人调整;
虽然开发者不禁止有动手能力的三方,修改或调整自己制作的插件;但如果你在动手之后想要分享,最好还是与原开发者取得同意;
一般在Flightsim.to上一些性能改进模组都属于这一类,这种改进不只是局限于机模性能(飞行模型)、还可以包括美术、音效、操控、设置和变体;

外置工具
一般我个人把需要在模拟飞行软件之外独立启动运行的模飞软件,定义为外置工具,与模组插件区分来对待;
这类软件主要目的是实现模拟飞行平台软件功能框架之外的功能和效果,由于需要独立运行一个程序,会额外消耗你的电脑性能,微软模拟飞行2020目前还是以独立窗口运行的一个游戏,虽然有多窗口实验功能,但会消耗更多的性能;
如果你是一个独立显示器,在不同窗口之间切换时,软件的前后台切换也有运行性能上的变化;如果你是多个显示器,鼠标在多窗口的切换也有影响,毕竟这是windows的系统问题,显卡在软件前后台运行切换时也有相应的支持变化;
外置软件工具,一般会调取微软模拟飞行的数据,也可能会进行更直接的数据交互,不仅仅读取,还要写入;
从最早接触模拟飞行时开始,一个潜规则就是,尽可能减少你使用外部工具软件的数量,尽可能使用被测试稳定的外部工具软件;由于开发者能力不一,这类外置工具更容易引起游戏崩溃;尤其是模飞平台更新时,涉及到一些内存变量的变化,尤其需要保证外置工具软件的版本更新;
对于这类外置工具需要了解以下几点:
1. 微软模拟飞行2020的SDK并不稳定,且不能以P3D或XP有稳定的SDK来进行直接对比,这是开发和运营时长的问题,简单的对比稳定和规范性完全没意义;而且随着Asobo核心开发团队在对FS的ESP源码逐渐深入后,基于ESP这套老系统架构的越来越多的问题被暴露出来,老的问题代码被改进或是摒弃重建,新增更多与时俱进的内容,这也是为什么MSFS2020与FSX或是P3Dv1有很多相同或相似的部分,但在发布后的三年也有变化的原因;
SDK不稳定完善,也就意味着对于能力一般或弱一些的三方开发者,不论是机模、地景还是外置功能的开发,都会受到影响;对于一些只依赖SDK进行开发的三方开发者,MSFS的频繁更新让他们无所适从,开发受到的影响更大;在购买使用这些开发团队的工具和软件时,要慎重,首先你能接受问题出现的可能,或者是找其他同类替代品;
这里举个例子,
比如模飞的录像软件,虽然我们日常说录像软件,但模飞的录像软件实际上是记录机模的动态数据,在SDK不稳定,在三方开发者使用自定义机模代码变量,在官方的机模状态机没有完成标准化之前,目前的三方机模录像软件只能记录一些“标准化”的数据,所以即使当Asobo团队完成机模状态机及相关延展开发时,还需要三方机模团队重新规范自己的机模代码变量,这样之后录像软件才能,记录更好的机模数据;但实际上即使现在,并不是所有开发者都很好的规范自己的代码;
从这里,你可以清楚的了解,开发这件事,不只是需要官方团队的努力,三方开发团队的态度和能力也很重要;
2. 一些外置工具软件需要独立启动,且在启动后会主动与微软模拟飞行程序进行数据握手,最好在微软模拟飞行启动之前,完成这些软件的启动;
LocalCache/exe.xml文件虽然依旧存在,但这是在游戏启动后再启动,如果遇到某些工具软件需要更新,反而肯能需要重新启动游戏;
3. 安排好接下来你要玩的内容,不是每次飞行都需要启动所有你的所有的工具软件,尽可能的降低可能引起游戏崩溃的风险;
当然加载community插件也是如此,减少调用插件也可以加快你的游戏启动速度;降低意外崩溃的几率;
相比微软模拟飞行2020发售之初,在2021年下半年后,游戏本体已经相当稳定了;
4. 在购买、使用这类插件前,详细阅读开发者的介绍,了解工具可能需要的其他软件支持需求,了解对windows系统功能的需求,了解对外设的支持;
比如FS2Crew的系列语音副驾插件,如果要使用其语音功能,前置要求是你的windows开启相应语种的语音识别,以及windows对你个人发音识别的个性化训练;
5. 绝大多数外置工具都是付费软件,即使有免费版本也相对较少,从三分开发者官网获取的方式可以有最快的更新可能;三方销售渠道商店会慢一点;另外,当你想获取“免费使用”的情况,注意安全;
插件日常管理
在微软模拟飞行2020时代,我个人使用的插件管理工具是
MSFS Addons Linker
https://flightsim.to/file/1572/msfs-addons-linker
这是一个手动插件管理工具,虽然目前有各别插件管理软件更为自动化,但当你的插件数量进入的千个或是3T、4T的阶段后,良好的插件文件夹管理、Tag管理和预置文件管理,对于这么庞大的插件和工具管理才最为方便;
这里简要介绍一下经验:
1. 微软模拟飞行2020时代开启后,插件和工具的体积单位不再是G,而是T,不仅数量惊人而且体积庞大,虽然我们的SSD硬盘已经进入了T时代,但是模飞插件的使用频率并没有那么高,所以准备个2-8T的机械硬盘来保存插件足够了,因为绝大多数的内容你并不会经常使用;
2. 按照Aircraft、Livery、Scenery、Misc分类,在管理时区分付费和免费插件,特别是机场插件注意除重;好的文件夹管理习惯,越早养成越容易管理插件;这里可以再对机场插件进行一点喜欢,某些国际和地区的机场插件非常多,可以细化到更细节的地区进行管理;
当有新的插件加入你的收藏目录时,可以使用AddonsLinker的搜索功能,检索一些关键字,看看是否有重复的,插件的定级文件夹名称、机场ICAO代码一般都是比较好的关键字;
3. 如果你自己有能力动手,一些插件是可以汇总到一个插件顶级文件夹的,不过每次维护更新要重新生成 layout.json 文件;之前MSFS的community插件数量超过1024会引起内置内容管理器无法加载,现在这个问题已经解决了;
4. 在安装新的,未使用过的插件时,临时放置在一个文件夹,一旦发现新的插件加载后,游戏中有各种问题,比较方便的排查办法之一就是,先禁用新增插件;当然,阅读相关插件的其他用户反馈和开发者说明,总是要优先做的;
5. 短时间用不到的插件不必一直保持更新,大量的插件,频繁的更新,结果你可能从未使用过,时间是宝贵的;
6. 插件模组和外置工具,尽可能从开发者的官方渠道获得,虽然总会有人乐于助人,但文件体积大、更新频繁、文件安全性还是值得在意的;而一些免费插件的开发者,原下载地址的下载数据是有意义的,未经许可的分流、转发是不好的;

这篇的文字足够多了,先停一停,
再下一篇经验谈中,我们再聊一聊具体的模组插件和外置工具;
Jed 模拟飞行俱乐部 KOOK 服务器
https://kook.top/0fFSJR