コマンドをまとめて負荷軽減!functionコマンドの準備とやり方解説!【Java版】

コマンドをまとめて負荷軽減!functionコマンドの準備とやり方解説!【Java版】

この記事では、Minecraft Java Edition(バージョン1.17)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

コマンドブロックの量に困っているマインクラフター
「配布マップを作っているんだけど、コマンドブロックの量が多くなってきた……。どうにかしてコマンドブロックを減らしたいけど、これってどうしようもないよね?」

こんな疑問を解決します!

本記事の内容
  • functionはゲーム外部からコマンドを起動するコマンド
  • functionコマンドを使うためにはファイルを作成する必要がある
  • ファイル作成後は読み込みが必要
  • functionコマンド自体は非常に簡単

こんにちは! マインクラフターのナツメ(@natsume_717b)です。

ナツメってこんな人

今回はfunctionコマンドについて解説していきます。

functionコマンドは前準備が必要なコマンドで、どうしても難しそうに見えてしまいます。
しかし、習得することができれば便利な代物です。

具体的には

  • ワールドの負荷が軽くなる
  • コマンドブロックが減るので、見た目がすっきりする

といったメリットがあります。
さっそく見ていきましょう!

functionはゲーム外部からコマンドを起動するコマンド

functionコマンドは、datapacksと名付けられているファイルの中にコマンドが記載されているファイルを作って、それを基に起動するコマンドになります。

また、同一のファイルに複数のコマンドを書き記せば、それらのコマンドを一度に起動させることができるのもfunctionコマンドの特徴です。

要するに、マップ内にコマンドブロックを設置しなくてもコマンドが使え、さらにはコマンド1つで複数のコマンドを一気に起動できます。

例えば、

tellraw @a "コマンド1"
tellraw @a "コマンド2"

というコマンドを該当するファイルに書いておけば、functionコマンド1つで「コマンド1」という文章と「コマンド2」という文章がチャットに流れます。

tellrawコマンドはメッセージを表示させるコマンドです。

ただし、ここまで挙げたメリットのほかにデメリットも存在します。
というのもコマンドブロックを使わないので条件分岐をさせる方法がやや面倒だったりします。

どういうことかというと、いわゆるコマンドブロックに存在する「条件付き」か「無条件」かといった項目を選べない点です。

一応解決策として、executeコマンドを使うほか、コマンドブロックそのものにfunctionコマンドを打ち込む方法が挙げられます。

とはいえ、まずはfunctionコマンドがゲームの外部からコマンドを読み込んで起動させるものと覚えればOKです。

functionコマンドを使うためにはファイルを作成する必要がある

それでは、実際にfunctionコマンドを使ってみましょう。
と言いたいのですが、その前に準備があります。

先ほども説明したように、ファイルを作ってそこに書かれているコマンドを読み込むので、適切なファイルを作り、適切な位置に配置する必要があります。

なので、その準備の方法を解説していきます。

まずは簡単に手順を紹介します。
以下の手順で作業を進めていきます。

  1. フォルダを作成
  2. その中にファイルとフォルダを1つずつ作成
  3. ②で作成したフォルダの中に、再びフォルダを作成
  4. さらに作成したフォルダの中にfunctionsフォルダを作成
  5. functionsフォルダの中に、コマンドを記述したファイルを作成する

といった感じです。
この工程を経た後に、マイクラのデータが仕舞われているフォルダに①で作成したフォルダを丸ごと投入する作業もありますが、ひとまずは①~⑤の作業について解説していきます。

筆者が実際にやった方法を記載しますが、Mac等ではファイル名の変更などといった作業は手順が異なるかもしれません。なので、その場合は都度調べてください。
筆者はWindowsで作業しました。

①:フォルダを作成

まずは適当なフォルダを作成します。
デスクトップで右クリック、表示された中から新規作成でフォルダを選択しましょう。

このフォルダにつける名前は分かりやすいものであれば、なんでもOKです。

この時のフォルダは英数字以外でも大丈夫です。
とにかく何のコマンドを格納するのか分かりやすいように名付けましょう!

②:その中にファイルとフォルダを1つずつ作成

次は①で作ったファイルを開き、その中にdataという名前のフォルダとpack.mcmetaという名前のファイルを作ります。

作成するものが2つあるので、それぞれ項目を分けて解説していきます。

dataフォルダ

まずはフォルダを作ってしまいましょう。
①と同じように右クリックで新規作成を選択します。

①のフォルダ内で右クリックすれば、①の中に新しく追加されるので逐一デスクトップでフォルダを作る必要はありません。

このフォルダの名前は必ず”data”にしてください。
そうしないとfunctionコマンドが反応しなくなってしまいます。

名前が変更できれば、この項目での作業はOKです。

pack.mcmeta

少し手順が必要なのがpack.mcmetaというファイルの作成。
とはいえ、難しい作業はないので1つ1つ丁寧にやっていきましょう。

まずは、①のフォルダ内で右クリック。
フォルダを作るときと同じ要領で、テキストドキュメントを作成します。
(右クリックをすると、「テキストドキュメント」という項目があります)

テキストドキュメントの名前は、デフォルトの名前のままで大丈夫です。
後から変更します。

そして、そのテキストファイル(テキストドキュメント)を開いて、以下の内容を書き込みます。
コピペで構いませんよ。

{
"pack": {
"pack_format": 1,
"description": "datapack"
}
}

この内容は理解しなくて大丈夫です。
正直にお話すると、私も理解していません。

ただ、functionコマンドを使う際に必要になるものですので、忘れずに作成しておきましょう。

上記の内容を入力し終えたら、上書き保存をします。

念のために記載しておくと、UTF-8という文字コードで保存する必要あり。

