こんにちは、株式会社Leon Gameworksの遠藤です。先日 リリースされたUE5.8では、Editor Utilityの機能がさらに拡充されました。今回は、その中から実務で活用しやすい新機能をピックアップして紹介します。

記事の目次

    0:動作環境

    本記事はUE5.8.0を基に執筆しており、画面のスクリーンショットはエディタの言語設定を「英語」として撮影しています。

    なお、本記事で作成するプロジェクト一式は、以下よりダウンロード可能です。

    今回のプロジェクトデータ

    1:Editor Utility Dialog Widget クラスの追加

    UE5.8では、Editor Utility Widgetを継承したEditor Utility Dialog Widgetクラスが追加されました。このクラスを利用することで、独立したダイアログ形式のUIを簡単に作成できます。

    ▲ Editor Utility Dialog Widget

    まずは、Editor Utility Dialog Widgetを継承したブループリントを作成します。

    アセット作成時は、Blueprint ClassからEditor Utility Dialog Widgetを親クラスとして選択します。Editor Utility Widgetアセットとは作成方法が異なるため、間違えないよう注意してください。
     

    ▲ Editor Utility Dialog Widget の継承

    通常の Editor Utility Widget と同じように、UIを構築します。

    ▲ UIの構築

    作成したダイアログは、他のEditor UtilityからShow Modal Editor Utility Dialog]または[Show Editor Utility Dialog]を呼び出して表示します。各ノードでは、ダイアログのタイトルやサイズなどを引数で指定できます。

    ▲ ダイアログ表示関数

    Editor Utility Dialog Widgetでは、関数をオーバーライドすることで、ダイアログ表示時やボタン押下時のイベントをフックできます。

    ▲ Editor Utility Dialog Widget の関数

    また、[Close Dialog]を呼び出すことで、任意のタイミングでダイアログを閉じることができます。

    ▲ Clase Dialog

    2:ブループリントのグラフを取得できるノードの追加

    UE5.8では、List Graphsノードが追加されました。これにより、ブループリントに含まれるグラフの一覧を取得できるようになりました。

    ▲ List Graphs

    取得したグラフに対しては、削除やリネームに加え、ノードの追加などの操作も行えます。

    ▲ グラフを操作

    3:変数を操作できるノードの追加

    UE5.8では、メンバ変数やローカル変数を取得・設定するためのノードが追加されました。

    ▲ 変数操作ノード

    また、変数のレプリケーション値を取得、設定できるノードも追加されました。

    ▲ 変数のレプリケーション操作ノード

    4:マテリアルのノード一覧を取得できるノードの追加

    UE5.8では、マテリアルおよびマテリアルファンクションに含まれるノードの一覧を取得できるノードが追加されました。

    ▲ マテリアルのノード一覧を取得するノード

    5:ワールド座標とスクリーン座標の相互変換ノードの追加

    UE5.8では、ワールド座標とスクリーン座標を相互に変換するノードが追加されました。これにより、3D空間上の位置をスクリーン座標へ変換してUIと連携したり、スクリーン座標からワールド座標を算出してエディタツールの操作に利用したりできるようになりました。

    ▲ 座標の相互変換ノードが追加

    6:ビューポートカメラを扱うノードの追加

    UE5.8では、Level Editor Subsystemにビューポートカメラの情報を取得・操作するためのノードが追加されました。

    なお、UE5.7以前にもUnreal Editor Subsystemには同等の機能としてSetLevelViewportCameraInfo()GetLevelViewportCameraInfo()が用意されていましたが、UE5.8ではこれらの機能をブループリントからより利用しやすくなっています。

    ▲ ビューポートカメラを扱うノード

    7:Skeleton のプレビューメッシュを扱うノードの追加

    UE5.8では、Skeletonに設定されたプレビューメッシュを取得・設定するためのノードが追加されました。これにより、スケルトンごとのプレビューメッシュをEditor Utilityから操作できるようになり、アセット管理や自動化ツールの作成に活用できます。

    ▲ Skeleton のプレビューメッシュを扱うノード

    8:モーフターゲットとスキンウェイトプロファイルを削除できるノードの追加

    UE5.8では、モーフターゲットおよびスキンウェイトプロファイルを削除するためのノードが追加されました。削除内容をビューポート上の表示に反映する場合は、[In Rebuild Render Mesh]を有効にします。

    ▲ モーフターゲットとスキンウェイトプロファイルを削除できるノード

    9:まとめ

    今回は、UE5.8で追加されたEditor Utility関連の新機能の中から、実務で活用しやすいものを中心に紹介しました。ここで取り上げた以外にも追加機能はありますが、特に他のアセットを操作するためのノードが多数追加された印象です。また、Unreal Pythonにも同様の関数が追加されているため、ぜひ活用してみてください。

    本記事で作成したプロジェクト一式は、以下よりダウンロード可能です。

    今回のプロジェクトデータ

    株式会社Leon Gameworks

    ●公式サイト
    www.leon-game.co.jp

    ●X(Twitter)
    @Leon_Gameworks

    トンコツ(遠藤俊太)

    ●トンコツ開発ブログ
    shuntaendo.hatenablog.com

    ●X(Twitter)
    @tonkotsu3656

    TEXT_トンコツ(Leon Gameworks)
    EDIT_小村仁美 / Hitomi Komura(CGWORLD)、オムライス駆