コマンドを使った通り抜けられる壁の作り方です。完全にどこが通り抜けられるかわからなくなるので何かのギミックとかに使えそう!
コマンド初心者の備忘録なのでうまくいかなかったらすみませんm(__)m
コマンドについてご指摘を頂いたので2022/02/01に投稿したブログのコマンドを改良して再投稿してます。
検証バージョンはJava1.18+、1.19です。
動画で見たい方用
通り抜けられる壁とは
一見すると普通の壁ですが…
一部だけ通り抜けられるようになってます。
通り抜けられる壁の作り方
基本コマンド
これらはチャット欄に入力してください。
コマンドブロックの出し方
/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を指定して通り抜けられるブロックを消す方法。
コマンドブロックかチャット欄にコマンドを入力します。
/kill @e[type=minecraft:falling_block,tag=●●]
【tag=●●】●●の部分に自分の指定したtagを入力します。
同じタグを使用している場合はそれらも一緒に消えてしまうので注意してください!
こんな使い方も
縦ではなく横に使うと落とし穴に!
緑の床に緑色の奴でめっちゃわかりづらくてすみません(๑°ㅁ°๑)