作战机制

来自PRTS
跳转至: 导航搜索
这个页面或章节尚在编辑中。
请注意,部分内容可能尚未完成或存在错误。您也可以编辑页面帮助我们完善内容。
这个页面或章节尚在编辑中。
请注意,部分内容可能尚未完成或存在错误。您也可以编辑页面帮助我们完善内容。

仇恨、索敌与隐匿机制

仇恨与索敌

从新手教程能得到的是,敌人会优先攻击射程内最后部署的干员。但是实际上仇恨机制远不止这些。

对于任何可以攻击的单位(敌我都是如此),他会攻击进入其攻击范围的前n个单位(其中n为攻击目标数),近战单位会优先攻击自己阻挡的敌人。

值得一提的是,浮士德等能够超远距离打击的BOSS依然遵循仇恨机制。但是他们的攻击半径长达20格,而目前他们出场的地图即使地图边长也达不到20格,因此可以等价地认为:他们会攻击全场最后部署的那个单位。如果新手教程不能让您领悟仇恨机制的重要性,那么5-10、H5-4以及在利刃行动常驻图中出现的浮士德会把您的干员一一射爆然后好好给您上这一课。

干员前摇锁定目标时,当次攻击目标不会改变,所以你可能会看到“白金射中一只7格外的狗”之类的“反常”情况。

一般情况下:

敌方对我方仇恨优先级:阻挡>>特殊优先级>更容易被攻击的目标>最后部署的目标>不容易被攻击的目标>隐匿的目标(无法被选中)

我方远程干员索敌优先级:特殊优先级>更容易被攻击的目标>剩余路径最短>阻挡位饱和度

其中

特殊优先级,包括部分狙击的优先攻击空中单位守林人安比尔优先攻击防御力最低的单位等,以及部分包含特殊索敌逻辑的技能,如三技能向周围寻找(距离自己)最近的目标,拖拽特种干员隐含的优先选取距离自身最远的目标,敌方的爱国者毁灭形态下的攻击半径20范围内的距离自身最远的高台干员

更容易被攻击的目标,包括拜松的技能深化阵线、夜莺的幻影,敌方的游击队盾卫和其变种的使自身容易受到敌人的攻击爱国者行军形态的嘲讽等级增加2级

不容易被攻击的目标,包括具备这种特性的狮蝎伊桑,以及触发第一天赋后的W

特殊情况下:

※对于射手狂徒泥岩小队掷能者及其上位敌人,他们的特殊优先级(优先攻击指挥终端/正在争夺“留声机”的我方单位)低于更容易被攻击的目标(即会被嘲讽等级影响)
※对于的两个爆发剂技能,它存在两层优先级,正前方的友方单位为特殊优先级,位于前方的单位与的直线距离为更容易被攻击的等级,但低于嘲讽等级。

远程位干员不会优先攻击被自己阻挡的目标;甚至如果这个目标被阻挡在该干员的身后,该干员也不会攻击这个敌人(一般见于CE图等不区分近战和远程位的地图中)。

进入隐匿状态的单位不会受到远程攻击,但是会受到其阻挡的单位的攻击

阻挡为0的单位不会受到近战攻击,但是会受到远程攻击

隐匿机制[理论参考 1]

隐匿效果使得获得该效果的单位无法被绝大多数的攻击选中,同时隐匿效果无法被沉默
对于敌人而言,隐匿单位在被阻挡后会解除隐匿,在破隐而不被阻挡的3秒后重新进入隐匿。 而隐匿本身并不是绝对无敌的。进入隐匿的单位依然可以受到伤害:对于干员,可以受到毒雾伤害,而对于敌人,可以受到星熊和年技能造成的反弹伤害以及热泵通道造成的伤害,以及如果进入隐匿前被指定目标的攻击选中,即使进入隐匿伤害同样会正常结算。
除了技能造成干员隐匿外,干员入场的本质是会在入场动画期间进入隐匿状态,在入场动画结束时该状态解除。如果出于某种原因,入场动画中止,则该隐匿效果也会终止。
隐匿状态的敌人进入某些范围效果(如的睡眠之歌,塞雷娅的钙质化等)时,效果不会生效。但一旦在范围内被破隐,则立即施加效果直至技能结束或离开技能范围(即使再度进入隐匿)。目前版本莫斯提马的第二天赋除外,该天赋能对范围内隐匿的敌方单位直接施加。
目前能够强制选中隐匿单位的技能只有极境的二技能“聆听”,优先选择隐匿单位并使其破隐。

AOE判定的本质

AOE的判定是对攻击范围内的每个可以被选中的敌人进行判定[理论参考 2],按照仇恨优先级(对于我方受到的AOE则是部署逆序)逐个判定伤害[理论参考 3]

对于具有弹道的AOE攻击(例如群攻狙击),其机制为先选择单体目标或者地点发动攻击,并在命中后立刻选取范围内全体目标造成伤害。

对于没有弹道的,但是具有“锁定人数”的AOE攻击(例如群攻近卫),其机制为在抬手时选取范围内的全体目标(不超过其攻击目标上限),并在攻击前摇结束时对这些目标造成伤害,即使目标已经离开攻击范围。

注:霜星的冰环属于“锁定人数“的AOE[作战记录 1]

对于没有弹道,但是具有“锁定攻击范围”的AOE攻击,其机制为在攻击前摇结束时选取范围内的全体目标,同时造成伤害(你会看到伊芙利特炎爆打不中横着跑的狗)

