すーみそー
sumiso_c0db8c だ。
統合版マイクラのビヘイビアーパックで乗って空を飛べるブタを作成しました。
ダウンロードはこちら
tick.json
を利用して、コマンドを常時実行し
マルチプレイ対応、どのブタに乗っても空を飛べるようにします。
統合版マイクラ1.21.44で動作確認を行っています。
本記事で分かること
- ビヘイビアーパックの作り方
- 統合版マイクラでのmcfunctionの使い方
- executeコマンドの使用例
- コマンドを常時実行するtick.json利用方法
ブタさんの飛ぶ頃に
統合版マイクラの実績にはブタさんの飛ぶ頃に
というものがあります。
鞍を使って豚に乗り、乗っている最中に豚に落下ダメージを与えよう。
飛んでなくない???
ブタさん飛んでいません。落ちています。
なので、ブタが飛べるようにコマンドを組みます。
ワールドのどのブタでも飛べるように、コマンドを常時実行するようにします。
飛ばねぇ豚はただの豚だ
-- ポルコ・ロッソ
構成
以下のようなファイル構成でビヘイビアーパックを作成します。
ビヘイビアーパックは、統合版マイクラ専用データパックのようなものです。
コマンドをまとめて実行するmcfunction
を利用します。
開発環境としてはVScodeがオススメです。
/
├ manifest.json ビヘイビアーパックの定義ファイル
├ pack_icon.png アイコン画像
└ functions/
├ tick.json 常時実行するmcfunctionを指定
└ c0db8c 名前空間
└ main.mcfunction コマンド本体
pack_icon.png
は無くても問題ありません。
c0db8cは筆者の名前です。
適宜変更してください。
manifest.json
ビヘイビアーパックの定義ファイルです。
ビヘイビアーパックの
- 名前(name)
- 説明(description)
- 対応バージョン(min_engine_version)
などを指定します。
{
"format_version": 2,
"header": {
"description": "ブタに乗って上を向くと飛ぶぞ",
"name": "ブタさんの飛ぶ頃に",
"uuid":"4c053163-378c-4f35-abdb-93de365b2076",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 44]
},
"modules":
[
{
"type": "data",
"uuid": "ad53febf-31fb-479c-9a87-5750fffeb1e4",
"version": [1, 0, 0]
}
]
}
uuidはビヘイビアーパックの識別IDです。
などで生成できます。
Copyボタンで取得し、manifestに貼り付けてください。
header部分とmodules部分で2つ必要になります。
画面更新で再生成できます。
pack_icon.png
ビヘイビアーパックのアイコンとして表示される画像を指定します。
正方形の画像を指定します。
スクリーンショットをとって540x540pxにトリミングしました。
飛んでいる感が全然ない。
main.mcfunction
実行するコマンドを1行1コマンドで記載します。
先頭の/
は不要です。
ファイル名は任意です。
execute at @a run effect @e[type=pig, r=1] slow_falling 3 0 true
execute at @a[rx=-5, rxm=-25] run effect @e[type=pig, r=1] levitation 3 0 true
execute at @a[rx=-26, rxm=-50] run effect @e[type=pig, r=1] levitation 3 1 true
execute at @a[rx=-51, rxm=-90] run effect @e[type=pig, r=1] levitation 3 2 true
execute at @a[rx=-5, rxm=-90] run effect @e[type=pig, r=1] speed 3 10 true
プレイヤーがブタに乗ったときに
- 低速落下
- 浮遊
- 移動速度上昇
をかけて飛翔効果を与えるコマンドを組みます。
統合版マイクラ1.21.44で動作確認を行っています。
Java版マイクラはeffectの文法が異なるのでマネしないでください。
基本構造
execute at @a[プレイヤーの状態] run effect @e[type=pig, r=1] [エフェクトの効果] [効果時間] [エフェクトのレベル] true
それぞれのコマンドの意味は下記の通りです。
execute at @a run effect @e[type=pig, r=1] slow_falling 3 0 true
execute at @a[rx=-5, rxm=-25] run effect @e[type=pig, r=1] levitation 3 0 true
execute at @a[rx=-26, rxm=-50] run effect @e[type=pig, r=1] levitation 3 1 true
execute at @a[rx=-51, rxm=-90] run effect @e[type=pig, r=1] levitation 3 2 true
上を向いている角度に合わせて3パターン用意しています。
execute at @a[rx=-5, rxm=-90] run effect @e[type=pig, r=1] speed 3 10 true
モブが浮いているときは移動速度が低下するため、快適に動けるように移動速度上昇を加えています。
プレイヤーが下を向いて、下降するときにはかからないので、ゆっくり降りることができます。ゆっくりしていってね
コマンドの構文について解説します。
execute at @a[プレイヤーの状態]
始めにexecute at
コマンドでコマンドの実行基準を位置を基準
にします。
プレイヤーの近くのブタにのみ飛翔効果をかけるためです。
セレクターは@a
を使用し、すべてのプレイヤー
を対象とします。
マルチプレイ対応です。
@a[rx=-25, rxm=-50]
の部分では、プレイヤーの視点の向きを指定しています。
if文のような役割です。
rxは上下方向の視点
rx(下限) ~ rxm(上限)の範囲指定を行っています。
一番上が-90になるので注意。
上を向いているプレイヤー
を検知したときに
ブタに対してエフェクトをかけます。
run effect @e[type=pig, r=1]
executeコマンドで変更したプレイヤーの位置を基準に
ブタに対してエフェクトをかけます。
type
でモブの種類を指定します。
今回はブタを対象にしています。
r=1
でコマンド実行基準点からの距離を指定します。
execute at
でプレイヤーの位置が基準になっているため
プレイヤーから1ブロック以内のブタ
つまり、プレイヤーが乗っているブタが対象になります。
effect [エフェクトの効果] [効果時間] [エフェクトのレベル] true
effectコマンドでブタに
- 低速落下(slow_falling)
- 浮遊(levitation)
- 移動速度上昇(speed)
の効果を与えて、空が飛べるようにします。
効果時間の指定は秒です。
統合版マイクラ1.21.44現在、ログの表示がtick単位になっていて、指定した秒数x20の値が表示されますが、効果時間は正しく指定秒数になっています。おそらく表示バグ
エフェクトのレベルで効果の強さを指定します。
上を向くほど上昇効果が強くなるように、levitation
は3段階に分けて指定しています。
execute at @a[rx=-5, rxm=-25] run effect @e[type=pig, r=1] levitation 3 0 true
execute at @a[rx=-26, rxm=-50] run effect @e[type=pig, r=1] levitation 3 1 true
execute at @a[rx=-51, rxm=-90] run effect @e[type=pig, r=1] levitation 3 2 true
最後のtrue
はもやもやの非表示設定です。
設定 | もやもやの表示 |
---|---|
false(デフォルト) | 表示 |
true | 非表示 |
デフォルトは非表示の否定で、もやもやが表示されます。
tick.json
常時実行したいmcfunction
を指定します。
リピートのコマンドブロックのように、指定したmcfunctionが繰り返し実行されます。
{
"values": [
"c0db8c/main"
]
}
valuesにファイル名を指定します。
複数のmcfunctionを指定できます。
拡張子は付けません。
ここで指定したmcfunctionはワールドで常に実行状態となります。
main.mcfunction
を指定し、世界のどこでも実行されるようにします。
これがメインのはずがコマンドの説明の方が分量が多いっていう。 簡単ですね。
パッケージ化とインストール
作成したファイルを.mcpack
の形式にまとめ、統合版マイクラにインストールできるようにします。
/
├ manifest.json ビヘイビアーパックの定義ファイル
└ functions/
├ tick.json 常時実行するmcfunctionを指定
└ c0db8c 名前空間
└ main.mcfunction コマンド本体
作成したファイルをすべて選択し
zipファイルに圧縮します。ファイル名は任意で指定してください。
zipファイルの拡張子を.mcpack
に書き換えるとアイコンがマイクラに変わります。
ダブルクリックで統合版マイクラが起動しインストールされます。
こんなときは
有効なパックではないとエラーが表示された
manifest.jsonの階層が深すぎる可能性があります。
フォルダではなく、ファイルを選択してzipを作成してください。
プレビュー版のマイクラが起動した
.mcpack
を右クリックし、プログラムから開くを選択
任意のマイクラを選択してください。
アンインストールしたい
設定のストレージ
→ビヘイビアーパック
から削除ができます。
ワールド導入
新規ワールドを作成して、ビヘイビアーパックを有効化します。
既存のワールドに入れることもできますが、バックアップをとることをオススメします。
ワールド新規作成画面で、チートよりチートを有効化
ビヘイビアーパックの項目より有効化を選択します。
動作イメージです。
あとがき
本記事ははてなブログに投稿した記事のリメイク版です。
最新のexecuteコマンドに対応、ついでにビヘイビアーパック化しました。