UEFN / Verse

【UEFN】Popup Dialog Device (ポップアップダイアログの仕掛け) の使い方|Verseで選択肢による分岐を実装する手順

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

こんにちは、UEクリエイターズです。今回もUEFN(Unreal Editor for Fortnite)の使い方について解説していきます。

この記事では、Popup Dialog Device(ポップアップダイアログの仕掛け)の使い方とVerseによる制御方法について具体的に説明していきます。

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


概要

【UEFN】Popup Dialog Device (ポップアップダイアログの仕掛け) の使い方|Verseで選択肢による分岐を実装する手順

Popup Dialog Device(ポップアップダイアログの仕掛け)を使用すると、プレイヤーの画面(HUD)に選択肢付きのダイアログを表示させることができます。

【UEFN】Popup Dialog Device (ポップアップダイアログの仕掛け) の使い方|Verseで選択肢による分岐を実装する手順

単にテキストを表示するだけでなく、プレイヤーがどのボタンを選択したかという情報をVerseで取得できるため、クエストの受注確認、ショップの購入確認、ストーリーの分岐といった高度なゲームロジックの実装に欠かせない仕掛けです。

今回は、ボタンデバイスの起動をきっかけにダイアログを表示し、選択結果に応じてログを出力するまでの流れを解説します。

実演環境:Unreal Editor 5.8(2026年1月時点)


デバイスの配置と基本設定

実装には、きっかけとなる Button Device(ボタンの仕掛け)と、表示用の Popup Dialog Device(ポップアップダイアログの仕掛け)の2点が必要です。

Button Device(ボタンの仕掛け)の設定

  • Interaction Radius(インタラクション半径): 必要に応じて調整(例:0.5)し、反応範囲を最適化します。
RECOMMEND
【UEFN】ボタンの仕掛けの使い方|非表示にしてオブジェクトと連携させる応用手順も紹介
【UEFN】ボタンの仕掛けの使い方|非表示にしてオブジェクトと連携させる応用手順も紹介

Popup Dialog Device(ポップアップダイアログの仕掛け)の設定

【UEFN】Popup Dialog Device (ポップアップダイアログの仕掛け) の使い方|Verseで選択肢による分岐を実装する手順

詳細パネルのオプションを以下のように設定します。

プロパティ名設定内容説明
Title(タイトル)任意のテキストダイアログの最上部に大きく表示される見出し。
Response Type(レスポンスタイプ)2 Buttons表示するボタンの数(最大10個程度まで拡張可能)。
Button 1 Text(ボタン1テキスト)OKインデックス番号 0 に対応するボタン名。
Button 2 Text(ボタン2テキスト)Cancelインデックス番号 1 に対応するボタン名。

Verseによる制御・実装

Verseを使用して、ボタンのインタラクト・イベントからダイアログの表示、そして選択結果の判定までを制御します。

実装コード

# ----------------------------------------------
# Documentation: https://uecreators.com/popup-dialog-verse
# ----------------------------------------------

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

# プレイヤーに選択肢(OK/Cancel)を提示するデバイス
popup_dialog_manager := class(creative_device):

    # 1. ポップアップダイアログ
    # エディタで「ボタン1:OK」「ボタン2:Cancel」と設定しておきます
    @editable
    QuestDialog : popup_dialog_device = popup_dialog_device{}

    # 2. きっかけとなるボタン
    @editable
    TalkButton : button_device = button_device{}

    # ゲーム開始時の処理
    OnBegin<override>()<suspends>:void=
        # 会話ボタンが押されたら、ダイアログを表示
        TalkButton.InteractedWithEvent.Subscribe(ShowDialog)

        # ダイアログのボタンが押された(返事があった)時のイベント登録
        QuestDialog.RespondingButtonEvent.Subscribe(OnDialogResponded)

    # ダイアログを表示する
    ShowDialog(Agent:agent):void=
        # 特定のプレイヤーにだけ表示する
        QuestDialog.Show(Agent)

    # プレイヤーが「OK」か「Cancel」を選んだ時の処理
    # 引数は Tuple(誰が, 何番のボタンか) で送られてきます
    OnDialogResponded(Result : tuple(agent, int)):void=
        Agent := Result(0) # 誰が
        ButtonIndex := Result(1) # 何番のボタンを押したか (0, 1, 2...)

        # エディタのボタン設定順序によって番号が決まります
        # 今回は「ボタン1(Index 0)」を「OK」と想定します
        if (ButtonIndex = 0):
            Print("クエストを受注しました!")
            # ここにアイテムをあげる処理などを追加できます
        else:
            Print("クエストを断りました。")

コードのポイント解説

  1. 特定のプレイヤーへの表示: Show(Agent) メソッドにエージェント情報を渡すことで、マルチプレイ環境においてボタンを押したプレイヤーの画面にのみダイアログを表示させることができます。
  2. RespondingButtonEventとタプル: ダイアログの応答イベントは tuple(agent, int) 形式でデータを返します。
    • Index 0: 応答したプレイヤー(agent)。
    • Index 1: 押されたボタンのインデックス(int)。仕掛けの設定順に 0, 1, 2... と割り振られます。
  3. if/elseによる分岐: ButtonIndex を判定することで、プレイヤーの意思に基づいた異なるゲームロジック(アイテム付与、テレポート、ログ出力など)を実行可能です。

まとめ

Popup Dialog Deviceは、プレイヤーに「選択」という能動的なアクションを促す強力なツールです。今回紹介したVerseによる制御をマスターすれば、より没入感の高いシミュレーションや謎解きゲームを構築できます。

まずは2択のシンプルな構成から始め、慣れてきたら 3 Buttons 以上の多段分岐にも挑戦してみてください。

作成したVerseデバイスをビューポートに配置し、詳細パネルから各デバイスを紐付ける(@editableの接続)のを忘れないようにしましょう。

関連資料

動画版はこちら:https://youtu.be/BTpoe7yLadQ

参考資料

popup_dialog_device class|Verse API Reference

RECOMMEND
【UEFN】ボタンの仕掛けの使い方|非表示にしてオブジェクトと連携させる応用手順も紹介
【UEFN】ボタンの仕掛けの使い方|非表示にしてオブジェクトと連携させる応用手順も紹介
RECOMMEND
【UEFN】HUD Message Device (HUDメッセージの仕掛け) の使い方|Verse制御で特定のプレイヤーに表示する実装手順
【UEFN】HUD Message Device (HUDメッセージの仕掛け) の使い方|Verse制御で特定のプレイヤーに表示する実装手順

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


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