We are currently performing an upgrade to our software. This upgrade will bring MediaWiki from version 1.31 to 1.33. While the upgrade is being performed on your wiki it will be in read-only mode. For more information check here.

ルートテーブル

提供: Minecraft Wiki
Loot tableから転送)
移動先: 案内検索
この記事は内容の改訳が必要な可能性があります。
執筆されている内容は不適切、不正確な翻訳かもしれません。
該当する節: タグ条件

ルートテーブル (Loot table) は、技術的なJSON形式の表である。この表では、自然に生成されるコンテナの中身、Mob を倒したときにドロップされるアイテム釣りによって釣れるアイテムの決定が行われる。コンテナは、チェストやかまどなどのインベントリを有するブロック全般を指す。

使用法[編集 | ソースを編集]

この表は、表を使用するかを決定する String タグとシードを決定する Long タグから構成される。同じシードと表を使用する、インベントリを持つブロック(すなわちコンテナ)や Mob には、同じアイテムが定められる。ただし、この表が使用されるコンテナのどのスロットに配置されるかは決定できず、シードに基づいてランダムに配置される。

チェストトラップチェストホッパーチェスト付きトロッコホッパー付きトロッコディスペンサードロッパーの場合:

  •       
    • Nbtsheet.png LootTable: コンテナが次に開かれた時にアイテムを配置する、またはそれ以外でアイテムが使用された場合に使用される。そのコンテナがチェストであり、それがラージチェストのどちらかである場合、タグ付きのシングルチェストに相当する半分だけが影響を受ける。
    • Nbtsheet.png LootTableSeed: ルートテーブルを生成するために使用されるシード。これは、ワールドにおけるシード値と同じように動作する。0または省略にすることでランダムになる。

一度アイテムが使用されたり(コンテナのインベントリを開いたり、ブロックの破壊など)、コンテナに入れられると、このタグは削除される。

Mob の場合:

  • Nbtsheet.png ルートタグ。
    • Nbtsheet.png DeathLootTable: エンティティが倒されたときにドロップするアイテムに使用される。
    • Nbtsheet.png DeathLootTableSeed: ルートテーブルを生成するために使用されるシード。これは、ワールドにおけるシード値と同じように動作する。0または省略にすることでランダムになる。

Mob とコンテナのルートテーブルは、/entitydata/blockdata で変更することができる。

カスタムマップでは、この表を使用してコンテナにどのアイテムが配置されるかを変更することが可能となっている。そのため、既存のどれかのルートテーブルを変更したり、新しいものの作成ができる。以下はそのファイルの配置である:

  • < ワールドが保存されているフォルダ >
    • data
      • loot_tables

「loot_tables」の下位フォルダは名前空間となっている。デフォルトのファイルは「minecraft」下の名前空間にあるが、カスタムマップや Mod はそれぞれ独自の名前空間を有している。例えば、「楽しいパルクールマップ」という名前のカスタムマップを作成する場合、名前空間は「tanoshi_parukuru_mappu」となるだろう(空白を含めることは不可)。この名前空間には、そのマップで使用されるすべてのルートテーブルが含まれることとなる。

また、デフォルトのルートテーブルを上書きにするには、「minecraft」の名前空間に対象を配置する必要がある。下記のルートテーブルの一覧の節で解説されているように、これらはエンティティ、コンテナ、釣りによって構成される。ゲーム内でオリジナルの名前空間のルートテーブルを使用するには、.json 拡張子なしで「namespace:table_name」と書いて呼び出す。「namespace」に名前空間名、「table_name」に表のファイル名を指定し、そしてルートテーブルのタグを設定することで可能である。

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

