【マイクラ】Java1.21以降でデータパックを作成し関数を実行する方法を解説

マインクラフト(マイクラ)では、実行したいコマンドをひとまとめにしたデータパックを作成することで、コマンドをその都度入力することなく、特別な世界を楽しむことができます。

この記事では、Java版でコマンドを関数にまとめ、データパックを作成してワールドで実行する方法を解説します。

データパックの作成方法は、バージョン1.21から変更になっていますので、それ以前のバージョンの解説記事を読んでうまくいかなかったという人はぜひ参考にしてください。

スポンサーリンク

1)コマンドを入力できるようにする

データパックを呼び出すには、まずコマンドを入力できるようにする必要があります。以下の記事を参考に設定してください。

2)データパックの配置場所を調べる

データパックは、セーブデータ内のデータパックフォルダに配置します。場所が分かれば直接開いてください。

データパックを配置する場所は、ゲーム内からも調べることができます。

ワールドの選択画面で、データパックを使いたいワールドを選択して「編集」を押し、

「ワールドフォルダーを開く」を選択すると、データパックを配置する場所が分かります。

おそらく以下のようなフォルダになっているはず。今回用事があるのは「datapacks」です。

3)関数ファイルを含むデータパックを作成・配置する

データパックを作成し配置します。フォルダやファイルの構成が重要になりますので、ひとつひとつ丁寧に進めましょう。

最後に構成を一覧で示していますので、そちらも参考にしてください。

a)datapacksフォルダ内にフォルダを作成する

上で調べたフォルダの中にあるdatapacksフォルダの中に、好きな名前のフォルダを作成します。名前は何でもいいですが、どんな機能を実行するデータパックなのか分かる名前にするとよいでしょう。

b)フォルダの中にdataフォルダとpack.mcmetaを作成する

そのフォルダをダブルクリックして開き、中に「data」フォルダと「pack.mcmeta」ファイルを作成します。

「pack.mcmeta」ファイルの中には以下のテキストを書きます。

{
“pack": {
“pack_format": 48,
“description": “データパックの説明"
}
}

「pack_format」は、Java版のどのバージョンと互換性があるか示すものです。ずれていたら動かないというものではありませんが、テストをしたバージョンと合わせておくとよいでしょう。Wikiのパックフォーマットで確認可能です。

「description」はデータパックの説明です。後から見て分かるよう、どんなデータパックなのか説明を入れておくとよいでしょう。

c)dataフォルダの中にフォルダを作成する

dataフォルダをダブルクリックして開き、新しいフォルダを作ります。こちらも名前は自由ですので、分かりやすいものを付けておきましょう。

d)フォルダの中にfunctionフォルダを作成する

そのフォルダをダブルクリックして開き、「function」フォルダを作成します。

functionフォルダの中に.mcfunctionファイルを作成する

functionフォルダをダブルクリックして開き、ファイルを作成します。適当な名前をつけ、拡張子(.より後)は「.mcfunction」としておきます。

◯◯.mcfunctionファイルの中には、実行したいコマンドを行ごとに入力します。例えば以下なら、プレイヤーにダイヤモンドの剣を与え、クリーパーをX座標+10、Y座標+10のところにスポーンさせます。

give @p diamond_sword
summon creeper ~10 ~10 ~

ファイルは好きなテキストエディタで編集してください。普段使っているものでOKです。

フォルダの構成

datapacks以降のフォルダ、ファイル構成は以下のとおりです。(タップで拡大)

1.21からは、「functions」が「function」に変わっています。1.20までで使っていたデータパックの関数が呼び出せないのはほぼこれが原因だと思いますので、チェックしてみてください。

3)ゲーム内で呼び出す

データパックを保存したワールドを開きます。コマンドで

/reload

と入力することで、データパックの更新が反映されます。「再読み込み中…」とメッセージが出ますが、この時点でデータパックの読み込みは完了していますので、待つ必要はありません。

続いて、functionコマンドを入力します。

/function

まで入力すると、データパックが正常に反映されていれば、予測変換のところに「data内に作ったフォルダ名:mcfunctionのファイル名」で候補が出てくるはずですので、それを入力して実行してください。

「関数「」を実行中です」と表示され、.mcfunctionに書いた内容が実行されていれば成功です。

予測変換に出てこない場合は、改めてフォルダ構成やフォルダ名、ファイル名を確認してください。「function」「.mcfunction」となっているかもよく見ましょう。sはつきません。

function以外の変更にも注意

1.21アップデートでは、function以外のフォルダの名前も変更になっています。より複雑なデータパックを作成する際には注意してください。

structures -> structure
advancements -> advancement
recipes -> recipe
loot_tables -> loot_table
predicates -> predicate
item_modifiers -> item_modifier
functions -> function
tags/functions -> tags/function
tags/items -> tags/item
tags/blocks -> tags/block
tags/entity_types -> tags/entity_type
tags/fluids -> tags/fluid
tags/game_events -> tags/game_event

まとめ

データパックの関数にコマンドをまとめることで、コマンドブロックより編集が簡単だったり、処理が速かったりといったメリットがあります。

シンプルなものであれば意外と簡単に作成できますので、Java版をプレイしている人はぜひ試してみてください。

なお、データパックはゲームに大きな影響を与えるものですので、ワールドデータのバックアップを取っておくか、新規のワールドデータで試すことをおすすめします。