『マインクラフト』では、様々なアイテムやエンチャントを使って自分の世界を作り上げることができます。今回は、地面を剣で叩いた時に範囲攻撃が発生するエンチャントを作成し、その方法をご説明します。
まず、エンチャントを作成するためにはデータパックが必要です。データパックは、ゲーム内の動作をカスタマイズするためのファイルです。データパックを作成するには、まず「.minecraft」フォルダの中にある「saves」フォルダを開き、使用したいワールドのフォルダを開きます。次に「datapacks」フォルダを作成し、その中に任意の名前のフォルダを作成します。
次に、作成したフォルダの中に「pack.mcmeta」というファイルを作成し、以下のような内容を書き込みます。
{
“pack”: {
“pack_format”: 7,
“description”: “文字列をここに入力し、 ダブルクオーテーションで囲みます”
}
}
ここで、「description」の部分には、作成したデータパックの説明文を入力します。例えば、この場合は「地面を叩くと範囲攻撃が発生するエンチャントを追加するデータパック」といったようになります。また、「pack_format」には、使用するバージョンの数字を入力します。
次に、作成したフォルダの中に「data」フォルダを作成し、その中に「functions」フォルダを作成します。そして、「functions」フォルダの中に「main.mcfunction」というファイルを作成します。このファイルにエンチャントの処理を記述していきます。
まずはじめに、エンチャントを付けたい剣を手に持つプレイヤーを取得するために、以下のようなコマンドを記述します。
execute as @a[nbt={SelectedItem:{id:”minecraft:diamond_sword”,tag:{CustomEnchants:[{id:”my_custom_enchant”,lvl:1}]}}}] at @s if entity @e[type=minecraft:falling_block,limit=1,sort=nearest,distance=1.5,tag=!hit] run …
これは、プレイヤーの手に持っているアイテムが特定のエンチャントを持っている場合、そのプレイヤーを実行主体として、自分自身の位置から1.5ブロック以内にいるフェザーフォール型のアイテム(剣で地面を叩いたときに発生するアイテム)を取得します。
次に、範囲攻撃をしたいエンティティを指定します。今回は周囲の敵を攻撃するため、以下のようなコマンドを追加します。
execute as @a[nbt={SelectedItem:{id:”minecraft:diamond_sword”,tag:{CustomEnchants:[{id:”my_custom_enchant”,lvl:1}]}}}] at @s if entity @e[type=minecraft:falling_block,limit=1,sort=nearest,distance=1.5,tag=!hit] run effect give @e[type=!player,distance=1..10] minecraft:instant_damage 1 1
これで、プレイヤーの周囲1ブロックから10ブロックまでにいる敵に対してダメージを与えることができるようになります。また、「distance=1..10」の部分を変更することで、攻撃の範囲を調整できます。
最後に、剣で地面を叩いたことを判定するためのタグを付与します。これにより、同じ敵を一度しか攻撃しないようになります。
tag @e[type=minecraft:falling_block,limit=1,sort=nearest,distance=1.5] add hit
これで、自分の作成したエンチャントが付いた剣で地面を叩くと、周囲の敵に範囲攻撃が発生するようになります。
以上が、地面を剣で叩くと範囲攻撃が発生するエンチャントの作成方法です。データパックやコマンドに詳しくない方でも、マイクラ内で簡単に作成することができるので、ぜひ挑戦してみてください。
