边境之地

来自Ballance Wiki
BallanceBug讨论 | 贡献2020年8月16日 (日) 15:58的版本 (恢复Fps0605讨论)的编辑至BallanceBug的最后版本)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
边境之地
FarLandsExtraPoint-6e5.png
玩家X和Z坐标绝对值达到 600,000 左右时转换视角,视角看似变成了非90度,而分数球“解体”。
漏洞基本信息
常用名称 边境之地
是否存在固定产生方法
是否会导致游戏崩溃 否,但重复多次后可能会
是否允许用于疯狂模式竞速 状况未知

边境之地”是指Ballance坐标绝对值过大时(一般需要达到 217 = 131,072 以上)因表示坐标的浮点数运算错误造成的“奇异现象”。

“边境之地”现象可以通过在Virtools内修改物体坐标(以及玩家重生点,因为距离过远,玩家球从原点附近直接前往几乎是不可能的)得到。由于会造成极度的卡顿,且制作也很麻烦,目前并没有被应用于任何原版关卡自制地图中。

现象

“边境之地”现象仅会对坐标过大的轴的方向上物体的表现产生影响,若同时多个坐标轴的坐标过大,则物体在这些轴方向上的表现均会受到影响,但其他轴上不受影响。而玩家如果回到坐标值较小的地方,则会立即恢复正常。

Virtools中

  • 视角抖动,尤其是移动或旋转视角时;
  • 物体的移动不再“平滑流畅”,而是只能以一定的单位大小(如0.0625或1.25等)移动;
  • Virtools 中默认限制的最大坐标(可以在通用参数设置中更改,但“边境之地”现象不会改变)为 1,000,000。若物体被移动至此坐标附近,则物体将不会被显示,同时玩家在尝试移动物体时物体坐标总会被重置为 1,000,000,致使物体在被移动至此坐标后无法脱离。因此边境之地现象只能在玩家坐标低于 1,000,000 处被检验。

Ballance中

坐标中等偏大

“坐标中等偏大”时的卡顿一般发生在坐标值为 100,000 至 500,000 左右时(更准确地说,217 = 131,072 ~ 219 = 524,288 中间),但也有配置较差的设备甚至在坐标为 10,000 处就能产生此现象。

  • 视角不断轻微抖动;
  • 分数球的“分数小球”和其“尾迹”分离,并沿着坐标值偏高的轴上向相反方向拉伸,时间越长偏移越远;运动变慢,由于“分数小球”和其“尾迹”分离,最后会无法正常追上玩家球,而是追逐相对于玩家球偏移了的某个位置;
  • 部分粒子效果的透明层消失,导致贴图异常(看起来像是贴图缺失一样)。

坐标极大

“坐标极大”一般指坐标在 219 = 524,288 左右以上时的现象。

  • 视角剧烈抖动,玩家球运动时视角也会非常卡顿地移动,一部分机关也会抖动;
    • 当尝试切换视角时,显示出来的视角可能不完全(例如看起来尝试旋转90度时产生了非90度视角,但实际上并没有,玩家球仍能按照旋转90度的方向移动;
    • 使用俯视视角后无法恢复,导致随着俯视次数增多视角不断抬高,最终类似于彩蛋视角;但转换视角时视角仍会保持抬高状态,造成视角错乱(比如旋转180度反而变成视角颠倒);
  • 分数球表现类似于#坐标中等偏大时,但随着时间流逝,运动更不规则,最终会像是解体了一样;
  • 球在重生点重生时旋转着的“激光球”位置与球重生点实际所在的位置偏移(此现象甚至在玩家球位置恢复到坐标较小处时仍能保留),但球仍然在正常的位置重生;
  • 变球器变球时将球“吸入”的位置不再是变球器中心,而是存在偏移;
  • 飞碟的顶部“盖子”与飞碟本体偏移(偏移方向与坐标过大的坐标轴有关);
  • 玩家球的移动可能会变得不流畅,类似于Virtools中移动物体时的现象。
    • 但这也导致玩家球更容易对齐单轨

超出 Virtools 所允许编辑的界限

玩家在 107 = 10,000,000 处视角更加剧烈的抖动,几乎无法正常游戏;在 231 = 2,147,483,648 处已经无法移动。

成因

  • Ballance 中,物件的坐标以浮点数表示。因此数值过大时,表示坐标的浮点值精确度下降。
    • 坐标以单精度浮点数(即32位浮点数)表示,但单精度浮点数仅有23位被用于表示有效数字;因此,在 2n 至 2n+1 的位置,最低误差是 2n−23
  • 视角的“摄像机”也是一种实体,同样受到此限制。

画廊