その後、名前を変更します。

名前はpackにします。
そして、拡張子は.mcmetaです。

拡張子は、そのファイルの種類を決めるものです。
テキストドキュメントは.txtになっているはずですので、それを.mcmetaというマイクラ専用の拡張子に変更するということです。

なので、テキストファイルを右クリックして「名前の変更」をクリック。
そこに”pack.mcmeta”と入力すれば変更できます。

変更しようとすると「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」といったメッセージが表示されますが、「はい」を押して大丈夫です。

これで、dataフォルダとpack.mcmetaファイルの2つが用意出来ました。




③:②で作成したフォルダの中に、再びフォルダを作成

次の工程は①と同じことをします。
まずはdataフォルダを開き、その中にフォルダを1つ作成します。

この時、作成したフォルダには半角の英数字のみで名前をつけてください。
そうしないと、Minecraftの方が認識してくれなくなります。

ちなみにfunctionコマンドでは”○○:◇ ◇”といった具合に候補が出現しますが、その○○の部分がこのフォルダの名前と同じになります。

④:さらに作成したフォルダの中にfunctionsフォルダを作成

③で作ったフォルダを開き、そこに”functions”という名前のフォルダを作ります。
ここまで作業していると、フォルダを作るのも難なくできるかと思います。

ここで気をつけたいのは、”functions”なので、末尾にある”s”を忘れないようにすること。
うっかり間違えることが多いところなので、気をつけてくださいね。

⑤:functionsフォルダの中に、コマンドを記述したファイルを作成する

functionsフォルダの中に入れるファイルは、mcfunctionというファイルになります。
このmcfunctonファイルの中にfunctionコマンドで使いたいコマンドを書いていきます。

というわけでmcfunctionファイルの作り方について解説していきます。

まずは、テキストドキュメントを作成しましょう。
(手順としてはpack.mcmetaを作成した時と似ています)

作成したテキストファイルを開き、そこにコマンドを書いていきますが幾つかルールがあります。

  1. 文頭に「/」は入れてはいけない
  2. 1行につき、1つのコマンドを書く

詳しい事を言うと、もう少しルールは存在しますが、それらは覚えなくても問題ありませんので省きました。
まずは上記の2つを覚えておけばOKです。

初めの方でも紹介したファイル内容を見ても

tellraw @a "コマンド1"
tellraw @a "コマンド2"

と、きちんと上記のルールが守られていますね。

コマンドを書いたら上書き保存をして、ファイル名を変えていきます。
ファイル名は好きなものでOKです。
(ただし、半角英数字で指定する必要があり)

拡張子は”.mcfunction”となります。

先ほど説明した ”○○:◇ ◇” で言うところの”◇ ◇”が、ここで決めたファイル名と同じものが候補として表示されます。

なので、helloというファイル名にしたい場合は、”hello.mcfunction”となるわけですね。

ちなみにmcfunctionファイルは複数作っても大丈夫です。
中身のコマンドを変更すれば、それだけfunctionコマンドで出来ることが増えます。

ここまで作業すれば、あとは作ったファイルを正しい位置に格納するだけです。

格納場所はdatapacks

格納する場所は、マイクラのセーブデータ内にあるdatapacksの中になります。

デスクトップに戻って、一番初めに作成したファイルに全てのフォルダやファイルが格納されていると思うので、デスクトップにあるフォルダを丸ごと移動させます。

datapacksの場所を開くには、Minecraftを起動してワールドを選択後、「編集」をクリック。
そうすると、以下のような画面が出てきます。

「ワールドフォルダーを開く」をクリックすると、そのワールドのセーブデータのフォルダが開きます。

ファイル作成後は読み込みが必要

functionコマンドのためのフォルダを無事にdatapacksに移動させたら、実際にコマンドを使ってみましょうと言いたいのですが、その前にやっておいた方が良いコマンドがあります。

それがreloadコマンドです。

このreloadコマンドは読み込み直すだけのコマンドで、セーブデータのファイルを変更した際に使います。
使う理由としては、読み込みができていないことを無くすためだけですね。

/reload

だけでreloadコマンドは完結しています。

一応、新しくサーバーに入りなおしたりすれば、自動で読み込み直してくれるのですが万が一に備えてreloadコマンドを使っておきましょう。

/reloadを使用すると、「再読み込み中…」というメッセージが表示されますが、この時点で完了しています。

functionコマンド自体は非常に簡単

さて、これでようやくfunctionコマンドを使う準備がすべて整いました。
大変お疲れさまでした。

慣れるまでは中々に手間取る作業ではありますが、それ相応のメリットもあるので是非とも習得しておきたいコマンドですね。

さて、そんなfunctionコマンドは以下のようなコマンドで起動できます。

/function 〇〇:◇◇

”〇〇:◇◇”の部分は問題がなければ候補として現れます
複数のファイルを作成した時は、起動したいファイル名の候補を選択して起動しましょう。

もし候補に現れない場合は、どこかの作業を間違えている可能性があるので、原因を探してみましょう。

やりがちなミスとしては、

  • ファイル(フォルダ)名のスペルミス
  • 大文字を使用してしまった
  • ファイル(フォルダ)の位置関係がおかしい

などが挙げられますね。

候補を選択した後に打ち込むことはないので、そのままエンターを押して起動します。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • functionコマンドを使う前の読み込みに使う/reloadコマンド
/relroad
  • functionコマンド
/function ファイル名(候補から選択)
ポイント
  • スペルミスなどで作動しなくなってしまうので、正常にコマンドが処理されないときは1つ1つ原因を探していくのが大事です!

この記事は以上になります。







関連記事

この記事を共有!