小黑盒游戏新闻 ( ) • 2024-04-17 16:34

       前言:

        众所周知,简单飞机中的战机弹射座椅就如同高铁上的安全带一样重要,因此秉承可以不用但不能没有的原则,在设计时给飞机安装弹射座椅将有效避免出现意外时核心摄像机达到第一宇宙速度的情况。

       介绍:

         本篇使用本人自己的飞机作为实例,没有上传官网。

请不要问我原型是什么因为我也不知道....


        所有操作均可以在原版实现,不需要安装额外mod。但直接改xml文件实在累人因此可以装一个OVERLOAD方便在游戏内直接对xml文件操作。

OVERLOAD模组可以在简飞官网上找到

   

     思路:

        现代战机的弹射有穿盖弹射和掀盖弹射。穿盖弹射在五代机中多被使用,比如歼20,F35等(座舱盖上的波浪线就是用于炸开舱盖的爆破索),但其原理放在简飞世界中不太现实,如果不想让弹射行为从青一块紫一块变成这一块那一块最好不要采用。掀盖弹射作为经典弹射手段被使用多年,其原理也更符合简飞世界,这里也将采用此项技术的思路。

        弹射座椅可以大致分为三个步骤:1.抛出座舱盖   2.抛出座椅并打开座椅导引伞   3.打开飞行员主伞

现实中的过程会更复杂

 

       弹射方法:

        现实中使用炸药和火箭发动机弹射,但在简飞世界中这么做虽说可以但有些太危险了,因此抛射工作可以交给另其它组件:外挂架(pylon)或脱钩器(detacher)。

简飞中的组件不干正事也算是传统艺能了


        此类组件可以设置启用时对分离物施加的力,分离延迟,分离触发参数。利用这些属性便可以实现弹射(记得在设置连接的时候不要装反了,只有下半部分的连接件可以脱离)。这里用的是外挂架,但其实打开属性就可以看到外挂架直接套用了脱钩器的属性表,所有这俩可以算是同一个组件,只是长的不同罢了。

 

       结构设计:

        三个主要结构:座舱盖,座椅,驾驶员。每个结构各连接一个外挂架(驾驶员用一个单独的方块来代替,核心电脑装在上面)

三个外挂架的安装位置

有种只送大脑的美

 

       座舱盖的整个结构连接在外挂架上,包括座舱盖本身和用于调整其开关的旋转轴。

        座椅在弹射时非常容易被谜之碰撞体积卡住,如果不想花数不清的时间调整的话,可以将弹射椅上所有组件所对应的xml文件中   ”disableAircraftCollisions“  属性调为true,意为取消组件的碰撞体积,仅对于自身组件,对于地形等其它碰撞箱依然有碰撞效果。使用OVERLOAD将会大大简化这个过程。

合理偷懒×   充分利用游戏机制√


        工作延迟:

        弹射座椅要突出一个快,当觉察到意外时驾驶员发出指令便会立刻执行,所有弹射的所有步骤最好都由一个指令触发而不是手动在各阶段下令。

        为了实现这一流程就需要让组件进行延迟输入,其中外挂架自带此项功能,但降落伞只有根据分组触发(activationGroup),因此需要一个延迟函数。

可以看出降落伞的操作函数同样适用于外挂架


        很不幸在steam社区指南中并没有详细提及这些操作函数(也可能我没找到),但好在官方提供的飞机中有类似的参考样本可供使用。


           smooth(clamp01(操作变量),参数)


        此函数的效果是使操作变量的变换方式从0瞬间变为1修改为从0渐变为1,标准时间为1秒,参数的作用是调整变换时间,将其变为(1/参数)秒。由于降落伞的触发方式并不是检测操作变量为1而是大于0,因此还需要在函数后面减去一定的量。

        例:延迟0.6s触发降落伞启动可以表达为:


            smooth(clamp01(input),1)-0.4


       开工:

        理论部分已经完成,剩下的只需要挪挪鼠标敲敲键盘以及吃降压药就好()。

        首先,一个触发装置。战机弹射椅启动装置一般都位于两腿间的位置,简飞中飞行座椅也有这一装置,可惜只是个装饰,因此可以自己装一个。不过为了方便测试也可以在外部装一个按钮来触发。

在这里装把手主要是留给VR操作

 

        其次,拟定一个操作变量,可以是官方给定的1~9操作组(Activate1~9),也可以自己写一个,不过自己写的操作变量只能从0到1不能从1到0,所以基本上也就用在这些一次性触发的地方了。

我这里使用“EJECT”作为操作变量

 

       确定操作变量后就可以将延迟代码写入组件中了(如果你已经完成了结构设计的话),可以在编写前拟定好时间表以防出错。

不同的机型弹射延迟可能不同,这需要测试。

 

       完成这些后就可以进行愉快(tongku)的测试了,祝愿你的飞机可以少炸几次。

配合慢动作可以在测试中获得更多信息

  

       一些提示:

        输入操作函数的时候不要用游戏内自带的编辑框,它不会将编辑内容写入xml文件,尽管点击查看的时候是有变化的,但当点开始之后就会变回原本内容。做这些修改只能直接在xml文件处改写或使用OVERLOAD编辑。

        结语:

        众所周知简单飞机简单的只有教程,本篇使用一些暴力手段来实现弹射功能,我相信社区的大佬可能早就完成火箭驱动弹射或其他更炫酷的逃生方法,虽说对包括我在内的大部分简飞玩家来说坠毁的第一反应是点restart,不过这并不妨碍我继续向我的作品上添加这些有意思的装置,毕竟简飞玩的就是创意,创意越多,玩得越快乐不是。

火箭推进是可行的,但这样玩无限接近于自爆卡车


       本片旨在抛砖引玉,玩简飞的玩家少之又少,如果能有大佬分享点技术那对于社区和广大摔机萌新都将是不可多得的收获。至于mod,用原版实现功能可以视为一种挑战,有种帮小孩做题但不能使用高级知识的美