「Loot Table (ドロップ表)」の使い方 Part2 JSONの書き方と条件分岐
Loot Table解説のPart2です。今回はJSONの書き方を解説します。「運効果を持っていればこのアイテムが出やすい」「スコアボードの値に応じてアイテムを出す」「燃やして死んだらアイテムのNBTタグを変える」「アイテムにランダムで指定したエンチャントを付ける」など、様々な「function」と「condition(条件)」の使い方を解説しています。Part1とPart3も合わせてご覧ください。
[2020/2/22追記] 1.14仕様に更新しました。1.13以前ではこの方式は使えないので注意してください。
ここからは、オリジナルのLoot table(ドロップ表)を自作する手順とJSONファイルの書き方を解説します。サンプルをコピペして少しずつ弄っていけば誰でも思い通りのルートテーブルが作れるはずなので、是非諦めずに自作に挑戦してみてください。
(簡単にJSONを生成するツールもありますが、また別の機会に紹介するかもです)
LootTableを作成する場所とは。セーブデータ内のフォルダの構造を解説
- 「データパック」の作成手順/フォルダ構成/使い方 (Java版1.13)

https://asobinon.com/data-pack-perfect-guide/
まずは▲の記事を参考に、あなたのワールドの中に「データパック」を作ってください。
データパックを作る際に名前空間フォルダを作りますが、バニラのルートテーブルを上書きしたい場合は「minecraft」に、そうでない場合は英数字で好きな名前を付けてください。
そして名前空間フォルダの中に、loot_tablesという名前のフォルダを作成します。
loot_tablesフォルダの中にルートテーブルのJSONを入れていくわけですが、この中にさらにフォルダを作成して、JSONを整理することもできます。もちろんloot_tablesフォルダ直下にJSONを入れても構いません。
そこに新規テキストファイルを作成して、小文字の英数字とアンダーバーで名前を付け、末尾に.jsonを付けてください。
jsonの編集にはメモ帳ではなく高機能なテキストエディタを使おう
作成したJSONファイルをいよいよ編集していくのですが、ここで注意点を1つ。Windows付属の「メモ帳」はおすすめしません。こういう文書ファイルでは一文字のミスも許されませんから、自動整形だとか構文チェックをしてくれる多機能なエディタでjsonファイルを開くことをお勧めします。
ちなみに私は「Sublime Text 3」にMaterialってテーマを適用して使ってます。
ルートテーブルの基本の書き方。アイテムのスロット数と出現確率を設定するには
まずは以下のサンプルをコピペしてjsonに貼り付けてみましょう。
{
"pools": [
{
"rolls": 3,
"bonus_rolls":2,
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 2
},
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
}
]
}
]
}
基本的な書き方が分かっていただけたかと思います。「pools」の中に「entries」があり、その中にアイテムを書いていくんです。
- "pools": [] - 四角カッコの中にアイテムのパターンを書きます。
- "rolls": 数値 - 出現する項目の数を設定します。アイテム自体の数量ではなく、例えばチェストなら占有するスロットの数です。
- "bonus_rolls": 数値 - バージョン1.9で追加された「運(luck)」効果を持っていた際に追加で出てくるアイテムの数です。luck効果は/effect @p minecraft:luck 100 0 trueで自分に付与できます。
- "entries": [] - 四角カッコの中にアイテムなどの項目を書きます。
- "type": "タイプ" - アイテムの場合は"item", 他のルートテーブルを呼び出す際は"loot_table", 何もない場合は"empty"と書きます。
- "name": "何か" - typeをitemにした場合はアイテムID、loot_tableにした場合はminecraft:chests/nether_bridgeのようにloot tableを指定します。
- "weight": 数値 - そのアイテムの出やすさです。weightが多いほど出やすく、少ないほどレアになります。
"roll": 数値でアイテムの量(というよりスロットの数)を指定するのですが、いつも同じ数のアイテムが出てくるってつまらないですよね。出てくるアイテムの量をランダムにするにはどうすれば良いのでしょうか。
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 2
},
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
}
]
}
]
}
違いがお分かり頂けましたか? そう、「"rolls"」の中にさらにカッコが増えてますね。その中に「"min"」「"max"」の値を書くことで、出てくるアイテムの最小の量と最大の量を設定できるんです。「"bonus_rolls"」の数値も同じように最小値と最大値を設定できます。
バージョン1.9では「luck」という新効果が追加されたことはご存知ですよね。この運効果が付いている間だけ、特定のアイテムが出てくる確率を上げる(=特定のアイテムの量を増やす)にはどうすれば良いのでしょうか。
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 2
},
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"quality": 5
}
]
}
]
}
"quality": 数値という項目をダイヤモンドに設定しています。すると以下のようにアイテムの出やすさが増えます。
- "quality"を設定した際のluck効果のレベルに応じたアイテムの出やすさの変化の式
- アイテムの出やすさ: "weight"の値 + ("quality"の値 × luck効果のレベル)
例えば"weight"が3、"quality"が5、プレイヤーの「運」がレベル2だった場合は「3+(5*2) = 13」となり、最終的なアイテムの出やすさは「13」となります。プレイヤーの運レベルが高ければ、"quality"をちょっと変えただけで大きく出やすさが変わるんです。
1ページ目でも述べましたが、このルートテーブルをチェストなどに設定した場合は「初めて開けて中身を見た時」にluck効果を持っていればアイテムが増えます。設置/設定時の効果は中身の決定に影響しません。
アイテムのまとまり、「pool」とは
{
"pools": [
{
"rolls": 11,
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 10
},
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
}
]
},
{
"rolls": 3,
"entries": [
{
"type": "item",
"name": "minecraft:stick",
"weight": 2
},
{
"type": "item",
"name": "minecraft:paper",
"weight": 1
}
]
}
]
}
▲このルートテーブルでは、"pool": []の中に複数のまとまり(pool)がありますよね。こういう風に複数のpoolに分けて書くことで、アイテムの出やすさ(weightとquality)の比較をバラバラに行えるんです。
上記ルートテーブルでは、「焼石:ダイヤ=10:1」「棒:紙=2:1」という2つの「pool」で別々に出やすさの比較が行われます。上手に「pool」を分けて、アイテムの出やすさを思い通りに操りましょう。
基本的な「functions」の使い方
アイテムを出現させることはできたものの、アイテムはすっぴんのまま。エンチャント効果を付けたり、NBTタグを使って名前や説明文を付けたり、スタック数を設定したりするにはどうすれば良いのでしょうか。
アイテムにランダムまたは指定したエンチャント効果を指定した確率で付与するには
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 2
},
{
"type": "item",
"name": "minecraft:diamond_chestplate",
"weight": 1,
"quality": 5,
"functions": [
{
"function": "minecraft:enchant_randomly",
"enchantments": [
"minecraft:protection",
"minecraft:fire_protection",
"minecraft:unbreaking"
]
}
]
}
]
}
]
}
ここで新しく「functions」が出てきました。この「functions」内に色々書けば各種設定ができるわけです。上記ルートテーブルでは"function": "minecraft:enchant_randomly"と書くことで「enchant_randomly(ランダムにエンチャントする)」機能を設定しています。その下に"enchantments": ["エンチャントID","エンチャントID"]と書けば付与されるエンチャントの種類を指定できます。上記の場合は耐性、火炎耐性、耐久力エンチャントの内1つだけが付与されます。
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:stone",
"weight": 2
},
{
"type": "item",
"name": "minecraft:diamond_chestplate",
"weight": 1,
"quality": 5,
"functions": [
{
"function": "minecraft:enchant_randomly"
},
{
"function": "minecraft:enchant_randomly"
},
{
"function": "minecraft:enchant_randomly"
}
]
}
]
}
]
}
▲"enchantments"を指定しない"minecraft:enchant_randomly"を書けば、そのアイテムに適合するエンチャントがそれぞれ1つだけ付与されます。上記のように書けば適合するエンチャントが3つ付くわけです。
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond_chestplate",
"weight": 1,
"quality": 5,
"functions": [
{
"function": "minecraft:enchant_with_levels",
"levels": 30
}
]
},
{
"type": "item",
"name": "minecraft:diamond_leggings",
"weight": 1,
"quality": 5,
"functions": [
{
"function": "minecraft:enchant_with_levels",
"levels": {
"min": 10,
"max": 30
},
"treasure": true
}
]
}
]
}
]
}
▲今度は"minecraft:enchant_with_levels"というfunctionを使ってみましょう。"levels"で指定したレベルに応じたエンチャント効果が付与されます。最小レベルと最大レベルを指定することも可能です。また、"treasure": trueと書けば「Mending(修繕)(修繕)」や「Frost Walker(氷上歩行)」などのトレジャーエンチャント(エンチャント台では付けられない効果)も出てくるようになります。
アイテムの数(スタック内の量)を指定するには
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"functions": [
{
"function": "minecraft:set_count",
"count": 5
}
]
},
{
"type": "item",
"name": "minecraft:gold_ingot",
"weight": 2,
"quality": 5,
"functions": [
{
"function": "minecraft:set_count",
"count": {
"min": 1,
"max": 5
}
}
]
}
]
}
]
}
"minecaft:set_count"を使えば、"count"でアイテムの数を指定できます(スタックされた数)。これも最小値と最大値を指定可能。
一つの項目に何個も書いてしまった場合は、最後に書いてある数値が適用されます。
アイテムのデータ値を指定するには
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:wool",
"weight": 2,
"quality": 5,
"functions": [
{
"function": "minecraft:set_data",
"data": 5
}
]
},
{
"type": "item",
"name": "minecraft:wool",
"weight": 2,
"quality": 5,
"functions": [
{
"function": "minecraft:set_data",
"data": {
"min": 6,
"max": 10
}
}
]
}
]
}
]
}
羊毛など、同じIDでも色々な種類があるアイテムは「データ値」で種類を指定しますね。ルートテーブルでは、"minecraft:set_data"というfunctionでデータ値を指定します。"data"の数値にはもちろん最小値と最大値を指定できます。
一つの項目に何個も書いてしまった場合は、最後に書いてある数値が適用されます。
※1.13ではデータ値が廃止されるため、このfunctionは使えません
アイテムのダメージ値を指定するには
{
"pools": [
{
"rolls": {
"min": 1,
"max": 5
},
"bonus_rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond_shovel",
"weight": 2,
"quality": 5,
...
スポンサーリンク
---省略されました。オリジナルサイトでご覧下さい。---
続きはこちら
関連記事
-
-
[Minecraft] MINECONの投票でタイガが選ばれたら、ベリーとキャンプファイヤーとキツネを追加するってよ

29日に開催されるマイクラの公式イベント「MINECON Earth 2018」。放送中に「タイガ・サバンナ・砂漠のどれに新要素を追加するか」の投票が行われるのですが、昨日の砂漠に続き、「タイガ」が選ばれた場合に追加される新要素が発表されました。
[Minecraft] MINECONの投票でタイガが選ばれたら、ベリーとキャンプファイヤーとキツネを追加するってよ by ナポアンのマイクラ
-
-
フォートナイトニセ公式の「マイクラコラボ画像」が異様に盛り上がっている理由

以前からTwitterを騒がせているフォートナイトニセ公式アカウント。そのうちの一つの「フォートナイト×マインクラフト」は単なるネタツイートではなく、英語圏のゲームコミュニティにおいて、この2つのゲームがどのような存在なのかを、私達にまざまざと見せつけてくれるのである。
-
-
【今日の動画】リアルタイムで360°の実況動画を録画する方法 – PanoStreamModを動画で紹介しました【Minecraft】

久しぶりにYouTubeチャンネルに動画をアップロードしました。しかも2本。一本はPanoStreamModを使った360°プレイ動画のサンプルで、もう一本は詳細な録画方法の解説です。新感覚の実況動画を作ってみませんか?
【今日の動画】リアルタイムで360°の実況動画を録画する方法 – PanoStreamModを動画で紹介しました【Minecraft】 by ナポアンのマイクラ
-
-
[告知] ナポアン走ります!「マインクラフトサーバー合同マラソン大会 第26回」に参加します!

久しぶりにマルチプレイします!!!
Kizukin Group Entertainment様から招待を頂き、「マインクラフトサーバー合同マラソン大会 第26回」に参加することになりました!! めちゃくちゃ久しぶりのマルチプレイでございます。しかも今回は数々のサーバーの合同企画ということもあり、YouTubeにて生配信される予定です。イベントの概要をお伝えします。[告知] ナポアン走ります!「マインクラフトサーバー合同マラソン大会 第26回」に参加します! by ナポアンのマイクラ
-
-
【マインクラフトPE】(ウィッチ)魔女の小屋のシード値おすすめ7選 – 村もありますぞ [Minecraft]

マイクラPEのアップデート「0.14」で追加された新Mob「魔女」は、「魔女の小屋(ウィッチの小屋)」に住んでいます。だだっ広い湿地の中にポツーンと佇む小屋を探すのは大変。そこで、恒例のシード値まとめ記事を書きました。スポーンして目の前が小屋。山岳の村から見下ろすと小屋。…さあ、誰よりも早くデカ鼻のホクロを拝みましょう。
【マインクラフトPE】(ウィッチ)魔女の小屋のシード値おすすめ7選 – 村もありますぞ [Minecraft] by ナポアンのマイクラ
-
-
XboxOne版「Minecraft」のパッケージ版が登場。12月7日には影DLC同梱版も発売

XboxOneユーザーの方に朗報です。新しくなった統合版「Minecraft」のパッケージ版がついに発売されました。価格は3600円(税抜)。また、グラフィックが超リアルになる「スーパーデューパーグラフィックス パック」を同梱した「スーパープラスパック」が12月7日に発売予定です。こちらの価格は4600円(税抜)。
XboxOne版「Minecraft」のパッケージ版が登場。12月7日には影DLC同梱版も発売 by ナポアンのマイクラ
-
-
Minecraft 1.9/1.10対応! カメラMODの新定番「PixelCam」の使い方。座標に注目/連続移動など新機能も

使い方が分かりやすくて私お気に入りのカメラMOD「PixelCam」がバージョン1.9/1.10.2に対応しましたので改めて使い方を解説します。作者はあの「ReplayMod」の開発者の一人、CrushedPixel氏です。当ブログ何回目の登場でしょう… この記事では、「PixelCam」のダウンロードと導入方法、カメラの経路の設定方法、新機能の「座標に注目する」「カメラ移動をループさせる」などを画像付きで分かりやすく解説します。
Minecraft 1.9/1.10対応! カメラMODの新定番「PixelCam」の使い方。座標に注目/連続移動など新機能も by ナポアンのマイクラ
-
-
[Minecraft] 新ボス? MINECONで発表される”何か”を示唆する画像が公開される

マイクラ公式Twitterが公開した、一枚の画像。これ何だと思います? ― 私にも分かりません。
[Minecraft] 新ボス? MINECONで発表される”何か”を示唆する画像が公開される by ナポアンのマイクラ
-
-
【MOD紹介】ツルハシやチェストが襲ってきた! 約20種のMobを追加「Primitive Mobs」[Minecraft]
ピッケルがいきなり暴れだした! チェストを開いたらミミックが出てきた!今回紹介するのは、Daveyx0さん制作の「Primitive Mobs」です。放浪する村人、地下で泣いている村人、金を欲しがるヒツジなど…約20種類の味方Mobや敵Modを追加します。かわいいペットと暮らしたり、奇…

