高度マップは、各XZ座標上における最高点を記録したマップである。チャンクファイル上に保存されており、ゲーム内の様々な処理に使用されている。本記事では、Java Editionにおいて現在使用されている高度マップについて解説する。
種類[]
高度マップにはその測定基準によっていくつかの種類が存在し、それぞれの使用目的が存在する。Java Editionでは、現在以下の6種類の高度マップが存在する。
WORLD_SURFACE[]
空気以外で最も高い位置にあるブロックのY座標。
WORLD_SURFACE_WG[]
空気以外で最も高い位置にあるブロックのY座標。ワールド生成の過程でのみ使用され、洞窟の生成完了後に削除される。
OCEAN_FLOOR[]
エンティティの移動を妨げる材料のブロックのうち最も高い位置にあるブロックのY座標。サーバー側でのみ使用される。
OCEAN_FLOOR_WG[]
エンティティの移動を妨げる材料のブロックのうち最も高い位置にあるブロックのY座標。サーバー側でのみ使用される。ワールド生成の過程でのみ使用され、洞窟の生成完了後に削除される。
MOTION_BLOCKING[]
水没したブロック、水、溶岩を含めた、エンティティの移動を妨げる材料のブロックのうち最も高い位置にあるブロックのY座標。
MOTION_BLOCKING_NO_LEAVES[]
水没したブロック、水、溶岩を含め、代わりに葉を除いた、エンティティの移動を妨げる材料のブロックのうち最も高い位置にあるブロックのY座標。サーバー側でのみ使用される。
用途[]
高度マップはゲーム内の様々な処理に利用されている。例えば雷や降雪など、空に直接面している場合にのみ発生する要素が存在するが、これらの一部はWORLD_SURFACEがそのブロックより高いかどうかで判別されている。また構造物や生成物の生成にも高度マップが使用されることがある。
サーバー側、クライアント側の高度マップはデバッグ画面で見ることができる。"CH"(Client-side Heightmap)の行はクライアント側、"SH"(Server-side Heightmap)の行はサーバー側の、プレイヤーの現在のXZ座標上の高度マップを表示している。これらの行に記されている高度マップの凡例は以下の通り。
- S ⇒ WORLD_SURFACE
- O ⇒ OCEAN_FLOOR
- M ⇒ MOTION_BLOCKING
- ML ⇒ MOTION_BLOCKING_NO_LEAVES
また、/execute position over
では実行地点を指定した高度マップの値の1ブロック上に変更することもできる。ここでは、WORLD_SURFACE_WGとOCEAN_FLOOR_WG以外の高度マップが使用できる。
脚注[]
デモ版 | |||||||
---|---|---|---|---|---|---|---|
開発 |
| ||||||
技術的情報 |
| ||||||
マルチプレイ | |||||||
ゲームのカスタマイズ |