Visualdataprepを使ってActorComponentやSceneComponentをDatasmith Actorに付与する
この記事はUnreal Engine (UE) Advent Calendar 2024シリーズ 2の17日目参加記事です。
概要
ノンゲーム分野でのUnrealEngineへのデータインポート形式として知られているdatasmith。
このDatasmithデータのインポート時にカスタム処理をかけられるVisual Dataprepという機能をご存知でしょうか。
本記事ではVisual Dataprepを用いてActor componentやScene Componentをインポート処理で自動付与する方法をご紹介します。
Visual Dataprepの詳しい内容に関しては下記資料類をご参照ください。
環境準備
VisualDataprepが使用できるバージョンのUnreal Engine
下記プラグインの有効化
- 取り込む形式に対応したDatasmith Importer(筆者の場合、CINEMA4Dファイルを取り込むためDatasmith C4D Importer)
- Datasmith Content
- Dataprep Editor(※Dataprep Geometry Optionsは今回の処理には有効化不要)
Custom Dataprep Operation Blockの作成
All Classesから、Dataprep Operationを親クラスに選択してBPを作成します。
作成したBPを展開したら、DataprepEditorで探しやすいようにFunctionのOverrideから"GetDisplayOperationName"を選択し、表示名を入力しておきましょう。
EventGraphにもどり、下記のようにノードを構成します。
例ではActorComponentをインポート時に付与するので、変数はActorComponentのClassReferenceにします。変数は公開にしておきます。
DataprepEditorで作成したCustom Dataprep Operation BlockをVisual Dataprepで使用する
DataprepのBlock一覧に作成した”Custom Dataprep Operation Block"が出現していますので、レシピグラフに配置して使用します。
今回はbearというLabelのActorにのみ"ActorComponent"を付与するのでFilter Blockで対象を絞ります。
先ほど”Custom Dataprep Operation Block"のActor component変数を公開にしたので、UE内のActor componentを参照できます、今回は事前に作成しておいたMouseHover時にイベントを着火するActor Component"AC_HoverEvent"を付与してみます。
Dataprepのレシピグラフ処理を実行してレベルに配置します。(Execute→Commit)
指定したActorにActor Componentが付与されていることが確認できます。
※Execute実行後の時点でdataprepEditorでActor Componetが付与されていることがわかります。
結果
付与した"AC_HoverEvent"はランタイム中に付与されているActorにマウスカーソルがHoverするとマウスアイコンが変わる処理を仕込んでいます、動画の通りインポート時にActor Componentを付与する事ができました。
動画
同様にScene Componentも"Custom Dataprep Operation Block"の"Add New Subobject"にClass変数を入れればインポート時に付与できます。
お読み頂きありがとうございました!
Discussion