AIゲーム開発研究室

2026-09-12 17:56:00

セグメンテーションとリトポロジーの実験

AIゲーム開発研究室

3Dモデル制作ドキュメント


第2回 生成した3Dモデルをゲーム用モデルへ近づける

― Smart Meshとリトポロジーの実験 ―

研究代表 大川 博
主任研究員 Arc(ChatGPT)


はじめに

前回は、2Dキャラクター「パンタ」の正面画像1枚から、Tripo Studioを使用して高精細な3Dモデルを生成しました。

生成されたモデルは、正面から見ると非常に完成度が高く、顔、目、耳、体形、スカーフ、リュックなど、パンタの特徴がかなり忠実に立体化されていました。

さらにモデルをセグメンテーションし、一体として生成された3Dモデルを、頭部、胴体、腕、脚、スカーフ、リュックなどの複数の領域としてAIが認識できることも確認しました。

ここまでが前回の実験です。

今回の実験は、この高精細なパンタの3Dモデルを、

「実際にゲームで使用できるモデルへ近づけることはできるのか」

というところから始めました。

そこで最初に注目したのが、モデルのポリゴン数です。


1.生成されたモデルのポリゴン数

前回生成したパンタは、見た目としては非常に良好でした。

しかしモデルの情報を確認すると、

面数 1,901,487
頂点数 1,064,178

という非常に高密度な3Dモデルになっていました。

 

01.png

 

細かな毛並みまで立体形状として表現されているため、高密度になること自体は理解できます。

しかし、これをリアルタイムで動かすゲームキャラクターとして考えれば、そのまま使用するには非常に重いモデルです。

そこで、

高精細な外見をできるだけ維持しながら、モデルを軽量化できないか

を調べることにしました。


2.Smart Meshを試す

最初に試したのが、Tripo Studioの「Smart Mesh」です。

Smart Meshの画面では、

クアッド/トライアングル

を選択でき、さらにポリカウントを設定できます。

今回は、

クアッド
ポリカウント 5000

を設定しました。

 

02.png

 

画面だけを見ると、現在開いている高精細なパンタを、低ポリゴンモデルへ変換できるようにも見えます。

そこで「生成」を実行してみました。

ところが、

「進む前にアップロードしてください」

というメッセージが表示されました。

ここで、Smart Meshは現在開いているパンタの3Dモデルを直接軽量化する機能ではなく、新しく画像を入力して3Dモデルを生成するための機能であることが分かりました。

つまり今回の目的である、

「すでに生成した高精細パンタをゲーム用モデルへ軽量化する」

ためには、別の方法が必要です。

そこで次に「リトポロジー」を試すことにしました。


3.リトポロジーを試す

Tripo Studioには、生成済みの3Dモデルに対して「リトポロジー」を行う機能があります。

リトポロジー画面では、

クアッド
トライアングル

を選択でき、目標とするポリゴン数を設定できます。

今回は、

クアッド
ポリゴンカウント 10,000

を設定しました。

 

07.png

 

最初の処理では、

「タスク中にエラーが発生しました」

というメッセージが表示され、処理を完了することができませんでした。

そこで、約190万面という非常に高密度なモデル全体を一度に処理するのではなく、前回行ったセグメンテーションを利用して、一部分だけを処理できないかと考えました。


4.前回のセグメンテーションを利用する

前回の実験では、パンタの3Dモデルをセグメンテーションしています。

そこで今回は、その結果をリトポロジーに利用できるか試しました。

まず鼻の部分を選択しました。

鼻だけが選択状態になり、画面には、

選択部分 21,921面 / 全体1,901,487面
選択部分 12,188頂点 / 全体1,064,178頂点

と表示されました。

 

14.png

 

この状態でリトポロジー画面へ移動しても、選択状態は維持されました。

つまり、前回行ったセグメンテーションは単なる色分けではなく、

選択したセグメントを、その後の処理対象として利用できる

ことが確認できました。


5.胴体部分だけをリトポロジーする

次に、鼻よりも大きな領域で実験するため、胴体部分を選択しました。

選択された部分は、

408,638面
212,663頂点

でした。

 

16.png

 

この状態でリトポロジーへ移動し、

クアッド
ポリゴンカウント 10,000

を指定して処理を実行しました。

今回は処理が完了しました。

処理後に表示されたモデル全体の数値は、

面数 1,502,084
頂点数 763,144

となりました。

 

18.png

 

ここで重要なのは、モデル全体が10,000ポリゴンになったわけではないということです。

今回リトポロジーされたのは、選択していた部分だけです。

それ以外の部分には、元の高密度な形状が残っています。

この実験によって、

Tripo Studioでは、セグメンテーションで選択した部分だけをリトポロジーすることができる

ことが確認できました。


6.部分リトポロジーによって隙間が発生した

処理自体は成功しました。

しかし、モデルを拡大して確認すると、新しい問題が見つかりました。

特に目立ったのが、リュックと胴体の境界部分です。

そこに、細い隙間のようなものが発生していました。

 

19.png

 

さらに脚と胴体の境界付近にも、不自然な接続部分が確認できました。

 

20.png

 

今回の処理では、選択した部分だけが新しいメッシュへ再構成されています。

一方、その周囲には元の高密度なメッシュが残っています。

そのため、異なる状態のメッシュが接する境界部分に、ずれが生じた可能性があります。

少なくとも今回のモデルでは、

部分リトポロジーには成功したが、そのままゲーム用モデルとして使用できる状態にはならなかった

という結果になりました。


7.リトポロジーを元に戻せるか

