Entity(モンスター・動物)や宝箱からのドロップアイテムを変更する方法:Minecraft

投稿日:2017年7月12日

皆さんこんにちは、伊達あずさです。
以前、Custom NPCsの解説の中で、自分が追加した通貨(コイン)をモンスターやダンジョン内の宝箱から入手できるようにする方法について、さらっとだけ触れていました。
今回はそこでは触れる事が出来なかった、具体的なドロップアイテムの変更法についてご紹介させて頂こうと思っています。

ドロップアイテムの変更法はMinecraftのバージョンによって方法が異なるので、今回はMinecraft 1.9以降で使える「Loot Tablesを使った変更法」と、Minecraft 1.7.10 ~ 1.8.9で使える「Loot++を使った変更法」の2つをご紹介します。

Loot Tablesを使ったドロップアイテムの変更方法(Minecraft 1.9以降)

Minecraft 1.9以降にはLoot TablesというEntity(モンスターや動物)やChest(宝箱)からのアイテムドロップを定義したファイルが存在します。
よって、これを書き変えることでドロップアイテムを変更する事が出来ます。

まずはデフォルトのLoot Tablesを入手しましょう。
Loot Tablesはminecraft.jarの中にあります。
(Minecraft 1.10.2のLoot Tablesを入手する場合は「.minecraft\versions\1.10.2\1.10.2.jar」から入手します)

対象となるminecraft.jarを7-Zipなどで開き(7-Zipをインストール後、対象ファイルを右クリック → 7-Zip → 開く(右に小さい三角が付いてない方)と選ぶことでファイルを開くことができる)、「assets\minecraft\loot_tables」をフォルダごとコピーします。

Entity(モンスター・動物)や宝箱からのドロップアイテムを変更する方法:Minecraft_挿絵1
1.10.2の場合であれば、コピーしたloot_tablesの中はこんな感じになっているはずです。

chests:ダンジョンや村などにあるチェストの中身が定義されている
entities:モンスターや動物を倒した際にドロップするアイテムが定義されている
gameplay:釣りで得られるアイテムが定義されている

各フォルダの中にあるファイル(.json)は、非常に分かりやすい名前がつけられているため、どのファイルがどのアイテムドロップを定義しているのか直ぐに理解できると思います。

ここでは試しにゾンビのアイテムドロップを変更してみます。

まず、loot_tables\entities\zombie.jsonをメモ帳などで開きます。
ここに書かれている記載が今現在のゾンビのアイテムドロップ情報です。
この中の記述を修正することで、既存のアイテムドロップを変更することもできるのですが、今回は純粋にドロップするアイテムを追加するだけなので細かい説明は省略します。

では試しに、Custom NPCsで追加されるStone Coinを1-3枚ゾンビが倒れた際にドロップするように設定してみましょう。

{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "minecraft:rotten_flesh",
                    "weight": 1,
                    "functions": [
                        {
                            "function": "set_count",
                            "count": {
                                "min": 0,
                                "max": 2
                            }
                        },
                        {
                            "function": "looting_enchant",
                            "count": {
                                "min": 0,
                                "max": 1
                            }
                        }
                    ]
                }
            ]
        },
        {
            "conditions": [
                {
                    "condition": "killed_by_player"
                },
                {
                    "condition": "random_chance_with_looting",
                    "chance": 0.025,
                    "looting_multiplier": 0.01
                }
            ],
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "minecraft:iron_ingot",
                    "weight": 1
                },
                {
                    "type": "item",
                    "name": "minecraft:carrot",
                    "weight": 1
                },
                {
                    "type": "item",
                    "name": "minecraft:potato",
                    "weight": 1
                }
            ]
        },
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "customnpcs:npcCoinStone",
                    "functions": [
                        {
                            "function": "set_count",
                            "count": {
                                "min": 1,
                                "max": 3
                            }
                        }
                    ],
                    "weight": 1
                }
            ]
        }
    ]
}

赤字の部分が追記した部分です。
これで、ゾンビがStone Coinをドロップ(1-3枚)するようになります。
"name": "customnpcs:npcCoinStone"の部分を変更することでドロップアイテムを変更することができます。

{
    "rolls": 1,
    "entries": [
        {
            "type": "item",
            "name": "customnpcs:npcCoinWooden",
            "weight": 8
      "functions": [
                {
                    "function": "set_count",
                    "count": 5
                }
            ]
        },
        {
            "type": "item",
            "name": "customnpcs:npcCoinStone",
            "weight": 2
        },
    ]
}

先ほどの部分を上記のように変更すれば、80%の確率でWooden Coinが5枚、20%の確率でStone Coinが1枚ドロップするように定義できます。

{
    "rolls": 1,
    "entries": [
        {
            "type": "item",
            "name": "customnpcs:npcCoinStone",
            "functions": [
                {
                    "function": "looting_enchant",
                    "count": {
                        "min": 1,
                        "max": 3
                    }
                }
            ],
            "weight": 1
        }
    ]
}

