この記事では、Minecraft Java Edition(バージョン1.20.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドブロックの量に困っているマインクラフター
「配布マップを作っているんだけど、コマンドブロックの量が多くなってきた……。どうにかしてコマンドブロックを減らしたいけど、これってどうしようもないよね?」
こんな疑問を解決します!
- functionはゲーム外部からコマンドを起動するコマンド
- functionコマンドを使うためにはファイルを作成する必要がある
- ファイル作成後は読み込みが必要
- functionコマンド自体は非常に簡単
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
2016年3月からマイクラをプレイしています!
最近はコマンドやデータパックなどの技術的なものを勉強しています。
今回はfunctionコマンドについて解説していきます。
functionコマンドは前準備が必要なコマンドで、どうしても難しそうに見えてしまいます。
しかし、習得することができれば便利な代物です。
具体的には
- ワールドの負荷が軽くなる
- コマンドブロックが減るので、見た目がすっきりする
といったメリットがあります。
さっそく見ていきましょう!
functionはゲーム外部からコマンドを起動するコマンド
functionコマンドはデータパックを作成して、それを元に起動するコマンドになります。
また、同一のファイルに複数のコマンドを書き記せば、それらのコマンドを一度に起動させることができるのもfunctionコマンドの特徴です。
要するに、マップ内にコマンドブロックを設置しなくてもコマンドが使え、さらにはコマンド1つで複数のコマンドを一気に起動できます。
例えば、
tellraw @a "コマンド1"
tellraw @a "コマンド2"
という風に書いておけば、functionコマンド1つで「コマンド1」という文章と「コマンド2」という文章をチャットに流すことが可能です。
functionコマンドを使うためにはファイルを作成する必要がある
それでは、実際にfunctionコマンドを使ってみましょう。
と言いたいのですが、その前に準備があります。
先ほども説明したように、データパックを作ってそこに書かれているコマンドを読み込むので、適切なファイルを作り、適切な位置に配置する必要があります。
なので、その準備の方法を解説していきます。
まずは簡単にどのような構造になっているのかを紹介します。
- データパック名
- data
- ファイル名
- functions
- mcfunctionファイル
- functions
- ファイル名
- pack.mcmeta
- data
pack.mcmeta、mcfunctionファイル以外は全てフォルダです。
また、データパック名、ファイル名は英数字で名付けましょう。
pack.mcmetaについて
pack.mcmetaの中身は以下の通り。
以下の内容をメモ帳などにコピペした後、拡張子を.mcmetaに変更すれば問題ありません。
{
"pack": {
"pack_format": 18,
"description": "説明文"
}
}
pack_formatの部分はプレイしているマイクラのバージョンによって異なります。
詳しくは英語版のWikiに記載されているので、そちらを参照してください。
異なる数字を入れても基本動作しますが、導入の際などに警告文などが出ます。
descriptionの部分は、そのデータパックの説明文となるので、分かりやすい文章を入れておきましょう。
上記はdatapackとだけシンプルに入力しています。
mcfunctionについて
実行するコマンドを書きこむのがmcfunctionファイル。
このファイルはメモ帳などにコマンドを書いた後に、拡張子を.mcfunctionに変更して作成すればOKです。
ただし記述する際のルールがあり
- 文頭に「/」は入れてはいけない
- 1行につき、1つのコマンドを書く
この2点を守るようにしましょう。
先ほど紹介したように
tellraw @a "コマンド1"
tellraw @a "コマンド2"
といった具合で入力すれば問題ありません。
①に関しては、変数を用いるコマンドの場合、文頭に$を書く必要があります。
詳しく知りたい方は【1.20.2~】functionコマンドで変数を使う方法【マイクラ】をどうぞ。
格納場所はdatapacks
格納する場所は、datapacksというフォルダです。
作成したファイルを丸ごと移動させれば良いので、まずはdatapacksを探しましょう。
datapacksの場所を見つけるには、Minecraftを起動してワールドを選択後、「編集」をクリック。
そうすると、以下のような画面が出てきます。
「ワールドフォルダーを開く」をクリックすると、そのワールドのセーブデータのフォルダが開きます。
なので、その中にある「datapacks」を見つけて、その中に導入すればOKです。
ファイル作成後は読み込みが必要
データパックをdatapacksに導入することができたら、実行しておいた方が良いコマンドがあります。
それはreloadコマンドです。
このコマンドは読み込み直すだけのコマンドで、データパックなどに変更を加えた際に実行することで、データを改めて読み込みしてくれます。
コマンド自体もシンプルで
/reload
だけで使えます。
新しくサーバーに入りなおしたりすることで自動で読み込み直してくれるのですが、念のためにreloadコマンドを使っておきましょう。
/reloadを使用すると、「再読み込み中…」というメッセージが表示されますが、この時点で完了しています。
functionコマンド自体は非常に簡単
さて、これでようやくfunctionコマンドを使う準備がすべて整いました。
慣れるまでは中々に手間取る作業ではありますが、そんなfunctionコマンドは以下のようなコマンドで起動できます。
/function 〇〇:◇◇
”〇〇:◇◇”の部分は問題がなければ候補として現れます。
○○はファイル名、◇◇の部分はmcfunctionの拡張子を除いた名前です。
なので、lavaというファイル名、checkというmcfunctionファイルだったら、「lava:check」という候補が出現します。
もし候補に現れない場合は、どこかの作業を間違えている可能性があるので、原因を探してみましょう。
やりがちなミスとしては、
- ファイル(フォルダ)名のスペルミス
- 大文字を使用してしまった
- ファイル(フォルダ)の位置関係がおかしい
などが挙げられますね。
入力後は、そのままEnterキーを押します。
これでfunctionコマンドを実行することが可能です。
バージョンアップによって実行する関数を指示した後に、withと書き足すことができるようになりました。
詳しくは【マイクラ】functionコマンドでwithを使う【関数や引数】にて解説しています。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- functionコマンドを使う前の読み込みに使う/reloadコマンド
/relroad
- functionコマンド
/function ファイル名(候補から選択)
- スペルミスなどで作動しなくなってしまうので、正常にコマンドが処理されないときは1つ1つ原因を探していくのが大事です!
この記事は以上になります。