注:你无法用槐琥的二技能在不阻挡的情况下伤害一名具有隐匿效果的单位,因为槐琥的二技能都是“锁定范围”的AOE。

伤害、buff与计算

伤害和治疗的生效流程[理论参考 4]

一般来讲,方舟中的一次“攻击”,在代码层面是一个包含了伤害(治疗)量和各种属性的一个小数据包,这个数据包里除了攻击力,还包括例如伤害类型(物理法术真实治疗),攻击类型(普通溅射buff),是否可致死,是否属于环境伤害等等一系列属性,故我们在这里称其为“攻击属性数据”。 而一次攻击从发出到被结算需要经过以下流程

流程顺序 流程名称 流程内容 应用举例
1 来源实体事件:ON_CALCULATE_DAMAGE。 获取modifier的各项属性,计算伤害并生成modifier 攻击倍率调整
2 准备向目标实体应用modifier,检查modifier是否被cancel
3 目标实体事件:ON_BEFORE_APPLYING_MODIFIER
4 来源实体事件:ON_OUTPUT_MODIFIER 检查来源有效性。 造成治疗倍率调整
5 检查modifier目的, 为伤害时执行来源实体事件:ON_OUTPUT_DAMAGE 造成伤害倍率调整
6 目标实体事件:ON_APPLYING_MODIFIER 受治疗倍率调整
7 执行On_Take_Damage/On_Take_Heal 1.取消掉隐匿/无敌状态下的攻击

2.取消试图非强制治疗不可治疗单位的治疗
3.检测modifier是否被cancel,反伤,闪避,抵挡,护盾。

未被cancel时对目标应用modifier
8 应用成功后, 执行目标实体事件ON_APPLIED_MODIFIER
9 检查modifier目的, 为伤害时执行来源实体事件:ON_AFTER_OUTPUT_DAMAGE

机制应用举例:

我刚刚闪了个什么?

现象:阿的远程攻击触发了因陀罗的近战攻击闪避天赋。
原理:攻击类型属于远程还是近战,是攻击属性数据里面的其中一项,用两位二进制数存储,无是00(0),近战是01(1),远程是10(2),近+远是11(3)。在检查特效是否生效的时候,就用检测条件与远近数据进行“与”运算,之后看是否有变化,比如01&01=01,01&10=00
但是,阿的攻击因为伤害固定,做了特殊处理,伤害类型为00,01&00=00,就很尴尬了。
以及,有弹道的攻击固定为10,无弹道的攻击固定为01,所以无人机的无弹道远程攻击也可能会被闪避。

原理参考:https://bbs.nga.cn/read.php?tid=22540222

我红字呢?

现象:部分情况下,泥岩的法术护盾存在时,会使其受到的法术伤害吃不到伤害加成。
原理:很明显,这二者在执行时并不会相互调用
先结算护盾时,护盾如果只抵消一部分,伤害倍率提升由于其逻辑只会对抵消后的modifier值生效,先结算伤害倍率提升时,modifier值会被增加,护盾值的扣减也会被伤害倍率提升加成
由于这二者的行为位于一个行动节点,按照鹰角目前的逻辑,其行动会按照其在buffContainer中的顺序(绝大部分时候为添加顺序)进行结算
也就是说,先加护盾,再加易伤,护盾吃不到伤害加成
先加易伤,再加护盾,护盾可以吃到伤害加成
原理参考:https://bbs.nga.cn/read.php?tid=22540222

buff判定与隐匿状态

加buff原理

在2020年3月17日的更新之前,方舟中给某个范围内的单位加buff的原理如下:
  • 技能开启、有常驻性buff的干员部署时通过buff选择器选中攻击范围内所有能选择的目标。
  • 在buff生效期间新单位进入生效区域时通过buff选择器试图选中新单位并加buff。
  • 单位离开生效区域,技能结束或干员退场时强制清除目标身上的对应buff。由于这个兜底机制的存在,大部分光环类buff持续时间都是永久。
  • 其他情况下基本不更新buff状态。[理论参考 5]
在2020年3月17日的更新之后,buff判定机制发生了一定的修改,但原机制仍然绝大部分有效,后文用到时会标注出已经更改的部分。
对已存在某buff的单位再次施加同名buff,不论两次的buff之间有无数值差异,在绝大多数情况下只会更新第一次施加的buff的作用时间。

隐匿状态的机理[理论参考 6]

隐匿状态下的单位一般无法被敌方的索敌机制和buff选择器选中为目标,直到状态被解除。目前方舟中能处于隐匿状态的单位有:
  • 具有隐匿效果的敌方单位
  • 守林人的技能“环境伪装”
  • 麦哲伦第二天赋“光学折射配件”影响下的无人机
  • 进入草地等地形的单位
  • 部署动画播放完之前的入场干员
隐匿状态受阻挡开关的控制,在被阻挡时会被关掉,阻挡状态解除后3s重新开启。所以,当敌方单位被空降阻挡时,空降的我方单位在播放入场动画时就视为在阻挡状态,不处于隐匿状态,所以相比正常入场的干员会更快的遭受到敌人的攻击。同理,部分召唤物没有入场动画,所以连续部署召唤物主人与此类的召唤物时,召唤物将会先受到攻击。
目前方舟中使用能选中隐匿状态单位的buff效果包括三种:针对隐匿状态开关【待验证】的,无视隐匿状态起作用的和中立单位的效果
  • 针对隐匿状态开关的buff:银灰·天赋:鹰眼视觉,极境·技能:聆听,月禾·技能:迹无,敌方侦察兵和反隐装置的反隐buff【待验证】。
  • 无视隐匿状态起作用的buff:莫斯提马·天赋:主观缓时、安洁莉娜·技能:反重力模式的重量下降buff、寒霜的攻速下降、御4的防御力提升[理论参考 7]
  • 中立单位起作用的效果:地火的灼烧,源石地板的攻击力增加和血量减少等。