こんな感じでset_countの部分をlooting_enchantに変えればドロップ増加のエンチャントによって入手個数を増やすこともできます。
(設定した値にドロップ増加のエンチャントレベルが掛け算される)
ただし、looting_enchantのみを設定してしまったこの例の場合、ドロップ増加のエンチャントが無いときにドロップするStone Coinが0枚にならず、1枚に固定されてしまいます。

{
    "rolls": 1,
    "entries": [
        {
            "type": "item",
            "name": "customnpcs:npcCoinStone",
            "functions": [
                {
                    "function": "set_count",
                    "count": 5
                },
                {
                    "function": "looting_enchant",
                    "count": 2
                }
            ],
            "weight": 1
        }
    ]
}

ドロップ増加のエンチャントが無い場合のドロップ数をきちんと設定したい場合には、同時にset_countを定義すると良いでしょう。
上の例ですと、ドロップ増加が無い場合に落ちるStone Coinは5枚、ドロップ増加Ⅰが付いていれば5+2×1=7枚、ドロップ増加Ⅲが付いていれば5+2×3=11枚といった感じになります。

{
    "rolls": 1,
    "entries": [
        {
            "type": "item",
            "name": "customnpcs:npcCoinStone",
            "functions": [
                {
                    "function": "set_count",
                    "count": 5
                },
                {
                    "function": "looting_enchant",
                    "count": 2
                }
            ],
            "weight": 1
        }
    ],
    "conditions": [
        {
            "condition": "killed_by_player"
        }
    ]
}

更に、この様な記述を追加すれば、プレイヤーが倒した場合にだけStone Coinをドロップさせるようにすることなんかもできちゃいます。

こんな感じで変更したい宝箱やモンスター(動物)毎にLoot Tablesを書き変えます。

書き変えたloot_tablesはワールドデータのdataフォルダの中に入れることで適用されます。

[シングルプレイの場合]
saves\[ワールド名]\dataの中
(Ex. saves\新規ワールド\data)

[マルチプレイの場合]
[level-name]\dataの中
(Ex. world\data)

ちなみに、Modで追加されたChestやEntityであっても、Mod自体がloot Tablesに対応していれば、同様にドロップアイテムを変更する事が出来ます。(Modのjarファイルを開き、loot_tablesがあれば、同じ方法で修正できる)

Loot++を使ったドロップアイテムの変更方法(Minecraft 1.7.10 ~ 1.8.9)

Minecraft 1.9未満にはLoot Tablesというシステムがないので、Loot++というModを使ってドロップアイテムの変更を行います。

Loot++のダウンロード

他のMod同様、modsフォルダの中に入れ、一度Minecraftを起動します。
するとconfigフォルダの中にLoot++と言うフォルダが作成されます。

Loot++フォルダには沢山のconfigファイル(.cfg)がありますが、アイテムドロップの変更で重要なのは以下の3ファイルとなります。

chest_content.cfg:ダンジョンや村などにあるチェストの中身を定義する
entity_drops.cfg:モンスターや動物を倒した際にドロップするアイテムを定義する
fishing_loot.cfg:釣りで得られるアイテムが定義を定義する

各cfgファイルの中には記述法に関する説明が書かれているので、その説明通りに修正することでアイテムドロップを変更できます。

試しに先ほど同様、ゾンビからStone Coinを1-3枚入手できるようにしてみましょう。
「config\Loot++\entity_drops.cfg」をメモ帳などで開き、addingの部分を以下のように記述します。

adding {
    S:"Drops to add to entities:" <
        Zombie-1.0-true-true_____i-customnpcs:npcCoinStone-1-3
}

これで先ほどと同様にゾンビからStone Coinを得る事が出来るようになりました。(プレイヤーが倒した時だけドロップする設定)

ちなみに、Loot++を使えば、他のModで追加されるモンスターや動物のドロップを変更することもできます。
Modで追加されたEntityのId(Ex. Zombie)は、「config\Loot++\IDs\Entity IDs.txt」の中に全てリスト化されているので、そちらをご確認ください。

今回はLoot TablesやLoot++といったModを使ったアイテムドロップの変更法をご紹介しましたが、これ以外にもアイテムドロップを変更する方法はいくつかあるようです。
皆さんもこれらの方法を使って、好きなアイテムを自由にばらまいて見ては如何でしょうか。

プレイ日記一覧へ

Studio POPPOをフォローしませんか?

Entity(モンスター・動物)や宝箱からのドロップアイテムを変更する方法:Minecraft」への14件のフィードバック

  1. 御伽

    スケルトンの弓ドロップがスケルトンのファイルに書かれてないんですがどこに書かれてますか?

    返信
  2. apple pen

    初心者なのです。1.7.10verをDLしたのですが
    chest_content.cfg
    entity_drops.cfg
    fishing_loot.cfg
    のどれも入っていなのです。どうしたらよいでしょうか。
    教えてください。お願いします。

    返信
  3. hatune39

    ルートテーブルの記述の

      }
    }
    ]
    }
    ]
    },

    ↑こういう空白ってなんか意味あるんですか?
    無知な私にお教えください。お願いします。

    返信
  4. 素人

    解説ありがとうございます。
    ドロップアイテムの個数なども設定できますか?

    返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください