見出し画像

マイクラデータパック入門 JAVA1.21対応版 第2回

第1回目ではマイクラ最新版でダイヤモンドブロックがゲットできるデータパックを作ってみました。いかがだったでしょうか。つたない説明でわかりにくかったらスイマセンm(__)m 不明なことがあれば何でも聞いてくださいね。
 では2回目の今回は自動実行!
前回はコマンドでデータパックを呼び出ししましたが、わざわざコマンド使うのは不便ですよね。そんなことせずともマイクラ内の普通の行動でデータパックが動いてほしいですよね。今回は自動実行の初歩の初歩(の初歩)をやってみましょう。



前回のおさらい

では今日は前回使用したtestdatapackを利用していきます。フォルダ構成を確認してみましょう。マインクラフトのセーブデータの中にありましたよね。念のためマイクラ上でfunction test001:diamond でダイヤブロックがゲットできるか確認しておきましょう。

フォルダ構成確認してください

上手く動作すれば次に行きましょう。


自動(常時)実行って何?ロード時実行って何?

さて、今回は自動(常時)実行をしたいと思いますが、その前に自動(常時)実行とロード時実行って何なのか確認していきましょう。
1 自動(常時)実行とは
自動実行と常時実行は厳密には意味が違うので今後は「常時実行」に統一したいと思います。常時実行をしていることで自動実行が可能になっているのです。
常時実行とはその名の通り常に実行しているのです。なのでマイクラをしている間常に実行されます。例えば足元の土ブロックを金ブロックに常に変える時には「もし足元のブロックが土ブロックならそれを金ブロックに置き換える」といった命令を常時実行しているのです。
 常時実行の命令の中に条件によって実行するかどうかを決めてあげると自動実行になります。
2 ロード時実行とは
これは自動実行ではなく前回のようにマイクラでこまんので呼び出して実行することです。

今回は常時実行でちょっとデータパックっぽいことをしてみましょう。
そうですね歩いたときに足元がTNTになる鬼畜データパックを作ってみましょう。


JSONファイルって何?

ではデータパックを作る前にまず常時実行される仕組みから作っていきます。まずはフォルダを追加していきます。
testdatapack01\data フォルダの中にminecraftフォルダを作ってください。

こんな感じです。さらにそのminecraftフォルダの中にtags/functionフォルダを作ってください。

こんな感じですね。ではVSCodeを開いてtestdatapack01フォルダを画面の左側のエクスプローラーのドラッグアンドドロップしてください。画面がこんな感じになればOKです。

正しく開けたら画面左のエクスプローラーメニューから先ほど作った
/data/minecraft/tags/functionフォルダを開いて新しいファイルを作るを選んでください。ファイルは2つ作ります。『load.json』 と 『tick.json』 の2つのファイルを作ってください。

2つのファイルの中身を作りましょう。
上が『load.json』ファイルの中身で下が『tick.json』ファイルの中身です。
コピペしてそのあと忘れずにCTRL+Sで保存してくださいね。

{
    "values": [
    "test001:load"
    ]
   }
{
    "values": [
    "test001:main"
    ]
   }

これって何をしているんでしょうね~。
jsonファイルは中に書いてある命令を実行してくださいというファイルです。『tick.json』とは1tickごとに命令を実行するということなんです。その実行先はtest001フォルダのmain.mcfunctionファイルですよということです。
main.mcfunctionってそんなファイル知りませんよね?
そう今から作るんです。
そして『load.json』はロード時にのみ1回命令を実行するということなんです。それに対応するファイルはload.mcfunctionファイルです。これも今から作ります。


実際にコードを書いてみよう

ではまずmain.functionファイルを作りましょう。どこに作ればいいのでしょうか?場所は決まっています。data\test001\functionフォルダの中です。そう!前回diamond.mcfunctionを作った場所です。ここに作ればOK!

ではtest01\functionフォルダに移動してそこで新しくファイルを作りましょう。名前はもちろんmain.functionとload.functionです。
下の画面のようになっていればOKです。

まずはmain.mcfunctionの中身から作っていきましょう。
ここはいったんコピペでOKです。
深く考えずに中身をコピペしてください。

execute as @a at @s if block ~ ~-1 ~ minecraft:dirt run setblock ~ ~-1 ~ minecraft:tnt
execute as @a at @s if block ~ ~-1 ~ minecraft:grass_block run setblock ~ ~-1 ~ minecraft:tnt

load.mcfunctionの中身はダイヤモンドブロックをゲットできるdiamond.mcfunctionと同じでいいでしょう。
これをコピペしてください。

give @s diamond_block 20

さて忘れずにCTRL+Sで保存はしましたか?これを忘れると反映しないのでご注意!!こんな感じで数字の入った通知マークがあればまだ保存していないデータがあるということですよ。


実行してみよう

しっかり保存ができれば実行してみましょう。
マイクラを立ち上げてセーブデータを読み込みます。
そうすると自動でデータパックが読み込まれます。
もしすでに初めからマイクラを立ち上げてセーブデータをすでに読み込んでいた場合は/reloadコマンドを実行すれば適用されます。



足元が土か草原ブロックの時、TNTに置き換わっていきます。これはいつ爆発するかわからないおそろしいデータパックですw
よくマイクラのユーチューバーが『足元TNTでエンドラ討伐!!』とかやっているのはこんな感じでデータパックを入れてプレイしているんですね。

こんな感じで結構簡単にマイクラはカスタマイズができます。もちろんファイルの中のプログラミングコードの意味を理解しないといけないんですが、マイクラのコマンド開設サイトを見ればいろいろなことは可能になります。
夢が広がりますね。

今回はここまでですが、次回はもっといろいろとマイクラをカスタマイズしていきたいと思います。

この記事が気に入ったらサポートをしてみませんか?