无敌状态和隐匿状态的区别只体现在对于伤害无敌方面【待验证】,不会受到星熊/年的反伤、毒雾的扣血等对隐匿状态起作用的伤害,但buff机制与隐匿状态无大区别。

机制应用举例:

效果演示.gif
在睡眠之歌里蹦迪

现象:1.当隐匿敌人在进入的“睡眠之歌”作用区域后因为被阻挡而显形不会使敌人进入睡眠状态。
2.在三秒显形时间内使敌人再次进入作用区域时,会进入睡眠状态,但隐匿恢复后的敌人会解除睡眠状态。
原理

  • 在以隐匿状态进入buff区域后被阻挡显形无法触发目标更新机制,不会受到buff的影响。
此内容已在2020·3·17的更新中被修复
  • 由于“睡眠之歌”的buff作用的单位不会移动,所以其作用方式不同于离开范围就消失的光环类,是通过频繁施加一个持续时间很短的buff实现的。在敌人恢复隐身后,buff无法再次选中隐身单位,故原有buff时间结束后就会解除睡眠状态。
原理参考:https://bbs.nga.cn/read.php?tid=20535163

弑君者.png
叠满debuff的三级弑君者&龟速霜星

现象:1.在弑君者位移前摇时施加buff,如果位移后离开buff范围,则该buff在干员在场的情况下可无视攻击范围,技能时间等限制无限持续。
2.满足现象1的弑君者再次踏入同名buff中后,该buff在干员不在场的情况下也可无限持续。
3.延伸:用上述同样的办法,让霜星获得了永续停顿状态,移动速度降低到0.1的下限。
此内容已在2020·8·25日的更新中被修复
原理:暂缺,尚不知位移技能逃脱范围外判定的机理。
现象参考:https://www.bilibili.com/video/BV1hi4y1G7Vh

https://www.bilibili.com/video/BV1qz411v7Nb

效果演示.gif
死得早的下路大盾

现象蓝毒对高甲敌人使用一技能时,对副目标造成的伤害可能比主目标大 解释: 蓝毒第一次攻击主目标是普攻,所以此时施加的神经毒素只是造成正常伤害的buff。
蓝毒第一次攻击副目标利用的是技能发动时的散射,由于蓝毒的特性,此时施加的神经毒素是造成技能倍率伤害的buff。
由于此后在buff消失前继续攻击无论攻击力多少,只改变原buff的持续时间,所以面对物伤抛光的敌人时有技能倍率加成的副目标毒伤可能会大于正常倍率的主目标毒伤+抛光伤害。

现象参考:https://bbs.nga.cn/read.php?tid=20554606</ref>

伤害计算

计算顺序(从上到下)
数据类型 计算方式 描述举例 叠加算法
面板伤害 直接加算 技能 快速射击.png“攻击速度+100” X1=(X+a1+a2)
直接乘算 技能 战术的终结.png“攻击力+180%” X2=X1(1+b1%+b2%)
最终加算 技能 战斗之歌.png“攻击范围内所有其他友方单位的攻击力额外加上空自身攻击力的100%” X3=(X2+c1+c2)
最终乘算 技能 跃空锤.png“攻击时攻击力提高至380%”

技能 爆破回收.png“爆炸时对周围敌人造成相当于梅尔攻击力600%的法术伤害”

X4=X3*d1%*d2%
敌方抗性 直接加算 技能 炎爆.png“命中目标在3秒内防御力-300” Y1=(Y+a1+a2)
直接乘算 Y2=Y1(1+b1%+b2%)
最终加算 技能 延时震荡零件.png“并在3秒内使目标攻击速度-20” Y3=(Y2+c1+c2)
最终乘算 技能 寸劲.png“并使被攻击目标在3秒内攻击力-40%” Y4=Y3*(1+d1%)*(1+d2%)
最终效果 直接加算 相加
直接乘算 头像 巫恋 2.png“受到伤害提高33%” 百分比相加
最终加算 相加
最终乘算 相乘

显示算法

明日方舟里,伤害在实际计算时均保留小数取精确值,只有在显示时四舍五入至整数位
在计算之前,先复习一下攻击buff的种类:
A为面板攻击buff(词缀为+X%攻击),所有同类型buff为加算
B为攻击倍率(词缀为造成相当于Y%攻击力的伤害)
C为最终攻击倍率(词缀为攻击力提升至Z%攻击力的伤害)
红字的计算过程:某个单位(敌我均可)造成伤害时,

  • 先计算A类buff后的面板攻击力,即“自身面板攻击力×(1+X%攻击)+友方面板攻击力×友方技能倍率”这一公式得出的结果,记为A
  • A的攻击力攻击敌方,在防御/法术抗性和抛光机制的影响下能够造成的伤害记为Xa
  • 再在A基础上考虑B、C类buff的加成,即“A×造成Y%伤害×攻击力提升至Z%”这一公式的计算结果,记为B
  • 最后引入降防/降抗和增伤buff,计算以B的攻击力对削弱后的目标造成的伤害、记为Xb
  • Xb>=1.5×Xa,则显示Xb的红字。
    • 目前红字没有下限,甚至因为0>=1.5*0,所以0也会显示红字。
      红字为0.png

