您当前的位置: 首页 生活 > > 正文

对方舟阻挡机制的完整解释

2023-08-12 11:05:48 来源:哔哩哔哩 分享到:

本文将详细解释明日方舟与阻挡相关的机制。

阻挡半径

众所周知,在明日方舟中,干员的受击判定区域是一个半径的圆,而敌人的受击判定区域是一个半径的圆,物理碰撞箱是一个宽高向下偏移的胶囊型碰撞箱。但是,这些和阻挡机制,都没有任何关系。

阻挡机制使用的是一个被称作阻挡半径的东西,这个东西只存在于角色类单位(包括干员,召唤物,关卡装置等)身上。


(资料图片)

对于所有的干员和召唤物,阻挡半径都是,也就是√2,一个边长为1的正方形的对角线的一半。部分装置可能会有不同的阻挡半径,具体的可以在上查到。

当某个角色的中点,和敌人的中点,之间的距离小于等于这个角色的阻挡半径时,这个敌人就可以判定为被阻挡。

角色类单位每3帧扫描阻挡半径内未被阻挡的敌人,判定一次是否可阻挡。同时有多个可被阻挡的敌人时,优先阻挡距离自身中心最近的敌人。

阻挡偏移

在部分情况下,阻挡会使被阻挡的敌人的位置产生偏移,这个现象非常容易在游戏中被观察到。下面将详细介绍阻挡偏移的规则。

阻挡偏移的产生需要一个前提条件:敌人B的中点与阻挡ta的单位A的中点不重合(距离>)。否则阻挡偏移不会产生(例如5-3开局的术士)

只阻挡一个敌人时,阻挡偏移的逻辑相当简单:如果角色A到敌人B的向量AB长度不足,则延其方向将长度延长到(即AC)。

阻挡多个敌人时,阻挡偏移的逻辑会变得复杂。在执行完长度延长操作后,所得到的向量记作AC。

若C点半径范围内存在其它已被A阻挡的敌人,则遍历除C外所有已被A阻挡的敌人(记作Dn),对每个敌人,按以下逻辑记录一个修正向量:

1. 若DnC长度<,则将ADn绕A点顺时针旋转90度,标准化(方向不变,长度变为1)后,累加至修正向量中。

2. 若<=DnC长度<,则取 (长度) * 50 * 标准化后的DnC,累加至修正向量中。

3. 若DnC长度>=,无事发生。

遍历完所有敌人,得到累加的修正向量后,将修正向量的长度改为,并与向量AC相加,得到的向量记作AE。最后将AE的长度设置为AC的长度,得到向量AF。

F点即敌人B被阻挡后移动到的位置,BF即俗称的阻挡偏移。敌人B会在内强制移动到F点。

F点的位置会被记录,作为敌人B的稳定阻挡位置。A再阻挡其它敌人,进行阻挡偏移的计算时,获取敌人B的位置会获取为F(即上文中的Dn均为其它敌人的稳定阻挡位置)

利用阻挡偏移,可以将免疫失衡的敌人入坑。例如这个视频利用阻挡偏移实现了蔓德拉的入坑。(海沫入坑这种主要与移动惯性相关,和阻挡偏移关系不大)

关键词:

x 广告

Copyright   2015-2022 每日超市网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com