本文作者凯恩之角 nyningyu
时下仙塞最热的话题就是 - 档位,“今天你上档了吗”成为了最流行的问候语。一个D3术语竟能引得无数英雄竞折腰,究竟什么是档位?营地档位大师给出的绝对精确的神奇公式又是怎么来的?大火蛇又是如何特立独行于其他蛇而不服这个公式的?今天这个帖子作为给仙塞学院的一次公开课,给大家说一说D3档位那些事。所以这个帖子并非大火蛇档位的结论帖,想要结论请看Arccueid版写的火蛇技术贴,和爸爸无厘头的火蛇计算器。 一、档位的由来 问到档位最早是什么时候出现,我想资料片前的老玩家一定会说冰法的三档,资料片后来的玩家会说大箭塔的7档,但其实都不对。在三档冰法之前,其背后的旋风档位才是真正的档位一词的最早由来。 这张图是旋风档位,表格列出了16档,随着人物攻速的提升,旋风的击中次数也在不断大幅提升。 这个表格列出的是冰法档位,白色绿色和红色区域分别代表了1、2、3档,因为冰法体系还需要考虑暴击触发临界质量,所以这里的影响档位的的因素有两个,分别是攻速和暴击几率。 这个仙塞的同学可能不熟悉,这是DH连射的档位,在大箭塔之前DH其实就已经有了档位的概念。 这个是大箭塔档位,表格里列出了7个档,随着人物攻速的提升,箭塔的射击速度也在不断上升。 以上就是D3档位一词的发展历程。 二、产生档位的原因 为什么游戏里的这些蛇啊、箭塔啊之类的宝宝,他们的攻速并不是随着装备攻速的提高而跟着连续地提高呢?这里我想从动画片的机制来说一说。 当你在看动画片的时候,动漫里的画面也许会让你觉得栩栩如生非常流畅。但是来到荧屏背后,实际上是一张张事先画好的图,每张之间都只有很微小的差别,比如下面这个简单的例子。 动起来后 现在你可以把蛇想象成这只猴子。 蛇每一次攻击,都相当于这个猴子打一棒子。当然唯一有点区别的是:蛇的一次攻击动画要画6张图,而这里的猴子只用了4张。 好,现在我来开始解释档位。 首先暴雪把游戏中每一秒都分成了60段。不妨把每一小段都叫做一个Tick,1Tick=1/60s, 而蛇攻击一次的6张动画图,每一张都需要占据至少一个Tick的时间,那么一次完整的攻击就占据6Tick的时间。当攻速减慢,每一张图需要占据了两个Tick的时候,一次攻击就需要12Tick的时间,依次类推。由于每张图都只能占据整数倍的Tick时间段,所以蛇的攻击间隔只能是6Tick的整数倍。 聪明的你很快会想到,假如通过装备算出蛇的攻击间隔是7Tick,那么蛇实际上的攻击间隔是多少呢? 这个时候程序通过计算得到:2>7/6>1,所以蛇的每张攻击动画图都要占据大于1Tick但是小于等于2Tick的时间间隔,于是系统就向上取整,给蛇的每一张动画图都分配了2Tick的时间来。所以6张图加一起就用掉了12Tick的时间。所以这里很坑爹,即便你的攻速堆得几乎快要到更高一层的档位了,但是由于这个机制,导致你的蛇还是没能提升一档,7Tick的攻击间隔与12Tick的一样,相比6Tick,都是只有其一半的攻速。所以千万看清楚你的攻速到底有没有上档,小数点后面差一点点,系统也会无情的把你拖下水。 所以最后,现在大家应该能理解,为什么蛇的攻击频率间隔为什么只能是6的整数倍Tick啦。为了方便写,下面把Tick简记为T。所以蛇的攻击间隔只可能是6T 12T 18T 24T 等等... 箭塔的原理也是一样。 当然接下来根据攻击间隔倒过来一下就得到蛇从1档到8档的攻击速度啦,再乘以15s,就是蛇总共的攻击次数。 三、营地带来的神奇公式 got666的帖子中介绍了一个简洁实用的公式 【多头蛇档位】,甚至可以精确的计算出各档位所需求的人物攻速,但是那个48/(f+1)是什么意思,估计大家并不好理解,在这里我来简单的解释下,一样不复杂,只要你看懂了上面的帧数理论。 首先要明白一点,人和宠物的攻速是不一样的!人的面板攻速就是人的实际攻速,而宠物可能比你要快那么一点点。所以这个公式实际上就是找到了人和宠物攻速之间的换算法则。下面可以一起来做几步简单的运算,推导下这个公式。 现在我们已经知道:宠物因为动画帧数原因,攻击间隔的增长并非是连贯的,而是以6T为公差的一个等差数列:(这里的T就是那个f,都是指1/60秒的时间间隔) 6T, 12T, 18T, 24T, 32T, 48T... 随后我们通过巅峰的加点和装备攻速的更改,来不断地调整我们的人物攻速,企图找到在宠物攻速发生跳跃的时候,对应的人物攻速是多少。当然为了方便寻找人跟宠物的关系,我们要用的一列数据是人物的攻击间隔,所以要把测出来的攻速转换成攻击间隔就可以了。如下表: 这里详细写一下:实际上就是一个以7.5T为公差的一个等差数列: 8.75T, 16.25T, 23.75T, 31.25T, 38.75T, 46.25T,... 好了,现在的问题是什么? 找规律题目一道:现在有两个等差数列:{An}和{Bn},见上表格,公差分别是为6和7.5,请用An把Bn表示出来。 第一步我们先把Bn按比例缩小到和An一样的公差,乘以6/7.5=0.8即可,得到下面的Bn’,然后观察一下就发现再减去1就可以正好得到An了。 所以An=Bn*0.8-1,反过来,Bn=(An+1)/0.8。 Bn是什么,Bn就是人物的攻击间隔,单位是Tick,所以拿60除以这个数,得到的就是人物的攻击速度啦。 人物的攻击速度=60/Bn=48/(An+1)。 An是什么,就是上文动画机制部分讲解的蛇的攻击间隔,这就是那个个公式。 多说一句,DH在做这个题目的时候,他们的人物攻速的等差数列测出来是以6.66666T为公差的,所以6/6.66666=0.9,也就是他们为什么是54的原因(60*0.9=54)。 至此,got666带来的公式推导就说完啦。找规律填数字,over。 由此也可以明白,理论推导得出来的结论是从游戏动画的机制上分析得出的结论,所以某种意义上说,只要游戏机制搞对了,那么这个结果就是绝对正确的。这个思路最早来源于营地的这篇文章: 【人物攻速与箭塔攻速的关系】 比我推导的要细致的多,有兴趣推荐读一读。 四、傲娇的大火蛇 - 实践是检验真理的唯一标准 按照上面讲解的方法,本来应该是没有任何错误的,也确实,对于多头蛇来说,除了大火蛇之外,别的蛇都非常完美的诠释了这个公式的正确性。 但是唯独大火蛇,在每个档位上需求的攻速都比理论值都大了一点,没准你的装备正好卡在大火蛇要求的攻速与理论攻速之间呢,比如1.92攻速,别的蛇都乖乖的上了5档,但是大火蛇还是停留在四档;比如好不容易凑够3.692308攻速,以为终于爬上了7档,实际上还是不到。 [实测视频]说来也是,大火蛇从来就没有跟别的蛇一致过,无论是之前特立独行的不继承攻速,还是搞笑的人跑动的时候大火蛇可以提高33%的攻速bug。了解法师的朋友都知道,从515以来,法师蛇的bug就没断过,什么杀回回血,攻速不继承等等。所以这回有bug也见怪不怪了。 这个时候公式搞不定了怎么办,没有别的办法,只能通过扎实的实践测量,不断地提高精确度去逼近大火蛇的档位。 简单讲讲怎么测:刚才的视频可看到,就是先把想测试的攻速通过装备巅峰宠物手等配凑出来,然后找到怪物,放蛇,然后录像,通过数蛇在15s内攻击的次数,就可以知道在这个攻速下,蛇的攻速是多少,也就是蛇的档位是多少了。那么如何合理的搭配攻速使得结果可以更逼近实际档位攻速呢。下面这个图是我做的大表格的一角,讲述了枚举法凑数字的过程。 这个是在尝试列出逼近1.92003的所有可能攻速组合,武器上的攻速需要附魔来实现。粗体红色表示可行的方案,不加粗的红色表示虽然很接近,但是很遗憾凑不出来,因为巅峰的加点导致精确度最多是0.2攻速,不能是奇数。下面还有其他档位的表格就一一不截图了。 五、总结 至此,我们通过这个方法,只针对大火蛇,得出了实验上能做到的最精确的攻速档位。所以也是游戏中大家会用到的更真实的结论。所以如果想玩大火蛇,还请按照Arccueid帖中给出的档位数据。如果有一天大火蛇修复了bug和其他蛇保持一致,那时候就可以用理论的结果了。 所以说实践是检验真理的唯一标准,在物理学实验中,理论与测量不匹配的情况比比皆是,模型误差,测量仪器误差都会导致结果和理论有所偏差,这个时候需要一些经验参数的修正。我们现在发现大火蛇的模型存在误差,与别的蛇不同,所以经过测试,给出的大火蛇的档位值就叫做“模型误差修正档位值”。 另外其实想吐槽,7档蛇听起来好厉害,实际上算算伤害,两条蛇一秒的伤害被DH一个箭塔一发集束箭秒杀…然后DH有5个塔。不过,换个角度想想也知足了,总比没加强好,也不用穿6件套,人人都能放。 想了想不知道结尾怎么写了。要不咱就拿仙塞写在门帘上的话来结尾吧 - 仙塞崇尚科学严谨,欢迎百家争鸣。
|