【コマンド】簡単!通り抜けられる壁の作り方【Java】

コマンド

コマンドを使った通り抜けられる壁の作り方です。完全にどこが通り抜けられるかわからなくなるので何かのギミックとかに使えそう!

コマンド初心者の備忘録なのでうまくいかなかったらすみませんm(__)m
コマンドについてご指摘を頂いたので2022/02/01に投稿したブログのコマンドを改良して再投稿してます。

検証バージョンはJava1.18+、1.19です。

動画で見たい方用

チャンネル登録でBBを応援してあげるって方はこちらからどぞ

通り抜けられる壁とは

一見すると普通の壁ですが…
ただの壁

一部だけ通り抜けられるようになってます。
通り抜けられる

通り抜けられる壁の作り方

基本コマンド

これらはチャット欄に入力してください。

コマンドブロックの出し方

コマンドブロック入手コマンド

/give @s minecraft:command_block

コマンドログの消し方

画面左に流れ続けるコマンドログを非表示にする方法です。

コマンドログ非表示コマンド

/gamerule commandBlockOutput false

壁の準備

まずは壁を作り、通り抜けたいところを縦に2ブロックあけます。
壁の準備

コマンドブロック設置

どこでも良いので見えないところにコマンドブロックを設置します。
見えないところにコマンドブロック

入力するコマンド

入力コマンド

execute as @e[type=minecraft:falling_block,tag=aaaa] run data merge entity @s {Time:-1}

【tag=●●】の部分は他のコマンドと重複しない自分の使いやすい言葉に変更してください。
コマンドの詳細は全てまとめて後述します。

コマンドブロックの設定は、【リピート、無条件、常時実行】にします。
リピーターコマンドブロックの設定

通り抜けられる壁を付ける

通り抜けられる壁

通り抜けられる壁を付けたいところにコマンドブロックを設置。
壁用コマンドブロック

通り抜けられる壁のコマンド

summon minecraft:falling_block ~ ~-0.5 ~ {Tags:[“aaaa”],NoGravity:1,Time:1,DropItem:0,BlockState:{Name:”minecraft:stone_bricks”}}

【Tags:[“●●”]】はさっきの見えないところに置いたコマンドで入力した【tag=●●】と同じタグを指定します。

最後の【minecraft:stone_bricks】の部分は壁として表示されるブロックの種類(今回なら石レンガ)なので、自分の必要なブロックに変更してください。

コマンドを入力したら右端を常時実行にして完了を押す。
通り抜けられる壁コマンドの設定

通り抜けられる壁とコマンドブロックが重なって表示されるので、コマンドブロックを壊す。
通り抜けられる壁コマンドの設定

下側も上と同じようにコマンドを入力して
通り抜けられる壁コマンドの設置

コマンドブロックを壊す。
通り抜けられる壁コマンドの設定

完成

これで通り抜けられる壁の完成です٩(ˊᗜˋ*)و
通り抜けられる壁コマンドの設定

コマンドについて詳しく

大まかな解説なので微妙に違うかもしれませんが、こんな感じぐらいのニュアンスで。

壁部分のコマンドについて

壁部分のコマンド

summon minecraft:falling_block ~ ~-0.5 ~ {Tags:[“●●●”],NoGravity:1,Time:1,DropItem:0,BlockState:{Name:”★★★”}}

コマンド解説

summon minecraft:falling_block 落下中のブロックを召喚
~ ~-0.5 ~ 召喚座標指定。
ブロックがずれる場合はここの値を変更してください。
Tags:[“●●●”] タグを付ける。
もう一つのコマンドとリンクする。
NoGravity:1 ブロックを浮かせる
Time:1 表示可能時間を設定。
Timeは加算され続け600になるとブロックが消える。
DropItem:0 ブロックが壊れた時そのアイテムをドロップするか。
BlockState:{Name:”★★★”} ★★★で指定したブロックが表示される

Timeに大きなマイナスの値を付ければこのコマンドのみで長時間通り抜けられる壁を出現させ続けることは可能。ただしTimeが600に到達すれば消える。

見えないところに置いておくコマンド

置いておく方のコマンド

execute as @e[type=minecraft:falling_block,tag=●●] run data merge entity @s {Time:-1}

コマンド解説

execute as @e @eが実行する
tag=●● タグを指定。上記で付けたタグとリンクさせる。
data merge entity エンティティのデータと合算させる
{Time:-1} Timeに-1という数値を加算し続ける。

2つのコマンドをざっくり簡単にまとめると【●●】というタグが付いた通り抜けられるブロックに【Time:-1】を加算し続けてるだけです。

こんな時どうする?

通り抜けられる壁がどこかわからなくなった

【F3】と【b】を同時に押すと通り抜けられるブロックの場所が白い枠で表示されます。
当たり判定表示
枠を再非表示にしたい場合も同じく【F3】と【b】を同時押しします。

通り抜けられる壁を消したい

方法1:範囲指定

消したい通り抜けられるブロックとの距離を指定して消す方法。

通り抜けられるブロックと隣接距離(斜め位置も含む)にコマンドブロック設置。
通り抜けられる壁を消すコマンド

範囲指定で消すコマンド

/kill @e[type=minecraft:falling_block,distance=..2]

コマンド最後の【distance=..2】の数字を増やせば通り抜けられるブロックを消せる範囲が増えます。
【distance=..3】にした場合2つ先のブロックまで消せ、【distance=..4】にした場合3つ先のブロックまで消せます。

コマンドを入力したら、常時実行にして完了。
常時実行

コマンドブロックを使わず、その位置に立ってチャット欄にコマンドを入力して消すことも可能。

方法2:Tag指定

Tagを指定して通り抜けられるブロックを消す方法。
コマンドブロックかチャット欄にコマンドを入力します。

Tag指定で消すコマンド

/kill @e[type=minecraft:falling_block,tag=●●]

【tag=●●】●●の部分に自分の指定したtagを入力します。
同じタグを使用している場合はそれらも一緒に消えてしまうので注意してください!

こんな使い方も

縦ではなく横に使うと落とし穴に!
落とし穴
緑の床に緑色の奴でめっちゃわかりづらくてすみません(๑°ㅁ°๑)

タイトルとURLをコピーしました