ルートテーブルはJSON形式を使用して定義されている。以下は、使用されているタグの一覧である:

  • Nbtsheet.png The root tag
    • Nbtsheet.png pools: エンティティのすべてのプールのリスト。ロールの数に基づいて、アイテムのリストからアイテムを生成する際に用いられる各プールである。プールは、順番に適応される。
      • Nbtsheet.png A pool
        • Nbtsheet.png conditions: プールを使用するための条件を決定する。複数の条件が指定されている場合は、すべてを渡される必要がある。
          • Nbtsheet.png A condition
            • Nbtsheet.png condition: 条件の名前。有効な条件については下記参照
        • Nbtsheet.png rolls: プールでのロールの正確な数を指定する。
        • Nbtsheet.png rolls: 範囲内のロールの乱数を指定する。
          • Nbtsheet.png min: ロールの最小数。
          • Nbtsheet.png max: ロールの最大数。
        • Nbtsheet.png bonus_rolls: 幸運のポイントごとに、プールのボーナスロールの正確な数を指定する。乗算のあとに切り捨てられる。
        • Nbtsheet.png bonus_rolls: 範囲内のボーナスロールの乱数を指定する。乗算のあとに切り捨てられる。
          • Nbtsheet.png min: ボーナスロールの最小数。
          • Nbtsheet.png max: ボーナスロールの最大数。
        • Nbtsheet.png entries: プールによって作ることができるすべてのもののリスト。1つのエントリーは、失敗している条件がない状態で、すべてのエントリーから重み付けのランダム選択としてロールごとに選択される。
          • Nbtsheet.png An entry
            • Nbtsheet.png conditions: エントリーが使用される条件を決定する。複数の条件が指定されている場合は、すべてを渡される必要がある。
              • Nbtsheet.png A condition
                • Nbtsheet.png condition: 条件の名前。有効な条件については下記参照
            • Nbtsheet.png type: エントリーの種類。アイテムエントリーに item を指定し、何も生成しない empty のエントリー、または別のルートテーブルからアイテムを生成するための loot_table を指定できる。
            • Nbtsheet.png name:
              • 'item' の種類のために作られる minecraft:diamond などのID名。functions によって変更されない場合、デフォルトでは、アイテムのデフォルトインスタンスは1のスタックになっている。
              • 'loot_table' の種類のために作られる minecraft:gameplay/fishing/junk などのルートテーブル。
            • Nbtsheet.png functions: 'item' の種類に、作られるアイテムのスタックに関数を適応する。関数は順に適応され、例えば looting_enchant を正しく動作させるには set_count のあとにしなくてはならいない。
              • Nbtsheet.png A function:
                • Nbtsheet.png function: 適応する関数の名前。有効な関数については下記参照
                • Nbtsheet.png conditions: 関数を使用するために条件を指定する。複数の条件が指定されている場合は、すべてを渡される必要がある。
                  • Nbtsheet.png A condition
                    • Nbtsheet.png condition: 条件の名前。有効な条件については下記参照
            • Nbtsheet.png weight: このエントリーが、プール内のすべてのエントリーのうちから選択される頻度を決定する。この値が高いエントリーほど頻繁に使用される(確率はこのエントリーの値全エントリーの値の合計)。
            • Nbtsheet.png quality: プレイヤーの倒す/開く/釣りの運属性に基づいて、エントリーの weight を変更する。式は floor( weight + (quality * generic.luck))

関数[編集 | ソースを編集]

ルートテーブルでは、作られるアイテムのスタック数を変更したり、エンチャントを加えるなどの、様々な関数が使用できる。以下は、有効な関数、およびそれによって使用されるタグの一覧である。タグは、Nbtsheet.png function と同じ関数オブジェクトに配置される:

  • enchant_randomly - ランダムに選択された1つのアイテムにエンチャント効果を付与する。エンチャントレベルは、適応可能ならばランダムになる。
    • Nbtsheet.png enchantments: エンチャント名のリストからエンチャントを選択する。これを省略した場合、アイテムにすべてのエンチャントが適応可能になる。
  • enchant_with_levels - 指定されたエンチャントレベルでアイテムをエンチャント効果を付与する(エンチャントテーブルを使用する場合とほぼ同等)。
    • Nbtsheet.png treasure: 宝のエンチャントがこのアイテムに適応可能かを決定する。
    • Nbtsheet.png levels: 使用する正確なエンチャントレベルを指定する。
    • Nbtsheet.png levels: 指定した範囲内からランダムにエンチャントレベルを指定する。
      • Nbtsheet.png min: 使用する最小レベル。
      • Nbtsheet.png max: 使用する最大レベル。
  • furnace_smelt - かまどでアイテムが製錬されるか否か。倒された動物から食料を調理する際に、entity_properties の条件と組み合わせて使用する。
  • looting_enchant - killer エンティティのドロップ増加のエンチャントレベルに基づいて、スタック数を調整する。
    • Nbtsheet.png count: ドロップ増加のレベルごとに増加するアイテムの正確な数を指定する。
    • Nbtsheet.png count: ドロップ増加のレベルごとに増加するアイテムの乱数(範囲)を指定する。乱数は少数となる可能性があり、その場合はドロップ増加のレベルに乗算されたあと切り捨てられる。
      • Nbtsheet.png min: 最小増加数。
      • Nbtsheet.png max: 最大増加数。
    • Nbtsheet.png limit: ドロップ増加によって増加される最終的な数の最大数。値を0とすると、無制限になる。
  • set_attributes - アイテムに属性の修飾子を追加する。
    • Nbtsheet.png modifiers
      • Nbtsheet.png A modifier
        • Nbtsheet.png name: 修飾子の名前。
        • Nbtsheet.png attribute: 修飾子が動作する属性の名前。
        • Nbtsheet.png operation: 「addition」、「multiply_base」または「multiply_total」のいずれかでなければならない。
        • Nbtsheet.png amount: 修飾子が変化する正確な量を指定する。
        • Nbtsheet.png amount: 指定した範囲内からランダムな量を指定する。
          • Nbtsheet.png min: 最小量。
          • Nbtsheet.png max: 最大量。
        • Nbtsheet.png id: 任意 : 修飾子の UUID。指定されていなければ、新しい UUID が生成される。
        • Nbtsheet.png slot: スロットアイテムが有効にする修飾子を次の値の中から選択する必要がある: 「mainhand」、「offhand」、「feet」、「legs」、「chest」、「head」
        • Nbtsheet.png slot: リストされているスロットの1つがランダムに選択される。
  • set_count - スタック数を設定する。
    • Nbtsheet.png count: 設定する正確なスタック数を指定する。
    • Nbtsheet.png count: 範囲内からランダムにスタック数を指定する。
      • Nbtsheet.png min: 最小スタック数。
      • Nbtsheet.png max: 最大スタック数。
  • set_damage - 道具のアイテムのダメージ値(耐久値)を設定する。
    • Nbtsheet.png damage: 設定する耐久の消耗率を指定する(1.0で未使用、0.0で耐久0となる)。
    • Nbtsheet.png damage: 範囲内からランダムに耐久の消耗率を指定する。
      • Nbtsheet.png min: 最小値。
      • Nbtsheet.png max: 最大値。
  • set_data - アイテムのアイテムデータ値を設定する。
    • Nbtsheet.png data: 設定する正確な値を指定する。
    • Nbtsheet.png data: 範囲内からランダムに値を指定する。
      • Nbtsheet.png min: 最小値。
      • Nbtsheet.png max: 最大値。
  • set_nbt - アイテムに NBT データを追加する。
    • Nbtsheet.png tag: コマンド使用されるものと同様のタグ文字列を追加する。最初にかっこが必要で、引用符はバックスラッシュ (\) を使用してエスケープする必要がある。

条件[編集 | ソースを編集]

ルートテーブルは、ドロップ、プール、または関数に要件を追加して、様々な条件を使用する。以下は、有効な条件、およびそれによって使用されるタグの一覧である。タグは、Nbtsheet.png condition: と同じ条件オブジェクトに配置される:

  • entity_properties - エンティティのテストプロパティ。
    • Nbtsheet.png entity: 条件を確認するエンティティを指定する。倒されたエンティティを使用するには this、無作為に攻撃させるには killer、プレイヤーのみを攻撃させるには killer_player を設定する。
    • Nbtsheet.png properties: 確認するプロパティ。
      • Nbtsheet.png on_fire: エンティティが燃えているかテストする。
  • entity_scores - エンティティのスコアボードのスコアをテストする。
    • Nbtsheet.png entity: 条件を確認するエンティティを指定する。倒されたエンティティを使用するには this、無作為に攻撃させるには killer、プレイヤーのみを攻撃させるには killer_player を設定する。
    • Nbtsheet.png scores: スコアを確認する。すべての指定したスコアが渡されるべき条件に渡される必要がある。
      • Nbtsheet.png A score: キー名は、値が渡されるべき条件に必要な、正確なスコア値があるときのオブジェクトである。
      • Nbtsheet.png A score: キー名は、値が渡されるべき条件jに必要なスコア値をの範囲を指定するオブジェクトである。
        • Nbtsheet.png min: 最小スコア。
        • Nbtsheet.png max: 最大スコア。
  • killed_by_player - killer_player のエンティティがいる場合にテストする。
    • Nbtsheet.png inverse: true の場合に、killer_player がいなければ条件が渡される。
  • random_chance - 乱数が0.0~1.0の規定値未満である場合にテストする。
    • Nbtsheet.png chance: 0.0~1.0の数としての成功率。
  • random_chance_with_looting - 乱数が0.0~1.0の値よりも小さく、killer のエンティティにドロップ増加のレベルによって影響を受けた場合にテストする。
    • Nbtsheet.png chance: 基本成功率。
    • Nbtsheet.png looting_multiplier: 基本成功率をドロップ増加で調整する。式は chance + (looting_level * looting_multiplier)

ルートテーブルの一覧[編集 | ソースを編集]

