1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【統合版マイクラ】ビヘイビアーパックでコマンドを常時実行する方法とブタさんの飛ぶころに

Last updated at Posted at 2024-12-06

ブタさんの飛ぶころに

すーみそー
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)

などを指定します。

manifest.json
{
    "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です。

などで生成できます。

uuid生成画面

Copyボタンで取得し、manifestに貼り付けてください。

header部分とmodules部分で2つ必要になります。
画面更新で再生成できます。

pack_icon.png

ビヘイビアーパックのアイコンとして表示される画像を指定します。
正方形の画像を指定します。

pack_icon.png

スクリーンショットをとって540x540pxにトリミングしました。
飛んでいる感が全然ない。

main.mcfunction

実行するコマンドを1行1コマンドで記載します。
先頭の/は不要です。
ファイル名は任意です。

main.mcfunction
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文のような役割です。

角度の範囲指定.png

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が繰り返し実行されます。

tick.json
{
    "values": [
        "c0db8c/main"
    ]
}

valuesにファイル名を指定します。
複数のmcfunctionを指定できます。
拡張子は付けません。

ここで指定したmcfunctionはワールドで常に実行状態となります。
main.mcfunctionを指定し、世界のどこでも実行されるようにします。

これがメインのはずがコマンドの説明の方が分量が多いっていう。 簡単ですね。

パッケージ化とインストール

作成したファイルを.mcpackの形式にまとめ、統合版マイクラにインストールできるようにします。

ファイル構成(再掲)
  /
  ├ manifest.json ビヘイビアーパックの定義ファイル
  └ functions/
    ├ tick.json 常時実行するmcfunctionを指定
    └ c0db8c 名前空間
      └ main.mcfunction コマンド本体

zipファイルに圧縮する

作成したファイルをすべて選択し
zipファイルに圧縮します。ファイル名は任意で指定してください。

名前を変更する

マイクラのアイコン.png

zipファイルの拡張子を.mcpackに書き換えるとアイコンがマイクラに変わります。
ダブルクリックで統合版マイクラが起動しインストールされます。

インポート完了.jpg

こんなときは

有効なパックではないとエラーが表示された

manifest.jsonの階層が深すぎる可能性があります。
フォルダではなく、ファイルを選択してzipを作成してください。

プレビュー版のマイクラが起動した

.mcpackを右クリックし、プログラムから開くを選択
任意のマイクラを選択してください。

アンインストールしたい

設定のストレージビヘイビアーパックから削除ができます。

アンインストール.png

ワールド導入

新規ワールドを作成して、ビヘイビアーパックを有効化します。
既存のワールドに入れることもできますが、バックアップをとることをオススメします。

ビヘイビアーパック有効化.png
ワールド新規作成画面で、チートよりチートを有効化
ビヘイビアーパックの項目より有効化を選択します。

みんなでブタに乗る

動作イメージです。

あとがき

本記事ははてなブログに投稿した記事のリメイク版です。

最新のexecuteコマンドに対応、ついでにビヘイビアーパック化しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?