ブループリントを使用してエディタをスクリプト化する

エディタでブループリントを使用して、コンテンツ制作タスクを自動化する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

ブループリントが便利なのは、プロジェクトのランタイム ゲームプレイの作成だけではありません。Unreal Editor 内でプロジェクト コンテンツを操作するときにも、非常に効果的なツールです。エディタ内でブループリント グラフをオンデマンドで実行して、アセットを使用したり、レベル内にコンテンツを配置したり、エディタ UI でアクションをトリガーしたり、独自のカスタム UI パネルでエディタを拡張することもできます。

このページでは、ブループリントを使用して Unreal Editor をスクリプティングしたり、自動化したりする方法の基本を説明します。

Unreal Engine の過去のリリースでは、エディタ内で実行するように意図されたブループリント グラフのことを「 ブルーティリティ 」(ブループリント ユーティリティの略) と呼んでいました。まだこの用語が使われているのを目にされるかもしれませんが、現在では、 Editor Utility Widget および Editor Utility Blueprint という呼び方に統一されています。

エディタでブループリントを実行するオプション

Unreal Editor 内でブループリント グラフを実行すると決めた場合に、ブループリント コードをセットアップしてトリガーするうえで使用できる手法がいくつかあります。

Editor Utility Widget

Editor Utility Widget は、Unreal Editor がエディタ UI の他のツールで使用されているのと同じ種類のドッキング可能パネル内でレンダリングできる UMG ウィジェットです。このアプローチは、ブループリントを制御するためのリッチなUI が必要な場合に最適です。UMG の視覚的スタイリング オプションを、ブループリントのリッチ スクリプティング制御と組み合わせてすべて活用できます。これが最も柔軟性が高く、強力なオプションであり、始めるのも非常に簡単なので、ほとんどのエディタ スクリプティング作業にお勧めです。

Editor Utility Widget の作成方法と、Editor Utility Widget をエディタで開く方法の詳細については、「 Editor Utility Widget 」を参照してください。

Editor Utility Blueprint

Editor Utility Blueprint は、ランタイム時ではなく、Unreal Editor 内でのみ実行する必要があり、カスタム UI を必要としないロジックを意図した特殊なクラスです。

このクラスの組み込みのユース ケースの 1 つは、 スクリプト アクション をサポートすることです。レベル内でアクタを右クリックするか、またはコンテンツ ブラウザでアセットを右クリックすると、コンテキスト メニューからトリガーされるグラフが表示されます。

詳細については、「 スクリプト アクション 」を参照してください。

エディタで呼び出す

ブループリント クラスにカスタム イベントや関数を作成する場合、そのイベントや関数をエディタで呼び出し可能とマークすることができます。ブループリント クラスのインスタンスをレベルに配置して選択すると、 [Details (詳細)] パネルでカスタム イベントや関数をトリガーできます。このアプローチは、ブループリント グラフがランタイム時とエディタ内の両方で機能する必要がある場合に使用すると最適です。

詳細については、「 エディタでブループリントを呼び出す 」を参照してください。

スタートアップ オブジェクト

プロジェクト内で特定の Editor Utility Widget クラスと Editor Utility Blueprint クラスをスタートアップ オブジェクトとして識別できます。エディタでプロジェクトをロードするたびに、それらのスタートアップ オブジェクトそれぞれのインスタンスが自動的に作成され、事前定義された関数が呼び出されます。プロジェクトがロードされるときにブループリント クラスによって特定のアクションを必ず実行する必要がある場合や、エディタでプロジェクト コンテンツに取り組むときに発生するイベントにブループリント ロジックを確実にバインドする必要がある場合などには、これが最適のオプションです。

詳細については、「 エディタの起動時にブループリントを実行する 」を参照してください。

エディタ専用のブループリント ノードにアクセスする

アセット ファイルの変更や Unreal Editor UI の使用を含む操作の大半は、ゲームのランタイム時に機能しません。したがって、エディタ専用機能 (タイプが Editor に設定されたモジュールで定義された関数) にアクセスできるのは、エディタ専用のブループリント クラスからだけです。

たとえば、ランタイム時に使用することのできる親クラス (基底 アクタ クラスなど) から派生したブループリント クラスを使用する場合、ブループリント エディタの [Editor Scripting] カテゴリの下には少数の関数しか表示されません。しかし、Editor Utility Blueprint、Editor Utility Widget、またはエディタ専用親クラスから派生する通常のブループリント クラスを作成すると、利用可能な関数が多数表示されます。

Editor Scripting nodes for the Actor class

Editor Scripting nodes for the EditorUtilityActor class

Actor クラス

EditorUtilityActor クラス

Editor Scripting Utilities プラグインをインストール済みの場合、ここでスタティック メッシュや他のアセットを操作するために公開されている関数が見つかります。「 エディタのスクリプティングと自動化 」を参照してください。「 エディタのスクリプティングと自動化 」を参照してください。

Editor Utility サブシステム

スタートアップ時、Unreal Editor では特にエディタのスクリプティング機能の動作の管理に対応するサブシステムを初期化します。たとえば、このサブシステムでは スタートアップ オブジェクト のスポーンとクリーンアップなどを処理します。また、 Editor Utility Widget の新しいエディタ パネルの作成と破壊を処理します。

独自の C++ コードまたはブループリント コードで Editor Utility サブシステムを自分で使用することもできます。たとえば、Editor Utility サブシステムを取得して SpawnAndRegisterTab() メソッドを呼び出し、プログラムによって、プロジェクトの Editor Utility Widget クラスのインスタンスをホストするエディタ UI の新しいタブを開くことができます。

サブシステムの詳細と、C++、ブループリント、Python でサブシステムにアクセスして使用する方法の詳細については、「 プログラミング サブシステム 」を参照してください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる