目次
前準備
UE4とHoudiniはインストール済の前提で進めます。
Houdiniのインストール時にHoudini Engine for Unrealにチェックを入れておくと良いでしょう。
また、Houdini Engineの機能はHoudini Apprenticeでは使用できません。
HDA(Houdini Digital Assetの作成までは行えたと思いますが、UE4側で使用できないはずです。
実際に制作してみる
今回は説明のためにSphereをHDA化してUE4に持っていきます。
パラメーターを吐き出す流れさえ理解すれば、あとは自由に応用が効くと思いますので非常に簡単な例としました。
少し凝ったものを作成したい方は以下のSideFXのサイトにUE4向けのチュートリアル動画が参考になると思います。
動画ではHoudini FX 15.0.299を使用しており、バージョンがかなり古くなっていますが大きく困るポイントは少ないと思います。
バージョン違いでは色々と問題が発生するため慣れていない場合は極力同じバージョンか近いバージョンのものを使用する方がよいでしょう。
https://www.sidefx.com/ja/products/houdini-engine/plug-ins/unreal-plug-in/
Houdini 側の作業
大まかな流れ
1. geometry作成
2. sphere作成
3. subnet化
4. exportするパラメーターの設定
5. HDAとして保存
1. geometry作成
Houdiniのいつもの流れですね。
Network Viewでgeometryを作成します。
2. sphere作成
1.で作成したgeometryをダブルクリックか i キーで中に入ります。
中に入るとsphereを作成します。
sphereのPrimitive TypeをPolygonに変更しておきます。
3. subnet化
subnet化は複数のノードの塊を1つのパッケージにする機能ですが
HDAとして出力する際にも役立ちます。
sphereノードを選択してNetwork View右上の箱のアイコンからsubnet化できます。
ショートカットキーはShift + Cです。
以下のようにsubnetノードが作成されます。
4. exportするパラメーターの設定
subnetノードを選択してGearのアイコンのEdit Parameter InterfaceからexportするParameterを設定します。
Edit Parameter Interfaceのwindowが開いたら
From Nodesタブに切り替え、sphereのFrequency (freq)を右のExisting Parametersにドラッグアンドドロップします。
パラメーターを選択してして -> ボタン押下でも可能です。
パラメーターを反映できたことを確認したらAcceptボタンを押下して閉じます。
subnetの中に先程設定した Frequencyが追加されていれば成功です
5. HDAとして保存
subnetノードを選択して右クリック -> Create Digital Asset... からHDA化します。
Operator Nameにsphereと入力します。
するとOperatar Labelも自動で変更されます。
Save to Libraryには保存したいパスにsphere.hdalcとしてAccpetを押下します。
すると以下のようにEdit Operator Type Propertiesが開きます。
ここでは特に変更を行わなずSave to Libraryのpathが正しいことを確認したらAcceptを押下します。
以上でHoudini 側の作業は終了です。
HDAをUE4にimportする
UE4側では4.23.1で新規にBlankのTemplateでプロジェクトを作成しました。
既存のプロジェクトでも特に問題ありません。
先ずプロジェクトを起動したらHoudini Engineがインストールされていることを確認しましょう。
Edit -> Plugins のInstalled 以下にHoudini Engineが存在し、Enabledになっていることを確認します。
有効になっていれば、特に設定することはありません。
先ほど作成したsphereのHDAをContent BrowserにドラッグアンドドロップするかImportボタンを押下してImportします。
ImportしたHDAをLevel上に配置したら完了です。
DetailsからFrequencyを変更してみて反映されることを確認しましょう。
また、Houdini側で設定をしていない場合でもUE4側からMaterialを変更したりStatic MeshとしてBake(保存)することができます。
importしたHDAを選択してDetails内のHoudini Generated Meshes以下から可能です。
Bakeを押下すると現在の設定のMeshが別アセットとして保存されます。
Materialを変更すればもちろん見た目に反映されます。
それぞれパラメーターを変更してStatic MeshとしてBakeしたものです。
Bake後は通常のStaticMeshと同様ですので、UE4側の設定でLODを作成したりすることももちろん可能です。
Materialを変更した例
おまけ
importかexportの設定に失敗していたり、Houdini Apprenticeだと以下のようにロゴのみの表示になってしまいます。
追記 Unreal Materialの適用方法
Houdini 側でUE4のMaterialへの参照を持たせた状態でのHDAの作成が可能です。
HoudiniにはUnreal Materialというノードが用意されています。
Stringの説明文にあるように、UE4のプロジェクト内での相対パスを設定してやればよいようです。
UE4側で使用するためのMaterialを用意しておきましょう。
Content直下にM_TestHDAというBaseColorに赤を割り当てたMaterialを用意しました。
再びHoudiniの作業に戻ります。
UE4のパスのContentはGameと解釈されます。
そのため、Material'/Game/(Materialへのpath)/(MaterialName.MaterialName)'
といったパスを設定してやります。
今回の例ではContent直下のため、以下のようになります。
「Material'/Game/M_TestHDA.M_TestHDA'」
あとは先程同様にHDAとして保存し、UE4にImportします。
これで設定したMaterialが反映されていることが確認できました。
因みにEngineContent以下のMaterialを適用したい場合のパスは/Game/ を/Engine/ と置換してやることで使用可能です。
追記 作成したHDAの更新方法
Houdini 側の作業
Assets -> Edit Assets Properties... -> subnet Name
これでEdit Operator Type Propertiesが開かれます。
そこで、Apply またはAcceptを押下することでHDAが更新されます。
UE4側の作業
上記の更新を行った後にHDAを選択してDetails内からRebuild Assetを押下することで更新されます。
参考資料
https://www.sidefx.com/ja/products/houdini-engine/plug-ins/unreal-plug-in/
https://www.sidefx.com/forum/topic/49570/
また、今回は紹介できませんでしたがSideFX Labs内に
NiagaraやTerrain関連のノードも用意されており、機会があれば紹介させていただきます。