前置き

データパックを作ってみたいけどやり方がわからない….
そんな方いらっしゃいますよね?

わからないんだぞ…

そんな方々のために今回はデータパックの基礎の作り方を紹介していきたいと思います!
そもそもデータパックって?
Java Editionにおいて、プログラムの知識不要でゲームのルール、レシピ、進捗、ルートテーブル、ワールド構造などを改造・拡張できる標準機能…らしいです。
準備するもの
- Minecraft JavaEdition
※統合版ではできません。 - VSCode
テキストエディター。データパックは”.mcfunction”や”.json”を記述するので必須です。
下準備
テキストエディタをダウンロードしましょう。
※今回はデータパック解説の為インストール方法は省きます。
データパック作成の手順
- Step 1フォルダを作ろう
好きな場所に自分のデータパック名のフォルダを作りましょう。
- Step 2Pack.mcmetaを作ろう
Step 1でつくったフォルダの中に”pack.mcmeta”を作りましょう。
そのファイルに下記の通りに記述してください。
データパックの説明と書かれているところは自分のデータパックの説明を書きましょう。pack_formatというのは、マイクラのバージョンを指し示すものです。
(最後にpack_formatとマイクラバージョンの一覧を載せておきます。){ "pack": { "pack_format": 94, "description": "データパックの説明" } } - Step 3さらにフォルダを作ろう
Step 1で作ったフォルダの中に”data”フォルダを作ってください。
dataフォルダの中に、”main”フォルダ、”minecraft”フォルダを作りましょう。
minecraftフォルダーの中身
データパック名\data\minecraft\tags\function\
このfunctionフォルダの中に”load.json”、”tick.json”ファイルを作ります。mainフォルダーの中身
今回はコマンドをデータパックから実行するだけなので、mainフォルダーの中に、functionフォルダを作ってください。
- Step 4load.json、tick.json
load.jsonには
{ "values": [ "main:load" ] }と記述してください。
tick.jsonには
{ "values": [ "main:tick" ] }と記述してください。
- Step 5main\functionの中身
まず、funcrtionフォルダの中身に、
load.mcfunction、tick.mcfunction、main.mcfunctionファイルを作ってください。
※今回はload.mcfunctionは使用しません。 - Step 6tick.mcfunctionにコマンドを記述しよう
試しに下記のコマンドを記述してみましょう。
execute as @a at @s run setblock ~ ~-1 ~ diamond_block - Step 7main.mcfunctionにコマンドを記述しよう
試しに下記のコマンドを記述してみましょう。
give @a diamond_block 64 - Step 8マイクラに導入しよう
作ったデータパックを
C:\Users\ユーザー名\AppData\Roaming\.minecraft\saves\ワールド名\datapacks\の中に入れましょう。
そしたらチャット欄に
/datapack listと打ちましょう。

こうなっていれば成功です。

もしこうなっている場合は、
/datapack enable "file/自分のデータパックの名前"と、チャット欄で入力してください。

こうやって出れば成功です。
- Step 9動作確認をしよう
歩き回ってみてください。

こんな感じに足元にダイヤブロックが生成されていれば完成しています。
また、以下のコマンドを打ってみてください。
/function main:main実行してダイヤブロックが64個手に入れば問題ありません。
おめでとうございます。データパックの完成です!

お疲れ様です!これでデータパックは完成です!

意外と簡単にやれたよ!
後付け解説
tick.jsonとload.jsonの役割
tick.json
このファイルの中に書いた.mcfunctionを毎tick読み込み続ける。
load.json
このファイルの中に書いた.mcfunctionをデータパックがロードされるたびに読み込む。

要するにtick.jsonに記述された.mcfunctionはコマンドブロックで言う、”リピートコマンドブロック”になるってことだね!

load.jsonに記述された.mcfunctionはワールドに入ったときや、/reloadコマンドを使った時に読み込まれるってこと?

そうだね!大体scoreboardコマンドとかで使うイメージが強いかな?
記述の仕方
記述の仕方はStep 4でも説明しましたが、load.json、tick.jsonともに、
{
"values": [
"ファイル名"
]
}
と記述します。
複数ファンクションを読み込ませたい場合は、
{
"values": [
"ファイル名",
"ファイル名"
]
}
のように記述すれば大丈夫です。
終わりに
データパックはコマンドさえできれば、ファイル構成を覚えるだけでいいので割と簡単な方だと思います。やり方さえ覚えてしまえばあなたもコマンドブロックよりデータパックで作った方が楽ということに気づくはず……最後まであきらめずに頑張ってみましょう!

初めての投稿(解説)でしたがどうでしたか?

これでわかってくれると嬉しいんだぞ!

では最後までお読みいただきありがとうございました。
次回の記事でお会いしましょう!

コメント