AIゲーム開発研究室
第6回 AIが生成した3Dモデルの内部構造を調べる
AIゲーム開発研究室
3Dモデル制作ドキュメント
第6回 AIが生成した3Dモデルの内部構造を調べる
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
前回は、パンタの3Dモデルをゲーム用に軽量化するため、3種類のモデルを制作した。
Aタイプは、最初から低ポリゴン設定で生成したモデル。
9,826 faces
Bタイプは、高密度設定で生成したオリジナルモデル。
1,965,676 faces
Cタイプは、BタイプをSmart Retopoによって軽量化したモデル。
14,204 faces
この3モデルをTripo Studio上で比較すると、興味深い違いが見つかった。
Aタイプは約1万facesという低ポリゴンでありながら、パンタの基本形状を十分に再現していた。
一方、約196万facesのBタイプでは、全身に細かな凹凸があり、毛並みの印象が強く表現されていた。
そして最も興味深かったのがCタイプである。
約196万facesから約1万4千facesまで大幅に削減されているにもかかわらず、Tripo Studio上では、AタイプよりもBタイプに近い毛並みを維持しているように見えた。
なぜなのか。
前回は、その疑問を残したところで終了した。
今回は、A・B・CのモデルをBlenderへ読み込み、実際の3Dデータを調べる。
約196万facesは、どこに使われているのか。
AタイプとCタイプでは、内部のメッシュ構造がどのように違うのか。
そして、Cタイプはなぜ高密度モデルに近く見えるのか。
Tripo Studio上の完成した外観を見るだけではなく、その内部へ入って検証することにした。
1 3DモデルをBlenderへ読み込む
まず、TripoからエクスポートしていたモデルをBlenderへ読み込んだ。
今回使用するのは、前回制作したA・B・Cの3モデルである。
Aタイプ
Panta_Apose_9826faces_Direct
Bタイプ
Panta_Apose_HD_1965676faces_original
Cタイプ
Panta_Apose_14204faces_SmartRetopo
Blenderへ読み込めば、Tripo Studio上では分からなかったメッシュそのものを直接確認できる。
そこで、まずワイヤーフレームを表示して、モデル表面がどのようなポリゴンで構成されているのかを調べることにした。
2 Aタイプのメッシュを見る
最初に確認したのは、最初から低ポリゴン設定で生成したAタイプである。
Aタイプは、
9,826 faces
で構成されている。
ワイヤーフレームを表示すると、頭、顔、胴体、腕、リュックなどが比較的大きな三角形のポリゴンによって構成されていることが確認できた。
特に顔やリュック周辺を見ると、キャラクターの形状を維持するために必要な部分へポリゴンが配置されていることが分かる。
Tripo Studio上では十分に滑らかなモデルに見えていたが、メッシュそのものを見ると、約1万facesという限られたポリゴン数の中で立体形状が作られていることがよく分かる。
つまりAタイプでは、
約1万facesを使って、パンタそのものの立体形状を構成している
と考えることができる。
3 Cタイプのメッシュを見る
次に、Smart Retopoによって生成されたCタイプを確認した。
Cタイプは、
14,204 faces
である。
Aタイプの9,826 facesよりは多いが、どちらも1万faces台のモデルである。
しかしワイヤーフレームを比較すると、AタイプとCタイプは単純に同じモデルのポリゴン数だけを変えたものではないことが分かる。
特に腕、脇、肩、リュック周辺を拡大して確認した。
Aタイプでは、最初から低ポリゴンモデルとして3D形状が構成されている。
一方Cタイプは、約196万facesの高密度モデルを一度生成し、それをSmart Retopoによって再構成したモデルである。
実際に腕と胴体の間を確認すると、どちらも腕は胴体から独立しており、リギングを行うために必要となる空間も維持されている。
Smart Retopoによる大幅なポリゴン削減を行っても、今回のモデルでは、Aポーズ4面図によって作られた腕と胴体の基本的な位置関係は失われていなかった。
これは、今後リギングとアニメーションへ進むうえでも重要な結果である。
4 では、毛並みの違いはどこから来るのか
ここで問題になるのが、前回から残っていた疑問である。
AタイプとCタイプは、どちらも1万faces台である。
それにもかかわらず、Tripo Studio上ではCタイプの方が、高密度のBタイプに近い毛並みを持っているように見えた。
当初は、
Smart Retopoによって、高密度モデルの細かな凹凸が効率よく低ポリゴンへ置き換えられたのではないか
とも考えた。
しかしBlenderでモデルを調べていくと、それだけでは説明できないことが分かってきた。
3Dモデルの見た目を作っているのは、ポリゴンだけではなかった。
Tripoからエクスポートされたモデルには、3Dメッシュとともに複数のテクスチャ画像が含まれていたのである。
5 Tripoから出力されていた4種類のテクスチャ
エクスポートされたデータを確認すると、モデル本体とは別に、
Base Color
Normal
Metallic
Roughness
に相当する情報が含まれていた。
Base Colorは、パンタの白黒の毛、青いリュック、緑のスカーフなど、基本的な色を表現する。
Normal Mapは、実際のポリゴンを増やさなくても、表面に細かな凹凸があるように見せるための情報として利用できる。
Metallicは、表面がどの程度金属的に振る舞うかを制御する。
Roughnessは、表面の粗さ、つまり光の反射の広がり方を制御する。
ここで、Cタイプが高密度モデルに近く見えていた理由を調べるための重要な手掛かりが見つかった。
6 Blenderへ読み込んだ直後のパンタが「飴細工」に見えた
Blenderへ最初にモデルを読み込んだとき、一つ気になることがあった。
パンタの表面が非常にテカテカして見えたのである。
毛で覆われたキャラクターというより、
飴細工のような質感
に見えた。
当初は、
「なぜTripoはこんな質感にしているのだろう」
と思った。
しかしマテリアルノードを確認すると、Blender上ではBase Colorだけが接続された状態になっており、Tripoから出力されていたほかのテクスチャ情報が、すべて同じように再現されているわけではなかった。
つまり、Blenderへモデルを読み込んだだけでは、Tripo Studio上で見ていたマテリアル表現がそのまま完成した状態で再現されるとは限らない。
そこで、テクスチャを一つずつ確認しながら、BlenderのPrincipled BSDFへ接続していくことにした。
7 Normal Mapを接続する
まずNormal Mapを接続した。
Normal用の画像テクスチャをNormal Mapノードへ接続し、その出力をPrincipled BSDFのNormalへ入力した。
最初に強さを大きく設定すると、パンタの表面に非常に激しい凹凸が現れた。
まるで全身が鋭く隆起したような状態になった。
これは、Normal Mapの効果そのものを確認するには非常に分かりやすい結果だった。
そこで強さを下げ、
0.25
と
0.5
でも比較した。
強さを弱めることで極端な凹凸は抑えられ、毛並みとして自然に感じられる範囲へ近づいていった。
ここで重要なのは、ポリゴンそのものを増やしたわけではないということである。
同じCタイプのメッシュでも、Normal Mapを使用することで、表面に細かな凹凸が存在するような見え方を作ることができた。
低ポリゴンモデルの外観は、ポリゴン数だけでは決まらない。
このことを、実際のモデル上で確認することができた。
8 RMテクスチャを調べる
次に、もう一つのテクスチャを調べた。
この画像は、そのまま一つの色画像として使用するものではなく、複数の情報をRGBチャンネルへ格納している可能性がある。
そこでBlenderの**「カラー分離」**ノードを使用し、RGBの各チャンネルを分離した。
そして、それぞれをPrincipled BSDFの
Metallic
Roughness
へ接続して、モデルの変化を確認した。
接続すると、それまで不自然にテカテカしていたパンタの表面が大きく変化した。
黒い毛、白い毛、リュックなどの表面反射が抑えられ、最初に見えていた「飴細工」のような印象が弱くなった。
Normal Mapだけではなく、表面の反射を制御する情報も、Tripo Studio上のパンタの見え方を構成していたのである。
9 テクスチャを接続するとパンタが戻ってきた
Base Color。
Normal Map。
MetallicとRoughnessに使用される情報。
これらを組み合わせると、Blender上のパンタは、最初に読み込んだときとは大きく異なる外観になった。
特にリュックを拡大すると、その違いが分かりやすい。
青い色が付いているだけではない。
縫い目、表面の細かな凹凸、光沢の違いなどによって、リュックという素材の質感が作られている。
同じことがパンタの毛にも起きている。
ここで、3Dモデルを見るときに、
「ポリゴン数が多いから高品質」
「ポリゴン数が少ないから低品質」
と単純には判断できない理由が見えてきた。
モデルの外観は、
メッシュ形状とテクスチャ情報の組み合わせ
によって作られている。
10 AタイプとCタイプの腕・脇を比較する
次に、ゲームキャラクターとして重要になる部分を確認した。
AタイプとCタイプについて、腕、肩、脇の内部構造をワイヤーフレームで比較した。
Aタイプは、最初から9,826 facesで生成されたモデルである。
Cタイプは、高密度モデルからSmart Retopoによって14,204 facesへ軽量化されたモデルである。
どちらも腕は胴体から分離しており、脇には空間が確保されている。
これは、以前制作した通常ポーズの3Dパンタとは大きく異なる。
今回使用したAポーズ4面図によって、腕を動かすための空間を2D資料の段階から用意したことが、低ポリゴン化した後のモデルにも反映されている。
もちろん、実際にアーマチュアを入れて腕を動かしたときに、どのように変形するかはまだ分からない。
しかし少なくとも静止状態のメッシュを見る限り、
Aポーズ4面図 → 3D生成 → Smart Retopo
という工程を経ても、腕と胴体を分離した基本構造は維持されていた。
11 約196万facesは何をしていたのか
今回の確認によって、前回生まれた疑問にも少しずつ答えが見えてきた。
Bタイプの約196万facesは、パンタの基本的なシルエットだけを作るために使われているわけではない。
高密度モデルでは、毛並みなどの細かな表面形状までメッシュとして表現されている。
一方Cタイプでは、その高密度モデルをSmart Retopoによって14,204 facesまで削減している。
それでも外観が大きく失われなかった背景には、低密度化されたメッシュだけではなく、Normal Mapなどのテクスチャ情報が見た目に寄与していることが、今回のBlender上の確認から見えてきた。
ただし、
高密度モデルのどの情報をSmart Retopoがどのように低密度メッシュや各テクスチャへ受け渡しているのか
という内部処理そのものまでは、今回の観察だけから断定することはできない。
ここは重要なので、AI内部の処理を推測だけで結論づけないことにする。
今回確認できたのは、生成された結果である。
12 AI3Dモデル制作からAI3Dモデル制作研究へ
今回の作業を始めた目的は、もっと単純だった。
パンタの3Dモデルをゲームで使えるようにしたい。
そのためにポリゴン数を減らしたい。
それだけだった。
ところが、
高密度モデルを作る。
低ポリゴンモデルを作る。
Smart Retopoを行う。
3モデルを比較する。
Blenderへ読み込む。
メッシュを見る。
テクスチャを見る。
Normal Mapを接続する。
MetallicとRoughnessを確認する。
という工程を進めるうちに、調べている対象そのものが変わってきた。
単に、
「AIを使って3Dモデルを作る」
だけではなく、
「AIは3Dモデルをどのようなデータとして生成しているのか」
を調べ始めている。
これは、当初考えていた「AI3Dモデル制作ドキュメント」から、少しずつ、
AI3Dモデル制作研究
へ近づいているのかもしれない。
まとめ
今回、A・B・Cの3モデルをBlenderへ読み込み、Tripo Studio上の外観だけでは分からなかった内部構造を調べた。
そこで最も重要だったのは、
3Dモデルの見た目は、ポリゴン数だけで決まっているのではない
ということである。
高密度モデルでは、細かな毛並みまで実際の形状として作られている。
しかし、それをSmart Retopoによって大幅に軽量化したCタイプでも、Normal Mapなどの情報を利用することで、細かな表面表現を視覚的に維持できることが確認できた。
さらに、MetallicやRoughnessに関係する情報を適切に使用すると、Blenderへ読み込んだ直後に感じた不自然な光沢も大きく変化した。
そしてAタイプとCタイプのメッシュを比較すると、どちらも腕と胴体の間に空間が確保されていた。
これまで制作してきた、
Aポーズ4面図
が、単に3Dモデルを生成するためだけではなく、その後の低ポリゴン化を経ても、動かすことを想定した身体構造を維持するための資料として機能していることも確認できた。
今回の実験によって、
2Dキャラクター画像
↓
Aポーズ4面図
↓
高密度3Dモデル
↓
AIによるリトポロジー
↓
低ポリゴンメッシュ
↓
テクスチャによる表面情報の再現
という、一連の制作工程が見えてきた。
ただし、まだパンタは動いていない。
ゲームキャラクターとして本当に使えるかどうかを判断するためには、次の工程が必要である。
次回へ
次に確認するのは、いよいよリギングとアニメーションである。
約1万faces台まで軽量化したパンタへ骨格を入れ、実際に腕や脚を動かす。
そこで初めて、
Aポーズによって確保した脇の空間は正しく機能するのか。
Smart Retopoされたメッシュは、アニメーションによる変形に耐えられるのか。
テクスチャは、モデルが動いても自然に維持されるのか。
という問題を確認できる。
パンタは、2Dイラストから3Dモデルになった。
そして今回、その3Dモデルの内部まで見ることができた。
次に必要なのは、
そのパンタを、本当に動かすことである。




















