Houdiniをリアルタイムレンダリングでも使いたい話
Houdiniって何?
数式と処理の組み合わせによって3DCGを生成する「プロシージャルモデリング」を採用しているのが特徴のDCCツールです
◇得意な事
規則性を持つモデルの制作や不規則な自然現象などのVFX。
◇苦手な事
与えられたデザイン通りに作る事や細部に渡るモデリング作業。
Houdiniって何に使われてるの?
上記の特長から、おもに映画制作者に重宝がられてきました(アナ雪2など有名)
近年(ここ3年ほど)ではプリレンだけでなく、ゲーム等のリアルタイムレンダリングでも効率を目指したアセットの製作や一部のエフェクトなどに使われるようになりました。
難しいって聞きました。
頂点情報やUV情報などを視覚に頼らず組み上げて作るので、DCCツールの経験がないと難しく感じます。また、書籍やサイトでの情報がまだ少ないのも挫折してしまう人が多い理由の一つかと思います。
Unityでどうつかうの?
今のところ以下の五つがHoudiniで作成したものをUnityで使う方法かと思います(2022/11時点随時更新予定)
VAT (Vertex Animation Texture)
SideFxLabsの機能の一つで、頂点アニメーションをテクスチャにベイクします。
◇良い点
VFXGraphとの連携可能
クロスや流体などのようにボーンでは扱うことの難しい表現可能
◇懸念点
頂点数が重かったり、長いシーケンスだったりだと8Kでのテクスチャーだと足りない場合がある。
場合によってはテクスチャに焼くことができない場合がある。(データの受け渡しが複雑で高水準の技能が必要)
VfxGraphで使う場合テクスチャーにTransformを握られているので、大きな改造ができない
よって、かなりFixに近いものをHoudiniで作る必要がある。
◇模索内容
:VATの使い方に関する情報に一貫性がないので色々試して模索する必要ある。
バージョンが 1.0 2.0 2,1 3.0の四つあり、それぞれのバージョンで書き出される内容や、エラー内容が異なるので、3.0で使える方法を検討したい。
:unity内でsideFxLabをアセットとして組み込み、直接HoudiniからOutputする方法を試したい。
:流体に関してまだ試してない。
:NormalMap等 Vertex3以外の内容を書き出せる方法に関して研究の必要あり
Labs RBD to FBX
SideFxLabsの機能の一つで、RBDシミュレーションをアニメーションに焼きFBXとして書き出します。
◇良い点
PackedGeometryにする必要はあるが、比較的簡単に書き出すことができる。
アニメーションデータなので使いやすい(Unityに入れて直ぐ使える)
◇懸念点
大規模なシミレーションとなるとデータが重く、データの書き出し+入れ込みに時間がかかる。
Labs Skinning Converter
SideFxLabsの機能の一つで,単体でのメッシュで成り立つクロスシミレーションをボーンベースのアニメーションに変換してくれ、fbxとして書き出すことができる。
◇良い点
VATよりかなり軽量でとてもきれいに書き出せる。
◇懸念点
無し
VOPとShaderでなんとかする
vop(vertex operater)ノードでポイント情報を頂点カラーやUV情報にしてUnityのShaderで利用する方法。
◇良い点
軽量 Unity側で調整しやすい。
Unity側のパイプラインに依存しない
◇懸念点
プロシージャルを目的に作るものには有効(ポイント情報を一からくみ上げるので)だが既存のFBXを利用する場合は難しい場合が多い。
Vecter値に関しては利用するのが難しい。なんとかしてもってこれないか検討中。
現時点でのざっくりとしたまとめ
シミュレーションに関しては、なんでもかんでも直ぐにUNityに持ってこれるわけでは無く、上手い利用方法を考える必要がある。
エフェクト等で使うメッシュをプロシージャルで作れるので、エフェクトごとに最初から作る必要がなくとても便利。
Discussion