ARMA3 官方CAS(近距离空中支援)模块的使用方法——编辑器新手教学向

 

食我大d

在AMRA3环境中AI对于载具尤其是对于飞机的使用来说是十分差劲的,AI驾驶的飞机在你已经预设路点的情况下依旧难以执行对地攻击任务。那么如何在编辑器中实现非玩家操作的CAS任务呢,(在不使用脚本的情况下)下面我将会对官方模块——效果——CAS的使用做一些介绍和说明。以下内容均为本人个人经验,可能会有些错误和不全面的地方,请见谅。在这里我就抛砖引玉,如果你有更加独到的见解请在评论区分享给其他玩家。

  首先我们先要找到cas模块的位置,在编辑器界面F5的模块位置,下方菜单中“效果”的最后一项即是CAS

注意红圈位置

  cas的效果即为在摆放位置的上空出现一架飞机对摆放位置进行轰炸(到达时间约为20秒)

双击CAS模块可进行操作调整

  双击进入编辑界面可以看到我们可以对于飞机型号进行更改(种类有限,up主玩红锤,a-10和su25都有),攻击类型包括机枪连续射击、导弹攻击、机枪和导弹、炸弹攻击。这里特别提示一下,据我的观察集束炸弹的落点会偏离位置约200米,不过机枪导弹和激光制导炸弹还是很准的。这里红圈位置为旋转的z轴,这里面的数值将会决定飞机的航向,此时z为0,那么飞机将会从目标的180方向进入攻击,0方向退出。这里我们将变量名称设置为cas(可自拟,前后对应就行),这样后面才可以使用触发器对其操作。

  这个模块如果我们不对其进行任何限制,那么他将在你进入单人模式时立即被激活,约20秒后对他摆放的目标进行轰炸,如果你希望他在你需要的时间出现,那么我们需要将该模块同步连接到一个触发器上,触发条件自拟,此处为演示设为无线电A。那么这个时候就需要触发无线电A,模块才会生效。

邮件编辑器同步至点击CAS模块即可完成绑定

  现在CAS在触发时机上可控,如何使其轰炸位置可控呢?我之前提到他会轰炸他所在的位置,那么我们需要在编辑器上输入这一串代码

cas到达a1的位置

  这串代码的意义是使cas到达a1的位置,这里的a1是一个其他单位的变量名称,如果单位a1在触发器触发前死亡,那么将是他的尸体位置。另外这个位置只是触发时a1的位置,从触发到攻击达到还有20秒左右的时间,不过对于战斗中的目标20秒通常还在机炮和导弹的轰炸半径内。如果你需要定义cas的攻击角度也就是上边提到的旋转z轴,输入下边新增的代码

加了一个方向限制
意义

  意义为将cas的旋转z轴调整为180,即0度进入,180度撤出。那么如果我们希望这个角度不是一个固定值而是一个根据敌人站位的可变量。我们都知道攻击机在对地攻击时机炮不会只攻击一点,而是边向前进边开火(当然距离有限不会很远)那么理论上应该可以实现下图目标,a1方向进入a2方向退出,打死两者(距离仅做演示实际攻击距离会远一些),两人之间可以脑补一个小队阵亡

就是这种情况

  经过在wiki上的查找我更新了代码

其实这个是有问题的版本,请不要拿去直接用

  这时cas获得的角度是a2相对于a1的角度,括号内的代码最终得到的是一个0-360的数字,a2在a1的哪个方向,cas就面向哪个方向。至少理论上是这样的,我在自己实验的情况基本百发百中。但是后来在单人编辑的任务中出现了问题,飞机多次出现了较大的偏航。所以其实上方的代码是不能直接使用的。别着急下面我会做出解答并给出解决方案。

  我想到既然括号内的代码应该输出的是一个数字,那么使用直升机限高的代码就可以检测得到的究竟是多少,与实际差多少。

  直升机限高代码,此时作为实验工具使用。Name flyInHeight (a1 getRelDir a2);

  将括号内代码转换成飞行高度,就可以坐在飞机副驾驶明确的得知这个数字。我想知道什么因素导致了航向偏差

  经过大量的飞行试验表明,当a1、a2均面朝北时,飞行高度完全等于二者相对的角度。a1面朝的角度不为北时(这里a1指代码中靠前的那一个)出现偏差,差值为a1的面朝方向角度数值,而a2的朝向则完全不影响实验结果。这也是为什么最开始我做实验没有偏差,因为编辑器的默认新生的单位朝北,如果你不去拖动它的话。

  我意识到一个问题,就是方向在坐标系中心确定的情况下应该是一个绝对概念(别拿南北极来杠)不以你面朝方向为转移,那么一定是a1在旋转过程中逻辑里认为的北就是他的朝向,虽说不真实,你也没办法,克服它就完了。上两张图生动形象说明问题

a1朝北时,也是理论情况

  

  

a1朝90,代码认为a2在a1的270,实际为0或360

  这点破玩意试了好久才找到内在规律,我一开始甚至以为是我电脑太卡cpu算错了。。。。

于是我改进了代码,这次是准确的了,可以拿去用了,这里我在原有计算的基础上加上了少的那部分(其实就是a1面朝的角度数字)

完成版代码

其实到这里关于CAS的基本也就结束了,后边是锦上添花。下面做一个红色烟雾弹指引攻击位置的效果(注意敌我识别,被a-10突突的英军如是说到),烟雾弹模块的位置就在CAS上方,很好找的。老样子给他添加一个变量名称,颜色看你喜好,现实中应该是红色吧,不对轻喷。

标记红烟

同样的我们也要给它连个触发器,跟上边一样,依旧无线电A,代码如下图

烟将会出现在可怜的a1身上

现在的效果是触发无线电A后,a1身上出现红烟标记,20秒后支援到位。如果我们想要这个时间变长可以通过改cas对应触发器的计时器。

攻击在烟后30s到位,自行理解


  写在最后

本来这期我最初是要以视频的形式做出来的,可是我这个4年前的GTX965m卡的笔记本想玩下ARMA3还勉强,录屏实在是太卡了。本来录了个将近十分钟的小任务,其中包括巡逻队收到IED和ISIS伏击,呼叫A-10支援,呼叫反人员子母弹炮火打击,直升机运输援军到指定位置索降等以及一些开局报幕和每个阶段的字幕的展示以及后续的代码教学。不过那个集束弹一度让帧数降到个位数,所以变成了专栏教学。其实也不该叫教学,我这些东西也都是新冠疫情期间研究的,也就是个弟弟(毕业论文还没写呢,工科生没有数据啊)。做这个的初衷就是希望后来的新人可以少走一些弯路,毕竟b站相应作品不多(论坛我也不玩),尤其是CAS方面的,毕竟多人模拟的兄弟都是直接开飞机炸的,我这种自闭单机党就只能挖掘制杖ai的潜力。一不注意码了2500多字了,就这些,有什么问题评论区见吧。如果这个专栏可以帮到你们,请点赞支持一下(ps 有人看就不错了)           拜拜


本文为我原创

-- --
  • 投诉或建议
评论