【提瓦特测绘局】天空岛高度估算

摘要:天空岛的方位引起了许多原神玩家好奇心。本文首次尝试利用钟离的岩脊作为标杆,构建长水平面基线和两组相似三角形,从而估算出天空岛的海拔高度约为 3000 米。同一方法测得寒天之钉顶部高度约为 553 米,表明此方法测得高度与实际高度相差约在 12%。

关键词:相似三角形 岩脊 大地基线 高程传递

1. 背景与介绍

天空岛是提瓦特世界中极其重要的存在。在蒙德和璃月地域,旅行者望向西北方的高空即可看到天空岛。到目前的1.5版本为止,主线与支线剧情中未有任何对天空岛方位的描述。在本文之前,已有一些利用游戏引擎 bug 来靠近天空岛的尝试 [1,2],使得旅行者们可以接近观察天空岛。然而至今为止,可分析出的天空岛信息仍然非常少。本文将首次尝试对天空岛的方位进行定量估计。

2. 相关工作

原神游戏中,正式的长度数值来源为执行任务时的目标距离指示,长度单位为米 (m)。许多原神玩家利用目标距离指示进一步得到了其他的测量基准。

RX1019 给出了风之翼测速与测绘的方法,指出风之翼的水平速度为 6 m/s,竖直下降速度为 1.91 m/s [3]。梦魇敌酋,ben_1,scp148 使用 1.875 m/s 的风之翼竖直下降速度测出了蒙德和璃月 25 个重要山峰和建筑物顶部的高度[4]。

利用任务目标距离指示和对截图的角度测量,Fonsecafsa 估算出了天空岛到璃月传送点的水平距离 [5],但未能估算天空岛的高度。

也有玩家进一步使用游戏内部数据进行长度和高度估计。吾竟南宫遥 通过解包游戏数据给出了许多角色的模型身高 [6]。sunfkny 用过游戏内的“反馈”功能得到 Unity 坐标直接读出高度数据 [7],验证了 [6] 给出的身高数据,且寒天之钉、望舒客栈顶部高度与 [4] 所测结果接近。然而,[7] 给出的孤云阁附近海平面与马斯克礁附近海平面的游戏内坐标差值高达 6.5 m。

3. 估算模型

本文采用以下假定作为估算基础:(1) 提瓦特大陆是扁平的而非球形的(各处海平面竖直方向相互平行);(2) 天空岛位置固定,不随游戏内或游戏外时间改变。

在原神游戏中,玩家无法通过正常手段测得游戏内的视角转动角度。因此,难以通过三角函数计算来估计目标点高度。为了绕开显式测量角度的困难,本文采用两组相似三角形来估算天空岛的海拔高度。如图 1 所示,待测目标点位于 $Z$ 点,$Z$ 点竖直投影到大地某一平行于海平面的水平面上的点为 $O$ 点。在 $O$ 点所在的平行于海平面的水平面上选一直线,使得 $O, A, B, C, D$ 五点均在此直线上。线段 $MA$ 和 $NC$ 长度为 $h$, 垂直于 $OD$ 并分别交 $OD$ 于 $A$ 和 $C$ 点。连接 $ZM$, 其延长线交 $OD$ 于 $B$. 连接 $ZN$, 其延长线交 $OD$ 于 $D$. 两组相似三角形:$ZOB \sim MAB$, $ZOD \sim NCD$. 记 $OZ$ 长度为 $z$, $OA$ 长度为 $r$, $AB$ 长度为 $a$, $CD$ 长度为 $b$, $AC$ 长度为 $l$, 则可以解得
$$
z = h \cdot \frac{l + b - a}{b - a}.
$$
故估算 $z$ 需要测出 $a, b, l, h$ 四个值。

图 1
图 1

在游戏中,钟离的岩脊是最方便使用的定长物件,且其造型接近长方体,便于目测和对比。本文以钟离的头顶作为 $B$ 点和 $D$ 点,钟离岩脊顶部作为 $M$ 点和 $N$ 点。本文采用 [6] 给出的 1.86 米作为钟离身高。岩脊的长度,本文采用 [3] 的数据进行估算。图 2 对比了岩脊的长度与 [3] 所测位置的砖头厚度,可知岩脊的长度约为 12.75 块砖头厚度,故本文采用 4 米作为岩脊高度。因此, $h = 4 - 1.86 = 2.14$ 米。

图 2
图 2

