Indevレベルフォーマット

提供: Minecraft Wiki
移動先: 案内検索
Rose (texture) JE1.png
このページには、Java Editionの古い情報、またはゲームから削除された機能についての内容が含まれています。
Rose (texture) BE1.png
このフォーマットはInfdevから始まったフォーマットです。

.mclevelマップフォーマットは、Notchが作成した古いマップフォーマットである。これはNBTフォーマットに基づいている。

マップフォーマットはindevバージョン0.31から使用されている。

Alpha (とInfdev) のワールドは NBTファイルを使用しているが、ファイルフォーマットは非常に異なっている。

無限マップ形式の詳細はAlphaレベルフォーマットを参照。

NBTの構造[編集 | ソースを編集]

  •  MinecraftLevel: ルートタグ。
    •  About: レベルに関する情報。
      •  CreatedOn: レベルが作成された時のUnix時間。
      •  Name: レベルの名前、常に「A Nice World」。
      •  Author: レベルを作成したユーザー名。
    •  Environment: マップの生成設定によって変化する、レベルの環境に関する情報。
      •  TimeOfDay: 昼夜サイクルの影響を及ぼす時間(ティック)。範囲は0~24000。
      •  SkyBrightness: 空の明るさレベル、0から15。
      •  SkyColor: 空の色(RGB、24ビット)。赤はSkyColor >> 16 & 255、緑はSkyColor >> 8 & 255、青はSkyColor & 255.
      •  FogColor: 霧の色(RGB、24ビット)。赤はFogColor >> 16 & 255、緑はFogColor >> 8 & 255、青はFogColor & 255。
      •  CloudColor: 雲の色(RGB、24ビット)。赤はCloudColor >> 16 & 255、緑はCloudColor >> 8 & 255、青はCloudColor & 255。
      •  CloudHeight: 雲の高さ(Y座標)。
      •  SurroundingGroundType: 「周辺地面」のブロックID。
      •  SurroundingGroundHeight: 「周辺地面」の高さ。
      •  SurroundingWaterType: 「周辺水」のブロックID。
      •  SurroundingWaterHeight: 「周辺水」の高さ。
    •  Map: 実際のマップデータ。
      •  Width: レベルの幅。
      •  Length: レベルの長さ。
      •  Height: レベルの高さ。
      •  Spawn: スポーン地点のX、Y、Z座標のTAG_Shorts3つの一覧。
      •  Blocks: ブロックIDのWidth×Length×Heightバイト。(8ビット)
      •  Data: ブロックデータ(4ビット)と明るさの値(次の4ビット)のWidth×Length×Heightバイト。
    •  Entities: レベル内のエンティティのTAG_Compoundsの一覧。
      • エンティティ。プレイヤーは自身のエンティティを持っており、下に例を示す。
        •  id: エンティティID。この場合、「LocalPlayer」。
        •  Pos: プレイヤーのX、Y、Zの位置のTAG_Floats3つの一覧。
        •  Rotation: プレイヤーの視点のYawとPitchのTAG_Floats2つの一覧。
        •  Motion: X、Y、Z、の動きを1ティック当たりメートル単位で表すTAG_Floats3つの一覧。
        •  FallDistance: プレイヤーが落ちた距離。
        •  Health: プレイヤーが持つ体力の数。20はハート10個分。
        •  AttackTime: プレイヤーが攻撃に対して無敵になるティック数。
        •  HurtTime: 攻撃を受けて赤くなったプレイヤーのティック数。
        •  DeathTime: プレイヤーが死亡してからのティック数 - 死亡アニメーションの制御に使用される。
        •  Air: プレイヤーが溺れ始めるティック数。300から始まる。
        •  Fire: 負の場合、プレイヤーが燃えるまでのティック数。正の場合、炎が消えるまでのティック数。
        •  Score: プレイヤーのスコア。
        •  Inventory: プレイヤーのインベントリにあるアイテムを表すTAG_Compoundsの一覧。
          • アイテムのスタック。
            •  Slot: アイテムが入っているスロット
            •  id: アイテムID
            •  Damage: アイテムのデータ値、または道具の耐久値。
            •  Count: スタック内のこのアイテムの数。範囲は-128から127。2より小さい値はゲーム内に表示されない。
    •  TileEntities: レベル内のタイルエンティティのTAG_Compoundsの一覧。
      • タイルエンティティ。
        •  id: エンティティID。この場合、「Chest」。
        •  Pos: タイルエンティティの位置、後述。
        •  Items: チェスト内のアイテムを表すTAG_Compoundsの一覧。
          • アイテムのスタック。
            •  Slot: アイテムが入っているスロット
            •  id: アイテムID
            •  Damage: アイテムのデータ値、または道具の耐久値。
            •  Count: スタック内のこのアイテムの数。範囲は-128から127。2より小さい値はゲーム内に表示されない。

タイルエンティティの「Pos」タグを計算する:

Pos = x + (y << 10) + (z << 20)

PosタグからX、Y、Zを計算する:

x = Pos % 1024

y = (Pos >> 10) % 1024

z = (Pos >> 20) % 1024

ブロック[編集 | ソースを編集]

ブロックのバイト配列はマップを占有するブロックの種類を定義するのに使用する。 配列のバイト数は、マップの寸法を乗算して計算できる。 上方向はZではなくY。 16進数の値についてはブロックIDを参照。

XYZ座標のブロックまたはデータ配列のいずれかから特定のブロックにアクセスするには、次の式を使用:

配列指数 = (y * Height + z) * Width + x;

データ[編集 | ソースを編集]

データのバイト配列は明るさと余分なブロックデータに使用される。

ブロックメタデータの拡張情報についてはJava Editionのデータ値を参照。

明るさ[編集 | ソースを編集]

Lighting values.png

ブロックの明るさは、0×0(0、明かりなし)から0×F(15、完全に明るい)までの16段階がある。