Texture Based Animation による Houdini で作成した特殊効果を Unreal に持っていく方法を紹介する。
使用したソフトウェア
- Houdini 16.0.457 (要 Houdini 16.0)
- Unreal 4.14.1 (要 4.14 以降)
0. Vertex Animation Texture に関して
破壊やデフォメーションの結果をリアルタイム環境で再生するには、頂点単位でのアニメーションカーブの出力を行なったり、ボーンデフォメーションなどに変換して出力するのが従来の方法であったが、各頂点のアニメーションデータをテクスチャに書き出し、GPUで演算させることにより、従来よりも高解像度のデフォメーションまたはシミュレーション結果を高速に再生することが出来るようになる。
考え方としては、ピアノロールの要領で、頂点 (バーテックス) の変位をフレーム単位で格納し再生する。通常、トランスレーション(移動)と回転の二つを考慮しなければならないので、テクスチャも移動用と回転用の2つが必要となる。デフォメーションでは、回転ではなく、法線方向を記録する場合もある。
これらの XYZ の各値が RGB チャネルにそれぞれバーテックス順にフレーム単位で最初のフレームから最後のフレームまで記録される。 例えば、1024 頂点(バーテックス)を持つジオメトリのデフォメーションを 24フレーム記録する場合、1024x24 のテクスチャを2枚書き出すこととなる。この場合、実際のテクスチャの解像度は 1024x24でも、途中で折り返して、512x48でも記録されている内容は同じ。頂点数が使うテクスチャの横解像度よりも大きい場合には折り返すしかない。出力されるテクスチャの横幅は、ROP 内で定義する。
2021年7月現在の最新版である VAT3.0 についてはこちら。以下は、2016年末時点の情報。
1. ファイルのダウンロード
- SideFXSamples_x.zip (995MB) をダウンロード。
- UPDATE: Nov, 2019: It's been almost 3 years since this page was written with UE4.14. In case if you are using UE4.19 or later, you may want to follow https://vimeo.com/207832662 and get the scene file there.
パスワードは要問い合わせ。
ダウンロードしたファイルを解凍すると約 1.15GB になる。 - Zip ファイルを解凍する。解凍したフォルダ以下、Source/VertexAnimationTexture/vertex_animation_textures.hda を HDA パス (例: MyDocuments/houdini16.0/otls) にコピーまたは移動。
- HDA パスの詳細はこちら。
- Houdini 16 を起動、/out 以下で TAB->Vertex Animation Texture ノードが作成できれば、HDA は正しく認識されている。
2. Unreal プロジェクト
- Unreal 4.14.1 を起動。Browse ボタンをクリック、上で解凍した SideFXSamples.uproject を開く。無事に開けば上のようなアニメーションが再生されるはず。
- Unreal Editor (以下 UE4) の Content Browser の左側で最上層の Content をクリック選択、右側で New Folder を作成、MyFile などと名前を付ける。
- 自分で作成した ファイルを Unreal に読み込む時にはこのディレクトリ以下に読み込むと良い。その際には、右側の World Outliner で、元々シーンにあるサンプルは隠してしまうのが良いかもしれない。ライト各種とSkySphere 以外は、それぞれ目を閉じた状態にする。
3. 自分でエフェクトを作成する
- RBD (リジッドボディダイナミクス) Houdini 16.5
- RBD (リジッドボディダイナミクス) Houdini 16.0
- Pyro
- 海洋
- キャラクタアニメーション
その他リンク
- Vertex Animation Texture 3
- 第8回VFX技術者説明会
- CEDEC 2020 任天堂講演 (ファミ通.com)
- CEDEC 2020 任天堂講演 (IGN Japan)
- [UE4] VATをNiagaraで動かす @Yuki_Ishida
- 【UE4】VATの作り方と使い方 ~VATで桜を咲かせる~
- Houdini Game Dev Tools:Vertex Animation Texture でPyroFXをUnrealEngineに Born Digital サポート
- Houdiniで作成したエフェクトをUE4で動かす(VertexAnimationTexture) indiedev太郎
最終更新 2021-08-03
データ確認させて頂きました。有難う御座います。
返信削除サクションフォースのhipにエラーが有りました。
キャッシュのgeoファイルが無いそうです。
どのファイルをどこで開いたときにそのエラーがでるのでしょうか?
返信削除suction_force.hipの/obj/fluidtank_fluid/compressed_cacheの中の
返信削除/obj/fluidtank_fluid/compressed_cache/read_backで
Error
Unable to read file "H:/Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Fluid/SuctionForce/geo/suction_force.compressed_cache.75.bgeo.sc".
というエラーが出ています。
zipファイルにはキャッシュが含まれておりません。
削除よって、自分で作らないとダメですね。
/obj/fluidtank_fluid/import_fluidtank
の Save to File ボタンをクリックしてでキャッシュを書き出して、compressed_cache でそのキャッシュを読み込む必要があります。
また全てのhipファイルを開いた際に
返信削除Warning : The following node types are using incomplete assete definitions:
Driver/vertex_animation_textures
という警告が出ます。
おそらく、このシーンファイルが作られたときの Houdini 16と現行の Houdini 16ではアセットの定義が少し異なるのではないかと思います。
削除正しく動かすには、このZip に入っている HDA を使う必要があります。
それでもダメであれば、少し古い Houdini 16を使うか、もしくはこちらでシーンファイルをアップデートする必要がありますね。
他にもSoftbody.hipを開いた時に
返信削除Load warnings for H:\Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Soft/Softbody/soft_body.hip
Warning:
/obj/geo1/solidembed1:
Skipping unrecognized parameter "useremesh".
Skipping unrecognized parameter "resolvecollisions".
/obj/AutoDopNetwork/geol:
Skipping unrecognized parameter "sepparm5".
Skipping unrecognized parameter "solidstiffness".
Skipping unrecognized parameter "sepparm8
Skipping unrecognized parameter "volumemassdensity".
Skipping unrecognized parameter "sepparm7
Skipping unrecognized parameter "aniso".
Skipping unrecognized parameter "targetstiffness".
Skipping unrecognized parameter "thicknessenable".
Skipping unrecognized parameter "thicknesscolor".
Skipping unrecognized parameter "penetrationenable".
Skipping unrecognized parameter "penetrationcolor".
Skipping unrecognized parameter "velocityenable".
Skipping unrecognized parameter "velocityscale".
Skipping unrecognized parameter "velocitycolor".
The following node types are using incomplete asset definitions:
Driver/vertex_animation_textures
という警告が表示されます。
またこのhipファイルの/obj/geo1/filecache1/read_backで
Error
Unable to read file "H:/Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Soft/SoftBody/geo/soft_body.filecache1.100.bgeo.sc".
というエラーが表示されています。
これも上記と同じですね。キャッシュをZip に含めると非常にファイルが大きくなるので含まれておりません。
削除HDA は更新されているかもしれません。
近々、作者と確認してみます。4月以降になるかもしれませんが。
ご回答有難うございました。
返信削除参考にさせて頂きます。
vertexAnimationTextureで書き出そうとすると
返信削除Error
Cook error in input: POSITION_AND_PACKED_NORMAL.
というエラーがほぼ毎回、別のファイルでも出るのですがどこをどう修正すればいいのでしょうか・・・。
検索してもヒットせず八方塞がりな状態です・・・。
これはRBD をやろうとしているのでしょうか?
削除その場合、入力のジオメトリは Pack されている必要があります、ということですかね?
すみません説明が足りていませんでした。
削除VATの検証してみたく、水や爆発などの流体系を書き出そうとしていた感じです。
GameDev Vertex Animation Textures ノードのパラメータの一番上にある Method が Fluid (Changing Topology) になっていますでしょうか?
削除はい、fluidになっています。
削除シーンファイルを ktaki@sidefx.com まで送っていただけますか?
削除メールに添付してお送りさせてもらいました。
削除今二つ見ましたが、どちらもキャッシュノードをバイパスして普通に計算させたところ、問題なく出力できました。残り見て、メールで返事いたします。
削除Can you tell me the compressed password?
返信削除It will be a great help.
Please.
Thank you.
eyegrapher@gmail.com
Hi there,
削除This page was written over 3 years ago with UE4.14.
In case if you are using UE4.19 or later, you may want to follow
https://vimeo.com/207832662
and get the scene file there.
I will send you the password separately.
Good luck!
RBDでシミュレーションしたものをVATで出力しようとすると
返信削除Error
Error rendering child: /out/breakOBJ/set_max_min_pscale
というエラーが出てrotationのファイルが出力されません
RBDなのでpscaleを使ってないですが設定しないといけいのでしょうか?
こんにちは。これとこの下の Cloth 含め、全くわかりません。
削除お使いの Houdini および SideFX Labs のビルド番号と問題の再現可能なシーンファイルと再現手順と共に
https://www.sidefx.com/ja/faq/question/contacting-support/
の要領で、ktaki@sidefx.com まで送っていただけますか?
クロスの時も同様な感じでした
返信削除Error
Error rendering child: /out/clothSimA/set_max_min_pos_soft