AIゲーム開発研究室
セグメンテーションとリトポロジーの実験
AIゲーム開発研究室
3Dモデル制作ドキュメント
第2回 生成した3Dモデルをゲーム用モデルへ近づける
― Smart Meshとリトポロジーの実験 ―
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
前回は、2Dキャラクター「パンタ」の正面画像1枚から、Tripo Studioを使用して高精細な3Dモデルを生成しました。
生成されたモデルは、正面から見ると非常に完成度が高く、顔、目、耳、体形、スカーフ、リュックなど、パンタの特徴がかなり忠実に立体化されていました。
さらにモデルをセグメンテーションし、一体として生成された3Dモデルを、頭部、胴体、腕、脚、スカーフ、リュックなどの複数の領域としてAIが認識できることも確認しました。
ここまでが前回の実験です。
今回の実験は、この高精細なパンタの3Dモデルを、
「実際にゲームで使用できるモデルへ近づけることはできるのか」
というところから始めました。
そこで最初に注目したのが、モデルのポリゴン数です。
1.生成されたモデルのポリゴン数
前回生成したパンタは、見た目としては非常に良好でした。
しかしモデルの情報を確認すると、
面数 1,901,487
頂点数 1,064,178
という非常に高密度な3Dモデルになっていました。
細かな毛並みまで立体形状として表現されているため、高密度になること自体は理解できます。
しかし、これをリアルタイムで動かすゲームキャラクターとして考えれば、そのまま使用するには非常に重いモデルです。
そこで、
高精細な外見をできるだけ維持しながら、モデルを軽量化できないか
を調べることにしました。
2.Smart Meshを試す
最初に試したのが、Tripo Studioの「Smart Mesh」です。
Smart Meshの画面では、
クアッド/トライアングル
を選択でき、さらにポリカウントを設定できます。
今回は、
クアッド
ポリカウント 5000
を設定しました。
画面だけを見ると、現在開いている高精細なパンタを、低ポリゴンモデルへ変換できるようにも見えます。
そこで「生成」を実行してみました。
ところが、
「進む前にアップロードしてください」
というメッセージが表示されました。
ここで、Smart Meshは現在開いているパンタの3Dモデルを直接軽量化する機能ではなく、新しく画像を入力して3Dモデルを生成するための機能であることが分かりました。
つまり今回の目的である、
「すでに生成した高精細パンタをゲーム用モデルへ軽量化する」
ためには、別の方法が必要です。
そこで次に「リトポロジー」を試すことにしました。
3.リトポロジーを試す
Tripo Studioには、生成済みの3Dモデルに対して「リトポロジー」を行う機能があります。
リトポロジー画面では、
クアッド
トライアングル
を選択でき、目標とするポリゴン数を設定できます。
今回は、
クアッド
ポリゴンカウント 10,000
を設定しました。
最初の処理では、
「タスク中にエラーが発生しました」
というメッセージが表示され、処理を完了することができませんでした。
そこで、約190万面という非常に高密度なモデル全体を一度に処理するのではなく、前回行ったセグメンテーションを利用して、一部分だけを処理できないかと考えました。
4.前回のセグメンテーションを利用する
前回の実験では、パンタの3Dモデルをセグメンテーションしています。
そこで今回は、その結果をリトポロジーに利用できるか試しました。
まず鼻の部分を選択しました。
鼻だけが選択状態になり、画面には、
選択部分 21,921面 / 全体1,901,487面
選択部分 12,188頂点 / 全体1,064,178頂点
と表示されました。
この状態でリトポロジー画面へ移動しても、選択状態は維持されました。
つまり、前回行ったセグメンテーションは単なる色分けではなく、
選択したセグメントを、その後の処理対象として利用できる
ことが確認できました。
5.胴体部分だけをリトポロジーする
次に、鼻よりも大きな領域で実験するため、胴体部分を選択しました。
選択された部分は、
408,638面
212,663頂点
でした。
この状態でリトポロジーへ移動し、
クアッド
ポリゴンカウント 10,000
を指定して処理を実行しました。
今回は処理が完了しました。
処理後に表示されたモデル全体の数値は、
面数 1,502,084
頂点数 763,144
となりました。
ここで重要なのは、モデル全体が10,000ポリゴンになったわけではないということです。
今回リトポロジーされたのは、選択していた部分だけです。
それ以外の部分には、元の高密度な形状が残っています。
この実験によって、
Tripo Studioでは、セグメンテーションで選択した部分だけをリトポロジーすることができる
ことが確認できました。
6.部分リトポロジーによって隙間が発生した
処理自体は成功しました。
しかし、モデルを拡大して確認すると、新しい問題が見つかりました。
特に目立ったのが、リュックと胴体の境界部分です。
そこに、細い隙間のようなものが発生していました。
さらに脚と胴体の境界付近にも、不自然な接続部分が確認できました。
今回の処理では、選択した部分だけが新しいメッシュへ再構成されています。
一方、その周囲には元の高密度なメッシュが残っています。
そのため、異なる状態のメッシュが接する境界部分に、ずれが生じた可能性があります。
少なくとも今回のモデルでは、
部分リトポロジーには成功したが、そのままゲーム用モデルとして使用できる状態にはならなかった
という結果になりました。
7.リトポロジーを元に戻せるか
隙間が発生したため、元の状態へ戻すことを考えました。
そこでUndoを試しました。
しかしUndoボタンにカーソルを合わせると操作できないことを示すマークが表示され、今回の処理をUndoすることはできませんでした。
そこで、
まだ明示的に保存していないのだから、一度Tripo Studioを終了して開き直せば、元へ戻るのではないか
と考えました。
Tripo Studioを閉じ、再び「資産」からパンタを開きました。
ところが、表示された数値は、
面数 1,502,084
頂点数 763,144
のままでした。
つまり今回の実験では、明示的に保存操作を行っていなくても、完了したリトポロジーの結果はモデル資産に反映されていました。
また、通常のUndoによって元へ戻すこともできませんでした。
少なくとも今回の操作環境では、
「とりあえず処理して、問題があればUndoすればよい」
という方法では扱えないことが分かりました。
8.そもそも元の3Dモデルは正しいのか
ここまでゲーム用モデルへの軽量化を試してきました。
しかし、ここで一度、もっと根本的な問題へ戻ることにしました。
今回使用しているパンタの3Dモデルは、もともと正面画像1枚だけから生成したものです。
正面から見たパンタは非常によくできています。
口の中まで実際の立体形状として作られており、顔や体形についても、元画像の特徴をかなりよく再現しています。
しかしモデルを横や後ろから見ると、別の問題があります。
正面画像には写っていない部分を、AIが推測して作っているからです。
特に背面のリュックは公式デザインとは異なり、さらに正面画像には存在しない尻尾まで生成されていました。
これは単純にAIが間違えたというよりも、正面画像しか与えていない以上、見えない部分はAIが推測するしかないという問題です。
そこで、
軽量化の方法をさらに追究する前に、まず公式デザインに近い3Dモデルそのものを作るべきではないか
と考えました。
9.公式4面図から3Dモデルを作る
パンタには、すでに公式キャラクター資料として4面図があります。
正面
右側面
背面
左側面
です。
この4面図には、正面画像だけでは分からなかったリュックの形状や、側面・背面から見た体形なども描かれています。
そこで次の実験では、この4面図から、
正面・右側面・背面・左側面をそれぞれ独立した4枚の画像として準備し、複数画像からパンタの3Dモデルを生成する
ことにしました。
すでに今回、正面画像1枚から生成したモデルがあります。
したがって次に4方向の画像からモデルを生成すれば、
正面画像1枚からAIが推測して作ったモデル
と、
人間が確定した4方向のデザインを与えてAIが作ったモデル
を直接比較できます。
これは、AIによる2Dキャラクターの3D化を考える上でも重要な比較実験になります。
10.有料プランへ移行する
Tripo Studioで複数画像からの3D生成を確認したところ、この機能を利用するには有料プランへの移行が必要でした。
今回の研究目的は、
「無料でどこまでできるか」
を調べることではありません。
目的は、
AIを利用して、実際にゲームで使用できる3Dキャラクターを制作する方法を構築すること
です。
そのため、必要な機能であれば実際に使用して検証することにしました。
今回は、まず1か月間の有料プランを契約しました。
契約後、利用可能なクレジットは、
3,135クレジット
となりました。
これによって、公式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ゲームキャラクターへ変換できるのか。
次の実験では、そこを検証します。
第1回 2Dキャラクター1枚から3Dモデルを生成する
AIゲーム開発研究室
3Dモデル制作ドキュメント
第1回 2Dキャラクター1枚から3Dモデルを生成する
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
これまで「おむすび山のなかまたち」のゲーム制作では、主として2Dゲーム素材の制作を進めてきた。
今回から、新たにAIを利用した3Dモデル制作の検証を開始する。
使用するのは、AIによって画像から3Dモデルを生成できる Tripo Studio である。
最初の実験では、「おむすび山のなかまたち」のキャラクターであるパンタを使用した。
パンタについては、すでに正面・右側面・背面・左側面からなる公式4面図を制作している。
しかし今回は、あえて4面図すべてをAIには与えない。
正面画像1枚だけをTripoへ入力し、見えていない側面や背面をAIがどのように3D化するのかを検証する。
これを、今後のAIによる3Dゲーム素材制作研究の最初の基準実験とする。
1 公式4面図を基準資料とする
今回使用するパンタには、すでに公式4面図が存在する。
正面だけでなく、左右側面、背面のデザインまで人間側では確定している。
この4面図は今回、すべてをTripoへの入力画像として使用するためのものではない。
AIが生成した3Dモデルが、本来のパンタの形状やデザインとどの程度一致するのかを検証するための基準資料として使用する。
特に重要なのが、背面の青いリュックである。
公式デザインでは、リュックの形状、ポケット、フラップ、金具などが明確に設定されている。
これらは正面からはほとんど見ることができない。
AIが正面画像だけから、この背面をどのように推測するのかを見ることにした。
2 正面画像1枚だけを入力する
Tripo Studioへ入力したのは、公式4面図から用意したパンタの正面画像1枚である。
画像にはパンタの全身が写っている。
顔、胴体、腕、脚、緑色のスカーフ、そして青いリュックの肩ベルトは確認できる。
しかし、リュック本体や尻尾など、背面の情報は見えない。
つまりTripoは、正面から見えない部分については自ら3D形状を推定しなければならない。
今回は、この条件を意図的に維持した。
3 HDモデルとして生成する
Tripo Studioの「HDモデル」を使用した。
生成時の主な設定は次のとおりである。
- ウルトラメッシュ品質 ON
- AIコンプリート OFF
- テクスチャ ON
- テクスチャ品質 4K
- 照明を除去する ON
- PBR ON
- 位相 トライアングル
- ポリカウント上限 2,000,000
生成には55クレジットを使用した。
生成後のモデルは、
面 1,901,487
頂点 977,591
という非常に高密度な3Dモデルとなった。
正面から見ると、パンタの特徴はかなりよく再現されている。
大きな頭、丸い身体、耳、目の周囲の黒い模様、鼻、口、腕、脚、緑色のスカーフ、青い肩ベルトなどが3D形状として成立した。
さらに拡大して確認すると、口は単なる平面的なテクスチャではなかった。
鼻が前方へ突出し、口には奥行きがあり、口腔や舌まで立体的に生成されている。
正面画像から確認できる部分については、かなり高度な3D化が行われていることが分かった。
4 モデルを回転させて側面を確認する
生成したモデルはTripo Studio上で自由に回転させることができる。
そこで、正面から側面へモデルを回転させた。
横から見ると、正面画像だけでは分かりにくかった頭部の厚み、鼻先の突出、腹部の丸みなどが立体として作られている。
青い肩ベルトも身体の側面を通り、背中方向へ続いている。
AIは単純に正面画像を厚く押し出したのではなく、キャラクターとして成立する立体形状を推定していることが分かる。
5 背面ではAI独自の補完が行われた
次に、モデルを180度回転させて背面を確認した。
ここで大きな違いが現れた。
公式4面図では、背中には青いリュックが存在する。
ところが生成されたモデルでは、正面から確認できた青い肩ベルトは背面方向まで作られているものの、公式デザインと同じリュックは再現されなかった。
代わりに、背中中央に単純化された大きな形状が生成されている。
これは当然ともいえる。
今回Tripoに与えた正面画像には、リュック本体の形状が写っていないからである。
AIは、
「肩ベルトがあるため、背中には何かが存在する」
というところまでは補完したと考えられる。
しかし、その具体的な形状を公式デザインどおりに知ることはできない。
6 毛並みは360度均一には生成されなかった
もう一つ、以前Tripoを試した際にも確認していた現象が、今回再び発生した。
正面から見える頭部の輪郭には、細かな毛束による凹凸が立体形状として作られている。
しかし、その毛並みは頭部全体へ均等に続いていない。
側面から後頭部へ回り込むにつれて毛束の凹凸が減少し、背面側は比較的滑らかな形状となった。
つまり、
正面画像で観測できる毛並みの形状を、AIが自動的に360度全体へ展開するわけではない
ことが分かった。
これは単なるテクスチャの問題ではなく、メッシュそのものの形状に現れている。
7 AIによるセグメンテーションを試す
次に、Tripo Studioのセグメンテーション機能を試した。
今回は「バランス」を選択した。
セグメンテーションを実行すると、パンタの3Dモデルが多数の色で表示された。
頭部、耳、目、目の周囲、鼻や口、左右の腕、脚、胴体、スカーフ、肩ベルトなどが、それぞれ異なるパーツとして認識されている。
一体の高密度モデルとして生成されたパンタを、AIが再び構造として解析し、複数の編集可能な部分へ分けていることが分かる。
8 背面をセグメント表示して分かったこと
セグメンテーション状態のまま、モデルを背面へ回転させた。
ここで、通常表示では分かりにくかったAIの推定結果が明瞭になった。
背中中央に生成されていた大きな形状は、胴体とは別のパーツとして認識されていた。
左右の肩ベルトも別パーツとして存在する。
つまりAIは、少なくとも背中側に身体とは異なる何らかの装備物を生成していたことになる。
さらに興味深いことに、腰の下には丸い尻尾状の3D形状が生成されていた。
これは入力した正面画像にはまったく写っていない。
したがって今回確認できた事実は、
Tripoが入力画像に存在しない背面形状まで補完して3Dモデルを成立させている
ということである。
ただし、AIが「パンダには尻尾がある」と意味的に判断して生成したのか、それとも学習された3D形状の傾向から補完したのかは、この実験だけでは判断できない。
9 今回の実験から分かったこと
今回の実験では、2Dキャラクターの正面画像1枚だけから、かなり完成度の高い3Dモデルを生成することができた。
特に、正面画像から確認できる顔、身体、腕、脚、スカーフなどは立体としてよく成立している。
一方、見えていない背面では状況が異なった。
AIは単に背面を空白にするのではなく、3Dキャラクターとして成立するように形状を補完した。
しかし、それは制作者が決定している公式デザインと一致するとは限らない。
今回の結果を整理すると、
画像から直接確認できる情報
→ 比較的忠実に3D化される。
画像から存在を推測できる情報
→ AIによって補完される場合がある。
画像から具体的な形状を判断できない情報
→ AI独自の形状として生成される可能性がある。
毛並みなどの細かな立体情報
→ 可視領域では再現されても、不可視領域まで同じ状態で連続するとは限らない。
という特徴が確認できた。
10 「失敗」ではなく、AIの役割を知る
今回、背面のリュックは公式デザインどおりにはならなかった。
頭部の毛並みも360度均一には生成されなかった。
しかし、これを単純に「AIでは正しく作れなかった」と評価するべきではない。
AIに与えられていない情報を、AIが正確に再現することはできない。
むしろ今回重要なのは、情報が存在しないにもかかわらず、AIが3Dモデルとして破綻しないよう背面まで補完したことである。
正面画像には存在しなかった尻尾状の形状まで生成されたことも、その特徴を示している。
AIによる3Dモデル制作では、
「AIが何を作れるか」だけではなく、「AIへどの情報を与える必要があるのか」
を設計することが重要になる。
次の実験へ
今回は、あえて正面画像1枚だけから3Dモデルを生成した。
しかし、人間側にはパンタの公式4面図が存在する。
今後、正面・左右側面・背面という複数方向の情報をAIへ与えることができれば、今回AIが独自に補完した背面形状を、公式デザインへ近づけられる可能性がある。
また、今回生成された約190万面の高密度モデルを、そのままゲームへ使用するわけではない。
今後はTripo StudioのSmart Meshやリトポロジー、テクスチャ、リギング、アニメーションなども順次検証し、
2D公式キャラクター
→ AIによる3D原型生成
→ ゲーム用3Dモデルへの最適化
→ アニメーション
→ Blenderでの検証・必要な修正
→ Unityへの実装
というAI時代の3Dゲーム素材制作ワークフローを、実制作を通して検証していく。




