如果这次本可以造成红字的伤害被闪避,则当次伤害以黄字MISS替代显示。

黄字MISS.png

最多同时出现10个红字,后生成的红字会顶替已生成的红字。

计算举例

黄字MISS.png

目前,非支援合约加成下的最大单次红字伤害为:PR-B-2中,格劳克斯在防空符文上打出的49940[作战记录 2]
计算过程:

  • A=格劳克斯的面板563*(1+不稳定血浆0.9+爆发剂·榴莲味0.5+天使的祝福0.08)+战斗之歌385=1781.24
Xa=A×(1-目标的法抗0)=1781.24。
  • B=A×防空符文对空倍率1.7×二技能对无人机技能倍率8=24224.864
Xb=B×钙质化1.55*虚弱化1.33×(1-目标的法抗0)=49939.55714
  • Xb>1.5×Xa,所以显示红字,最终显示结果为Xb进位后的49940。

目前,支援合约加成下有记录的最大单次红字伤害为:龙门 新街中,断罪者打出的126722[作战记录 3]
计算过程:

  • {[断罪者攻击力888*(1+阿榴莲针50%+华法琳血怒90%+诗怀雅天赋36%+近卫小车天赋20%)+(空攻击力385×(1+阿榴莲针50%+华法琳血怒90%))]×合约加成200%×伤害倍率800%-狂暴宿主士兵防御力200}×慑砂天赋116%×W天赋121%×巫恋天赋(1+(33%×一技能1.8))=126722.131

非支援合约加成下的最小单次非零红字伤害为:5-6中,刻俄柏打出的1[作战记录 4]
计算过程:

  • A=((220-高爆弹头210)*(1-碎甲箭-扩散0.35)*(1-聆听0.25)*(1-诅咒娃娃0.5))*刻俄柏剥壳0.4=0.975
Xa=A×(1-目标的法抗0)=0.975。
  • B=A
Xb=B×钙质化1.5*(1-目标的法抗0)=1.4625
  • Xb>1.5×Xa,所以显示红字,最终显示结果为Xb=退位后的1。

相关链接

理论参考:

实战参考:

行动与坐标相关

受力位移原理[理论参考 1]

受力位移计算方法
触发位移
  • 只有“失衡”状态下的单位才会作为刚体参照下述原则进行位移,“失衡”状态的进入需要单位受力>0。
  • 进入“失衡”状态后,单位会有0.1s的“失衡硬直”
  • “失衡”状态的维持需要满足以下几点条件:
    • 单位没有“失衡免疫”属性
    • 单位不是飞行单位
    • 单位速度≥0.1m/s或仍处于“失衡硬直”期间
  • 下面的讨论默认被讨论对象处于“失衡”状态
为了方便计算起见,下面的叙述会对游戏内的数值进行一些单位假设
环境模型
  • 所有计算在二维平面内进行,故可以将单位看作一个大小等于影子面积的圆
  • 所有的敌人视为质量为1kg的圆形刚体
  • 方格的边长为1m
  • 垂直于平面的重力加速度g=9.81kg/m·s^2
  • 平面的动摩擦因数μ=0.5
受力分析 力度对应表和目标的重量可以得到一个差值,这个差值设为受力等级(L)
推力 拉力
  • 作用时间:瞬间,可以直接视为目标得到了一个大小等于“实际受力×1s”的动量
  • 作用方向:推力的方向和大小会受目标位置的影响。
    目前,游戏内施加推力的技能,索敌方式都是从释放技能的干员开始,沿部署方向寻找目标,
    所以根据目标和干员、部署方向的关系可以将推力分为两种:
    • 当目标与干员的连线和部署方向的夹角大于45°,或目标与干员的距离小于0.25格时,目标受到“溅射型推力”
      方向为干员与目标的连线,受力等级L'=L-2
    • 在其他情况下,目标受到“径向型推力”
      方向为干员的部署方向,受力等级不变
  • 作用大小:力的列表值可以根据实际受力等级在游戏数据表中找到,实际受力大小=数据表值*0.01。
  • 作用时间:如果受力等级<-1,作用时间为0.5s,否则作用时间为1s
  • 作用方向:钩爪受到牵引的方向
  • 作用大小:力的列表值可以根据受力等级在游戏数据表中找到,初始受力大小F0=数据表值。
实际力的大小(N) 列表值 受力等级 列表值 实际力的大小(N)
0 0 ≤-3 0 0
1 100 -2 2 2
2 200 -1 10 10
4 400 0 40 40
4.5 450 1 42 42
5.3 530 2 44 44
5.8 580 3[注释 1] 46 46

由FΔt=mΔv可以计算出目标的初速度,之后目标在平面上做匀减速运动直到停止。

拉力的大小在运动过程中会不断的产生变化,在默认情况下,开始运动后t时刻的拉力大小为:
F(t)=F(0)*(x(t)/x(0))^4
其中,x0为当钩爪命中目标时,目标与干员的距离,x(t)则为t时刻时目标与干员的距离。

简而言之,对于可以被施加力(不处于失衡免疫,且力度足够)的单位,施加推力时受到瞬间的推力,施加拉力时受到持续拉向施力源的力,直到被其阻挡。

  1. L>3时按L=3计算

