VATによる群衆表現⑥:HoudiniEngineを使った群衆Actorの配置
HoudiniEngineで群衆Actorの組み合わせパラメータを変更する工程の検証

環境
HoudiniIndie20.5.522
HoudiniEngine20.5.522
HoudiniLabs Plugin2.0
前回の記事
VATによる群衆表現①:ソフトボディVATでキャラクターを動かす
https://www.procedural.jp/articles/4pxh95hix
VATによる群衆表現②:LODを含むVATの作成
https://www.procedural.jp/articles/nfy3yj8h0
VATによる群衆表現③:頂点カラーによるキャラクターバリエーションの切り替え
https://www.procedural.jp/articles/imb0tw2j-w
VATによる群衆表現④:モーション制御
https://www.procedural.jp/articles/kkil4aswto
VATによる群衆表現⑤:unlit等、その他の調整
https://www.procedural.jp/articles/44z7g7evyx0
実行結果
群衆をActorとして制御できるようにしたので、HoudiniEngineのパラメータ調整を利用して組み合わせをランダム化した群衆


群衆の変更をActorとして制作した場合に利用可能な追加のメリット。
HoudiniEngineで配置、調整ができるのでHoudiniを含むワークフローと非常に親和性が高い
HoudiniEngineからActorの配置
Houdiniでの設定
UnrealEngine上で作成したいBluePrint上で右クリックし、コピーする。

コピーして取得できた値をpointアトリビュートのs@unreal_instanceとして設定する。
ここでは以下のようなWrangleになっており、””に囲まれている部分がコピーして取得できた文字列。
s@unreal_instance = "/Script/Engine.Blueprint'/Game/vat/vat002/VATCharacter002.VATCharacter002'";

これを出力につないだhdaを作成し、保存する
UnrealEngineで実行
UnrealEngine上でhdaをシーンにドロップするとpointで位置を設定したBluePrintが配置される。

配置しただけだとHoudiniAssetActorに紐づいた状態になっているのでシーンに生成を確定させたい場合、Bakeボタンを押す。


Actorの調整
HoudiniEngineからBluePrintActorを作成する際に設定したいパラメータを「unreal_uproperty_***」の形式でアトリビュートを持たせることで配置時に値を設定して配置することができる。
これを利用してアクターのもつ設定値を変更していく
UnrealEngineでの調整
BluePrintからスタティックメッシュコンポーネントの Custom Primitive Data を制御できるようにBluePritntで変数を設定し、SetCurrentPrimitiveDataFloatからindexでVAT切り替えの値に紐づけを行う(画像ではテスト用のprama00~param04を4つ目までの値に接続している)

HDAの調整
ブループリントの設定からカスタムプリミティブデータを調整できるようにしたらHoudiniに戻り、「unreal_uproperty_***(プロパティ名)」の形式で指定したい値を設定する。

ここでは
s@unreal_instance = "/Script/Engine.Blueprint'/Game/vat/vat002/VATCharacter002.VATCharacter002'";
i@unreal_uproperty_param00=0;
i@unreal_uproperty_param01=1;
i@unreal_uproperty_param02=0;
i@unreal_uproperty_param03=1;
を入力している
設定対象のプロパティの名前は詳細パネル上の右クリックから参照できる

UnrealEngineで配置
このアトリビュートを設定したpointを出力するhdaを配置すると生成されるBluePrintActorは指定した値が設定された状態で作成される

ポイントごとに個別にアトリビュート設定すると

ポイントごとに設定したパラメータがupropertyに反映されてインスタンスが作成される

最終的なブループリントとhda側の設定
各切り替え用の Custom Primitive Data をBluePrintのパラメータとして外に出し

hdaからの出力でそれらの値を調整できるように更新した。

これでHoudiniEngineからUnrealに入力したpointで配置位置とVATモデルのパーツ表示切替が可能になる

群衆をActorで作成した場合の利点としてHoiudiniEngineから配置時にどの表示の組み合わせのVATを配置するかも指定できます。
建物に置いたりするときにとても便利そう。

fish_ball
プロシージャル魚類