Unreal Engine の感圧板:AI で作る感圧板とゲートのパズル
Unreal Engine でゲートを開く感圧板の作り方。石の板、スライド式のゲート、LinkedGate 変数を AI への 1 回の依頼で作り、最初のテストの失敗も修正します。
Unreal Engine の感圧板パズルは、3 つの小さな要素でできています。プレイヤーが乗ったことを検知する板、開閉できるゲート、そして板がどのゲートに知らせるかを決めるリンクです。いちばん簡単な作り方は、板、ゲート、リンクをまとめて、1 回の依頼で AI に作らせることです。
このチュートリアルでは、Ultimate Engine CoPilot が、プレイヤーが乗るとゲートが開き、降りるとまた閉まる石の板を作ります。プロンプト、失敗した最初のテスト、AI がそれをどう修正したか、そして仕組みのやさしい解説をお届けします。
完成したパズルの動き
雪の上で、石の板が赤く光っています。乗ると、板は少し沈んで緑色に光ります。離れた場所で、石のゲートが上へスライドして開きます。板から降りると、板はまた赤に戻り、2 秒後にゲートが下へスライドして閉まります。

押されて緑色に光る板。
プロンプト
これをコピーして、遅延時間を変えたり 2 枚目の板を加えたりしながら、AI が何を作るか試してみてください。
Make a pressure plate and gate puzzle. Create BP_PressurePlate in /Game/Series/EP21_PressurePlate, a square stone slab 200 by 200 units that sinks 10 units when the player stands on it and glows green while it is pressed, and red while it is not. Create BP_Gate, a stone gate made from two pillars and a thick bar between them, that slides up 400 units in 1.5 seconds when the plate is pressed, and slides back down 2 seconds after the player steps off the plate. The plate has a variable called LinkedGate that points to the gate. Place the plate on the snow near the player start and the gate about 1000 units away, and link them. Then play test it: stand on the plate and check the gate opens, step off and check the gate closes after the delay, and fix anything that does not work.
注目してほしいのは、LinkedGate という名前の変数です。これは、2 つの部品でできたパズルすべてに共通する要の仕組みで、一方のアクターがもう一方への参照を持ちます。依頼文でそう伝えれば AI もその形で作るので、板とゲートを 10 組置いても、エディタ上でそれぞれリンクさせるだけで済みます。
AI はどう作るのか
AI はプロジェクトを読み込み、必要なツールを見つけます。するとアセットが現れます。色を変えられる光る板のマテリアルと、2 つの Blueprint です。ゲートは以前のドアで使った石のマテリアルを再利用します。プロジェクト全体で見た目が揃うので、よい習慣です。
板はプレイヤーを検知します。ゲートには Open と Close があり、Close はまず 2 秒待ちます。この待ち時間のあいだにもう一度板に乗ると、閉じる処理はキャンセルされます。誰も頼んでいない動作ですが、パズルの手触りを良くする細やかな工夫です。

板のグラフ。プレイヤーが乗ると、板が沈み、緑色になり、ゲートに開くよう伝えます。プレイヤーが降りると、板が上がり、赤色に戻り、ゲートに閉じ始めるよう伝えます。
最初のテストは失敗し、AI が修正する
最初の実行は合格しませんでした。ゲートは開きましたが、板に問題がありました。AI が板を作ったとき、トリガーボックスが Blueprint のルートになってしまい、板とトリガーの高さがずれて、プレイヤーが板から押し出されたのです。
AI は結果を読み取って原因を突き止め、板を再び地面に置く形で階層を修正しました。そして、もう一度テストを実行しました。テスト、確認、修正、再テスト。これがループです。
2 回目の実行では、10 項目のチェックがすべて通りました。
- 板はプレイヤーが来る前は押されておらず、乗ると 10 ユニット沈みます。
- その少し後にはゲートが途中まで上がっているので、一瞬で切り替わらずにスライドしていると分かり、最終的に 400 ユニットの高さまで上がります。
- プレイヤーが降りると板が上がり、ゲートは約 1.5 秒開いたままになってから閉まります。
レポート

レポートには、確認した項目だけでなく、同じくらい役に立つ、AI が確認しなかった項目も載っています。
AI は、確認しなかったことも書いています。光り方のスクリーンショットは撮っていないため、緑と赤は目視で確認されていません。板を作動させるのはプレイヤーだけで、敵やオブジェクトでは作動しません。ゲートのバーは通路をふさぐよう中間の高さにあり、柱はバーと一緒に上がります。また、レベルがまだ未保存だったため、名前を付けて保存するまでは、エディタを閉じると配置したアクターが失われます。
感圧板のしくみをやさしく解説
板にはトリガーボックスがあります。プレイヤーがそこに入ると、板は 3 つのことを行います。自分を下げる、光を緑に変える、リンク先のゲートの Open を呼ぶ、の 3 つです。ゲートにはイベントが 2 つあります。Open は Timeline を使ってゲートを上へスライドさせます。Close は 2 秒待ってから、ゲートを下へスライドさせて元に戻します。待っているあいだにプレイヤーが戻ってくると、待機はキャンセルされます。
距離、速度、遅延はすべて変数なので、数値を変えるだけで、素早いゲートにも、ゆっくり動く重いゲートにもできます。
拡張のアイデア
- 2 枚の板を同時に押さないと開かないゲート。
- 一度開いたら、ずっと開いたままになるゲート。
- 板を押せる重い木箱。プレイヤーは木箱を押して板の上に載せる必要があります。
感圧板プロンプトの 4 つのコツ
- 2 つをつなぐ変数に名前を付ける。
- 押したときと離れたときに、板とゲートがそれぞれ何をするかを書く。
- 閉まるまでの遅延時間を指定する。
- 両方向のテストを AI に依頼する。
CoPilot にこのようなプロンプトを書かせる方法は、Unreal Engine 向け AI プロンプトの書き方 をご覧ください。
よくある質問
Unreal Engine 5 で感圧板からドアを開けるにはどうすればよいですか?
板にトリガーボックスと、ゲートを参照する変数を持たせます。プレイヤーがトリガーに重なると、板がゲートの Open を呼びます。プレイヤーが離れると、Close を呼びます。
板とゲートをリンクするにはどうすればよいですか?
板に、ゲートを指す変数を追加します。この例では LinkedGate という名前です。そのうえで、エディタ上でインスタンスごとに設定すれば、1 つの Blueprint で多くのパズルを動かせます。
最初のテストはなぜ失敗したのですか?
トリガーボックスが Blueprint のルートになったため、板とトリガーの高さがずれて、プレイヤーが押し出されました。AI はテスト結果からその原因を突き止め、コンポーネントの階層を修正しました。
プロジェクトで試してみましょう
Ultimate Engine CoPilot で何が作れるかは 製品ページ でご覧いただけます。入手は Fab からどうぞ。
このシリーズの他の作例: Unreal Engine ポータルテレポーター、Unreal Engine 目標マーカー、Unreal Engine リングレース、Unreal Engine レバーと橋。
関連記事: Unreal Engine 2 つの鍵のドア。