【UE5】Editor Utility Widget (EUW) の作成方法

プログラマーの尾関です。

今回はゲーム開発中に役立つ Editor Utility Widget (EUW) の作り方を説明します。

  • 動作確認: UE5.6.1

Editor Utility Widget (EUW) とは

Unrealのエディタの機能を WidgetとBP で拡張できるもので、Unityで言うエディタ拡張のようなものです。

特徴

EUWには以下の特徴があります。

  1. PIE (プレイ中) でなくても動作する
  2. アセットの操作ができる (保存やReimportなど)
  3. 特殊なWidget (Detail View, Property View) が使える

例えばこのようなデバッグ機能を用意し、エディタ編集中やPIE実行中に呼び出すことが可能です。

Editor Utility Widget の作成手順

アセットの作成

アセットは「エディタユーティリティ > エディタユーティリティウィジェット」から作成できます。

ルートウィジェットはひとまず “スタックボックス” としておきます。(“グリッドパネル” だと自動で Widget が並びます)

アセット名はひとまず “EUW_Test” としておきます。

EUWの編集

“EUW_Test” を開いて、 “Editor Utility Button” を配置して、その下にテキスト(ブロック)を配置します。

テキストブロックには「Hello」とテキストを入力しました。

そして Editor Utility Button を選んで詳細から「Is Variable」にチェックを入れます。

するとクリックイベント (On Click)が選べるようになるので、「+」ボタンをクリック。

クリックイベントに "Print String" を接続します。

コンパイルを実行しておきます。

EUWの実行

EUWを実行するには右クリックして「エディタユーティリティウィジェットを実行」を選択。

するとタブに「EUW_Test」が追加され、さきほど追加したボタンが表示されます。

"Hello" ボタンをクリックすると、出力ログに "Hello" と出力されました。

EUWのタブですが、エディタの左側にドラッグ&ドロップしておくと、使いやすくて便利かもしれません。

EUWに何を配置するのが良いか

EUWに何を配置するのかはプロジェクト次第ですが、個人的にはまず Widget Switcherを使ってタブを作ると良いかなと思います。

他には コンソール変数を変更するON/OFFボタンやレベル遷移を行うボタンも以外と便利です。

EUWからレベル遷移するには、良い方法が見つからなかったので、"Execute Python Script" ノードを使って、Unreal Python から遷移を行うというやや強引な方法で対応しました。

import unreal
unreal.EditorLevelLibrary.load_level("/Game/VRTemplate/Maps/VRTemplateMap")

上記は、"/Game/VRTemplate/Maps/VRTemplateMap" のレベルに遷移する方法です。

Tips: Editor Utility WidgetをPIE実行時でも利用可能にする方法

ちょっとしたTipsとして、Editor Utility Widgetは初期設定では、PIE実行中の場合、ボタンを押したりできなくなります。

PIE実行中でも EUWを使える要するには、対象の EUWを開いて「グラフ > クラス設定 > 詳細」から「Is Enabled in PIE」をONにします。

おしまい

以上、簡単な説明でしたが、Editor Utility Widgetの作成方法でした。

この情報がデバッグ機能の作成に役立てれば幸いです。

\ 最新情報をチェック /