行动基本原理

敌人的行动由在起点坐标和终点坐标之间一系列“行动”和“停驻”的指令组成。

  • 敌人在起点坐标出现时,位于方格正中心,终点坐标的判定点是位于终点格中心的一个半径不大的圆。
  • “行动”指令会让当前目标沿路线移动到指定位置,有两个参数:“Position(位置)”和“ReachOffset(偏移量)”,确定好参数后当前目标便会根据SPFA寻路逻辑以自身移速向目标点移动。
    • “位置”参数是一组坐标,用于确定目标方格的位置。
    • “偏移量”参数也是一组坐标,用于确定目标点相对于格子中心的偏移量,也影响行进过程中的路线偏移。
      对于绝大部分移动这个参数都为零,可以忽略,但也有一些移动利用这个偏移量实现了“贴墙走”的效果。
    • 即使“行动”指令的目标点偏移量为零,在行动结束后目标的位置也不在方格正中心。
  • “停驻”指令的效果是让当前目标在当前坐标保持不动,只有一个参数“Time(时间)”。
    • “时间”参数是一个精确到小数点后一位的秒数,用于确定停驻时间。
无侵入点地图示例:2-9

大部分敌人的具体行动路线会在其将要出现在地图上,或者从停驻状态开始运动时,以红线(对于无人机是黄线)标识在地图上。

  • 因为空降兵可以降落在地图特定位置,无人机可以从地图外进场,所以侵入点并不是所有敌人的路线起点,而有些地图也确实没有侵入点。一般地,空降兵的红线会从其着陆位置开始。
  • 某些侵入点处可能不会生成任何敌人:于DM-MO-1中,右侧的所有敌人于原地生成,而非从侵入点出生再移动到右侧。
  • 一些不从侵入点出发而是直接出现在地图上的敌人在行动前可能不会有红线指示。
  • 绝大多数敌人的路线终点都是保护目标点,红线标注的也是实际运动路径,但红线本身并不与敌人相互绑定。
    • GT-1中有一名因为剧情需要回头报信的士兵,在一段时间的停顿后回到了侵入点,并被判定为成功拦截(防御点数不变,敌人处理数+1)。
    • DM-3中有三名萨卡兹穿刺手红线标注的终点是保护目标点,但实际终点却是保护目标点旁的地穴。
    • ISW-SP 锈锤之战中,如果在某一名或多名敌人行动前先将其杀死,那么在到达其应有的行动时间点时,对应其行动的红线依然会显示在地图上。

特殊地块机制

传送行动的本质[1]:敌人进入传送通道入口判定点→进入停驻+隐形状态(与干员无法攻击但视觉可见的隐匿状态区分)→停驻一定时间→瞬移至通道出口处并继续行动。

  • 敌人行动进入停驻+隐形状态时,判定模型依然存在于传送入口的位置
隐身前锁定其为目标的攻击不会丢失,在7月9日修复前,位移能使其强制显形[理论参考 2],显形后不会重新隐形。
  • 停驻+隐形状态下不会被阻挡,无法被选中为目标,不会执行“返航”指令(见下文“行动受阻的处理机制”一节),也不会主动攻击。
如果在被阻挡时进入隐形状态,也会立即停止攻击并解除阻挡状态。

如果传送门之间距离过短,停留时间过短,这一段位移可被“正比于距离的真实伤害”识别并造成伤害。于7月9日的修复后,在0.066秒(2帧)内的位移超过4格时,这段位移将不会被识别。
地穴地块:任何判定点被判定为进入地穴方块的敌人都会被立即判定为死亡。

  • 判定为死亡后,任何以其为目标的攻击都会无效,自然包括攻击带来的位移、眩晕等附加效应,所以这也是龙门市区剿灭空降兵原理上无法被救出的原因[作战记录 1]
  • 地穴的即死判定是只要识别立即触发的,所以不存在“由于位移力度过大导致敌人飞跃地穴”的情况。
  • 地穴与SP回复:第六章修改

进入不可通行地块时的处理机制

进入不可通行地块包括进入可攻击地形、进入受阻地形两种情况。

  • 可攻击地形包括箱子,显影装置等可以被敌方近战单位攻击的地形。
    • 由于触发敌人近战攻击的原因是“阻挡优先索敌”机制,故尚未或无法被阻挡的单位不会攻击这些地形。
    • 箱子可以认为是一个血量为100,防御为0的单位,但因为敌方单位最低攻击也有130,所以会被任何它阻挡的敌人的一次攻击干掉。
    • 显影装置可以认为是一个无敌的单位,被它阻挡的敌人将会持续试图攻击它,直到脱离阻挡或者被干掉为止[作战记录 2]
  • 受阻地形,指其他对敌方单位的行动有阻挡效应的地形,包括地图中的各种高地、栏杆、提前进入的传送通道、控制终端[作战记录 3]、震撼装置等地形都属于受阻地形。
    • 当敌人进入受阻地形时,会被给予一个立即执行的“返航”指令:缓慢移动到最近的可通行地形上。
    • “返航”指令执行期间会按顺序覆盖掉原有行动的指令轴,返航完成后会继续通过寻路逻辑完成未被覆盖的指令。
      覆盖量基于返航操作所用时间计算,如返航操作持续了15s,那么就会覆盖掉15s的停驻时间。
      如果一次停驻时间不足就按顺序继续覆盖,直到完成覆盖或停驻时间用尽为止。
      由于“行动”指令是否结束不是根据时间判断,所以持续时间视为零,遇到了就会立即被覆盖。
    • 如果返航后发现没有能够前往下一个目标点的可用路径,将会继续处于偏航状态并停止所有动作[1]

