HOME

Maneki Pipeline

ゲーム開発のためのプロシージャル

[雑記]サンプルリソースづくりとメッシュ分離のtips

以前作成した群衆パイプラインをツール化、パイプライン化する。 ・・・ためにCC0のモデルを使わせていただき、セットアップしたサンプルモデルを作成しています。 分離した際の記録なのでこの記事にはあまり情報はありません。

環境

HoudiniFX 20.5.613

背景

以前作成した群衆VAT(以下のリンクページ)をパイプラインとして整備したい。

VATによる群衆表現まとめ
https://www.procedural.jp/articles/lk8i06ubg

ただし、ここで利用させていただいていたMixamoはコンテンツへの組み込みは可能だがリソース自体の再配布は許容されていない。
そのため、今回パイプライン化したデータに含めるための入力サンプルデータをCC0の kenny.nl を利用させていただき、データに含めるために整備する。

KENNY
https://kenney.nl/

こちらのMiniCharactersをサンプルデータとして利用できるように加工した。
スケルトン、モーションも無いので簡単なものを作成する。

Mini Characters 1
https://kenney.nl/assets/mini-characters-1

(実のところMetahumanを使ったサンプルとして作成したかった。
 しかし現状のMetahuman For HoudiniはヘアデータをMetahumanにimportするためのワークフローであり、fbxなどで利用することは難しそうだったのでKennyのモデルを利用させていただきました。ここにきてMayaのライセンスを欲しくなるとは・・・)

分類完了したデータ

群衆パイプラインの入力データとして以下のような状態のメッシュ、モーションを準備した。

メッシュ

表示切替を行う単位ごとに色分け

各パーツは設置される位置に合わせて共通のスケルトンで動かせる状態にしておく
頭、腕、体など独立した部位ごとに色分けを行った

ユニークなUVを設定

LabsVATの仕様上、独立したUVでなかれば正常に出力できない KennyのモデルはUVが重なっているため割り振りなおした

テクスチャ

カラー用テクスチャを一枚にまとめて頂点カラーベイク

すべてのメッシュを0-1範囲に収めて元テクスチャをベイクした
出力したテクスチャ

スキンアニメ

適当な骨と適当なアニメーションを用意した

適当な骨を作成

マージしたメッシュで動く(すべてのパーツが動く)ことを確認

適当なモーションを作成し、動作できることを確認

これらのサンプルデータを入力として群衆観客パイプラインとしてhdaとして整理、リポジトリにまとめていく。

分類のTips

Houdiniでメッシュの整理やグループ化するために使った方法とTips。

[Tips]Assembleなどによるpack

手作業で顔、腕、体などをグループ化し、カラーを設定した際手作業で分類した。

顔、体、腕などの単位で分類していく

メッシュを選択してグループ化したい場合はAssembleなどでパックすると選択しやすい

Assembleを使うと接続されているメッシュごとに分離できる
Assembleをしておくと手作業での選択がしやすい

[Tips]テクスチャから頂点カラーを取得

AttribFromMapノードを使うとテクスチャからUV準拠で頂点カラーを設定できる。
UVを再レイアウトした理由はHoudiniのVATは書き出す際、頂点事にユニークなUV座標を持っている必要があるから(重なっていると座標が壊れるらしい)。
ユニークなUVを割り当てを行うため、元のテクスチャカラーをいったん頂点カラーとして読み込んでベイクを行った。

AttribFromMapを使うとテクスチャから頂点カラーを読み込める

[Tips]整列してベイク

テクスチャベイクを行う際、重なっているとにじみやアーティファクトの原因になってしまう。
Labs Align And Distributeを使うと簡単に整列できるのでこの状態でベイクするとエラーが出にくい

Labs Align And Distributeは便利な整列ツール


見ていただいたらわかるかと思いますが、メッシュを顔、腕、体などに分離した際の日記です。
手作業による分類を行おうと思った場合、Houdiniは機械的なグループわけ機能に充実している分、慣れてくるとそれらも併せて使えるで手作業もやりやすいと思っています。
(ちょっと偏った思想かも)

fish_ball

プロシージャル魚類