AI生成した3Dモデルのパイプライン⑦:変換するディテールを増やしていく
AI生成したモデルをゲームエンジンで利用できるようなパイプラインのプロトを作る。 一例です。

生成AIモデリングとプロシージャルモデリングを組み合わせた画一的な形状変換を行う
Houdiniのパイプラインは拡張がしやすいので以前パイプライン化したグラフを複製し、
コンバートのバリエーションを増やしていく
コンバート処理を増やす
PDGは処理用のノードの外に存在しているノードなので部分的に処理を変更したパイプラインを直列の拡張だけでなく並列の拡張にも強い
シンプルなコンバートパイプラインも複製して作成していく
出力先などのアトリビュートをTOPに組み込み、TOPのグラフを複製する
TOP内でattribute createを作成し出力先をTOPで作成できるように変更する。

処理ノード側でも出力ディレクトリをTOPからの参照アトリビュートとして設定する

コンバート処理部分だけ変更してパイプラインを流用する
コンバート処理を行っていた部分のノードを複製し、

シンプルなリダクションを行うだけのノードに組み替えて実行する

参照するノードはSETTING、RAW_MODEL_RENDER_TARGETなどNULLのみしておくとそれらのノードに接続されているものをレンダリングなどできるので、変換部分のノード構成を変えるだけで入出力周りはそのまま利用して全体の処理を変更することができた
このあたり、Houdiniがデータパイプラインツールとして優秀なゆえんだと感じる。

いくつかのリダクションごとの結果
生成した入力モデルを増やしたうえで前回までのブロックコンバートを含めいくつか変換してみた。
仕方ない事ではあるが、破綻しているコンバートもだいぶ増えてしまっている。
ポートフォリオ化するならば破綻しないようにコンバート回りの調整も必要な印象。
シンプルなリダクションの一覧シート
生成AIモデルをゲーム目的で使うにしてもそのままではポリゴン数が多いので、重要な用途としてリダクションなどに使われるだろうという想定のパイプライン。
PolyReduceを使ったリダクションは形状を無視してリダクションしてしまうので、段階的にリダクションしたモデルを載せるなど、パイプライン上で工夫が必要そう。

ブロックモデルコンバートパイプライン
最初に試したプロシージャルコンバートのわかりやすい例。
ただ現状だとポリゴン数などカウントしているjsonの出力で失敗してしまっている部分があるようなのでそこだけ追って修正します。
魚などはかなりよい見た目になってくれたが、現状だと細い部分の破綻が大きいので何とかしたい。
テクスチャ周りも同色の面のUVを重ねるなどの工夫もできそう。

プレイステーションライクなディテールモデリング(を目指したもの)
破綻も大きく現状では見た目の詰めが甘い…。
AbioticFactorのようなグラフィックを量産したかったがテクスチャ解像度を下げて(128x128)、ノイズを入れ、メッシュ形状をボリュームベースで削減したがまだまだ良い見た目とは言えない。
挑戦としては良い選択だと思うので時間を見つけてブラッシュアップしていきたい

生成AIをソースにしたプロシージャルコンバートパイプライン(プロシージャルモデリングですが、プロシージャルモデリングは基本形状からのモデリングすることが多いのでプロシージャルコンバートの方が適切かと思います)を試してみました。
コンバートクオリティとしてはまだまだでしたが…。
やや不完全燃焼ですが、ひとまずここ最近取り組んでいた「生成AIコンバートフロー」は暫定フローの確立とフロー自体の拡張ができるまでいけたのでここで終了としたいと思っています。
プロシージャルなコンバートの部分はいずれ、ポートフォリオ化するためにブラッシュアップします。
今回の記事のようにHoudiniでパイプラインを作ってしまえばある程度方針を定めたディテールへのパイプラインに拡張することが非常に容易です。
生成AIソースが無限に生まれていくものの、ゲームデータは制約が多いのでAI生成モデルをゲーム用途で使う場合しばらくHoudiniの利用は増えていく気がします。

fish_ball
プロシージャル魚類