マルチプレイなら『シン・VPS』がおすすめ!

【マイクラ】ルートテーブルの作り方とそのコツ【基本を解説】

【マイクラ】ルートテーブルの作り方とそのコツ【基本を解説】

この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

こんにちは!
マインクラフターのなつめ(@natsume_717b)です。

なつめ

2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!

この記事では、こんな疑問を解決します!

本記事の内容
  • ルートテーブルを作成するには生成サイトを利用すべし
  • ルートテーブルを作るのに覚えておくべき基本知識

ルートテーブルとは、福引や抽選機のようにあらかじめ指定しておいたアイテムの中から指示しておいた通りに抽選を行ったうえで、アイテムを選び出すシステムになります。

詳しくは【分かりやすく解説】ルートテーブルとは確率表のこと【マイクラ】を参考にしてください。

【分かりやすく解説】ルートテーブルとは確率表のこと【マイクラ】

今回はそのルートテーブルを作成する上で、どのように作るのか。
前もって覚えておくべきことは何かということを解説していきます。

それでは、さっそく見ていきましょう!

本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。

ルートテーブルを作成するには生成サイトを利用すべし

ルートテーブルを作成する場合、生成サイトを利用すべきです。

ルートテーブルは複数の項目を設定する必要がある上、項目によって設定しなければならない箇所が異なります。

実際の例を挙げてみると以下のようなものです。

{
    "pools": [
      {
        "rolls": 1,
        "entries": [
          {
            "type": "minecraft:item",
            "name": "minecraft:blackstone"
          },
          {
            "type": "minecraft:item",
            "name": "minecraft:blackstone_wall"
          }
        ]
      },
      {
        "rolls": 1,
        "entries": [
          {
            "type": "minecraft:item",
            "name": "minecraft:stone"
          }
        ]
      }
    ]
  }
  

上記の例は、かなり簡素なものになります。

さらに細かく設定するとより複雑になるので、やはり手動で書いていくのは現実的ではありません。

データパックにおけるルートテーブルの格納位置

ルートテーブルはデータパックにjsonファイルとして格納する必要があります。

そのためルートテーブルを利用するには、以下のような構造のデータパックを作る必要があります。

  • データパック本体
    • data
      • フォルダ
        (任意の名前でOK)
        • loot_tables
          • 各種ルートテーブルが記述されたjsonファイル
    • pack.mcmeta

pack.mcmetaとjsonファイル以外は全てフォルダになります。

pack.mcmetaの内容はこちら。

{
  "pack": {
    "pack_format": 26,
    "description": "説明文"
  }
}

jsonファイルに記述する内容は、上記にあげた例や生成サイトで生成したものを貼りつければOKです。

ルートテーブルを作るのに覚えておくべき基本知識

生成サイトを利用する場合でも、ルートテーブルに使用される項目名を知っておく必要があります。

設定項目の意味を理解していないと、思った通りのルートテーブルを作ることができないからですね。

というわけで、最低限覚えておいた方が良い項目を説明していきます。

本記事で紹介する以外にも覚えなくてはならないことが大いにありますが、まずは最低限覚えておくべきことを筆者の独断で選出しました。

pools

poolをまとめている場所です。

poolとは選出されるアイテムを指示している場所で、それらをまとめている場所がpoolsになります。

ルートテーブル上にpoolという項目はないため、後述するrollsやentriesをまとめている場所をpoolと呼んでいると思ってください。

rolls

rollsを設定することで、そのpoolから選ばれる個数を指示します。

1と指示すれば1つだけ、2を指示すれば2つといった感じですね。

具体的には、後述するentriesの中からrollsの数だけ選出します。
毎回抽選しなおすため、同一アイテムだけが複数選ばれるなんてこともあり得ますね。

福引で言うところの引く回数だと思えばOKです。

entries

entriesはそのpoolの中身です。

様々な方法で指定することができますが、最終的にはアイテムを指示することになります。

福引で言うところの抽選機の中身であるため、複数指示することが多い項目です。

weight

weightはそのentriesで指示されているアイテムの当選確率を指示します。

例えばweigthが2と3と5に設定した3つのアイテムがあるとすれば、それぞれ20%、30%、50%の確率で選出されます。

いわゆる比率だと思えばOKです。

functions

アイテムに指示するfunctionsは、そのアイテムに対して付与する情報となります。

分かりやすいもので言うとset_nbtやset_countですね。
抽選されるアイテムのNBTを設定したり、個数を指示できます。

記事のはじめに掲載したGitHubからデータパックのサンプルがダウンロードできますが、そちらにエンチャントを付与したダイヤモンドの剣が貰えるようにしているルートテーブルもあります。
ぜひ参考にしてください。

まとめ

というわけで、今回のまとめです。

ポイント
  • ルートテーブルを作成するには、生成サイトを利用するのが良い。
  • コマンドでは見慣れない項目が数多く存在するため、覚えておくべき基本的な知識が多い。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】