本文采用步行的方法估算 $a$ 和 $b$ 的值。因此,需要测量出钟离在平地的步幅。本文采用了两种方法进行测量。第一种方法是直接测量游戏图像比例。图 3 对比了在水边尘世闲游的钟离两个脚印的长度(红线,440px)和钟离头顶到地面的长度(橙线,1000px),游戏运行在 4K 分辨率下(后文所有截图均为 4K 分辨率下的截图)。由图 3 可知,钟离的步幅为 0.44 * 1.86 = 0.8184 米。这一身高-步幅比值与现实世界中的经验相同[8]。本文采用的第二种方法是大地图像素比例尺间接测量。图 4 对比了蒙德城门桥长度(红线,131px)和风神像广场宽度(橙线,147px)。[3] 测得的蒙德城门桥长度为 77.2 米,则风神像广场宽度约为 86 米。钟离沿橙线从风神像广场一侧走到另一侧走了 100 步,则其步幅约为 0.86 米。考虑到第二种方法的误差相对较大,本文采用 0.82 米作为钟离在平地的步幅。

需要指出的是,步行方法估算 $b - a$ 的值容易产生较大的误差。估算步数最多估计到 0.5 步。因此,$a$ 和 $b$ 的步数值与正确距离的差别范围在 0.5 步以内,$b - a$ 的步数值与正确距离的差别范围在 1 步以内。考虑到实际测量中 $a$ 和 $b$ 的值都比较小,误差 1 步对于 $b - a$ 而言很容易带来较大的误差。

图 3
图 3

图 4
图 4

本文采用大地图像素比例尺转换的方式估算 $l$ 的值,基线长度为图 4 中的红线长度。

4. 数值实验

由图 1 和公式 (1) 可知,大地基线长 $l$ 越大,$b - a$ 的值也越大,对 $l$ 或者对 $b - a$ 施加同等大小的数值扰动(测量误差)时对 $z$ 的扰动越小。与此同时,$A$ 点和 $C$ 点需要在同一海拔高度。考虑到蒙德和璃月的地形之复杂多变,本文考虑利用海水连通水域平面来保证 $A$ 点和 $C$ 点处于同一海拔高度。

图 5 展示了本文选择的两条大地基线:红线(2204px)指向天空岛,橙线(1074px)指向寒天之钉,且测量点都在与海水连通的水域边缘。图 5 与图 4 为游戏内大地图相同缩放比例截图得到,故由图 4 桥长换算得知,橙色大地基线长约 632 米,红色大地基线长约 1299 米。

图 5
图 5

橙色基线上测得的 $b$ 值约为 7 步,$a$ 值约为 4 步,故 $b - a$ 约为 $3 \times 0.82 = 2.46$ 米。代入公式 (1) 可得 $z = 551.93$ 米,加上钟离身高为 553.79 米,比 [3] 测得的 495 米偏大了 12%。考虑到极端误差情况,$2 \times 0.82 \le b - a \le 4 \times 0.42$,则 $404 \le z \le 807$.

红色基线上测得的 $b$ 值约为 6 步,$a$ 值约为 5 步,故 $b - a$ 约为 0.82 米。代入公式 (1) 可得 $z = 3392.21$ 米,加上钟离身高为 3394.07 米。若按偏大 12% 处理,则天空岛高度约为 3030 米。考虑到极端误差情况,$0 \times 0.82 \le b - a \le 2 \times 0.42$,则 $1656 \le z \le +\infty$.

5. 结论

本文利用已测得的一些高程和距离,通过钟离的岩脊构建了两组相似三角形,首次对天空岛的高度做出了定量估算,并讨论了主要的误差来源。如果要用本文的相似三角形组方法对天空岛的高度进行更精确的测算,则需要找到误差更小的测量 $a$ 和 $b$ 值的方法。

附录

关于“提瓦特大陆是扁平的”这一点,笔者曾在游戏内的正午 12 点分别于蒙德和璃月的海岸测定了岩脊影子的长度,两者基本一样。因此笔者采用最简单的假设:提瓦特的太阳光是平行光源,且提瓦特大陆是扁平的。

笔者的朋友应邀测试了刻晴的雷楔技能,发现其最大位移长度约为 7 米,但是使用过程中没有标明位移点到当前点的距离。因此,笔者认为雷楔无法用于精确测量短距离。

2021年5月10日更新:NGA 坛友指出在 GM 客户端中显示的天空岛高度坐标为 1800 [9],并且有坛友开发了更精确的测角器进行高度测量得到了更接近 1800 的结果 [10]。

参考文献

  1. https://www.reddit.com/r/Genshin_Impact/comments/jjrrlo/i_finally_used_multiple_glitches_to_get_to/
  2. https://www.youtube.com/watch?v=tcO516HuYSI
  3. https://ngabbs.com/read.php?tid=25695397
  4. https://ngabbs.com/read.php?tid=25645655
  5. https://www.reddit.com/r/Genshin_Impact/comments/l6nzor/i_calculated_the_distance_between_liyue_and/
  6. https://ngabbs.com/read.php?tid=25476519
  7. https://ngabbs.com/read.php?tid=25681688
  8. https://www.scientificamerican.com/article/bring-science-home-estimating-height-walk/
  9. https://ngabbs.com/read.php?pid=514247758&opt=128
  10. https://ngabbs.com/read.php?tid=26698411