Levelフォーマット

提供: Minecraft Wiki
Level formatから転送)
移動先: 案内検索

Minecraft 1.0 では、各レベルがそれ自身のフォルダを有している。レベルフォルダは、level.dat ファイルと、レベルのマップとその領域を格納する他のサブフォルダを持つことによって識別される。

レベルフォルダの項目は常に太字だが、斜体の場合もある。

相対パス 記事 説明
/level.dat (below) レベルに関するグローバル情報を格納する。
/level.dat_new - プログラムがレベルに関する新しいグローバル情報を書き込み、その後、ファイルの名前を level.dat に変更する。
/level.dat_mcr - MCRegion から Anvil に変換する前の level.dat ファイルのバックアップ。
/level.dat_old - Alpha levelフォーマットから MCRegion または Anvil に変換する前の level.dat ファイルのバックアップ。
/session.lock (below) このファイルを変更するための最後のプログラムへの書き込みアクセスを与えるために使用される。
/players/<player>.dat Player.dat Format 1.7.6以前のバージョンの、このレベルでプレイしたプレイヤーの個々の状態を格納する。
/playerdata/<uuid>.dat Player.dat Format 1.7.6以降のバージョンの、このレベルでプレイしたプレイヤーの個々の状態を格納する。
/stats/<uuid>.json Statistics storage format 1.7.2以降のバージョンの、このレベルでプレイしたプレイヤーの統計情報を格納する。
/data/idcounts.dat
/data/map_<#>.dat
Map Item Format 地図のマップデータを格納する。
/data/villages.dat
/data/villages_nether.dat
/data/villages_end.dat
villages.dat format ワールドのに関する情報を格納する。 "nether" と "end" のファイルは1.8で追加された。
/data/Village.dat
/data/Fortress.dat
/data/Temple.dat
/data/Mineshaft.dat
/data/Stronghold.dat
/data/Monument.dat
Generated structures data file format ワールドのさまざまな生成される構造物の生成に関する情報を格納する。
/region/ - オーバーワールド用の領域ファイルが含まれている。
/DIM-1/region/ - ネザー用の領域ファイルが含まれている。
/DIM1/region/ - エンド用の領域ファイルが含まれている。
/region/r.<#>.<#>.mca
/DIM-1/region/r.<#>.<#>.mca
/DIM1/region/r.<#>.<#>.mca
Anvil file format 個々の領域のファイル
/region/r.<#>.<#>.mcr
/DIM-1/r.<#>.<#>.mcr
/DIM1/r.<#>.<#>.mcr
Region file format [MCRegion]からAnvilに変換する前の領域ファイルのバックアップ。
/<#>/<#>/c.<#>.<#>.dat Alpha Level format Alpha levelフォーマットから MCRegion に変換する前のチャンクファイルのバックアップ。

level.datフォーマット[編集 | ソースを編集]

