AIゲーム開発研究室
第5回 3Dゲームモデルのポリゴン数を削減する
AIゲーム開発研究室
3Dモデル制作ドキュメント
第5回 3Dゲームモデルのポリゴン数を削減する
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
前回は、3Dモデル制作を目的としたパンタのAポーズ4面図を新たに制作し、TripoのMulti-viewへ入力した。
その結果、両腕が胴体から独立し、リュックやしっぽなども立体形状として成立した3Dモデルを生成することができた。
しかし、生成されたモデルには新たな問題があった。
約196万faces
という非常に高密度なモデルになったことである。
高品質な3Dモデルとしては良好な結果だったが、ゲームキャラクターとして使用することを考えると、そのまま使用するにはポリゴン数が多い。
そこで今回は、パンタの外観をできるだけ維持しながら、ゲームで使用できる程度までポリゴン数を削減できるかを検証する。
その過程で、
最初から低ポリゴンで生成したモデル
と、
高密度モデルを生成してからAIで軽量化したモデル
では何が違うのか、という新たな比較実験を行うことにした。
1 最初から約1万facesでパンタを生成する
まず、高密度モデルを軽量化する前に比較対象を作ることにした。
前回使用したものと同じパンタのAポーズ4方向画像をTripoのMulti-viewへ入力する。
基本的な生成条件は高密度モデルを制作したときと同じにし、ポリゴンカウントだけを10,000に設定した。
生成されたパンタは、
9,826 faces
6,843 vertices
となった。
設定値10,000に対して、実際には9,826 facesのモデルが生成されたことになる。
モデルを正面、側面、背面、上面、下面から確認した。
顔、耳、腕、脚、リュック、しっぽなど、パンタを構成する主要な形状は良好に生成されている。
約1万facesというポリゴン数でありながら、キャラクターモデルとして十分に成立しているように見える。
Aタイプ
Direct生成モデル
9,826 faces / 6,843 vertices
この段階で、パンタのような比較的単純な形状のキャラクターであれば、最初から約1万faces程度でもかなり良好なモデルを生成できる可能性が確認できた。
2 約196万facesの高密度モデルを比較基準とする
次に、前回制作した高密度モデルを比較基準とした。
このモデルは、
1,965,676 faces
1,021,933 vertices
という非常に高密度なモデルである。
Bタイプ
高密度オリジナルモデル
1,965,676 faces / 1,021,933 vertices
Aタイプと比較すると、キャラクター全体の基本形状については大きな違いを感じない。
一方、頭部、耳、腕、腹部、脚などを見ると、高密度モデルでは表面に細かな凹凸が見られ、毛並みの印象が強くなっている。
ここで一つの疑問が生まれた。
約196万facesという膨大なポリゴンは、パンタの基本形状を作るためではなく、毛並みなどの細かな表面形状を表現するために多く使われているのではないか。
ただし、Tripo Studio上で外観を観察しただけでは、その内部構造までは分からない。
この点については、後にBlenderで実際のメッシュを確認することにする。
3 高密度モデルを保存する
高密度モデルへリトポロジーを行う前に、元のモデルを失わないよう保存することにした。
まずTripoから高密度モデルをOBJ形式でエクスポートした。
エクスポートされたZIPには、OBJモデル本体のほか、
Base Color
Metallic
Normal
Roughness
などのテクスチャデータも含まれていた。
さらにTripo Studio内でも「Save a Copy」を使用し、高密度モデルを複製した。
これにより、
保存用の高密度オリジナル
と、
リトポロジー実験用のコピー
を分けることができた。
これ以降の軽量化実験は、複製したモデルを使用して行う。
4 Smart Retopoで約1万facesへ軽量化する
複製した高密度モデルに対して、Tripoのリトポロジー機能を使用した。
今回は単純にポリゴンを削減するのではなく、
Smart Low Poly v2
を使用した。
設定は、
Topology:Triangle
Smart Low Poly v2:ON
Polygon Count:10,000
とした。
約196万facesの高密度モデルを、約1万facesまで一気に軽量化する実験である。
処理後に生成されたモデルは、
14,204 faces
16,687 vertices
となった。
10,000を指定したが、実際に生成されたモデルは14,204 facesとなった。
したがって、今回の記録では設定値ではなく、実測値14,204 facesとして扱う。
5 約196万facesから約1万4千facesへ
Smart Retopoによって生成されたモデルを、正面、左右側面、背面、上面、下面から確認した。
Cタイプ
Smart Retopoモデル
14,204 faces / 16,687 vertices
結果は予想以上に良好だった。
約196万facesから約1万4千facesまで大幅に削減されているにもかかわらず、パンタの顔、体形、腕、脚、リュック、しっぽなどの主要形状はかなり良好に維持されている。
Tripo Studio上で見る限り、高密度モデルとの外観上の差は、ポリゴン数の違いから想像していたほど大きくなかった。
約196万facesから約1万4千facesへの削減である。
ポリゴン数は元モデルの1%にも満たない。
それでも、キャラクターとしてのパンタの印象はほとんど失われていない。
6 A・B・Cの3タイプを比較する
今回、比較のために3種類のパンタが完成した。
Aタイプ
最初から低ポリゴン設定で生成
9,826 faces
Bタイプ
高密度設定で生成
1,965,676 faces
Cタイプ
BタイプをSmart Retopoで軽量化
14,204 faces
3タイプを同じ6方向から観察した。
ここで興味深い違いが確認できた。
Aタイプは約1万facesしかないにもかかわらず、顔、体形、リュックなどの形状は良好に生成されている。
しかし、高密度のBタイプと比較すると、毛並みの印象が異なる。
Aタイプでは表面が比較的滑らかに見える。
一方、Bタイプでは細かな表面の凹凸によって、毛並みのモフモフした印象が強く感じられる。
さらに興味深いのがCタイプである。
Cタイプも約1万4千facesまで削減されているにもかかわらず、Tripo Studio上で見ると、AタイプよりBタイプに近い毛並みの印象を維持しているように見える。
つまり、
最初から約1万facesで生成したモデル
と、
約196万facesの高密度モデルから約1万4千facesへ軽量化したモデル
は、単純にポリゴン数が近いからといって、同じ外観になるわけではなかった。
これは今回の実験で得られた最も興味深い結果の一つである。
7 なぜCタイプは高密度モデルに近く見えるのか
ここで新しい疑問が生まれた。
なぜ約1万4千facesしかないCタイプが、約196万facesのBタイプに近い毛並みを維持しているように見えるのか。
高密度モデルが持っていた細かな形状を、Smart Retopoが効率的に低密度メッシュへ再構築している可能性もある。
一方で、Normal Mapなどのテクスチャ情報が見た目に大きく寄与している可能性もある。
あるいは、その両方かもしれない。
現段階ではTripo Studio上の表示だけを観察しているため、原因を断定することはできない。
そこで、この疑問そのものを次の実験課題とすることにした。
8 3タイプをエクスポートする
A・B・Cの3モデルを、比較実験用としてすべてTripoからエクスポートした。
ファイル名は、それぞれの生成方法と実測faces数が分かるようにした。
Aタイプ
Panta_Apose_9826faces_Direct
Bタイプ
Panta_Apose_HD_1965676faces_original
Cタイプ
Panta_Apose_14204faces_SmartRetopo
これにより、Tripo Studio上の外観比較だけではなく、3モデルをBlenderへ読み込み、実際の3Dデータそのものを比較できる準備が整った。
まとめ
今回の実験では、パンタの3Dモデルをゲーム用に軽量化するため、3種類のモデルを制作した。
最初から約1万facesで生成したAタイプは、低ポリゴンでありながら、パンタの基本形状を十分に再現することができた。
高密度のBタイプでは、約196万facesを使用することで、特に毛並みなどの細かな表面表現が強く現れた。
そしてBタイプをSmart Retopoで軽量化したCタイプは、14,204 facesまで削減されたにもかかわらず、高密度モデルに近い外観をかなり維持した。
ここから、単純に、
「ゲーム用だから最初から低ポリゴンで生成すればよい」
とも、
「高密度モデルを作る必要がある」
とも、まだ結論づけることはできない。
むしろ今回の結果によって、
最初から低ポリゴンで生成する方法と、高密度モデルを生成してからAIで軽量化する方法では何が違うのか
という、より重要な研究課題が生まれた。
見た目だけでは、その答えは分からない。
次に確認する必要があるのは、モデルの内部構造である。
次回へ
次回は、今回エクスポートしたA・B・Cの3モデルをBlenderへ読み込む。
ワイヤーフレーム表示などを使用し、
約196万facesは実際にどこに使われているのか。
AタイプとCタイプでは、ポリゴンがどのように配置されているのか。
Cタイプの毛並みが高密度モデルに近く見える理由は何なのか。
メッシュ、マテリアル、Normal Mapを含むテクスチャ情報などを実際の3Dデータから比較する。
今回、約196万facesから約1万4千facesへ削減しても、外観上は大きな違いを感じないモデルが生成された。
では、その内部では何が起きているのか。
次回はBlenderを使用して、その違いを検証する。






















