functionコマンドの使い方

functionコマンド(.mcfunctionファイル)の使い方について記載します。

はじめに

Windows 10 、Minecraft Java Edition での方法になります。
他環境の場合は別でお調べください。

概要

関数、ファンクション(英:Function)は、拡張子 .mcfunction のテキストファイルを使用することで、プレイヤーが簡単にコマンドのリストをスクリプト化して実行できる機能である。問題点を回避するために、関数ファイルに UTF-8(BOM なし)をエンコーディングすることを推奨する。

引用元: 関数 (Java Edition) - Minecraft Wiki

コマンドを実行するための準備

データパックフォルダの作成

functionコマンドで実行する.mcfunctionファイルを配置するためにデータパックフォルダを作成します。
次のようなフォルダ階層を作成します。
C:\Users\(ログインユーザーのフォルダ名)\AppData\Roaming\.minecraft\saves\(Worldのフォルダ名)\datapacks\(データパックのフォルダ名)\data\(名前空間のフォルダ名)\functions
ログインユーザーのフォルダ名
ユーザー毎のフォルダ名。(例:aaa)
既に存在しているはずなので作成は不要。

Worldのフォルダ名
functionコマンドを実行するマインクラフトのワールド名。(例:world1)
既に存在しているはずなので作成は不要。

データパックのフォルダ名
データパックとしての任意のフォルダ名。(例:workdp)
ユーザー側で命名できる。半角英数推奨。

名前空間のフォルダ名
名前空間としての任意のフォルダ名。(例:test)
ユーザー側で命名できる。半角英数小文字のみ?

例の内容の場合の作成したフォルダ階層例:
C:\Users\aaa\AppData\Roaming\.minecraft\saves\world1\datapacks\workdp\data\test\functions

pack.mcmeta ファイルの作成

データパックフォルダ(例では workdp)の直下に pack.mcmeta ファイルを作成して配置します。
C:\Users\aaa\AppData\Roaming\.minecraft\saves\world1\datapacks\workdp\pack.mcmeta
pack.mcmeta ファイルの内容は下記の通りです。UTF-8(BOMなし)で保存してください。
{
    "pack": {
        "pack_format": 1,
        "description": "memo"
    }
}
pack.mcmeta
description の memo の部分はデータパックの説明を記入する場所なので自由に書き換えても大丈夫です。

.mcfunctionファイルの配置

functions フォルダの直下に .mcfunction ファイルを配置します。
↓動作確認用 .mcfunction ファイル(kakuninkanban.fs.1.1.1.pos.t0.t0.t0.mcfunction)

kakuninkanban.fs.1.1.1.pos.t0.t0.t0.mcfunction

配置例:
C:\Users\aaa\AppData\Roaming\.minecraft\saves\world1\datapacks\workdp\data\test\functions\kakuninkanban.fs.1.1.1.pos.t0.t0.t0.mcfunction
.mcfunction内のコマンドは仕様で / (スラッシュ)を付けないことになっています。

functionコマンドの実行

Minecraft のワールドへ入り、下記のコマンドを実行します。
エラーなく実行ができれば、看板が立ちます。
/function test:kakuninkanban.fs.1.1.1.pos.t0.t0.t0
例:
.mcfunction ファイルが認識されていると、function コマンドの実行時に候補として表示されます。
候補に表示されない場合は下記を試してみてください。

・「/reload」コマンドを実行してからfunction コマンドを実行する。
・データパックフォルダや .mcfunction ファイルの名前を半角英数小文字のみにする。
・データパックフォルダの階層に間違いがないか確認する。
・pack.mcmeta ファイルの配置場所に間違いがないか確認する。
・pack.mcmeta ファイルの内容に間違いがないか確認する。
・pack.mcmeta ファイルのテキストフォーマットが UTF-8(BOMなし)であるか確認する。
・.mcfunction ファイルの配置場所に間違いがないか確認する。
・.mcfunction ファイルの内容に間違いがないか確認する。(コマンドの前に /(スラッシュ) がある場合は消す。)
・.mcfunction ファイルのテキストフォーマットが UTF-8(BOMなし)であるか確認する。

【補足】当blogにあるmcfunctionのファイル名について
下記の命名規則でファイル名を付けています。

例:tatemono-B1.fs.10.15-5.20.pos.t0.t0.t0

tatemono-B1
→建造物の名称

.fs
→建造物の向き
(fn:facing north, fe:facing east, fs:facing south, fw:facing west)

.10.15-5.20
→建造物の大きさ。 X(幅) Y(高さ) Z(奥行) の順番で表記。
例の Yの「15-5」は全体でYは15ブロック高さがあるが 5ブロックは地下にある(地面に埋もれている)という意味。

.pos.t0.t0.t0
→建造物を建造する位置。
「.pos.t0.t0.t0」は位置「~0 ~ 0 ~0」に建築するという意味。(プレイヤーが立っている位置から東にXブロック、南にZブロック、高さYブロックの建造物ができる。)
t はチルダ ~ (tilde)を表している。
t が付いていない場合はその座標を基点に建造物ができる。

以上