举例:1-12的W[1]

1-12的W的开头部分行动
操作序号 0 1 2 3 4 5 6 7
行动类型 行动 行动 停驻 行动 行动 停驻 行动 行动
相应参数 (0,5) (1,5) (15.0s) (1,6) (2,6) (35.0s) (5,6) (7,6)
备注 此点为侵入点 此时W进入传送通道
同时被附加隐形状态
此时W走出传送通道

如果在不同的时间段将W推入附近的受阻地形,则会分别有以下效果:

  • 在第一次停驻(操作2)结束前的任意时间将W推入受阻地形,停驻时间内放出:
W会在原地停留至停驻时间结束后继续运动。(操作1将被跳过)
  • 保证第一次停驻(操作2)结束后W仍然在停驻状态,第二次停驻(操作5)开始前放出:
W会立即原地隐身(操作3、4将被跳过),在第二次停驻结束后瞬移至(5,6)。
  • 保证第二次停驻(操作5)开始前W仍然被我方干员阻挡在停驻状态:
W会立即停止移动,原地进入隐形状态,我方干员也不会继续阻挡W。在隐形状态被强制打断后W才会继续返航指令。

碰撞体积与位置识别[理论参考 3]

  • 我方干员碰撞体积基本均为以0.25格为半径的圆形。在2020-6-2的修复前,伊芙利特的碰撞体积为半径为0.1格的圆形,这使得她可以在H7-4中间的高台上与爱国者二阶段面对面而不被爱国者攻击。
  • 干员阻挡任何从其他方格进来的敌人时,敌人停止时二者碰撞箱并不紧密接触,敌方的碰撞箱并不在我方干员的格子内。
远程干员由于没有“优先攻击阻挡单位”的特性,不会优先攻击被自己阻挡的单位。如果该敌人被阻挡在远程干员的背后(或者被射程不包含自身所在位置的早露阻挡),该干员将对这名敌人无动于衷。
位移特种干员的位移操作只会将自己攻击范围内的敌人识别为目标,从其他方向过来的敌人虽然并不在攻击范围内。
但由于阻挡的仇恨机制会触发位移干员的攻击,此时位移干员的自动触发位移技能就会出现“反复释放但不造成伤害”的现象。
  • 向一个已经有敌人的格子空降干员时,敌人会强行移到到圆形外,移动方向为以干员圆心为起点,连接敌方干员中心点方向的一条射线。
位于方格正中心的的敌人,在空降时不会移动。由于行动机制,这种情况只发生于在起点停顿的敌人。
在其他情况下,只有当这种位移现象发生时,敌我碰撞箱才紧密接触。
  • 敌方单位的远程攻击判定点是自己影子的中心为起始点,我方单位的远程攻击判定点则是干员的碰撞箱。
当远程攻击判定点进入对方的攻击范围时,就会遭到对方的远程攻击。
  • 当多名敌人被同一名挡多干员阻挡时,第二名开始的敌人的碰撞箱会向行进方向的两侧进行微小偏移
于龙门外环右下拐角处部署一名挡三单位时,第三名被其阻挡的敌人会由于这个微小偏移量碰到相邻的地穴,从而判定为坠落死亡。

弑君者的位移机制[作战记录 4]

弑君者的瞬移操作机制:当弑君者被阻挡时,

  • 首先判断当前指令是否是“行动”和技能CD是否冷却完成,
  • 然后判断自己判定点与当前行动指令目标点连线上,距自己1.5格的地方是否为不可通行地块。
  • 如果上面三条都满足瞬移要求,则向当前行动指令目标点连线方向移动1.5格,并短暂的进入不可被阻挡状态。
    瞬移没有前摇,过程持续15帧,并有10帧的后摇,期间无敌。
  • 弑君者瞬移操作如果需要跳过自己下一个停驻点所在的地块,则会同时跳过停驻操作[理论参考 4]

相关链接

理论参考:

实战参考:


代理运行与判定机制

代理失误的可能原因

干员能力提升

