关于速度、模型、与碰撞的机制探究

本帖主旨为推测并探讨eve中的速度与模型大小机制,对一直以来诸多不明确的现象作出理论解释,并以期利用机制提出一些具有价值的实际应用。

关于速度

    舰船为何可以使用微型跃迁推进器稳定地加速起跳、旗舰为何常常横向起跳一直是令笔者非常感兴趣的问题,于是近期开始尝试探究eve中的速度与模型机制,或许可以对上述问题进行一定程度的解释:

第一个问题:
[1]:为什么旗舰总是横向进入跃迁通道?

    前不久笔者发现跳驱在过门后,点击朝向某一点并立刻开启跳刀的话,跳跃方向是与点击方向完全一致的,即使该方向与过门后船头的方向相反。联想到隐轰炸弹发射器的0.1m/s最低速度要求,它们指向了一个显而易见的推论:

    eve中模型的方向并不能准确地表明速度方向,游戏实际上是利用速度矢量确定方向的,模型方向只是基于速度矢量方向而产生的视觉效果,且模型方向的转变速度具有一上限。

    笔者通过多种方法验证了该推论的正确,以下是可以为该推论提供佐证的一些事实:

  • 在0速情况下,朝向与模型方向相反的一点,并立刻使用能锁定速度方向的装备(如跳刀、旗舰级模块),可以看到虽然模型方向一直没有对准,但速度方向仍全程精确地对准目标朝向;
  • 在0速情况下,驾驶隐轰,点击朝向背后并立刻投弹,炸弹精确地飞向目标方向;
  • 在0速情况下,驾驶旗舰朝向与模型方向相反的一点,并立刻点击停船,旗舰会持续以极其缓慢的速度转向,即使已经点击停船、不再提供动力,它仍会坚持转向到船头朝向准确为止。

    如此便可以轻松解释为何旗舰经常横向进入跃迁通道:它们的速度已经满足起跳需求,虽然模型由于转换速度限制还没有正确对准,但跃迁判定并不在意它。

第二个问题:
[2]-(1):当我从静止状态下尝试进入跃迁状态时,朝向阶段的时间都受到哪些因素影响?
[2]-(2):速度与转向和时间的关系到底是怎样的?
[2]-(3):为何当我在高速机动情况下变向时,常常会丢失速度?

    基于[1]中得到的结论,显而易见地可以推导出[2]-(1)的结论:在零速状态下,向任何一个方向的目的地加速直到进入跃迁状态,消耗的时间完全相同。

    该推导结论已通过实验完全验证无误,它带给我们的一个有价值的技巧是:过门后如果你发现你被堵门,不需要根据模型寻找船头方向的位标点跃迁,而是可以选择任何一个你认为更有价值的位标(如加速过程中可以最大化远离对方高分辨率小船的方向)。


    [2]-(2)的问题稍微要棘手一些,它涉及到了数学问题,笔者将尝试从公式角度解释此问题,以下是最令人愉悦的公式环节:

    eve中的加速公式如下:

V_t=V_{max}×(1−\frac{e^{−t×10^6}}{I×M})

    上述公式中, t 是从0速开始的加速时间, V_t 是加速一段时间后的速度, V_{max} 是舰船最大速度, I 是舰船惯性修正系数, M 是舰船当前质量。

    将上述公式稍加整理后可以得到两个更有价值的公式:

t_v=-I\times M\times \ln (1-P_v)\times 10^{-6}
P_v=1−\frac{e^{−t×10^6}}{I×M}

    上述两个公式中, P_v 是最大速度百分比, t_v 是达到最大速度百分比 P_v 所需要的时间。他们分别可以求得从0速状态达到某一速度百分比所需时间;和从0速状态加速 t 秒后的速度百分比。

    这两个公式揭示了一些有趣的信息,比如使用超载注喷后,虽然舰船的最大速度增加了,但并不会对进入跃迁的加速时间产生任何影响,因为加速时可达到的速度百分比与速度上限无关,而只随质量、惯性修正系数和加速时间改变。还比如为何激活推进装置时加速能力会得到削弱,因为推进装置激活时会提供质量惩罚。

    让我们来实际应用一下:已知进入跃迁通道的条件之一是速度达到最大速度的75%,在满技能情况下,一艘预言级攻击战列巡洋舰的质量为 14,750,000kg ,惯性修正系数为 0.334125\times ,求解它从0速进入跃迁状态的时间。

