由拖漂评测引出的对漂移本质的思考

金峰的横空出世让金棉的保持许久的王者地位严重动摇,与此同时墓海对金峰的评测继暴走黑骑评测事件之后再次将拖漂推向风口浪尖.拖漂的测试之前也有不少人提过建议,最后都不了了之。墓海无奈地说:拖漂毁竞速,干脆让职业来测,能跑出成绩就是好车。归根结底还是测拖漂测的是车手水平而不是在测车,同一辆车每个人测的拖漂速度都不同。你测了315,我测了320,比来比去只能得到一个结论:拖漂无极限。

关于拖漂测试我很早就有下面的想法,并没有深入,直到出了这次事件我才重新考虑了下,作为大二的理科狗,暑假闲来无事,便花了点时间完善了这些理论与方法,与大家分享和讨论。这两天我也找墓海解释了我的方法,海锅还是很热心的,耐心地听了我的建议(废话,咱们都是看两个海锅的视频长大的,他们这种造福玩家的精神很令人敬佩)。我跟他一起测试了很多组数据,目前来说理论跟实际符合的不错,他说会考虑将这个方法应用到以后的拖漂测试中。


首先开门见山说明一下测试方法:将跑跑窗口化,进入快速频道童话木马的bug区域,以一定初速度最佳化入弯,右手同时摁住前进和方向键不要放,不使用加速器就能自动进入拖漂状态。观察车速表,此时车速会忽快忽慢,只需关注最大值和最小值,一般情况两值都会渐渐接近,两值接近的速度越快越早趋于稳定,偶尔没有接近趋势则重漂一次。此时左手用鼠标点击窗口外区域,这样可以腾出右手,车子也会继续拖漂。这时只要等着,直到车速趋于一个定值就不变了,一般这个值等于每次车速波动产生的最大值和最小值两者的平均值,此时车子拖漂时角度锁死不会再变了。然后重新点击窗口,开始F3录制视频(或用第三方软件),10秒就足够。

把截取的视频分别打开两次,拖动到不同时刻进行对比,按帧截取两张可以完美重合的图(车子做的是匀速圆周运动,每隔一个周期整个跑跑窗口的景物会完全相同)。根据两个截图右上角比赛时间的差值就能得到拖漂周期(精确到0.01秒),再加上右下角显示的拖漂车速就得到了两个样本值v(km/h)和t(s)。

经检验可以得到初步结论:相同车辆的v和t是一一对应的,且v越大,t也越大。对于不用车辆,v相同的话,t越小,拖漂能力越强;t相同的话,v越大,拖漂能力越强。


以下是原理,部分内容需要高中物理知识,看不明白可以绕道,其中所有提到的漂移都默认是最佳化漂移。

首先致敬一下某岛知名的PP大神,跑跑改版前发布过一个20k大小的软件:PP车辆性能数据查看器(改版后就不能用了)。该软件可以查看车辆的数据(反正可以查看除了车辆手感外的所有数据),用过的人都知道,里面有一个重要数据名为DriftEscapeForce,直译就是大家熟知漂移逃出力,反映的是车辆的漂移最佳化能力。

当时我曾花了半天测试过软件,得到许多很有价值的数据,其中改装漂移最佳化+30、+20、+10分别会对该值产生+210、+140、+80的效果,工厂部件的效果如下:白色越野轮胎+100、红色越野轮胎+70、黑色越野轮胎+70(难怪进入拖漂时代,集气变得不再重要时,白越野代替红越野成为了主流)

说了这些主要是说明拖漂取决于漂移最佳化能力,即漂移逃出力的大小。


讲到这里想到一个问题,跑跑来源于韩国,游戏开发者将这个值取名为DriftEscapeForce,即漂移逃出力,是有原因的。就是漂移过弯时拉回车身的力度,使车子漂移轨迹形成弧状,不至于漂远,偏离赛道。漂移逃出力是地面的摩擦力提供的,方向垂直于车身方向。形象一点来说,你在绳子上系一个重物然后在桌子上捏住绳子360度甩,此时你的手的拉力给重物的圆周运动提供了向心力(车辆是地面的摩擦力提供向心力),重物的速度越快你手上感觉到的力越大。

可奇怪的是改装系统到了国服就变成了漂移最佳化+30,应该也是跟国服玩家的习惯说法有关吧,但个人还是觉得叫漂移逃出力更合适些。不过既然改不过来,评测时高速第一弯的漂移最佳化还是继续测,作为车子的最佳化漂移速度。而漂移逃出力的数据则可以用来反映车子的拖漂速度,或者说是拖漂能力。


下面我跟大家解释下为什么有时候会空漂,即漂移不集气,这是系统判定你没有进入漂移状态。车辆在不同车速,不同漂移角度时地面会根据情况提供对应不同大小的摩擦力,对应就是游戏中的漂移逃出力,使车胎轨迹成弧形。

摩擦力提供弧状运动的向心力F=mv^2/r,v代表摁下漂移键时的车速,r代表弧状运动的半径(简称漂移半径),直观点说就是漂移角度,漂移角度越大,漂移半径约小。

这就能解释空漂的产生原因大多是车速慢或者漂移键点的轻。进一步也可以得到以下结论,车速慢的时候一定要用力摁漂移键才能漂起来,而车速快的时候漂移键只要点一下就行了。以拖漂为例,有时候拖漂的时候发生悲惨的段胎事故也是漂移角度不够导致漂移半径太大的缘故,地面无法提供足够的向心力,车辆就真的从漂移中“逃出”来了。


为什么说漂移逃出力越高,漂移提速越快呢?游戏中车辆在平地上直线行驶时车辆出了重力、支持力这一对平衡力外,还受到与行驶方向同向的牵引力和反向的摩擦力。因为车辆的功率是定值,p=fv,所以速度越大,牵引力越小,若车辆直线行驶,随着速度的增加牵引力慢慢变小,最终等同于摩擦力就会保持匀速行驶,达到速度峰值

而车子在漂移的时候会多受一个垂直的漂移逃出力,将其与牵引力、摩擦力的合力再次进行合成,漂移逃出力越大,最终的合力也会越大,车子漂移时候的加速度就越大,后果就是漂移提速变快。


至于拖漂的原理也是众说纷纭,有人说是bug,也有人说是新车增加的属性,甚至有“理论帝”分析是因为打滑的同时车子有直线速度和侧滑速度,导致速度合成后超过直线峰值。

下面是个人观点。跑跑作为一个在一定条件下严格符合物理规律的游戏,拖漂的产生的确是游戏的bug,但是这个bug的来源不是游戏系统本身,而是游戏公司对车辆的数据设定。个人印象中国服拖漂诞生于z7+时代,于Spyder之后盛行。为什么pro、sr年代没人用拖漂,是没有想到吗?

当然不是,而是因为那时的车子根本拖不起来,或者说即使拖了减速会很严重,加上拖了也不怎么集气,拖漂根本没有实用性。我记忆中国服最早拖漂视频是宇哥用尖峰Z7+破的太空记录,这辆车在在z7+中的地位是很高的,性能不输于金魔、金骑和暴走飓风,手感也是极佳。同样是z7+,之前为什么没人用金魔、金骑来拖漂呢?原因就是那些车的漂移逃出力太小了。


这里又要提一下PP车辆性能数据查看器,当时国服各种车的测试数据我还有保存,同样是原版车将漂移逃出力数据进行对比,黑骑z7 3350,金魔z7+ 3490,金骑z7+ 3500,尖峰z7+ 3800,屎棉ht-le 3950,红莲ht 3800,Spyder ht经典版【阉割版】4290,金峰ht-le 4450,new棉花Red 4500,new棉花其他颜色 4600,数据对比可参考改装漂移最佳化+30等同于DriftEscapeForce数据+210。

这些数据可以解决一些令人困扰的问题,例如为什么国服拖漂始于尖峰z7+,为什么红莲提速接近屎棉,最佳化值更是秒杀屎棉n多,却无法超越屎棉,为什么国服直到Spyder的出现才开始盛行拖漂。