录制代理后影响代理的主要元凶,各个方面的提升(等级、技能等级、信赖等)均可以导致升级后代理翻车,其共同点是在干员能力提升后,出现了相应的衍生事件,对原代理的某个或某些次级时间轴产生了扰乱。这些情况包括并且不局限于:
  • 干员精英化1级至少增加的2点部署费用,导致原本卡费部署的干员在升级后出现部署费用不足,一些卡点下人的操作无法准时复现,因此推迟整个操作时间轴。
  • 本来由撤回先锋完成的杀敌回费,由于周边干员攻击力提升从而被抢了人头,收不到应有的费用,导致部署费用不足。
  • 人口排满时,代理储存的干员死亡后在其他位置部署,而在干员能力提升后不会死亡,而又没有对其施加撤退指令。此时就会因为人口部署已满而无法部署另一处的干员。
    • 举例:对于史尔特尔,精二后低等级使用3技能的代理,在等级提高后生命值上限也会提高,其自然流血速度可能会与治疗量出现不匹配。
  • 提升自动触发技能的等级,SP需求降低(例如拉普兰德的狼魂、能天使的过载模式等),或者提升SP供应相关天赋或技能(阿米娅天赋、塞雷娅的二技能专精)导致自动技能轴与战局不对齐
  • 技能提升导致的效果提升:包括含拉力/推力干员在提升技能后造成的力度变化。
  • 过早杀死作为阻挡/攻击/受击回复SP来源的敌人,从而缺少SP无法准时开启技能。
    • 举例:从0开始积攒SP,原本需要攻击12次充满并刚好杀死目标,提升攻击力后只需10次即杀死目标,从而无法启动技能。对于森蚺这种阻挡回复SP的干员而言,提早杀死目标导致的SP缺失可能会更严重。
  • 技能升级只增加持续时间,而不减少SP需求时,连续卡点释放技能造成的误差累积
  • 需要特定单位激活地图装置的场合,干员或召唤物的排布与回收不对应战况,导致地图装置未能正确激活。
  • 过早击杀关键节点的敌人(爱国者一阶段、剿灭节点敌人)导致下一波提前来临,或者未能控制某特定敌人的击杀位置导致非预期结果。
    • 举例:提早击杀还在移动中的冬灵血巫,可能会使其死亡自爆影响到不该被影响的留声机,提早击破“巨大的丑东西”造成的自爆可能会眩晕本不该被眩晕的单位。
  • 过早清理阻挡位,从而导致原计划中需要利用阻挡饱和而放过去的敌人,在提前清理阻挡位后反而将其挡住。
  • 随机天赋的提升或新获得改变代理判定(如精二陈的第二天赋进行的大量闪避判定)或改变索敌方式。
  • 更换皮肤导致的弹道延迟差异:初见于安洁莉娜皮肤“质素访客”上,由于法杖顶端位置与原皮肤的位置差距,导致新皮肤对于距离自己近的目标,其弹道飞行时间比原皮肤少一帧(远端则是多1帧)[理论参考 1]。此外白金的皮肤也出现了类似的状况。
解决办法:重打。

丢帧

经大量测试,明日方舟一般情况下是以帧为单位判断攻击动作,技能的冷却等操作的,因此如果由于各种原因(常见的问题如手机或电脑模拟器性能问题导致的丢帧),使得游戏在运行时无法在一倍速模式下维持30帧每秒的帧率,则会导致丢帧现象的发生,可能导致某些效果释放失败,扰乱时间轴,严重者可导致代理失败。举例就是,一倍速下进行的操作,在二倍速运行的代理中就可能因为丢帧翻车。
当代理作战在二倍速模式下播放时,为了防止丢帧问题,需要游戏稳定维持60帧每秒的帧率,自然对设备性能提出了更高的要求,这种情况下的丢帧现象也更为常见。通常说的代理偶尔失败在排除上述情况之后一般原因都是设备性能波动引起的。在一些需要极限操作的作战记录里丢帧的影响可以非常大
解决办法:要么保持一倍速,要么修改作战记录以留出更大的容错空间。

版本更新

1.霜星有关的代理上:4-10、6-16、H6-4,也就是部分玩家抱怨的“4-10因为掀地板不能稳定代理”。
这两个关卡的代理,霜星的掀地板是可以稳定保存的,除非干员能力过度提升导致整个战局发生了肉眼可见的变化(比如原代理霜星死在第二行,提升后反而死在了第一行)而版本更新由于需要重新下包安装,代理过程的种子会改变,从而导致霜星掀地板的位置变化,新的代理可能会掀掉关键位置的干员而翻车,又或者不会掀掉关键位置的干员从而卡住部署人口。
2.关卡5-10,在第六章更新后由于敌人技能释放优先级和sp回复方式【待验证】的改变,5-10浮士德的攻击次序由原先的每5动1紫箭,变为了现在的每4动1紫箭,从通道口出来第一箭也变成了紫箭,这使得快速复活吃箭的代理在再部署时间上非常吃紧,或者由于练度不够导致一些干员无法吃箭。
解决办法:如果你需要去这些关卡刷素材,每次版本更新的时候去验证代理。

玩家操作的代理原理[理论参考 2]

代理指挥复制玩家操作的工作原理是:

  • 将最后一次保存代理时的全部手动操作(部署、撤退、手动技能、手动装置)保存为按帧排列的序列,并在代理运作时复现。
  • 如果如果出于某种原因(见“容易出现代理失误的情形”章节),其中部分操作无法复现,就会将所有无法复现的操作按顺序放入存储序列,并在任何条件变化时扫描整个存储序列,执行任何可以完成的操作。


条件变化包括:费用变化,部署人数变化,存储序列变化等。两次扫描之间间隔为一帧。

  • 如果同时有多个操作满足复现条件,则会按顺序在一帧之内复现。


由于“复现”本身也使存储序列发生了变化,所以任何操作复现完成后的下一帧也会重新扫描并更新存储序列。

  • 只要存储序列不为空,就会出现黄色标注:“检测到失误风险”
  • 只要在代理期间出现敌人进入保护目标点导致防御点数减少,无论是否出现过黄色标注,都会出现红色标注:“代理指挥已出现失误,请求人工接管作战”。所以代理完全复刻了你的手动操作,而前脚代理正常运行,后脚代理报红的现象是完全可能的。出现此情形时请向上翻阅“代理失误的可能原因”。

举例

这一操作的目标是利用代理作战,使得红使用两帧完成部署和撤离。
第一步:设计并调整行动序列:

