ここでは Vertex Animation Textures 3 での Fluid の例を紹介する。
- Houdini FX 18.5.651 (650 以降が必須)
1. インストール
- Vertex Animation Textures version 3 (以下 VAT3) は SideFX Labs ツールの一つで、 H18.5.617 以降に同梱されているが Houdini インストールと同時にインストールが必要。
- 18.5.650 で Fluid (Dynamic Remeshing) に対して大幅な改良が施され、出力データのファイルサイズが約1/4 になった。ここでは、651 を使った改良後の使用法を説明する。
- VAT の UE4 へのインストールはこちらを参照。
2. 元になる Fluid シミュレーション
元になる流体シミュレーションは Andreas Glad 氏による VAT Paintsplat! を使う。このページにある "File.zip (5.6MB)" をダウンロードして編集せずに H18.5 に読み込んだだけでも VAT3 による出力は可能なので、これを元に説明する。 Andreas 氏による説明も秀逸。
- 上記ページより File.zip をダウンロードし解凍。
- 解凍したディレクトリから PaintSplat.hip を Houdini 18.5.650 以降で開く。
- Prepare_Mesh ノードの中に入ってみると、一番上流の file1 からすべてがエラーになっている。
- Objects レベル (/obj) に戻り、Erode ノードの中に入る。
- filecache1 を選択、パラメータビューで Save to File タブにある Save to Disk ボタンをクリックしてキャッシュを書き出す。
- 一つ上 (/obj) に戻ると、ビューポートには流体形状が表示され、キャッシュが正しく読み込まれたことがわかる。一度再生してみてすべて書かれているのを確認するのが良い。
3. VAT ROP による出力
- /out に移動すると、Labs Vertex Animation Textures ノード (vertex_animation_textures1) が既にあるが、このノードの定義は H16.5 当時の VAT バージョン 1.0。よって、このノードを変更していくよりも真新しい VAT ノードを作成し、設定を行っていく方が無難。
- ノードのバージョンを手早く確認するにはAsset Bar を表示すると便利。
- TAB メニューから Labs Vertex Animation Textures ノードを選択、作成。
- vertex_animation_textures2 が出来る。
- 次に vertex_animation_textures2 の設定を変更していく。
- 一番上の Render All ボタン直下の Mode / Target Engine で、Mode は Dynamic Remeshing (Fluid) に変更する。 Target Engine は Unreal Engine (のまま)。
- Start/End は 1 と 40 のまま。
- Input Geometry に /obj/Prepare_Mesh/VAT_OUT を指定する。
- H18.5.650 以降、Settings タブには Lookup Table (ルックアップテーブル) 設定が追加され、テクスチャデータの圧縮を可能にしている。こちらは H18.5.640 (ルックアップテーブル搭載前) と H18.5.651 (搭載後)の UI の違い。重要なことは、
- Dynamic Remeshing に Render Pass パラメータが追加され、First Pass と Second Pass を選択するようになった
- All Modes 以下に Lookup Table Format が追加され、データ形式 (Non-HDR または HDR) とファイルフォーマットを選択できるようになった
- 結論から言うと、Render All を二度、一度は First Pass で、もう一度は Second Pass で実行する必要がある。
- Render Pass を First Pass に設定し、Render All ボタンをクリック。
- これによりジオメトリとルックアップテーブルなどが出力される。
- Render Pass を Second Pass に設定する。
- すると殆どのパラメータがロックされ、変更不可になる。
- 再び Render All ボタンをクリック。 すると、 export/export/PaintSplat ディレクトリに以下のファイルが出力される (はず)。
- geo/vertex_animation_textures2_mesh.fbx
- tex/vertex_animation_textures2_col.exr
- tex/vertex_animation_textures2_lookup.png
- tex/vertex_animation_textures2_pos.exr
- tex/vertex_animation_textures2_rot.exr
4. UE での読み込み
- デフォルトの画面設定であれば中央下部分にある Content Browser に以下のテクスチャをドラッグ & ドロップ。
- vertex_animation_textures2_lookup.png
- tex/vertex_animation_textures2_pos.exr
- tex/vertex_animation_textures2_rot.exr
- 読み込んだ .exr 二つを選択、RMB -> Scripted Action ->SideFX Set VAT HDR Textures を実行。
- 読み込んだ .png を選択、RMB -> Scripted Action ->SideFX Set VAT Non HDR Textures を実行。
- このメニューが表示されない場合は、プラグイン (SideFX Labs フォルダ) が正しくインストールされていない。こちらを再度確認。
- 次に geo/vertex_animation_textures2_mesh.fbx を Content Browser にドラッグ & ドロップ。
- すると FBX 読み込みの用のダイアログが表示される。ここでの設定は、VAT Import Settings Guide.txt の通りに行う。
- Vertex Color Import Options: Replace
- Transform Vertex to Absolute: オン (この上のトグルはすべてオフ)
- Normal Import Method: Import Normals and Tangents
- Import Uniform Scale: 1.0
- Convert Scene: オン (この下のトグル二つはオフ)
- Material Import Method: Do Not Create Material
- Reorder Material to Fbx Order: オン
なお、以下に指定のない設定はすべてオフ。 - Content Browser 上で右クリック、表示されるメニューから Material を選択してマテリアルを作成。
- 名前を M_VAT_FLUID とし、ダブルクリックして中に入る (名前は自分でわかれば何でも良い)。
- M_VAT_FLUID 内には、M_VAT_FLUID という名のノードがひとつある。
- TAB キーを押して、'vat' と入力していくと、選択肢が以下のように表示される。
- このうち MF_VAT_DynamicRemeshing を選択する。
- MF_VAT_DynamicRemeshing を左に M_VAT_FLUID を右に並べ、以下のように接続していく。
- Color RGB (PS) を Base Color に
- Normal (Tangent Space Normal Off) を Normal に
- World Position Offset を World Position Offset に
- M_VAT_FLUID を選択し、Details ビューで 'tangent' を検索、Tangent Space Normal をオフにする。
- M_VAT_FLUID を選択し、Details ビューで 'uv' を検索、Num Customized UVs を 5に設定する。
- これにより Customized UV[0-4]までが追加される。
- Customized UV1 から Customized UV4 までをすべて接続する。
- 終わったらパネルを閉じて保存。
- M_VAT_FLUID 上で RMB -> Create Material Instance を実行し、マテリアルインスタンスを作成。mf_vat_inst_fluid などと名付ける (自分でわかれば何でも良い)。
- mf_vat_inst_fluid をダブルクリックして開く編集パネルの Details 以下で、Position Texture、 Rotation Texture、Lookup Table を有効にし、それぞれに vertex_animation_textures2_pos、 vertex_animation_textures2_rot そして vertex_animation_textures2_lookup をドラッグ & ドロップ。
他の MF (マテリアル関数) との兼ね合いで、パラメータには Rotation Texture とあるが、ここで扱っているのは回転情報ではなく、法線情報。いずれにせよ、終わったら閉じる。 - Content Browswer から ビューポートに vertex_animation_textures2_mesh_MESH (fbx) をドラッグ & ドロップし、そうしてできたメッシュに対して mf_vat_inst_fluid マテリアルをドラッグ & ドロップ。
- 上手くいった場合、このページ一番上のモーションGIF のように、ビューポートでは RBD シミュレーションの結果が再生されている(はず)。
なお、Houdini 18.5.640 で Render Pass/Lookup テーブルを使わずに VAT を出力した場合
- color: 24KB
- position: 3637KB
- rotation: 4901KB
- color: 4KB
- lookup table: 519KB
- position: 595KB
- rotation: 791KB
リンク
- Q: My VAT in UE looks broken. What do I do? (SideFX フォーラム)
最終更新: 2023-12-08
解説ありがとうございます!
返信削除敬遠してたVATに触るきっかけとなりました!
一つ質問があるのですが、この設定したマテリアルとメッシュをniagaraのmesh rendererに刺しても何も表示されないのですが、
niagara用の特別な設定が別途で必要なのでしょうか?
コメント有難うございます。正直なところ Niagara はあまり触ったことが無いのですが、問題の再現方法を ktaki@sidefx.com に送っていただければ試してみたいと思います。
削除返答ありがとうございます。
削除承知しました!
しばらくいじってみて、それでも分からない場合はメールで相談させていただきます!
宜しくお願い致します。