Guides / Building & Resources

地図のピクセルは1バイト、そのうち2ビットが明るさ

61種類の基本色 × 4段階の濃淡 = 244色。16,384バイトの配列から生成されます。4段階の濃淡のうち、ブロック本来の色は1つだけで、残りの3つは86%、71%、53%に暗くされています。

Minecraftの埋められた地図はすべて、ディスク上では同じ大きさです。正確に16,384エントリ、つまり128 × 128のcolorsバイト配列です。これは、128ブロックをカバーする大きさ0の地図でも、2,048ブロックをカバーする大きさ4の地図でも同じで、ピクセル数は決して変わりません。地図アートに関する他のすべてのことは、この事実から派生しています。

バイトが2つに分割される

これらの16,384バイトのそれぞれは、色ではありません。基本色と濃淡が一緒にパックされています。

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

下位2ビットが明るさで、残りがどのブロックを見ているかを示します。61種類の基本色(ID 0は透明/未探索のスロット)が定義されているため、実際の地図が保持する最大のバイトは61 × 4 + 3 = 247です。

61 × 4 = 244種類の異なる色。これが地図アートで利用できる全パレットです。61色でも256色でもありません。

ブロックの実際の色は1つの濃淡だけ

4つの乗数は均等に配置されておらず、そのうちの1つは1.0です。

濃淡インデックス乗数パーセンテージ
0180 / 25570.6%
1220 / 25586.3%
2255 / 255100%
3135 / 25552.9%

濃淡2はブロックのテクスチャの色で、手つかずのままです。他の3つはそれよりも暗いバージョンで、最も暗い濃淡3は明るさの半分強しかありません。

これが、階段状の地図アートが平らなものと大きく異なる理由です。平らな建築では、ブロックごとにこれら4つのうち1つしか生成できないため、平らな地図で利用できる色は61色です。高さを変えることで、すべてのブロックの他の3つの濃淡が解放され、244色になります。パレットが広がるわけではありません(新しい色相は得られません)。値の深さが4倍になり、これはディザリングに必要なものです。

また、濃淡の順序は単調ではありません。インデックス3が最も明るいのではなく、最も暗いです。インデックスでソートしてグラデーションを期待すると、71%、86%、100%、53%になります。

大きさは面積を乗算するが、解像度は決して乗算しない

scaleフィールドは0~4で、カバーする地面は128 × 2^scaleブロックです。

大きさカバーするブロック地図の1ピクセルは
0128 × 1281ブロック
1256 × 2562 × 2ブロック
2512 × 5124 × 4ブロック
31,024 × 1,0248 × 8ブロック
42,048 × 2,04816 × 16ブロック — ちょうど1チャンク

大きさ4の地図は、同じ16,384バイトを使用して、大きさ0の地図の256倍の面積をカバーします。これが、地図アートを大きさ0で作成する必要がある唯一の理由です。他のズームでは、1ピクセルが複数のブロックの平均となり、慎重に配置した画像がリサンプリングされてしまいます。

大きさ4の行は別の理由で覚えておく価値があります。1ピクセルが正確に1チャンクであるため、完全にズームされた地図は使用可能なチャンクグリッドになります。

ファイル破損の意味

map_<id>.datcolors配列が16,384バイトでない場合、それはピクセルが欠落した地図ではなく、まったく読み取り可能な地図ではありません。部分的な長さの形式はありません。配列は常にフルサイズで、未探索の領域は省略されるのではなく、色ID 0として保存されます。

地図画像エクストラクター →

More guides

Browse all →

ほかのマインクラフトツールをお探しですか?

ブラウザだけで動くジェネレーター・ビューア・変換ツールの数々。すべて無料です。