我的世界船测原理简述与常见问题解答
虾虾虾橙
2024年06月07日 14:50

我的世界船测原理简述

我的世界船测是指通过上船校正角度以及使用特定的灵敏度从而获取

更高精度的水平角度以进行更精确的我的世界测眼。

乘坐一艘静止的船会把玩家的水平角度(yaw)标准化为1.40625°也就是360/256的整数倍;而有时我们在放下船是会出现船旋转的情况,此时上船会把玩家的水平角度标准化为0.140625°也就是360/2560的整数倍。对于每一个灵敏度,都存在一个每次鼠标采样时的最小移动角度(minimum angle increment)(这个值一般是在0.01°到1.0°之间)。这样一来在上下船按下第一次f3+c对准眼睛按下第二次f3+c后,我们就得到形如n×1.40625(这是第一次f3+c得到的,n是由此得到的一个确定的数)+k×最小移动角度的一个角度,而我的世界中f3+c是四舍五入到小数点后两位,我们可以通过f3+c中的数值得到k从而获得更精确的水平角度。

一些常见的问题

1.为什么不建议用自己的灵敏度

对于所有的灵敏度或者说所有的最小移动角度,都可能在测量过程中产生浮动错误,并经过一定的旋转后产生较大的浮点错误。在exersolver发布的建议灵敏度中,产生较大浮点错误的角度一般是1024°以上甚至有的达到了1048576°,而在小于这个角度的测量过程中对发生错误的可能也是较小的。同时,一些特定的灵敏度可能导致最小移动角度有效数字后前几位有几位是0(也就是比较“整”的数),这会导致无法通过前文提及的方法获得更精确的角度(因为小数点后)

2.为什么船测中非100%的offset以及概率分布是不可靠的

可以简单地理解成在同一个像素内+0.0001的offset并不比+0.0009的offset更可靠

3.卡角的好处和坏处

好处:避免坐标错误,因为我的世界f3+c中的坐标只四舍五入到小数点后两位,这甚至比f3都少一位。

确保完全停下,避免客户端服务端不同步。

坏处:坐标太整了,更难一眼100%,有时在一个区块中位置比较差的时候(如8,8),几乎不可能一眼100%,会获得很多个可能性相近的offsets

4.为什么比较近的要塞(<400格)容易出现测量错误

对于比较近的要塞,坐标错误的影响被放大如下图(因坐标错误导致的理论偏差与距离的关系)

5.为什么应该用0.0007的标准偏差

ninjabrainbot会把与测量角度误差小于等于3倍标准偏差的offset纳入考量计算概率分布(若没有则会显示测量出现严重错误),而在16384分辨率30fov下一个像素是0.0022标准偏差的三倍为0.0021,这意味着如果不出现测量错误,ninjabrainbot上显示的所有offset都在这个像素范围内,可以在不漏掉可能offset的情况下最大程度地缩小offset的范围。

6.为什么不能一直用小绿船(游戏开始就f3+c)

首先需要了解mod360这一概念,当进行以下行为时,f3+c所得到的yaw将进行一次mod360(整除360所的到的余数)计算

1)进入不同维度

2)传送(包含指令和珍珠)

3)上船(会精确到360/256或者360/2560的整数倍)

4)重生(yaw重置到0)

而在一场速通中,当进入不同维度时,玩家的yaw的绝对值往往是大于360°的,如果提前按下f3+c进入小绿船模式,转换维度时yaw大于360°,在另一个维度的yaw往往就不符合n×360/256+k×最小移动角度的形式,如果依然通过这样的表达式计算就会导致测量结果的错误。(其实还有一种解决方法,即在丢珍珠/进入不同维度前通过f3+c检查yaw并通过反方向的旋转使yaw的绝对值小于360°,但是在实际的速通中显然不会有人这么做XD)当然,很容易发现,如果最小移动角度可以整除360°,那么mod360就不会对结果产生影响,由此我们可以得到一些不受这种行为影响,即mod360safe的灵敏度(如下图)

在本文的最后一部分会有对这些灵敏度进一步的讨论

7.在overlay中,如果准心在两个数之间浮动该怎么办

1)通常准心在两个数上停留的时间并不相同,大部分情况下会在一个数上停留明显更长的时间,那么选择这个数

2)查看两个数分别对应的offset,选择同时包含于两种结果的offset

3)不要过于早的进行测量,过于早的测量会受服务端yaw错误影响,如下图

可以这样简单地解释这种现象:客户端与服务端分别编码存储着末影之眼位置的初始值,末影之眼丢出后每4tick都会根据末影之眼在服务端的实际位置和对其位置进行一次矫正

8.为什么有时候上船后按f3+c会出现小红船

1)有生物或者玩家推了船

2)差的上船时机

3)移动了鼠标

以下回到对mod360safe的灵敏度的讨论,在实际的速通中,我们还可能因为一些行为导致角度出现错误(不符合我们所需要的形式)这些行为包括:

1)骑乘生物

2)在船上按a/d

3)上一艘角度不好的船(比如之前有玩家在船上按了a/d)

4)在船上鼠标移动超过105°,即玩家的yaw和船的yaw之差大于105

那么此时就需要上下船以进行矫正,而重新上下船会导致第一次f3+c所得到的第一个数值也就是n×360/256发生变化,同样会导致最终出现错误。此时我们可以联想到如果使用一个最小移动角度整除360/256的灵敏度就可以避免这种错误,于是我们得到了如下图的一系列灵敏度

其中360/256和360/2560分别表示最小移动角度可以整除360/256和360/2560

divides 105 表示前文所提到的第四点不会扰乱角度。在使用了这样的灵敏度之后

,我们就可以实现进入世界或者进入世界之前就使用小绿船,在整场速通中不使用船来进行船测。

但是在实际的速通中,在船上按a/d是非常常见的操作,所以实际上在大多数情况下还是需要在测眼之前上下船以矫正角度,而现在船测所使用的portalboat几乎不会浪费时间,所以这项技术并不会对现在的速通提供很大的帮助,以下是我想到的几点可能的用途:在木头数量较少时不慎丢失船,不需要因此浪费五个木板;在没有树的aa开局或者沙漠村庄开局使用船测;在玩homeportal时节省一定的时间(无法portalboat)

最后还有什么问题可以在直接评论区提出或者去discord找Exersolver,欢迎大家对船测技巧的讨论。