当前位置:   article > 正文

unity物体添加刚体发生碰撞后不会下落_「明日方舟」攻击范围、碰撞体积与阻挡...

白绮_official

文丨藤原白绮@bigfun社区

注,本文具有时效性


早露出来的时候啊,总有人问我,诶呀,早露的攻击范围包不包括她自身那格啊

经过我的一番调查,结果非常的amazing啊,早露是全游戏第一个攻击范围不包括自身的角色

你们看到的攻击范围是这样子的

4d87ca086ed175e2408ab772c2b80868.png

实际攻击范围是这样子的

8fee7e055ec1eefbad5dcc69043503e2.png

通过查阅2112行,高达26.8KB的代码,还有小学二年级我们就学过的row和col的横行竖列的规律,我们可以总结出以下的范围

感兴趣的同学可以去这个网站看看#链接地址

最中间的叉叉表示实体自身,而早露是唯一一个范围没有包含自身的实体

(图大慎点)

9d68bdf5f1a93c6869918accc55c6b07.png

那有的小伙伴会问,你这3-7,明明就是真银斩啊,你这y-4,明明就是反重力啊,为什么写暂无呢?

因为干员模板里并没有直接写技能的范围,技能的范围在技能相关的模板里(废话),不过不知道为什么,原始冰晶和干扰装置还有原始流发生装置等等均和干员写在一起

那还有的小伙伴会问,你这怎么3-4和3-15一毛一样啊,这不是瞎搞呢么?

那是因为,我也不知道为什么,YJ就是这样写的,一毛一样,而且没有3-15的调用,不信的同学自己去上面链接看看

好的今天的课程就到这里,我们下期再见


那有的同学比较喜欢思考,抓住我问,诶呀,白绮,你这太麻烦了,直接摆在地上背面朝敌,看对面过来自己打不打不就完事了

可是远程干员在地上阻挡别人时,是不会攻击的

63f5bb355d1aa2dd4250099e7d3f0425.png

赫墨:你俩在干什么啊,快打啊,都打死四个了,身后这两还不打嘛

但是近战角色却会打后面

f3055a3781b152087536c59faebb3f59.png

这种事情要怎么解释呢?

有的人说啊,近战干员的范围是闭区间,而远程干员的范围是开区间

这里盗用近卫局长_blast鱿鱼的视频截图

bcc6de9978ef7898a7db57247aef38cf.png

“开区间”学说没法解释这种龙黑同时输出的情况

那还有的人会说,这是因为近战位(melee)和远程位(ranged)不一样啊,干员范围肯定是闭区间,这样才能龙黑一起打,近战位之所以会攻击背后的,是因为他阻挡了敌人

这就有点摸到正确答案了

再接下来,我要介绍一个概念,碰撞箱(Collider)

在unity中啊,你所看到的干员小人都是刚体 (Rigidbody),倘若两个刚体碰撞,那么这两个刚体会互相穿过,视觉上看上去就会穿模

13b121a390769451ccd1cb8e1d3be424.png

希望地板没事

为了不想让他碰在一起,就得加碰撞箱。minecraft玩家可能比较清楚,F3+B能看到的到碰撞箱

065a9aaed5809c23cb7a642560004b9a.png

而在明日方舟中,干员也是有碰撞箱的,半径未知,其中伊芙利特最为特殊,比其他人小一圈,原因不明,但是很快(指开服13月后)被修复了

1f91dcb88028fb9131c48237c9d95ecb.png

而敌人的攻击方式是从自己脚底下的正中心,向外扩出范围,只要你的碰撞箱进入了范围,就会被打

97d4b1a2abb3b4ceee39d1716145cf2a.png

比如右边的大圆代表敌方术士攻击范围,那么除了最外面的打不到以外,其余两个都会被打到,而中间的同心圆中的小圆代表伊芙利特,由于判定范围较小,不会被打到

而自己干员攻击逻辑是敌方的正中心,敌进入了范围才会开始攻击

2b077d6e3d0d9dd6669a3f36bf937b7b.png

比如图上只有最左边的敌人才会被打到

至于强行挤开,则是沿着连线方向推开

ebec8381b2557b0fec48896c1297f088.png

敌人会在碰到干员前,就在干员前一个格子停下,被阻挡,而不会进入那个格子

倘若用的是强行挤开的话,结果又会怎样呢?

一通实验猛如虎啊,结果非常的amazing,敌人的位置判定就会进入一个薛定谔状态同时具有两格的判定

比如下图,通过让赫墨强行挤源氏虫,使得克洛斯能够攻击到虫子

de7e4f63c8f791aa105c12a9f529ffc4.png

不光如此,判定还会兼具两格

b5906860b1f738cef86ec5145b48645b.png

你可以用这个手法来试试投降先锋强挤反隐兵的操作

2a53cf5bfdad511f4a1f2df6b93052ec.png

打开3-3,卡位置下极境,开技能,进洞

通过以上几个案例,我们可以总结出如下几点

1,干员都有碰撞箱,半径未知

2,敌我攻击逻辑不一样,我方一进入敌方范围就会被攻击,敌方的正中心需要进入我方范围才会被攻击

3,敌方被阻挡的时候会在前一格停下

4,通过强行挤开,我们能够让敌人进入薛定谔状态,能够让敌人位置同占两格

4.1,第四点不包括斜向等特殊情况,特殊情况有待实验


那有的同学又会说,白绮你讲了这么多,这都是远程干员,那近按战干员呢?照这个说法,我丢个塞雷亚,照你的第三种说法,虫子在被阻挡停下,按照第二种说法,虫子的中心在前一格,这不是打不到嘛。那为啥塞雷亚可以攻击?

这就不得不提小学二年级学过的目标选择器(Selector)

众所周知啊,干员都是先打离蓝门进的,无论敌人转圈圈转的多鬼畜(旋 转 木 马)

但是我们也知道,有些干员索敌逻辑不一样,比如对空狙,只要脸上有个肉的一批的寒霜,哪怕底下有个丝血原石虫他都不会管。

干员每次攻击,都会寻找攻击范围内权重最高的单位攻击,例如守林人找最脆的,史都华德找防御高的等等,为了不引起争议,这类权重往往拉的很大,和其他的尽量岔开一两个数量级

而近战位,干员都比远程位多了个被阻挡(Blocked)

目标选择器也只是把攻击范围里的目标一个个拿出来,判断哪个优先打。而这个玩意,即使敌人不在你的攻击范围里,近战干员也还是能打,而且优先级是最高的,因此也就是表现为近战位会攻击面前的敌人,而群卫也只是很简单的攻击数=阻挡数(limitedMaxTargerNumToBlockedCnt=True),描述却被YJ写的很复杂(同时攻击阻挡的所有敌人)……


引用文献

〔1〕Kengxxiao.明日方舟游戏数据〔DB/OL〕.2020-06-09

〔2〕近卫局长_blast鱿鱼.【干员评测 莫斯提马】〔Z/OL〕.2020-06-13

〔3〕StoneH_〔Z/OL〕.挤 你 实 在 是 台 没 Version 2.0.2019-11-08

〔4〕【明日方舟】运营组.[明日方舟]06月02日10:00版本更新停机维护公告〔EB/OL〕.2020-06-01

〔5〕Unity Technologies.《Unity5.x从入门到精通》 [M].中国铁道出版社.2015-11

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/89519
推荐阅读
相关标签
  

闽ICP备14008679号