Guides / Building & Resources

地图像素是一个字节,其中两位代表亮度

61 种基础颜色 × 4 种明暗度 = 16,384 字节数组中的 244 种颜色。四种明暗度中只有一种是方块的真实颜色;其他三种被调暗至 86%、71% 和 53%。

Minecraft 中每张已填充的地图在磁盘上的尺寸都相同:一个 colors 字节的数组,精确地包含 16,384 个条目,即 128 × 128。无论是覆盖 128 个方块的尺寸 0 地图,还是覆盖 2,048 个方块的尺寸 4 地图,像素数量从未改变。所有其他关于地图艺术的特性都源于这一事实。

字节一分为二

这 16,384 个字节中的每一个都不是一种颜色。它是一个基础颜色和一种明暗度打包在一起:

baseColorId = colorId >> 2      // 0–63
shadeIndex  = colorId & 3       // 0–3

因此,低两位是亮度,其余部分是你正在查看的方块。定义了 61 种基础颜色(ID 0 是透明/未探索的槽位),真实地图所能容纳的最高字节是 61 × 4 + 3 = 247

61 × 4 = 244 种不同的颜色,这是地图艺术可用的全部调色板。不是 61,也不是 256。

只有一种明暗度是方块的实际颜色

这四个乘数并非均匀分布,其中一个是 1.0:

明暗度索引乘数百分比
0180 / 25570.6%
1220 / 25586.3%
2255 / 255100%
3135 / 25552.9%

明暗度 2 是方块的纹理颜色,未被触动。其他三种是其较暗的版本,而最暗的——明暗度 3——亮度仅略高于一半。

这就是为什么阶梯式地图艺术与平面地图艺术看起来如此不同。一个平面建筑每个方块只能产生这四种颜色中的一种,所以平面地图只有 61 种颜色可用。改变高度可以解锁每个方块的其他三种明暗度,使你达到 244 种颜色。调色板并没有变得更“宽”——你没有获得新的色相——它在明度上深了四倍,这正是抖动(dithering)所需要的。

另请注意,明暗度顺序并非单调:索引 3 是最暗的,而不是最亮的。按索引排序并期望获得渐变会得到 71%、86%、100%、53%。

尺寸只影响区域,不影响分辨率

scale 字段的范围是 0-4,它覆盖的地面是 128 × 2^scale 方块边长:

尺寸覆盖方块数一个地图像素是
0128 × 1281 个方块
1256 × 2562 × 2 个方块
2512 × 5124 × 4 个方块
31,024 × 1,0248 × 8 个方块
42,048 × 2,04816 × 16 个方块 — 恰好一个区块

尺寸 4 的地图覆盖的区域是尺寸 0 地图的 256 倍,但使用相同的 16,384 字节。这就是地图艺术必须在尺寸 0 下建造的全部原因:在任何其他缩放级别下,一个像素是几个方块的平均值,你精心放置的图像会被重新采样。

尺寸 4 的行值得记住,原因不同——一个像素恰好是一个区块,这使得完全缩放的地图成为一个可用的区块网格。

这对损坏文件意味着什么

如果一个 map_<id>.datcolors 数组不是 16,384 字节,它就不是一个缺少像素的地图——它根本不是一个可读的地图。没有部分长度的形式。数组总是完整尺寸的,未探索区域存储为颜色 ID 0,而不是省略。

地图文件转图片 →

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。