某次LS-4代理作战行动部分序列
行动序号 1 2 3 4 5 …… 12 13 14 15 16 17 ……
行动内容 部署红豆 部署蓝毒 部署空 部署凛冬 红豆阵亡 …… 部署巡林者 空使用技能 部署近卫小车 部署红 撤退巡林者 撤退红 ……
剩余部署位数量 8→7 7→6 6→5 5→4 4→5 …… 2→1 - - 1→0 0→1 1→2 ……

并且通过手动代理的方式,将撤退红(行动17)的时间调整到撤退巡林者(操作16)的两帧之后。 第二步:提升红豆练度,使红豆避免阵亡,此时代理序列变成了:

某次LS-4代理作战行动部分序列
行动序号 1 2 3 4 …… 11 12 13 14 14 15 16 ……
行动内容 部署红豆 部署蓝毒 部署空 部署凛冬 …… 部署巡林者 空使用技能 部署近卫小车 部署红 撤退巡林者 部署红 撤退红 ……
剩余部署位数量 8→7 7→6 6→5 5→4 …… 1→0 - - 0→-1 0→1 1→0 1→2 ……

原本的第14步操作“部署红”由于部署位不足无法复现,被放在了存储序列里,而当“撤退巡林者”这一操作执行后,“部署红”满足了操作条件,所以在巡林者撤退的下一帧被部署。
由于原本“撤退巡林者”和“撤退红”之间只相隔一帧,所以当“部署红”移到这一帧后,代理的结果就是红在两帧之内完成了部署-释放狼群-撤退的效果,从视觉上表现为一帧秒杀虫群。

原理参考:https://www.bilibili.com/video/BV1bE411X7fW?p=1

随机事件的代理原理[理论参考 3]

  • 每次开始作战的时候会产生一个不同的随机数序列,而如果一次作战被保存为了代理作战,这个序列也会被随之保存下来。
换句话说,这次代理作战的任何衍生作战(代理中途取消代理手动操作)也都使用这个随机数序列。
  • 这个序列会被用于所有作战时进行概率事件的判定并在代理运作时复现。

目前可以确定使用随机数序列的概率事件包括[注释 1]

  • 所有的闪避类判定
  • 所有的暴击类判定
  • 艾雅法拉的乱火
  • 华法琳的血怒的随机对象选择
  • 能天使的“天使的祝福”随机对象选择
  • 霜星的“掀地板”判定(在无任何(包括霜星攻击我方干员)外界干扰(也就是一路不接敌走过去)的情况下)
  • 阿的四选一攻击效果判定
  • 雷蛇/华法琳的充电对象选择
  • 空的安可天赋
  • W的惊吓盒子地砖选择
  1. 已经过验证

举例

在进入代理并手动接管后,我们得到了一个随机数字序列,为了方便起见我们假设其为1-100范围内的随机整数,在某次实际通关过程中它的结果可能是这样的:
目前没有证据表明游戏内数值完全按照下述方法生成和判定,但根据目前测试本方法得到的结论和游戏内效果表现一致。

计次 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
随机数(X%) 17 47 86 3 93 2 81 96 4 50 70 95 10 18 36 12 9 33 6 49 6 79 46 13 25 33 7 20 94 76 99 81 10 15 7
伊桑-特性闪避
(X%≤50%)
Y Y N Y N Y N N Y N N N Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y N N N N Y Y Y
红-处决模式闪避
(X%≤40%)
Y N N Y N Y N N Y N N N Y Y Y Y Y Y Y N Y N N Y Y Y Y Y N N N N Y Y Y
伊桑-天赋缠绕
(X%≤25%)
Y N N Y N Y N N Y N N N Y Y N Y Y N Y N Y N N Y Y N Y Y N N N N Y Y Y
槐琥-天赋击退
(X%≤20%)
Y N N Y N Y N N Y N N N Y Y N Y Y N Y N Y N N Y N N Y Y N N N N Y Y Y
断罪者-断罪
(X%≤5%)
N N N Y N Y N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N

注意,这里的判定结果随机数序列虽然无法精确测出,但也不会因为接管了代理而变化,可以利用代理时携带的干员测试得到大概区间范围。

如果我们想实现某位干员的某种随机效果连续生效的效果,需要首先把这次代理的随机数序列测出来,然后选择一段离要求较近的随机数区间,最后利用其他干员将不满足条件的随机数用掉即可。

实例一:[作战记录 1]
我们假设想要实现12F每次闪避成功率50%的十五连闪,需要在上述序列中找到一个接近成功的序列,即第13次开始的标红序列:

计次 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
随机数(X%) 10 18 36 12 9 33 6 49 6 79 46 13 25 33 7 20
12F-天赋闪避
(X%≤50%)
Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y

在测试完成后手动代理,在触发12次概率判定后启动的技能,并在攻击9次之后用其他干员触发一次闪避判定,所有的12F闪避都会被判定成功。

由于的十五连击速度为每帧一次攻击,所以某影视剧中的名台词“他的招式一共有72帧,而破绽就出现在第42帧上”确实出现在了实践中

三拳打死梅菲斯特,就需要这三拳全部触发5%概率触发的800%伤害效果。经过和上面类似的过程后我们决定取第4次开始的标蓝序列:

计次 4 5 6 7 8 9
随机数(X%) 3 93 2 81 96 4
断罪者-断罪
(X%≤5%)
Y N Y N N Y

将第5、7、8次闪避判定用其他干员用掉即可达到效果。

理论参考:https://www.bilibili.com/video/BV1KZ4y1j7hS

相关链接

理论参考:

实战参考: