您尚未登录,请登录后浏览更多内容! 登录 | 注册并了解

QQ登录

只需一步,快速开始

 找回密码
 注册并了解

QQ登录

只需一步,快速开始

查看: 1140|回复: 0
打印 上一主题 下一主题
收起左侧

冲锋的技巧--关于冲锋寻路机制的测试报告

[复制链接]
跳转到指定楼层
楼主
发表于 2019-2-22 15:47:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天和众多大佬讨论时对翻滚的寻路机制产生了兴趣,于是花了一整天测试出了其规律,并且得知翻滚和冲锋机制类似,因此也顺便测试总结了冲锋的寻路机制
对翻滚有兴趣的话详见此贴:翻滚的奥秘--关于翻滚寻路机制的测试报告


先放结论,冲锋的寻路机制如下:

1.首先对目标地点进行判定,目标地点即鼠标位置。如果目标地点为不可到达之处(即这个位置上有障碍物,不能完整的站下一个人,还有地图外面也算是不可到达之处),则寻路失败,跳过步骤2,直接进入步骤3;如果目标地点是可以到达的地方(可以完整的站下一个人),则继续下一步

2.尝试寻找一切通向目标地点并且路程小于最大路径长度的可能路径,这个最大路径长度约为100码或略小于2倍的普通冲锋最大距离(无法精确测量,所以只是个估计值),如果找不到,则寻路失败,执行步骤3;如果找到了路径,则选择沿着其中最短的一条前进,前进距离略小于普通冲锋最大距离(估测50码左右)

3.寻路失败的处理方法是不会尝试绕路,而是尝试尽量以直线向着目标地点前进,直至能够到达的距离目标最近的地方,直线方向如果被挡住则会沿着障碍物侧向移动

4.即使先前寻路失败了,在冲锋过程中也仍会持续进行步骤2,不断尝试寻找从即时的新位置通向目标地点的可能路径,目标地点仍为原来的地点不变。如果寻路成功,则会立刻变向,沿着最短路径前进,但是总的冲锋距离不会变


下面会用图文并茂的方式详述,来说明以上大部分结论,没有说明到的小部分结论并不是没有做过验证,而只是没有专门做图,因此不在这里说明而已
图中所有的红圈都代表目标地点
另外,虽然演示只利用了这块地形,但是实际测试时在其他包括a3军营等复杂地形中都验证通过了,因此不用怀疑地形的特殊性

首先说明目标是否不可到达会最先影响寻路的成败。以下两次实验站的起始点位置相同,第一次的目标地点比第二次还远,结果却是第一次寻路成功,第二次寻路失败,原因就在于第一次的目标地点是空地,而第二次的目标地点是障碍物,不可到达




然后说明目标地点确实是鼠标位置,注意这里测试时尝试过各种位置关系,最后得出结论目标地点就是以鼠标位置为基准




然后说明寻路对路程长度有个限制以及对这个限制大致的测量
先站在围墙边缘,鼠标拉到最远端,做出一次最远距离的普通冲锋,然后从这里向围墙对面目标地点冲锋,由于路径长度大于100码,寻路失败,撞墙



再从刚才位置退回来一步,做同样尝试,还是太远,寻路失败


再往后退一步,这次距离够了,寻路成功。根据这里反复尝试后得出的极限位置判断,最大路径长度大约是2个寻路冲锋的距离或者是100码,其中更有可能的是作为一个整数的100码,而且和另一边翻滚的结论也恰好相符,这和由数据挖掘得知的翻滚和冲锋用的是同一种寻路机制这点也吻合


接下来这组图片说明的是寻路的方向是360度全方位的,寻路成功甚至可以向反方向冲锋,同时在另一个地形再次验证了最大路径长度的推断
首先选择贴墙位置为目标,在最大路径长度之内,寻路成功,反向冲锋


然后选择离墙有一段距离的目标地点,超出最大路径长度,寻路失败,撞墙


然后用这两个例子说明一下寻路成功的冲锋距离略小于一个普通冲锋的最大距离,同时这也是楼主发现寻路失败的冲锋过程中仍会继续尝试寻路的契机
第一次目标地点为墙角,超出冲锋最大距离,普通冲锋在到达之前就停下了
第二次目标地点为墙外,冲到一半寻路成功,变个方向冲一段就停下了,可以看到总距离略小于普通冲锋




最后用一个折线冲锋的例子再次说明一下寻路的过程,以及验证冲锋过程中仍会保持寻路这一点
如图,一开始目标位置虽然是可以到达的地形,但是超出最大路径长度,寻路失败,结果是直线前进
前进一小段距离后目标地点进入射程,寻路成功,于是变向,沿最短路径前进






寻路机制的应用:
平时速刷跑酷时,冲锋的时候尽量保持鼠标位置是空地,这样就更有可能触发寻路,自动绕过中小型障碍物
而更重要的则是反过来应用,让寻路失败,就可以实现原地撞墙,在某些地形战斗时可能效果比直接点想撞的墙还好,以下用一些例子来说明

这个地形,如果鼠标位置在空地处,必然会寻路成功,绕门过去

其实鼠标位置放在对面墙上就可以导致寻路失败,原地撞墙,当然如果熟练的话直接点面前的墙也很稳

这个地形,如果鼠标放在绿圈空地处,即可寻路成功,冲锋会自动绕路过去;如果鼠标放在红圈障碍物处,则会寻路失败,实现原地撞墙

这个地形,绿圈看似是墙,其实是墙对面的空地,鼠标放在绿圈就会寻路成功,冲锋会绕门而过,想要原地撞墙必须点的更近一点。实际上有个更稳的做法,就是鼠标放在对面的沟里,寻路失败,轻松撞墙

还有很多细小的地形或物体,看似很难实现撞墙,实际上知道寻路原理后就很简单了
例如这是a3钥匙怪图门口的楼梯,鼠标放在地图外面红圈处

楼梯上面也可以,鼠标放在对面的障碍物上

a3家里这堵墙也很容易,鼠标放在对面铁匠铺

连自己的储物箱都可以撞,鼠标放在对面的墙上


那么是不是所有物体都能实现原地撞呢?答案是否定的,由于第3条规则,即使寻路失败,冲锋也会沿着表面侧向滑动,如果物体模型表面比较圆的话,必然就会滑过去。例如各种祭坛,实际模型应该接近圆形,无论如何都会滑过去。只有像上面这个例子中的储物箱这种有比较平直的表面的物体才有可能阻挡住自己,实现原地冲锋


与我深入讨论解决问题 加微信:1093042561 回复 “问题”

评分

参与人数 1声望 +10 收起 理由
卡若 + 10

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对 订阅订阅
您需要登录后才可以回帖 登录 | 注册并了解

本版积分规则

       
    闽ICP备18004340号-3

GMT+8, 2024-5-6 04:05 , Processed in 0.397577 second(s), 46 queries .

返回顶部