MC CommanderMinecraft非公式コマンド支援

脱出ゲームの作り方

脱出ゲームは、部屋のなぞを解いて外に出るミニゲームです。アドベンチャーモードで壊せないようにして、鍵やパズルをコマンドで作れば、友達に遊んでもらえる本格的なステージになります。

ミニゲームコマンドブロックJava版

executeコマンドを作る

更新日:

1. 部屋を壊されないようにする

/gamemode adventure @a
/gamerule mob_griefing false

アドベンチャーモードでは、ブロックを壊したり置いたりできません。部屋の壁をこわして外に出る、というズルを防げます。1.21.10以前は mobGriefing と書きます(gamemodeコマンドの使い方)。

2. 鍵で開くドア

/give @p minecraft:tripwire_hook[custom_name="部屋の鍵",custom_data={key:1b}]

鍵のアイテムを、宝箱の中などに隠しておきます。鍵を持っている人がドアの前に来たら開くしくみは、鍵を持っている人だけ通れるドア でくわしく作り方を説明しています。

3. 決まったブロックだけ置けるパズル

/give @p minecraft:redstone_block[can_place_on={blocks:"minecraft:gold_block"}]

アドベンチャーモードでも、このレッドストーンブロックは金ブロックの上にだけ置けます。正しい場所に置くと回路が動いてドアが開く、といったパズルが作れます(壊せる・置けるブロックを決めるコマンド)。

4. クリックするとヒントが出るチャット

/tellraw @a {"text":"[ヒントを見る]","color":"aqua","click_event":{"action":"run_command","command":"/trigger hint"}}

チャットの文字をクリックすると /trigger が動き、ヒントを出すしくみに使えます。trigger の作り方は triggerコマンドの使い方 にまとめています。1.21.4以前は clickEvent と value で書きます。

5. 制限時間のタイマー

/bossbar add escape "残り時間"
/bossbar set escape max 6000
/bossbar set escape value 6000
/bossbar set escape players @a

画面の上に5分(6000ティック)のゲージを出します。時間を減らすしくみは bossbarコマンドの使い方 のタイマーの例と同じです。

6. ゴールしたときの判定

execute as @a[x=20,y=64,z=0,dx=2,dy=3,dz=2,tag=!escaped] run tellraw @a [{"selector":"@s"},{"text":" が脱出しました!","color":"gold"}]
tag @a[x=20,y=64,z=0,dx=2,dy=3,dz=2] add escaped

出口の範囲に入った人を全員に知らせ、タグを付けて2回出ないようにします。範囲の決め方は 決まった範囲に入ったら発動するコマンド を見てください。

7. ヒントの中身を出す

/scoreboard objectives add hint trigger
/scoreboard players enable @a hint
# 反復コマンドブロック
execute as @a[scores={hint=1..}] run tellraw @s {"text":"ヒント:赤いじゅうたんの下を調べよう","color":"yellow"}
# チェーン1
scoreboard players set @a[scores={hint=1..}] hint 0
# チェーン2
scoreboard players enable @a hint

4のヒントをクリックすると hint が1になり、押した人にだけヒントが表示されます。表示したらスコアを0に戻し、もう一度押せるように enable し直します。部屋ごとにヒントを変えたいときは、@a[scores={hint=1..},x=…] のように範囲を足します。triggerのしくみは triggerコマンドの使い方 にまとめています。

8. クリアタイムを計る(Java版1.21.11以降)

/stopwatch create minecraft:escape
execute store result score @s escape_time run stopwatch query minecraft:escape 1

ゲーム開始時にストップウォッチを作り、ゴールしたとき(6の判定)に経過した秒数をスコアに入れます。先に /scoreboard objectives add escape_time dummy を実行しておきます。くわしくは stopwatchコマンドで時間を計る を見てください。

9. 次のチームのためにリセットする

/tag @a remove escaped
/clear @a minecraft:tripwire_hook
/bossbar set escape value 6000
/tp @a 0 64 0

ゴールのタグと鍵を消し、タイマーを満タンに戻してスタート地点に集めます。開けたドアやはめたブロックも元に戻すときは、最初の部屋を /clone でコピーしておき、ここで貼り直すと確実です。

うまくいかないときの確認ポイント

よくある質問

脱出ゲームの配布ワールドを作るときの注意は?

遊ぶ人がチートを使えないように、配布前にコマンドブロックの位置や設定を確認します。スポーン地点は /setworldspawn でスタート地点に合わせます。

何人で遊べますか?

人数に決まりはありません。タグやスコアは1人ずつ記録されるので、何人でも同じしくみで遊べます。

統合版でも作れますか?

アドベンチャーモードや鍵のしくみは統合版でも作れますが、この記事のアイテムのデータやtriggerの書き方はJava版のものです。

関連ページ

罠を作る落とし穴・矢・雷・毒の床。鍵を持っている人だけ通れるドア

脱出ゲームの基本のしかけです。

壊せる・置けるブロックを決めるコマンド

パズルの作り方です。

ミニゲームの作り方

開始から終了までの流れです。

triggerコマンドの使い方

ヒントのボタンに使います。

コマンド辞典

基本構文とコマンド別の使い方を確認できます。