ここでは Vertex Animation Texture (VAT) 3.0 のインストールおよび RBD での使い方を簡単に紹介する。なお、詳しい使用法は Houdini HIVE で紹介。
- VAT3 Complete Guide Part 1 (日本語版へのリンク)
- VAT3.0 と PDG の併用の例 (Art Station)
- 同日本語解説ページ (ボーンデジタル Houdini サポート)
- VAT 3.0 概要
- インストール
- 元になる RBD シミュレーションの作成
- VAT ROP による出力
- UE4 での読み込み
- トラブルシューティング
- VAT3 Cloth
- VAT3 Fluid
- VAT for Crowds (群衆)
- Houdini 18.5.617 以降が必須 (631 以降を推奨)
SideFX LAbs VAT3.0 UE5.1~5.3 に関する注意
こちら (UnlimitedEffectWorks さん)
1. VAT 3.0 概要
Vertex Animation Texture (頂点アニメーションテクスチャ) の基本的な考え方についてはこちら。
- ワークフローの効率化を目指し、アプリケーション間での数値のコピペや JSON でのやり取りを極力排除
- 操作時のノード挙動の高速化 (無駄なクックの削減)
- UI の再デザイン、ドキュメントの更新及びより分かり易いヘルプメッセージ
- 新しいピボットエンコーディング方法と新しい マルチ RPF (Revolutions per Frame) 回転補間アルゴリズムによる RBD シミュレーション精度の大幅向上
- すべてのモードでのアーティスト編集によるサーフェス法線のネイティブサポート
- Fluid モードでの UV のネイティブサポート
- 9チャネルまでのカスタムデータのネイティブサポート
- シェーダ機能のカスタマイズと拡張を可能にする柔軟性
- 旧バージョンでの既知のバグをすべて修正
6/24 時点での制限
- UE4 のみ。Unity は今後 。
- Houdini Engine for UE4 プラグインでインストールされるマテリアルと VAT3 による UE4 マテリアルに連携性なし。これは修正予定。
2. インストール
以下 UE4 で VAT3 を効率よく使うためのインストール手順。UE4.26, 4.27, 5.0EA に対応している。
- Houdini 18.5.617 以降を SideFX Labs 込みでインストール。
- Houdini 18.5 を初めてインストールしたのでなければ、ツールをアップデートする。
-
これにより、Houdini 環境ディレクトリ、もしくは $HOUDINI_PACKAGE_PATH で別途指定したディレクトリ以下に SideFXLabs というディレクトリができ、その中にアップデートしたビルド番号のディレクトリが出来る (例: 18.5.617)。
- インストールの状況に応じて次のいずれかのディレクトリに行く。
- Houdini と SideFX Labs を初めてインストールしてツール未更新の場合、 C:\Program Files\Side Effects Software\sidefx_packages\SideFXLabs18.5\unreal
- SideFX Labs を更新した場合、 C:\Users\ユーザ名\houdini18.5\SideFXLabs\18.5.617\SideFXLabs18.5\unreal
- それぞれの中には、以下の3つがある。
- SideFX_Labs フォルダ
- Plugin Installation Guide.txt
- VAT Import Settings Guide.txt
- このうち SideFX_Labs フォルダをコピー (Ctrl+C) し、目的に応じて、以下のいずれかのディレクトリにペースト (Ctrl+V)。
- 個人で使う場合: C:\Program Files\Epic Games\UE_4.26\Engine\Plugins\FX\
- HoudiniNiagara と同じ
- UE 起動後、 Edit->Plugins で SideFX Labs を検索、有効化が必要。または SideFX_Labs.uplugin をテキストエディタで開き、次の一行を括弧の中に追加する。
"EnabledByDefault" : true,
詳細はこちら。なお、少なくとも 18.5.638 以降では EnabledByDefault は true になっている。 - 下記のように個々のプロジェクトにコピーすることは不要
- プロジェクトで共有する場合: UE4 プロジェクトフォルダ内に Plugins というディレクトリを作成、その中にペースト
- プロジェクトに関わる人それぞれの環境にインストールすることは不要。
- Edit->Plugins での有効化も不要
- 個人で使う場合: C:\Program Files\Epic Games\UE_4.26\Engine\Plugins\FX\
以下、Houdini Core で単純な RBD シミュレーションを作成、VAT (3) 経由でUE4 へ持っていく方法。
3. 元になる RBD シミュレーションの作成
- Houdini 18.5.617 を起動。Torus (/obj/torus_object1) を作成、
- torus_object1 を選択したまま Simple FX シェルフにある Simple Fracture ツールをクリック。
- ビューポート下に "Select collision object, if any, and press Enter to complete." (衝突オブジェクトがある場合、選択して Enter キーを押して完了) と表示されるが、この場合はただ Enter キーを押して完了する。
- /obj/torus_object1_fracture (SOP) ネットワークが追加され、その中に5つの SOP ノードによる シミュレーションためのネットワークが出来るのがわかる。
- Play ボタンを押して再生してみる。
- トーラスは真下に落下し、破砕もしなければぶつかりもしない。これを編集していく。
- fracture_solver ノードを選択、下段にある Ground タブで Add Ground Plane を None から Ground Plane に変更。
- rbdmaterialfracture ノードを選択し、Constaints タブの Primary Strength の値を見ると、10,000 になっている。これではコンストレインが強すぎなので、100 ぐらいに落として再生してみる。
- 最下流の fracture_io ノードの一番左の Geometry 出力に Null ノードを追加、OUT という名前に変更し、このノードに表示フラグを指定。
- ここまでを vat_simple_rbd.hip などという名前で保存し、次に VAT で出力する。
4. VAT ROP による出力
- /out に移動し、Labs Vertex Animation Texture ノード (vertex_animation_textures1) を作成。
- Labs ノードを使うには SideFX Labs のインストールが必要。
- 作成した VAT ノードが 3.0 であるかどうか、どこにある HDA がロードされているかを確認するは Asset Bar を表示すると便利。
- 次に設定を変更していく。
- 一番上の Render All ボタン直下の Mode / Target Engine は Rigid-Body Dynamics (Rigid) と Unreal Engine (のまま)
- Start/End は 1 と 240 のままでも良いし、短くしても良い。
- Input Geometry にシミュレーションジオメトリを指定する。ここでは /obj/torus_object1_fracture/OUT 。
- Render All ボタンをクリックして出力してみる。
- /obj/torus_object1_fracture の中に戻り、fracture_solver を選択。Advanved タブに行き、以下の設定を行う。
- 再び /out/vertex_animation_textures1 に戻り、Render All をクリックすれば、今度は正しく export/vat_simple_rbd ディレクトリに以下のファイルが出力される (はず)。
- geo/vertex_animation_textures1_mesh.fbx
- tex/vertex_animation_textures1_pos.exr
- tex/vertex_animation_textures1_rot.exr
5. UE での読み込み
- インストール時に SideFX_Labs フォルダをコピーしたプロジェクトで UE4 を起動。
- デフォルトの画面設定であれば中央下部分にある Content Browser に以下のテクスチャをドラッグ & ドロップ。
- tex/vertex_animation_textures1_pos.exr
- tex/vertex_animation_textures1_rot.exr
- 読み込んだ両方のテクスチャを選択、RMB -> Scripted Action ->SideFX Set VAT HDR Textures を実行。
これにより、テクスチャに正しい設定が行われる。VAT 出力時に HDR でない方法で出力した場合は、Non HDR の方を選択。
このメニューが表示されない場合は、プラグイン (SideFX Labs フォルダ) が正しくインストールされていない。こちらを再度確認。 - 次に geo/vertex_animation_textures1_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 とし、ダブルクリックして中に入る (名前は自分でわかれば何でも良い)。
- M_VAT 内には、M_VAT という名のノードがひとつある。
- TAB キーを押して、'vat' と入力していくと、選択肢が以下のように表示される。
- このうち MF_VAT_RigidBodyDynamics を選択する。
- MF_VAT_RigidBodyDyanmics を左に M_VAT を右に並べ、以下のように接続していく。
- Color RGB (PS) を Base Color に
- Normal (Tangent Space Normal Off) を Normal に
- World Position Offset を World Position Offset に
- M_VAT を選択し、Details ビューで 'tangent' を検索、Tangent Space Normal をオフにする。
- M_VAT を選択し、Details ビューで 'uv' を検索、Num Customized UVs を 5に設定する。
- これにより Customized UV[0-4]までが追加される。
- Customized UV1 から Customized UV4 までをすべて接続する。
- 終わったらパネルを閉じて保存。
- 再び RMB -> Materials & Textures -> Material Instance を実行し、マテリアルインスタンスを作成。vat_inst などと名付ける (自分でわかれば何でも良い)。
- vat_inst をダブルクリックして開く編集パネルの Details 以下で、Position Texture と Rotation Texture を有効にし、それぞれに vertex_animation_textures1_pos と vertex_animation_textures1_rot をドラッグ & ドロップ。
終わったら閉じる。 - Content Browswer から ビューポートに vertex_animation_textures1_mesh_MESH (fbx) をドラッグ & ドロップし、そうしてできたメッシュに対して vat_inst マテリアルをドラッグ & ドロップ。
- 上手くいった場合、ビューポートでは RBD シミュレーションの結果が再生されている (はず)。
6. トラブルシューティング
- テクスチャが出力できない、出来ても真っ黒でデータがない
-
VAT データを出すには、orient と pivot アトリビュートが出力されること。こちらを確認。Transfer to Geometry トグルも忘れずに。
- 細かい破片が消えたり再び現れたりする
- アニメーションがパカパカする (回転が飛ぶ)
状況に応じて回避策は異なるかもしれないが、以下を試すと良い。- この問題に限らず、VAT ROP の Input Geometry には オブジェクトレベルへのパス (例: /obj/torus_object1_fracture) ではなく、SOP レベルのパス (例: /obj/torus_object1_fracture/OUT) を指定するのが無難
- こちらでのアトリビュート追加時に 'w' も追加する
- /obj/torus_object1_fracture/fracture_io でシミュレーションをキャッシュ出力してから読み込むようにする (Save to Disk をクリックしてから、Load from Disk トグルをオンにする)。これにより、シミュレーションデータがフレーム単位で(サブフレーム情報なしで) VAT ROP ノードに渡る。
- UE4 でテクスチャやマテリアルのパラメータを変更しても更新されていないように見える
-
Content Browser でそれぞれのアイコンに * が付いている場合、一度保存してみる (RMB -> Save)。もしくは Ctrl+Shift+S で一括保存。
リンク
- [UE5] 簡単になったVAT(Vertex Animation Texture)で破壊してみよう (株) ヒストリア
- CEDEC 2021 VAT の実演ビデオあり
- VAT3 Complete Guide Part 1 (日本語版へのリンク)
- VAT3 Cloth
- VAT3 Fluid
- Vertex Animation Textures for Crowds (群衆, YouTube, 15分, 2023年2月)
- 条件付き VAT (Conditional VAT) SideFX コンテンツライブラリ
最終更新: 2024-10-03
Awesome tutorial! I am having trouble using VAT 3.0 for fluid and this tutorial cleared a lot of my confusions. Thank you vey much. Do you mind doing a fluid tutorial if possible? I was using the MF_VAT_DynamicRemeshing function but I still get broken meshes. Much appreciated!
返信削除Sorry I don't know Japanese but here's probably what I want to say:
素晴らしいチュートリアル!流体にVAT3.0を使用するのに問題があり、このチュートリアルで多くの混乱が解消されました。どうもありがとうございました。可能であれば、流体シミュレーションのチュートリアルを行ってもよろしいですか? MF_VAT_DynamicRemeshing関数を使用していましたが、メッシュが壊れています。とても有難い!
Hi there, I am in process of writing fluid one. I probably have run into similar problems as you might have, which is why it's not here yet. Stay tuned (but I won't be writing in two languages).
削除素晴らしいチュートリアルを有難うございます!質問なのですが、こちらの手順でジオメトリをパックすると元ジオメトリのuvって消えてしまいませんか?
返信削除また、元ジオメトリにuvが複数有る場合の設定方法も解らず困っています。なにかヒントを頂けると嬉しいのですが…よろしくお願い致します。
本当ですね。社内で調べてみます (114857)。
削除とりあえずは、普通の Shatter を使うのが良いかもしれません。
ご返信ありがとうございます。
削除https://www.sidefx.com/ja/forum/topic/60167/?page=1#post-268976
こちらのフォーラムを参考にしたところなんとか上手く行きました。UVが消えてしまうとなるとSimpleFractureシェルフの使い道が解らないですよね……。特に自分のような初心者だと何が起こっているかも解らず、余計混乱してしまいました。
pumpさん元のジオメトリにuvがあるのでしたらPacked GeometryというHoudini特有のデータになっているのでfracture_ioの下にunpackというSOPを追加すればuvは表示されると思うのですがどうでしょうか?
削除また複数のuvの編集ですがShene Viewでスペース+5キーでuvの確認画面に移動できるのでそこでビューポート左上のuv(vertex)の文字をクリックすると持っているuvアトリビュートが表示されるので複数のuvがある場合はそのuv名(例えばuv2等)を覚えておいてuvedit SOPを追加してUV Attribute欄に編集したいuv名を記述することで編集が可能になると思います。
yukito さん
削除コメント有難うございます。
RBD の部分に関しては UV 付きの形状で書き直してみたいと思います。
他に書き直しが必要なものがいくつかあるので、いつになるかわかりませんが、出来るだけ早く対処致します。