t_v=-0.334125\times 14,750,000\times \ln (1-0.75)\times 10^{-6}\approx 6.83 s

    将上述参数导入公式可得到与游戏内装配界面相同的计算结果。


    接下来让我们将问题稍微复杂化:很多舰长可能注意到,当你具有一定速度时,若进行一次速度值的手动设定,往往会以一个很缓慢的速率逐渐达到目标修正值,且在具有速度的情况下点击跃迁后总会经过比面板更久的时间才可以进入跃迁通道。这些现象背后又蕴含怎样的作用机理?
    基于上述问题所得到的结论和规则应尽可能简明的游戏设计理念,我们可以大胆做出如下假设:在调整速度大小或方向时,会产生一个速度调整的修正矢量,它从原始速度矢量的终端指向目标速度矢量的终端,即与原始速度的合速度为目标速度(无论是方向还是绝对值角度)。
    举例说明,当你以满速飞行时,转而朝向完全相反的背向会产生一个朝向背后、大小为2倍满速的修正矢量。当你朝向某一更随意的角度时,修正矢量则如下图所示:

image

    上图中向量 V_1 代表原始速度,向量 V_2 代表目标速度,白色的向量 V_m 则代表速度修正矢量。
    在每一次发出改变速度的指令时,舰船会以 V_m 为最大速度、套用前述的加速公式得出每一时刻的速度变化矢量,并将速度变化矢量持续叠加到原始速度上。在速度改变过程中,速度变化矢量的数值变化始终符合前述的加速公式。
    请注意上述用词区别,对于从原始速度指向目标速度的矢量,我称之为速度修正矢量,而对于某一时刻的瞬时速度与原始速度的速度差矢量,我称之为速度变化矢量;它们的方向完全一致而变化矢量总是小于修正矢量,在加速的最终阶段,速度变化矢量将会完全等于速度修正矢量。
    这也得出一个结论即:静止状态下的加速也只是利用上述加速规则而做出的一次原始速度为0、速度修正矢量等于目标速度的加速而已。


    接下来让我们对上述推测进行验证:
    根据上述假设,当以满速转向身后尝试起跳时,速度变化应如下图所示:


上图中深蓝色外圈是满速在各个方向上的速度矢量末端,浅蓝色内圈则是想达到起跳速度75%这一条件的速度矢量末端。显然,在目前的情况下速度修正矢量应等于2倍满速,而进入跃迁总计应改变1.75倍满速的速度。如果以该速度修正矢量作为前述公式中的 V_m ,则易得起跳瞬间的 P_v 值应为 1.75V_m/2V_m=87.5 \%
故在预期的计算结果中,当以满速转向身后时,朝向时间应该为 P_v=1-87.5 \%=0.125 时所对应的 t_v 值;我们继续使用如前所述预言级的船体数据,解得 t_v\approx10.26s

同样的,让我们接下来尝试一种更加复杂的情境:
当以135°的后仰角转向时,速度变化应如下图所示:


我用绿色的箭头指向了本情境与上一个情境相比的特殊之处:当原始速度不断叠加速度变化矢量至瞬时速度满足75%最大速度时,该速度方向并不指向目标方向的5°偏角以内。
这也是在某些带有转向的跃迁前加速过程中,即使速度已经达到很高的水平,但舰船却迟迟不进入跃迁通道的原因。
在该情况中,显而易见地,舰船会持续加速到合速度指向目标方向的5°以内,也就是速度修正矢量与目标速度5°偏角所成焦点的位置。
通过三角函数代换求得:若以速度修正矢量为 V_m ,则进入跃迁通道的 P_v 值应为 90.5 \%
显然,这引出了一个令人惊讶的结论: 带有一定夹角的跃迁朝向有时甚至会比向后完全180°跃迁朝向耗费更多的时间。
在本情境中,理论上的朝向时间应为: P_v=1-90.5 \%=0.095 时所对应的 t_v 值;我们继续使用如前所述预言级的船体数据,解得 t_v\approx11.61s ,这个数值略高于180°转向所需的 10.26s
实际测量数据与上述推测一致,证明了上述规则的正确性。


