HOME

VATによる群衆表現①:ソフトボディVATでキャラクターを動かす

Houdiniをゲームに使うとなる場合によくある用途の一つが群衆だと思う。 一通り流れを踏襲しておきたいので追ってみる。 ひとまずキャラクターをVATで動かすところから

環境

HoudiniIndie20.5.522
HoudiniEngine20.5.522
HoudiniLabs Plugin2.0

参考にするチュートリアル

そこそこ古い動画だがこちらのような表現をできるようにしたい 詳細な流れが紹介されているわけではなく、用例紹介のような動画なので完全に同じフローにはならないかと思う。

Vertex Animation Textures for Crowdsチュートリアル
https://www.youtube.com/watch?v=StGJ1l8noNs

なお、この記事ではひとまずVATでキャラクターメッシュを動作させるまでのセットアップを行う

Houdiniでの設定

チュートリアルではキャラクターをソフトボディVATにより動かすとのことだった。
ソフトボディVATをセットアップしていく。
とはいえ、VAT3.0のセットアップは非常にシンプルになっており、出力したいメッシュとROPのLabs Vertex Animation Texturesノードを作成するだけでセットアップが完了する。

出力先のメッシュを準備しROPを作成
ROPでLabs Vertex Animation Texturesを作成し、soft bodyモードで出力対象などを設定

Labs Vertex Animation TexturesのRenderを実行すると必要なテクスチャとメッシュが作成される

renderを押すとこれだけで必要なデータが出力される

UnrealEngine上でVATを表示する

UnrealEngideで表示させるために必要なプラグインの読み込みとマテリアルのセットアップを行う

Labsプラグインをインストールする
VATを表示するためのマテリアルエクスプレッションはLabsが用意してい暮れているHoudiniLabsプラグインに含まれている(※HoudiniEngineとは異なるプラグイン)。

プラグインの保存先はHoudiniから飛ぶことが可能で、Labs Vertex Animation Texturesノードにプラグインへのショートカットを用意してくれているのでこれを押し、

Labsプラグインへのショートカットボタン

該当するバージョンのLabsプラグインをUnrealEngineにコピーする

移動先の該当バージョンフォルダ名をコピー

Labsプラグインを有効にするとVAT等のマテリアルファンクションが利用できるようになる。

Labsプラグインに必要なマテリアルファンクションが入っている

VAT用のマテリアルを作成
VAT用のマテリアルはこれらのマテリアルファンクションを配置して接続すると利用できる。
今回はソフトボディなのでHoudiniVATSoftBodyDeformationを配置し、カスタムUVの追加が必要なのでNumCustomizedUVsを5に設定、追加されたUVとNormal、ワールドポジションを接続する

また、テクスチャなども利用できる

SoftBodyVAT用のマテリアルを作成
キャラクターのメッシュがVATで動くようになる

余談:テクスチャをまとめる

今回テストに利用したmixamoのモデルにはテクスチャが含まれていないのでKarmaを使ったテクスチャベイクでベースカラーテクスチャを作成しました。

グラフ左側はテクスチャの作成に使っている

RenderSettingにあるAlbedoAOVをレンダリングしています。

AOVでAlbedoをベイクした状態

Karmaを使ったテクスチャベイクについてはこちらの記事でまとめていますので良ければご参照ください。

AOVとレンズシェーダーを利用したKarmaテクスチャベイク
https://www.procedural.jp/articles/mzucmirhbj9

fish_ball

プロシージャル魚類