見出し画像

Minecraft1.21 初心者向け! データパックの作り方

こんにちは。金内リンです!!
今回は、Minecraft1.21のデータパックの作り方を解説させていただきます!!



そもそもデータパックって何なの?

データパックとは、プレイヤーがMinecraftをカスタムすることができるシステムです。


何ができるの?

データパックを使うと、構造物、バイオーム、ディメンションなどを追加したり上書きしたりすることができます。


今回の流れ

データパックを作って、エンチャントを追加します!


ディレクトリ構造

では早速作っていきましょう。
まず新しいクリエイティブモードのワールドを作成してください。他の物と区別しやすい名前が良いでしょう。

全角文字とアンダーバーの組み合わせがとても気持ち悪いと分かった。

次に、Windowsキー+Rキーを押して、出てきたウィンドウに%AppData%と入力して、Enterキーを押してください。

ここの参照は一生使わない自信がある。

するとAppData/Roamingフォルダにいるはずです。
次に、.minecraftフォルダを探しましょう。見つけたら開いてください。

ずらあっとたくさんフォルダが並んでますね。この中から、savesフォルダを
開いて、先ほど作ったワールドの名前のフォルダを開いてください。

AppData/Roaming/.minecraft/saves/作ったワールド名

次にワールドのフォルダのdatapacksフォルダを開いてください。
そこに、以下のディレクトリ構造を作成します。

データパック名
├── pack.mcmeta
└── data
    ├── minecraft
    └── 名前空間
        └── enchantment

データパック名には、データパックの名前を入れてください。日本語OKです。

名前空間は、ほかのデータパックが同時に入って、同じ名前の要素があったとしても、それぞれを識別するためのタグなのでほかの人と被らない、固有のものにしましょう。日本語不可。

pack.mcmetaはこれはデータパックですよ~とマイクラにお知らせしてくれるファイルです。以下のコードを張り付けてください。

{
    "pack": {
        "description": "is description",
        "pack_format": 48
    }
}

descriptionはデータパックの説明文です。あってないようなものなのでいじってもいじらなくても大丈夫です。

pack_formatはバージョンによって入る数字が違います。注意してください。


エンチャントの追加

いよいよエンチャントを追加します!今回作るのは、相手を攻撃すると爆発するエンチャント、explodeです!
まず、名前空間/enchantmentに、explode.jsonを作成します。中身は以下のコードを写してください。

{
    "anvil_cost": 4,
    "description": "explode",
    "effects": {
      "minecraft:post_attack": [
        {
          "affected": "victim",
          "effect": {
            "type": "minecraft:explode",
            "block_interaction": "mob",
            "immune_blocks": "#minecraft:blocks_wind_charge_explosions",
            "knockback_multiplier": 0.35,
            "large_particle": {
              "type": "minecraft:explosion_emitter"
            },
            "radius": 0.8,
            "small_particle": {
              "type": "minecraft:explosion"
            },
            "sound": "minecraft:entity.wind_charge.wind_burst"
          },
          "enchanted": "attacker"
        }
      ]
    },
    "max_cost": {
      "base": 65,
      "per_level_above_first": 9
    },
    "max_level": 1,
    "min_cost": {
      "base": 15,
      "per_level_above_first": 9
    },
    "slots": [
      "mainhand"
    ],
    "supported_items": "#minecraft:enchantable/sword",
    "weight": 2
  }

上のコードは、ウィンドバーストエンチャントを少し(結構)書き換えたものです。相手を攻撃したとき爆発するのは同じですからね。
爆発する場所が、自分か相手か、ダメージを受けるか受けないか、くらいの違いです。
貼り付けたら、保存しましょう。


テストプレイ

では、ワールドに入ってみましょう。
ワールドに入れたら、剣を持って以下のコマンドを実行します。

/enchant @s 名前空間:explode

剣にエンチャントが付いたら、モブを攻撃してみましょう…

できた!!!!

できました!!いえい!!
アイディアが思いつき次第ほかにも作ってみたいですね~

あとがき

いかがだったでしょうか?不明点、誤字脱字などがありましたら、指摘していただけるとありがたいです。

いいなと思ったら応援しよう!