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

【マイクラ】enchant_randomlyでエンチャント付与【item_modifier】

【マイクラ】enchant_randomlyでエンチャント付与【item_modifier】

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

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

なつめ

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

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

本記事の内容
  • enchant_randomlyでエンチャント付与
  • 実例

enchant_randomlyはその名の通り、ランダムなエンチャントをアイテムに付与します。

手軽にエンチャント内容をガチャできるので、ミニゲームなどでも扱いやすい項目です。

全てのエンチャントから選ばれる方式と指定したエンチャントの中から選ばれる方式の2つがあるので、それぞれ詳しく見ていきます。

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

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

enchant_randomlyでエンチャント付与

enchant_randomlyを指示することで、ランダムなエンチャントをアイテムに付与させることが可能です。

エンチャント内容を指示しなければ、すべてのエンチャントからランダムに選ばれ、エンチャント内容を指示した場合には、それらの中からランダムに選ばれたものが付与されます。

必要に応じて、使い分けることが出来るので、かなり扱いやすい項目と言えます。

実例

ここからは実際の例を見ていきます。

enchant_randomlyはitem_modifier、ルートテーブルのどちらでも適用させることが出来るため、それぞれ解説します。

データパックの構造は以下の通り。

  • データパック本体
    • data
      • フォルダー
        (今回はsampleというフォルダー名とします)
        • item_modifiers
          • jsonファイル
            (今回はtest.jsonというファイル名とします)
        • loot-tables
          • jsonファイル
            (今回はtest.jsonというファイル名とします)
    • pack.mcmeta

item_modifier、ルートテーブルの作成には、以下のサイトがおすすめです。

item_modifierはこちら

ルートテーブルはこちら

item_modifierの場合

item_modifierの場合は、itemコマンドでアイテムを付与します。
そのアイテムにランダムなエンチャントを付けようというわけですね。

jsonファイルの記述例としては、以下の通りです。

[
    {
      "function": "minecraft:enchant_randomly"
    }
  ]
[
    {
      "function": "minecraft:enchant_randomly",
      "enchantments": [
        "minecraft:fortune",
        "minecraft:infinity"
      ]
    }
  ]
  

1つ目がエンチャント内容を指定しないもの。
2つ目が幸運か無限のエンチャントが付与されるように、内容を指示しているものです。

目的に応じて使い分けてください。
また、難しい記述はないので、ぱっと見でも何となくわかるかと思います。

このようなファイルを用意した後は、以下のようなitemコマンドでitem_modifierを適用すればOKです。

/item modify entity @s weapon.mainhand sample:test

ルートテーブルの場合

ルートテーブルの場合は、そもそもアイテムがランダムに抽選されます。
なので、抽選されたアイテムにランダムに選ばれたエンチャントが付いているということになります。

jsonファイルの記述例はこちら。

{
    "pools": [
      {
        "rolls": 1,
        "entries": [
          {
            "type": "minecraft:item",
            "name": "minecraft:iron_sword",
            "functions": [
              {
                "function": "minecraft:enchant_randomly",
                "enchantments": [
                  "minecraft:flame",
                  "minecraft:aqua_affinity"
                ]
              }
            ]
          }
        ]
      }
    ]
  }
  

item_modifierのものと比べて少々複雑ですが、ルートテーブルの記述に対してenchant_randomlyを追記したと思えば、そこまで難しいものではありません。

このようなファイルを作成した後は、lootコマンドで付与させればOKです。

/loot give @s loot sample:test

また、デフォルトのドロップアイテムなどを上書きする形にしても良いですね。

ゾンビが鉄の剣をドロップするようにさせつつ、その鉄の剣にはランダムにエンチャントが付与されているなんてことも、enchant_randomlyならできます。

まとめ

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

ポイント
  • enchant_randomlyを指示することで、ランダムなエンチャントを付与させることが出来る。
  • 選ばれるエンチャント内容は指示することも可能。

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

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