接下来解释一下为什么说拖漂是游戏的bug。跑跑的物理引擎做的好是大家有目共睹的,值得称赞。跑跑竞速的核心就是漂移,但是当初设定漂移这个车辆技能时,由于漂移时地面摩擦力计算的难度太大,开发者选择凭空赋予漂移时候的向心力,即DriftEscapeForce,方向始终垂直于车身方向,从而使车子能够漂起来。但是这个值得设定是有讲究的,太小了导致漂移判定高,起漂难度大,而设定大了看似没事,但是拖漂这个bug就是漂移逃出力设定太高造成的

以下是理论分析。现实生活中的漂移是摩擦力提供的,但是这个力是有范围的,不能超过车子与地面的最大静摩擦力,而最大静摩擦力=umg是定值(u表示静摩擦因数,只跟车胎材料和地面材料有关),拖漂导致漂移速度超过直线峰值就是漂移逃出力设置太高,超过了最大静摩擦力的缘故,这种情况在现实生活中是不可能存在的,事实上在很早之前起这个数值就已经违反了物理规律,现实生活中的漂移减速可是很厉害的,用真车来拖漂更是天方夜谭了。


由于漂移逃出力随着漂移半径的变化而变化,一台车子就很难测,对于不同的车子不是更难比较了吗?办法还是有滴,我们可以考虑让漂移半径不变,这样就能把漂移逃出力测成定值,方便不同车辆之间比较。考虑锁死角度拖漂就是个很好的方法。

因为车子在拖漂同时做匀速圆周运动,r是定值,所以漂移逃出力=圆周运动向心力,F=mv^2/r,车子环绕一圈经过的路程s=vt=圆的周长=2πr,得到:r=vt/2π,所以f=mv^2/(vt/2π)=2πmv/t。

由于2π是常数=6.2832,m是车子重量也是定值(这点不用怀疑,用过PP车辆性能数据查看器的都知道内部数据里所有车的重量mass=100),所以2πm是定值,可以得到漂移逃出力f与v/t成正比,v/t越大,拖漂能力越强。


定义拖漂能力值a=v/t,此值跟加速度的量纲相同,故取字母a。经游戏中的检验可知a并不完全是定值,对于同一辆车a的值随v的增大会极缓慢减小,当v差距不大时基本可视为定值。

鉴于a随着v的变化还是有很小的变化,建议设置标准值进行参照,比如评测时进行若干次拖漂,选取一次125<v<130和一次130<v<135的拖漂样本。根据这两点线性拟合很容易得到v=130对应的t,然后求出a即为该车的拖漂能力值。当然若能直接拖出130的速度就不用估算了。

对于不同的车就拿v=130对应的a进行比较,a越大说明漂移逃出力越大,拖漂能力越强。


完美粒子工厂改金峰HT+为例,(v=111,t=3.37,a=32.94)(v=124,t=3.79,a=32.72)(v=133,t=4.10,a=32.44)(v=173,t=5.44,a=31.80)。

再以完全相同改装黑棉为例,(v=111,t=3.50,a=31.71)(v=141,t=4.47,a=31.54)(v=158,t=5.08,a=31.10)(v=176,t=5.72,a=30.77),可以看出黑棉的拖漂能力略输于金峰HT+。

海锅当初红莲的最佳化漂移速度测得是201,我拿完美改红莲测试得到(v=105,t=3.89,a=26.99),若增加红莲的v,那a的值会更小一点,不用再测也可知红莲的拖漂能力不好。

原版暴走黑骑士(v=112,t=4.13,a=27.12)(v=144,t=5.37,a=26.82)。

原版暴走黑骑士+紫色越野轮胎(v=113,t=4.10,a=27.56)(v=140,t=5.13,a=27.29),可以看出漂移最佳化A级的效果还是明显的。

原版冲刺熊猫(v=112,t=3.82,a=29.32),拖漂能力秒了原版暴走黑骑几条街。


对于不同车子找接近的v值对应的a值进行比较更有说服力,还测了很多数据,就不一一写出了,都跟理论符合的很好。

昨晚我上了墓海的一个号跟他一起测了蓝棉原版无改,他测出了(v=128,t=4.23,a=30.26),我测出了(v=129,t=4.26,a=30.28),结果只差了0.02,要知道金峰的a值要比金棉高了将近1,而0.02的误差基本可以忽略不计了。

这个方法得出的数据目前来看很有参考价值,但还是需要更多测试才能确保理论的正确与否,如有不足希望大家指出,谢谢。