以下は、デフォルトで存在するすべてのルートテーブルの一覧である。カスタムマップで使用する保存ワールドでは、これに加え複数の表を追加できる。

  • loot_tables
    • chests - チェストの戦利品のアイテム。
    • entities - エンティティがドロップするアイテム。スタック数が0で生成された一部のアイテムによって、チェストに適応された際に問題が発生する可能性がある。
      • sheep - ヒツジの羊毛。染色されたヒツジによっても継承される。
        • black
        • blue
        • brown
        • cyan
        • gray
        • green
        • light_blue
        • lime
        • magenta
        • orange
        • pink
        • purple
        • red
        • silver
        • white
        • yellow
      • bat
      • blaze
      • cave_spider
      • chicken
      • cow
      • creeper
      • donkey
      • elder_guardian
      • enderman
      • endermite
      • ghast
      • giant
      • guardian
      • horse
      • husk
      • iron_golem
      • magma_cube
      • mule
      • mushroom_cow
      • ocelot
      • pig
      • rabbit
      • sheep - 毛がないヒツジ。毛のあるヒツジによっても継承される。
      • shulker
      • silverfish
      • skeleton
      • skeleton_horse
      • slime
      • snowman - スノウゴーレム。
      • spider
      • squid
      • witch
      • wither_skeleton
      • wolf
      • zombie
      • zombie_horse
      • zombie_pigman
      • zombie_villager
    • gameplay
      • fishing
        • fish - ガーディアンやエルダーガーディアンによっても継承される。
        • junk
        • treasure
      • fishing - 釣りのフォルダから3つの表を読み込み、それぞれに幸運を適応することにより、釣れるアイテムを決定するために使用される。
    • empty - アイテムなし。

カスタムマップ[編集 | ソースを編集]

カスタムマップにおいても、コンテナに入ったり Mob からドロップされるアイテムを、ルートテーブルを使用して変更できる。これは、既存のルートテーブルの変更や、新しく作成することも可能である。以下はそのファイルの配置である:

  • < ワールドが保存されているフォルダ >
    • data
      • loot_tables
        • minecraft
        • < カスタムディレクトリ >

JSON ファイルは、このフォルダに入る。ゾンビのファイルを例にすると、data/loot_tables/minecraft/entities/zombie.json に配置されることになる。これは、そのワールドのあらゆるゾンビのデフォルトであるルートテーブルを、作成したルートテーブルに置き換えて使用することができるということである。カスタマイズされたルートテーブルを追加するには、ディレクトリを新しく作成し、その中に配置する必要がある。その後、DeathLootTable のデータタグでルートテーブルのディレクトリとファイル(.json 拡張子なし)の名前を指定して、Mob を召喚すれば良い。例えば「MyLootTable」というフォルダ内に「Test1」というフォルダを作成し、その中に「example.json」という名前でファイルを配置した場合は{DeathLootTable:"MyLootTable:test1/example"} とする。

歴史[編集 | ソースを編集]

Java Edition
1.92015年10月19日Dinnerbone がルートテーブルについて発表した。
15w43aルートテーブルが追加された。
15w43bentity_scores の条件が追加された。
15w43c「villager_golem.json」が「iron_golem.json」に改名された。
釣りのルートテーブル、毛のないヒツジ、ゾンビおよびスケルトンホースが追加された。
Nbtsheet.png item: タグが Nbtsheet.png name: に、Nbtsheet.png items: タグが Nbtsheet.png entries: に改名された。
Nbtsheet.png type: タグとアイテムの代わりにルートテーブルを読み込むサポートが追加された。
実際何もしないコードが、Nbtsheet.png luck: タグのデフォルトファイルとして追加された。
set_damage の関数が追加された。
15w44aenchant_randomlyset_attributes の関数が追加された。
15w44bNbtsheet.png quality タグが追加された。
Nbtsheet.png luckNbtsheet.png luck_multiplier タグが削除された。
Nbtsheet.png bonus_rolls タグが追加された。
15w51aスペクテイターモードにおいて、アイテムを生成するためのルートテーブルの使用に必要となるコンテナのトリガーが必要なくなった。
1.9.11.9.1-pre1ディスペンサードロッパーで使用可能になった。
デフォルトのルートテーブルとして chests/jungle_temple_dispenser が追加された。
1.1116w32aロバ、ラバ、ハスク、村人ゾンビは、ウマやゾンビで使用される表ではなく、それぞれ個別の表を持つようになった。
16w43a村人、ヴェックス、エンダードラゴンが自身のルートテーブルを持つようになった。

問題点[編集 | ソースを編集]

「Loot table」に関する問題点は、バグトラッカーにて管理されている。問題点の報告はそちらで行ってほしい。