接下来,让我们构建两个算式,用于求解起跳时间随转向角度变化的关系:
第一个恒等式用于求解在多大角度的转向中,瞬时速度已经满足了最大速度75%却仍要等待朝向准确;
为了便于读者理解及验证,将第一个恒等式的未化简形式列出如下,同时跳过导数和单调性证明过程,欢迎有兴趣的读者与笔者沟通下述所有算式的构造思路和正确性:

2\cos(\cfrac{\pi - x}{2})-\cfrac{1}{\cfrac{1}{\tan(\cfrac{\pi-x}{2})} + \cfrac{1}{\tan(\cfrac{\pi}{36})}} =0.75 \times \sin(\pi-x+\cfrac{\pi}{36})

(\frac{\pi}{36},\pi) 的范围内,排除一个错误解,求得 x=151° ,即只有在转向角度151°-180°之间的跃迁朝向中,才会在速度条满足75%以后立刻起跳。
第二个函数更具有实际意义一些,它用于求解在各个角度的转向中,达到起跳条件的速度变化矢量占速度修正矢量的百分比。
第一个恒等式求得的区间告诉我们:在0-151°的转向中应以瞬时速度与目标速度夹角为5°时作为起跳标准,而在151°-180°的转向中应以瞬时速度达到最大速度的75%作为起跳标准。在上述两个区间的基础上,列出如下两段函数:

p_v = \begin{cases} & 1-\cfrac{\cfrac{\cfrac{1}{\cfrac{1}{\tan(\cfrac{\pi-x}{2})}+\cfrac{1}{\tan(\cfrac{\pi}{36})}}}{\sin(\cfrac{\pi-x}{2})}}{2\cos(\cfrac{\pi - x}{2})} & ,\cfrac{\pi}{36} < x <\cfrac{151 \pi}{180}\\ \\ & 1-\cfrac{0.25}{2\cos(\cfrac{\pi - x}{2})} & ,\cfrac{151 \pi}{180} < x <\pi\\ \end{cases}
p_v 导入上述 t_v 关于 p_v 的函数中
t_p = \begin{cases} & -I\times M\times \ln (\cfrac{\cfrac{\cfrac{1}{\cfrac{1}{\tan(\cfrac{\pi-x}{2})}+\cfrac{1}{\tan(\cfrac{\pi}{36})}}}{\sin(\cfrac{\pi-x}{2})}}{2\cos(\cfrac{\pi - x}{2})})\times 10^{-6} & ,\cfrac{\pi}{36} < x <\cfrac{151 \pi}{180}\\ \\ & -I\times M\times \ln (\cfrac{0.25}{2\cos(\cfrac{\pi - x}{2})})\times 10^{-6} & ,\cfrac{151 \pi}{180} < x <\pi\\ \end{cases}
该两段函数可以计算出在满速状态下点击跃迁后,满足起跳条件所需时间。再一次地,将上述预言级的数据代入,获得如下图所示的函数图像:


其中15°夹角时的 6.83s 是面板朝向时间,即0速状态下起跳的加速时间。
图像很清晰得揭示了:以0-15°内的夹角朝向时,朝向时间可以低于面板朝向时间,之后则一直高于面板朝向时间,并在95°夹角的时候达到最大值,而在151°的时候,朝向时间会再次缓慢增加。
根据上述图像不难看出,由于仅15°以内的夹角朝向会低于面板朝向时间,这个较狭小的角度告诫我们在已经具有很高速度水平的情况下,朝任何一个不正确的方向起跳需要格外谨慎——你的起跳时间很可能远高于预期,最大可能会高至接近2倍面板时间

2 Likes

折佬下面没有了?

歇一下下,明天再更

令人愉悦的环节太短了!

还在一点点写,绘图和构造公式太耗费精力了,尽量能多写点吧

1 Like

该话题在最后一个回复创建后90天后自动关闭。不再允许新的回复。