隙間が発生したため、元の状態へ戻すことを考えました。

そこでUndoを試しました。

しかしUndoボタンにカーソルを合わせると操作できないことを示すマークが表示され、今回の処理をUndoすることはできませんでした。

そこで、

まだ明示的に保存していないのだから、一度Tripo Studioを終了して開き直せば、元へ戻るのではないか

と考えました。

Tripo Studioを閉じ、再び「資産」からパンタを開きました。

ところが、表示された数値は、

面数 1,502,084
頂点数 763,144

のままでした。

 

23.png

 

つまり今回の実験では、明示的に保存操作を行っていなくても、完了したリトポロジーの結果はモデル資産に反映されていました。

また、通常のUndoによって元へ戻すこともできませんでした。

少なくとも今回の操作環境では、

「とりあえず処理して、問題があればUndoすればよい」

という方法では扱えないことが分かりました。


8.そもそも元の3Dモデルは正しいのか

ここまでゲーム用モデルへの軽量化を試してきました。

しかし、ここで一度、もっと根本的な問題へ戻ることにしました。

今回使用しているパンタの3Dモデルは、もともと正面画像1枚だけから生成したものです。

正面から見たパンタは非常によくできています。

口の中まで実際の立体形状として作られており、顔や体形についても、元画像の特徴をかなりよく再現しています。

しかしモデルを横や後ろから見ると、別の問題があります。

正面画像には写っていない部分を、AIが推測して作っているからです。

特に背面のリュックは公式デザインとは異なり、さらに正面画像には存在しない尻尾まで生成されていました。

これは単純にAIが間違えたというよりも、正面画像しか与えていない以上、見えない部分はAIが推測するしかないという問題です。

そこで、

軽量化の方法をさらに追究する前に、まず公式デザインに近い3Dモデルそのものを作るべきではないか

と考えました。


9.公式4面図から3Dモデルを作る

パンタには、すでに公式キャラクター資料として4面図があります。

正面
右側面
背面
左側面

です。

パンタ公式.png

 

この4面図には、正面画像だけでは分からなかったリュックの形状や、側面・背面から見た体形なども描かれています。

そこで次の実験では、この4面図から、

正面・右側面・背面・左側面をそれぞれ独立した4枚の画像として準備し、複数画像からパンタの3Dモデルを生成する

ことにしました。

すでに今回、正面画像1枚から生成したモデルがあります。

したがって次に4方向の画像からモデルを生成すれば、

正面画像1枚からAIが推測して作ったモデル

と、

人間が確定した4方向のデザインを与えてAIが作ったモデル

を直接比較できます。

これは、AIによる2Dキャラクターの3D化を考える上でも重要な比較実験になります。


10.有料プランへ移行する

Tripo Studioで複数画像からの3D生成を確認したところ、この機能を利用するには有料プランへの移行が必要でした。

今回の研究目的は、

「無料でどこまでできるか」

を調べることではありません。

目的は、

AIを利用して、実際にゲームで使用できる3Dキャラクターを制作する方法を構築すること

です。

そのため、必要な機能であれば実際に使用して検証することにしました。

今回は、まず1か月間の有料プランを契約しました。

契約後、利用可能なクレジットは、

3,135クレジット

となりました。

 

29.png

 

これによって、公式4面図を使用した複数画像からの3Dモデル生成を実験できる環境が整いました。


11.今回の実験で分かったこと

今回の実験は、最初から決められた工程を順番に実行したものではありません。

高精細な3Dモデルをゲームで使えるようにしたい。

そのためにSmart Meshを試してみる。

しかし、現在のモデルを直接処理する機能ではなかった。

そこでリトポロジーを試す。

モデル全体では処理に失敗する。

前回のセグメンテーションを利用して、一部分だけを処理してみる。

部分リトポロジーには成功する。

しかし今度は境界部分に隙間が発生する。

元へ戻そうとする。

ところが通常のUndoでは戻せず、再起動しても処理結果が残っている。

そして最終的に、

「そもそも正面画像1枚から作った3Dモデルを、このまま加工していくことが最善なのか」

というところまで戻ることになりました。

これは失敗の連続ではありません。

むしろ、実際にAIと3Dモデルを制作してみなければ分からなかったことが、次々と明らかになった過程です。

AIによる3Dモデル制作では、

生成 → 確認 → 加工 → 問題発見 → 方法変更 → 再生成

という工程を繰り返しながら、完成形へ近づいていく必要があります。


おわりに

今回の実験によって、AIで3Dモデルを生成することと、ゲームで実際に使用できる3Dキャラクターを作ることは別の問題であることが、少しずつ見えてきました。

正面画像1枚からでも、AIは驚くほど完成度の高い3Dモデルを生成できます。

しかし、見えない部分はAIが推測します。

高精細なモデルを軽量化すれば、今度はメッシュ構造の問題が発生する可能性があります。

さらに、加工した結果を簡単に元へ戻せない場合もあります。

そこで次は、これまでのモデルを無理に修正し続けるのではなく、生成の出発点そのものを改善します。

パンタには、人間が制作し、公式デザインとして確定した4面図があります。

次回は、その4方向の情報をAIへ与えます。

正面画像1枚を見たAIが、見えないパンタを想像する。

そこから、

人間が正面・側面・背面まで設計したパンタを、AIが3Dへ変換する。

制作方法を、ここで一段階進めます。

そして、この比較によって、

人間が設計した2Dキャラクターを、AIによってどこまで忠実に3Dゲームキャラクターへ変換できるのか。

 

次の実験では、そこを検証します。