Minecraft【アイディア】床からとげが出てくる。

Java版1.21.4-、統合版v1.21.60-で動作確認。
ダンジョンのトラップに使える。
床からとげが出てくる。
床からとげが出てくるトラップを作ります。アクションゲームによくある仕掛け装置です。床から出てくるとげをうまく避けて進みます。とげは防具立てで代用。エンティティなので使いやすいです。応用すればとげの範囲を広げたり、段々と閉じる壁、コースが変わる迷路ダンジョンなども作れます。
◻︎装置の特徴
・タイマーを使ったループ装置。
・NOT回路で信号を切り替え。
・防具立てに当たるとダメージ。(当たり判定)
※「as」や「minecraft:」などのコマンドは簡略化しています。一部のコマンド、マルチプレイやサーバーでは必要な場合があります。
コマンドブロックの使い方
装置はシングルプレイ用です。マルチプレイで遊ぶには、ターゲットセレクタにタグや引数を追加してください。詳しいコマンドブロックの使い方は、関連記事を確認ください。
- 詳しくはこちら→ 【テクニック】コマンドブロックの使い方。1-2
とげトラップのしくみ
防具立て「とげ」を床下に設置し、出したり入れたりします。3つの「とげabc」を「歯車」タイマーを使って順番に動かしています。プレイヤーが、地面から出ている「とげ」に触れるとダメージ。出し入れするタイミングやパターンは変更可能。効果音やパーティクルを追加すれば、さらにリアルになります。
防具立ての召喚。
防具立ての位置が重要になるため、align(アライン)を使い、3つの防具立てを整数位置に設置します。さらにコマンドを使って2ブロック下に移動します。※「とげ」は透明にする必要はありません。
作りたい場所に「とげ」を設置。
【Java版】
execute at @p align xz run summon armor_stand ~0.5 ~ ~0.5 {CustomName:'"とげa"',CustomNameVisible:1b} execute at @p align xz run summon armor_stand ~0.5 ~ ~0.5 {CustomName:'"とげb"',CustomNameVisible:1b} execute at @p align xz run summon armor_stand ~0.5 ~ ~0.5 {CustomName:'"とげc"',CustomNameVisible:1b} |
【統合版】
execute at @p align xz run summon armor_stand とげa ~0.5~~0.5 execute at @p align xz run summon armor_stand とげb ~0.5~~0.5 execute at @p align xz run summon armor_stand とげc ~0.5~~0.5 |
◻︎「とげabc」を下へ移動
execute at @e[name="とげa"] run tp @e[name="とげa"] ~ ~-2 ~ execute at @e[name="とげb"] run tp @e[name="とげb"] ~ ~-2 ~ execute at @e[name="とげc"] run tp @e[name="とげc"] ~ ~-2 ~ |
スコアボードの作成。
タイマー用にスコアボード「count」を作成。装置が完成するまで、サイドバーに表示しておきます。
【Java版/統合版】
scoreboard objectives add count dummy scoreboard objectives setdisplay sidebar count |
床からとげが出てくる
タイマーを管理する「歯車装置」と、防具立て「とげ」を動かす「とげ装置」を作ります。今回はひとつひとつの「とげ」を別々に動かしていますが、範囲の引数を使えば同じ名前の防具立てを、まとめて動かす事も可能。ボタンを押すと装置が起動します。
歯車装置。
防具立て「歯車」がある時、回転式のクロック信号装置でタイマーを作動。4秒毎にスコアボードをリセット。「歯車」が無い時は、装置を停止します。※統合版はティックの遅延を使用。
①はボタンを設置。Java版/③は条件付き。統合版/②ティックの遅延:20。最初のティックで実行:オフ。③を削除。
【Java版】
①summon armor_stand ~ ~ ~ {CustomName:'"歯車"',CustomNameVisible:1b} ------ ②execute at @e[name="歯車"] run tp @e[name="歯車"] ~ ~ ~ ~18 ~ ③execute if entity @e[name="歯車",y_rotation=0] run scoreboard players add とげ count 1 ------ ④execute at @e[type=armor_stand] run effect give @p[distance=..1.1] instant_damage 1 1 ⑤execute unless entity @e[name="歯車"] run scoreboard players reset とげ count ⑥execute if score とげ count matches 4 run scoreboard players reset とげ count |
【統合版】①②④以外はJava版と同じ。※③は無し。
①summon armor_stand 歯車 ~~~ ------ ②execute at @e[name="歯車"] run scoreboard players add とげ count 1 ------ ④execute at @e[type=armor_stand] run effect @p[r=1.1] instant_damage 1 1 |
【トリガー】①
「歯車」を召喚。
------
【タイマー】②③
1秒毎に「count」のとげを追加。※統合版はティックの遅延。
------
【リセット&ダメージ】④⑤⑥
「とげ」に触れたプレイヤーにダメージ。「count」のとげをリセット。
とげ装置。
「とげabc」を動かす装置。信号がある時、防具立てを地面から半分出し、信号が無い時、床下に戻します。NOT回路(レッドストーントーチ)を使ってコマンドを簡略化。
②⑤⑧は、レッドストーントーチを設置。
【Java版/統合版】
①execute if score とげ count matches 1 ②execute at @e[name="とげa"] run tp @e[name="とげa"] ~ ~1 ~ ③execute at @e[name="とげa"] run tp @e[name="とげa"] ~ ~-1 ~ ------ ④execute if score とげ count matches 2 ⑤execute at @e[name="とげb"] run tp @e[name="とげb"] ~ ~1 ~ ⑥execute at @e[name="とげb"] run tp @e[name="とげb"] ~ ~-1 ~ ------ ⑦execute if score とげ count matches 3 ⑧execute at @e[name="とげc"] run tp @e[name="とげc"] ~ ~1 ~ ⑨execute at @e[name="とげc"] run tp @e[name="とげc"] ~ ~-1 ~ |
【とげ装置】①-⑨
「count」のとげの数値に合わせ、「とげabc」を移動。