MC CommanderMinecraft非公式コマンド支援

制作レシピ / 謎解き:レバーで障壁を開閉する

謎解き:レバーで障壁を開閉する

Java版でexecute if blockとunlessを使い、レバーの状態に合わせて通路を開閉する制作例。

対象:Minecraft Java Edition 1.21.1(このページの例)|掲載例は構文資料と照合した学習用サンプルです。Minecraft実機での動作保証・全バージョン検証を意味しません。

更新日:

レバーで石の障壁を開閉する

座標100 65 200に置いたレバーをONにすると、座標105 65 200の石が消えて通路になります。OFFにすると石が戻ります。一度だけ開ける仕組みではなく、レバーの状態を見て開閉し続ける例です。

この例は指定したブロックを上書きします。重要な建築を壊さないようテストワールドとコピーを使ってください。

2つのコマンドを配置する

/execute if block 100 65 200 minecraft:lever[powered=true] run setblock 105 65 200 minecraft:air
/execute unless block 100 65 200 minecraft:lever[powered=true] run setblock 105 65 200 minecraft:stone

それぞれ「リピート・無条件・常時実行」のコマンドブロックに設定します。コマンドブロックには先頭の/を含めずに入力しても構いません。レバーの位置、障壁の位置は自分のマップに合わせて変更します。

状態判定の意味

条件処理
レバーが存在し、ON障壁をairに置き換える
レバーがOFF、または条件と一致しない障壁をstoneにする

レバーを壊した場合も「ONではない」と判断されます。複数のスイッチを使った謎解きでは、全体条件が満たされたときだけ開くようexecute if blockを組み合わせます。

動作確認の手順

  1. 実際のレバーと対象の石ブロックを指定の位置に置く。
  2. レバーをONにして石が消えるか確認する。
  3. レバーをOFFにして石が戻るか確認する。
  4. 別ディメンションから実行していないか確認する。座標はコマンドの実行ディメンションを基準にします。
  5. 誤って他の座標を指定した場合は装置を停止し、ブロックを復旧する。

コマンドブロックを使わないfunction実装に移す際は、毎tick呼ぶ処理の数に注意してください。

この先の作り込み

レバーなどのブロック状態を判定する位置を決め、条件が真と偽の両方の動作を確認します。仕掛けを繰り返し操作したときに壊れないかも試してください。