Levelフォーマット

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

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

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

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

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

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

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

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