HOME

VATによる群衆表現②:LODを含むVATの作成

Houdiniをゲームに使うとなる場合によくある用途の一つが群衆だと思う。 一通り流れを踏襲しておきたいので追ってみる。 また、VAT3.0になってからのVATを触ったことが無いのでこの機に触ってみる。

環境

HoudiniIndie20.5.522
HoudiniEngine20.5.522
HoudiniLabs Plugin2.0

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

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

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

本記事ではVAT出力時にLODを含んで出力する方法を追う

前回の記事

VATによる群衆表現①:ソフトボディVATでキャラクターを動かす
https://ipk2abtmtx.microcms.io/apis/blog/4pxh95hix

Houdiniでの設定

VATにLODを持たせて出力する方法はHoudiniLabsのArtStationに設定方法などを記載してくれている。
(残念ながらサンプルシーンのダウンロードリンクは切れていました)
https://www.artstation.com/artwork/5XJZV8

こちらのリンクと先述の動画を参考にデータを構成します。

Nとuvのvertexアトリビュートを持たせる
LODを持たせて出力させる場合、出力するメッシュのvertex attributeにNとuvを持たせる必要があるので設定する
※point attributeだとエラーで止まりました

vertexアトリビュートのNとuvがLOD付きVATの出力に必須

頂点番号を保存
floatで元メッシュのpoint番号をアトリビュートしてキャッシュ
※最終的にintに変換する値ですが、この段階ではfloatでないとこの後に利用するattribcopyが正常に動きませんでした。

float型で頂点番号を保存

LOD0(元メッシュ)の設定
atribcastを作成し、先にfloat型でキャッシュした頂点番号をint型に変換

lod0_ptnumをintに変更

「LOD0」というpointグループにすべてのpointを分類しLOD0の設定は完了

pointグループを設定してLOD0の設定が完了

LOD1の設定
LODを作成するメッシュはtime shiftなどでフレームを固定し、

LOD1以降ではフレームを固定する

PolyReduceで削減する。この時「UseOnlyOriginalPointPosition」を有効にする

UseOnlyOriginalPointPositionを有効にしてpolyreduceでLODメッシュを作成する

削減したメッシュを作成したらAttribCopyを作成し、削減したメッシュに元メッシュからキャッシュしたLOD0の頂点番号を元にPを転送する

キャッシュした頂点番号をもとにPをコピー

LOD0同様、キャッシュした頂点番号をintに変換し、

LOD0の時同様、キャッシュした元メッシュの頂点番号をint型に変更

LOD1というpointグループに分類してLOD1の設定が完了

LOD1というpointグループを設定してLOD1の設定が完了

LOD2の設定
LOD2以降の設定も基本的にLOD1同様。
グループ名がLOD2となる。

LOD1と設定の流れは同様でpointグループ名のみがLOD2になる

メッシュのマージ
LOD0~2のメッシュをマージして出力対象の準備が完了

LOD1~LOD2のメッシュをマージして出力対象の設定が完了

Labs Vertex Animation Textureの設定
LODを出力する場合、Labs Vertex Animation Texture の Advanced/ ExportLODsを有効にする。
今回の場合、LOD0、LOD1、LOD2の3つのLODなのでNumber of LODsは3に設定する

出力ノードのLOD出力設定を有効にする

UEに入力

LODが生成されている
出力されるfbxファイルとテクスチャファイルの数は変わらないが、正しくLODを設定できているとインポートした時点でLODが生成された状態でUEにインポートできる

LODをもったVATが作成できる

注意点
これはUEの注意点だがNanita有効だとLOD1以降は表示できない

Nanita有効だとLODの有無などは関係なく削減時に破綻する NanitaはそもそもVATと相性があまり良くない

Nanitaが必然になってくると不要な要素になるかもしれないですが、現状Nanitaはプロジェクトの相性によるという話を聞いたことがあるのでしばらくはLOD付きのVATは要件によっては選択肢の一つになるのではないでしょうか

fish_ball

プロシージャル魚類