UEFN / Verse

【UEFN】Lock Device (ロックの仕掛け) の使い方|Verse連携による条件付き解錠の実装

UEクリエイターズ【運営】

こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。この記事では、Lock Device(ロックの仕掛け)を使ったドアのロック制御とVerse連携について具体的に説明していきます。

動画でも解説しているので参考にしてみてください。

概要

【UEFN】Lock Device (ロックの仕掛け) の使い方|Verse連携による条件付き解錠の実装

今回実装するのは、Conditional Button(条件付きボタンの仕掛け)で特定のアイテム(鍵など)を消費し、Lock Device(ロックの仕掛け)で施錠されたドアを開けるというゲームロジックです。

脱出ゲームやホラーマップ、RPGなどで頻出する「最初はロックされており、キーアイテムを入手することで通行可能になるドア」を、Verseを使って効率的に管理・実装する方法を解説します。

検証環境:Unreal Editor 5.8(2025年12月時点)

Lock Device の基本設定

【UEFN】Lock Device (ロックの仕掛け) の使い方|Verse連携による条件付き解錠の実装

まずはビューポート上での物理的なセットアップと、デバイスのプロパティ設定を行います。

1. ドアとロックの配置

【UEFN】Lock Device (ロックの仕掛け) の使い方|Verse連携による条件付き解錠の実装

コンテンツブラウザからLock Device(ロックの仕掛け)と、ドア付きのオブジェクト(例:Agency Door Frameなど)を配置します。

ここでのポイントは、Lock Deviceをドアのオブジェクトに物理的に接触させる(アタッチする)ことです。

  • 未接続状態: デバイスのライトが「赤色」。
  • 接続成功: ドアに近づけてライトが「青色」に変われば、自動的に制御対象として認識されています。

一般的には、ドア枠の上部中央などに配置すると自然です。

2. Lock Device のプロパティ設定

今回は「最初は鍵がかかっていて開かない」状態を作るため、Lock Deviceの詳細パネルで以下の設定を確認してください。

  • Starts Locked(ゲーム開始時にロック): Locked
  • Initial Door Position(初期のドアの位置): Closed

3. Conditional Button の準備

鍵となるアイテムを判定するために、Conditional Button(条件付きボタンの仕掛け)を配置します。

  • Key Items(キーアイテム): 必要なアイテム(今回は「Key」など)をコンテンツブラウザからドラッグ&ドロップで登録します。
  • Item Spawner: テスト用に、同じキーアイテムを登録したItem Spawner(アイテムスポナーの仕掛け)も配置しておきましょう。

Verseによる制御・実装

配置したデバイスをVerseで制御し、インタラクションの判定とドアの解錠・開放を自動化します。

Verseデバイスの作成

Verse Explorerから新しいVerseファイルを作成します。今回はクラス名を door_lock_manager としました。

ロジックの解説

実装する主な機能は以下の通りです。

  1. イベントの購読: KeyButton.ActivatedEvent を監視し、プレイヤーが条件(鍵の使用)をクリアしたタイミングを検知します。
  2. Unlock(解錠): lock_deviceUnlock 関数を呼び出し、施錠状態を解除します。
  3. Open(開放): Open 関数も同時に呼び出すことで、物理的にドアを開き、プレイヤーがすぐに通れるようにします。

重要なポイント(Agentの受け渡し)

UnlockOpen 関数を実行する際、引数として Agent(イベントを起動したプレイヤー情報)を渡す必要があります。これにより、「誰がそのアクションを起こしたか」という情報をデバイス間で引き継ぐことができます。

以下が実装用のフルコードです。

コード スニペット

# ----------------------------------------------
# Documentation: https://uecreators.com/lock-device-verse
# ----------------------------------------------

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

# 条件付きボタンを使ってドアのロックを解除するデバイス
door_lock_manager := class(creative_device):

    # 制御対象の「lock_device」(ドアにアタッチされているもの)
    @editable
    MyLock : lock_device = lock_device{}

    # 鍵アイテムを要求する「conditional_button」
    # エディタ側で、必要なアイテム(鍵)を設定しておきます
    @editable
    KeyButton : conditional_button_device = conditional_button_device{}

    # ゲーム開始時の処理
    OnBegin<override>()<suspends>:void=
        # ボタンの「起動(条件クリア)」イベントを登録
        # プレイヤーが正しいアイテムを持ってconditional_buttonを押すと作動します
        KeyButton.ActivatedEvent.Subscribe(OnKeyUsed)

    # 鍵(アイテム)を使ってボタンが押された時に実行される関数
    # 引数(Agent)には、ボタンを押したプレイヤーの情報が入ってきます
    OnKeyUsed(Agent:agent):void=
        Print("鍵を確認。ロックを解除します。")

        # 1. 鍵を開ける(Unlock)
        # 引数(Agent)を渡すことで、「誰が開けたか」をlock_deviceに伝えます
        MyLock.Unlock(Agent)

        # 2. ドアを開放する(Open)
        # 親切設計。物理的にドアを開き、プレイヤーを通れるようにします
        MyLock.Open(Agent)

エディタでの紐付け

コードをビルド(Compile Verseを押す)した後、作成した door_lock_manager デバイスをレベルに配置します。詳細パネルで以下の紐付けを行ってください 。

  • MyLock: 配置済みの Lock Device を選択。
  • KeyButton: 配置済みの Conditional Button を選択。

まとめ

今回はLock DeviceとConditional ButtonをVerseで連携させ、アイテムによるドア解錠システムを作成しました。

この door_lock_manager デバイスは汎用性が高く、レベル内に複数配置して、それぞれ別のドアとボタンを紐付けるだけで、同様のギミックを量産することが可能です。脱出ゲームやアドベンチャーゲームの制作において非常に効率的な手法ですので、ぜひ活用してみてください。

関連資料

動画版の視聴はこちら:https://youtu.be/CHTkUy5rPDg

RECOMMEND
【UEFN】条件付きボタンの仕掛けの使い方|ゴールドやカードキーを条件にしよう!
【UEFN】条件付きボタンの仕掛けの使い方|ゴールドやカードキーを条件にしよう!
参考資料

Lock Devices|Fortnite Documentation

lock_device class|Verse API Reference

conditional_button_device class|Verse API Reference

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


ABOUT ME
UECREATORS
UECREATORS
メタバース制作スタジオ
UEFN/Verse言語に特化した、Fortnite専門メタバース制作スタジオ「UECREATORS」の公式サイトです。当サイトでは、UEFNを用いたゲーム制作技術、Verseプログラミングの実装方法、3D空間設計のノウハウを発信しています。
【法人様・事業者様へ】UEFNを活用したメタバース空間の受託制作・開発支援を行っております。制作のご相談・お見積もりは、お問い合わせフォームより承っております。
Recommend
こちらの記事もどうぞ
記事URLをコピーしました