level.datファイルには、時刻、シングルプレイヤー、使用されたレベル生成プログラム、シード値などのワールドに関するグローバル情報が含まれている。この構造の NBTファイルは以下のようになっている。

  • Nbtsheet.png ルートタグ
    • Nbtsheet.png Data: このタグに全てのレベルデータが含まれている。
      • Nbtsheet.png DimensionData: ???
        • Nbtsheet.png 1: ジ・エンドのデータ
          • Nbtsheet.png DragonFight: エンダードラゴンの戦闘データ。 エンドに入った後にのみ表示される。
            • Nbtsheet.png ExitPortalLocation: エンダードラゴン死亡時に飛ぶエンドの出口ポータルの場所
              • Nbtsheet.png X: ポータルのX座標
              • Nbtsheet.png Y: ポータルのY座標
              • Nbtsheet.png Z: ポータルのZ座標
            • Nbtsheet.png Gateways: まだ生成されていないエンドゲートウェイポータルの場所のリストが含まれている。
              • Nbtsheet.png: 将来のゲートウェイの角度を0~19で。0は出口ポータルの東で、時計回りに数字が増加する
            • Nbtsheet.png DragonKilled: 1または0 (true/false) - エンダードラゴンが生きている場合。
            • Nbtsheet.png DragonUUIDLeast: ???
            • Nbtsheet.png DragonUUIDMost: ???
            • Nbtsheet.png PreviouslyKilled: 1または0 (true/false) - エンダードラゴンがこれまでに攻撃を受けた場合。 ドラゴンによって与えられる経験値を決定するために使用される。
      • Nbtsheet.png version: レベルの NBT バージョン、19133。
      • Nbtsheet.png initialized: 1または0 (true/false) - 生成後にワールドが適切に初期化された後、通常はtrueである。初期シミュレーションが何らかの形でキャンセルされた場合、誤っている可能性があるため、次の読み込みでワールドが再初期化される。
      • Nbtsheet.png LevelName: レベルの名前
      • Nbtsheet.png generatorName: 生成プログラムの名前。"default"、"flat"、"largeBiomes"、"amplified"、"customized"、または "debug_all_block_states" のいずれかである。
      • Nbtsheet.png generatorVersion: レベルの生成プログラムのバージョン。この変更の影響は不明だが、0以外の値は確認されている。
      • Nbtsheet.png generatorOptions: ワールドジェネレーターのオプションを制御する。ワールドタイプがスーパーフラットまたはカスタマイズの場合にのみ使用される。スーパーフラットの形式は、マップの下部から上へブロックIDをコンマで区切ったリストであり、各ブロックIDにはオプションでレイヤー数と"*"(伊1.8以前の"x")を前に付けられる。ダメージ値はサポートされていない。[1] カスタマイズの形式は、JSONのような名前と値の組がある非常に長い文字列である。
      • Nbtsheet.png RandomSeed: 一貫した地形の生成に使用されるランダムシード
      • Nbtsheet.png MapFeatures: 1または0 (true/false) - マップジェネレーターが村、要塞、廃坑などの建造物を設置する必要がある場合はtrueである。デフォルトは1である。ワールドタイプがカスタマイズの場合は常に1である。
      • Nbtsheet.png LastPlayed: レベルが最後にロードされたUnix時間(ミリ秒)
      • Nbtsheet.png SizeOnDisk: レベルの推定サイズ(バイト単位)。 現在、Minecraftによって変更または使用されていないが、以前は変更されていた
      • Nbtsheet.png allowCommands: 1または0 (true/false) - チートが有効な場合はtrue。
      • Nbtsheet.png hardcore: 1または0 (true/false) - シングルプレーヤーで死亡時にプレーヤーがワールドを削除する必要がある場合はtrue。3つのゲームモード全てに影響する。
      • Nbtsheet.png GameType: シングルプレーヤーで最初にスポーンする際のデフォルトのゲームモード。0はサバイバル, 1はクリエイティブ, 2はアドベンチャー, 3はスペクテイター。注:シングルプレーヤーワールドでは、このフィールドを使用してもプレーヤーの現在のゲームモードは保存できない
      • Nbtsheet.png Difficulty: 現在の難易度設定。 0はピースフル、1はイージー、2はノーマル、3はハード。 デフォルトは2。
      • Nbtsheet.png DifficultyLocked: 1または0 (true/false) - 難易度がロックされている場合はtrue。デフォルトは0.
      • Nbtsheet.png Time: レベルの開始以降のティック数。
      • Nbtsheet.png DayTime: 時刻。 0は日の出、6000は正午、12000は日没、18000は真夜中、24000は翌日の0。この値は24000を超えてカウントし続け、0にリセットされない。
      • Nbtsheet.png SpawnX: ワールドスポーンのX座標
      • Nbtsheet.png SpawnY: ワールドスポーンのY座標
      • Nbtsheet.png SpawnZ: ワールドスポーンのZ座標
      • Nbtsheet.png BorderCenterX: X座標上のワールド境界の中心。デフォルトは0。
      • Nbtsheet.png BorderCenterZ: Z座標上のワールド境界の中心。デフォルトは0。
      • Nbtsheet.png BorderSize: 境界の幅。 デフォルトは60000000。
      • Nbtsheet.png BorderSafeZone: デフォルトは5。
      • Nbtsheet.png BorderWarningBlocks: デフォルトは5。
      • Nbtsheet.png BorderWarningTime: デフォルトは15。
      • Nbtsheet.png BorderSizeLerpTarget: デフォルトは60000000。
      • Nbtsheet.png BorderSizeLerpTime: デフォルトは0。
      • Nbtsheet.png BorderDamagePerBlock: デフォルトは0.2.
      • Nbtsheet.png raining: 1または0 (true/false) - レベルで現在雨、雪が降っている、曇っている場合はtrue。
      • Nbtsheet.png rainTime: "raining"が切り替わるまでのティック数。この値は別のランダムな値に変更される
      • Nbtsheet.png thundering: 1または0 (true/false) - 雨・雪・曇りが雷雨であり、Mobが地面にスポーンできる暗さである場合はtrue
      • Nbtsheet.png thunderTime: "thundering"が切り替わるまでのティック数。この値は別のランダムな値に変更される
      • Nbtsheet.png clearWeatherTime: "clear weather"が終了するまでのティック数
      • Nbtsheet.png Player: シングルプレーヤーの状態。これにより、シングルプレーヤーと同じ名前の<player>.datファイルが上書きされる。これはサーバーによって既に保存されている場合にのみ保存され、それ以外の場合はサーバーワールドに対して保存されない。Player.datフォーマットを参照
      • Nbtsheet.png GameRules: ゲームルール。各ルールは"true"または"false"の書式。(数字を使用するrandomTickSpeedを除く)
        • Nbtsheet.png commandBlockOutput: コマンドブロックによって実行されたアクションがチャットに表示されるかどうか。デフォルトはtrue。
        • Nbtsheet.png disableElytraMovementCheck: trueに設定すると、サーバーが無効になり、プレーヤーがエリトラを装着している際に動きが速すぎる(チート)かどうかを確認する
        • Nbtsheet.png doDaylightCycle: 昼夜サイクルを行うかどうか。デフォルトはtrue。
        • Nbtsheet.png doFireTick: 火が延焼するか消えるか。デフォルトはtrue。
        • Nbtsheet.png doMobLoot: Mobが殺された際に戦利品を落とすかどうか。デフォルトはtrue。
        • Nbtsheet.png doMobSpawning: Mobが自然にスポーンするかどうか。デフォルトはtrue。
        • Nbtsheet.png doTileDrops: 破壊されたブロックがアイテムとしてドロップするかどうか。デフォルトはtrue。
        • Nbtsheet.png keepInventory: プレーヤーが死亡後もインベントリのアイテムを保持するかどうか。デフォルトはfalse。
        • Nbtsheet.png logAdminCommands: 管理コマンドをサーバーログに記録するかどうか。デフォルトはtrue。
        • Nbtsheet.png mobGriefing: Mobがブロックを破壊できるかどうか(クリーパーの爆発、ゾンビのドア破壊など)。デフォルトはtrue。
        • Nbtsheet.png naturalRegeneration: 満腹度が十分高い場合に、プレーヤーが自然に体力を回復するかどうか。デフォルトはtrue。
        • Nbtsheet.png randomTickSpeed: 植物の成長、葉の落下などのランダムティックが発生する頻度。デフォルトは3。
        • Nbtsheet.png sendCommandFeedback: プレーヤーが実行したコマンドからのフィードバックをチャットに表示するかどうか。デフォルトはtrue。
        • Nbtsheet.png showDeathMessages: プレーヤーの死亡時にメッセージをチャットに表示するかどうか。デフォルトはtrue。
      • Version:ワールドが保存されたMinecraftのバージョンに関する情報。
        • Nbtsheet.png Id:バージョンの識別子。
        • Nbtsheet.png Name:文字列でのバージョン名。例:"15w32b"
        • Nbtsheet.png Snapshot: 1または0 (true/false) - バージョンがスナップショットであったかどうか

session.lockフォーマット[編集 | ソースを編集]

このファイルには、レベルが最後にアクセスされたときのタイムスタンプが含まれている。 このファイルには、ビッグエンディアン形式の単一の64ビット整数が含まれる。これは、UTCで1970-01-01 00:00:00から経過したミリ秒数として保存されるタイムスタンプである。

通常のロックファイルとは異なり、このファイルは、レベルにアクセスする最後のプログラムが読み取りおよび書き込みアクセスを持つものであることを保証する。 手順は次のようになる:

  1. プログラムがsession.lockを開く
  2. プログラムがsession.lockにタイムスタンプを書き込む
  3. プログラムがsession.lockの変更を監視する
  4. session.lockの内容が変更されると、プログラムは中止され、レベルのロックを放棄する。

Minecraftは、プレーヤーが別のレベルでプレイを開始した後でも、あるレベルでロックを保持しようとすることがあり、これが奇妙な動作を引き起こす可能性がある。レベルのロックを取得する前に、Minecraftが閉じていることを確認することが望ましい。

脚注[編集 | ソースを編集]