AIゲーム開発研究室
第16回 3D生成AIの「誤り」を入力画像から修正する
AIゲーム開発研究室
3Dモデル制作ドキュメント
第16回
3D生成AIの「誤り」を入力画像から修正する
― Tripoの画像解釈と入力設計の検証 ―
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
前回までの検証では、リンのTポーズ4方向画像からTripoを使って3Dモデルを生成し、尻尾の先端が二つに分かれる、バッグが重複する、バッグやベルトが身体へ入り込むといった問題が確認された。
当初、これらは3D生成AIによる「生成エラー」のようにも見えた。
しかし、4方向画像をあらためて確認すると、それぞれの画像に描かれた情報には微妙な違いが存在していた。
そこで今回は、生成された3Dモデルを直接修正するのではなく、
「なぜTripoは、このような3D形状を生成したのか」
という視点から、入力画像そのものを検証することにした。
その結果、Tripoが入力画像をかなり正確に解析し、複数画像に存在する情報をできるだけ3D空間上で成立させようとしている可能性が見えてきた。
さらに、入力画像の情報を人間が意図的に整理・再配置することで、これまで解決できなかった問題を改善することができた。
今回は、その過程を記録する。
1.前回までに残った問題
リンのHDモデルでは、高精細な3Dモデルそのものは生成できていた。
しかし、キャラクター固有の形状について、いくつかの問題が残っていた。
特に大きかったのが、
- 尻尾の先端が二つに分かれる
- 尻尾が必要以上に広がる
- 左側のバッグが二つ生成される
- 右側のバッグが身体へ入り込む
- バッグのベルトが身体と一体化する
という問題である。
Tripoの再生成や修正機能も試したが、問題を完全に解決することはできなかった。
ここで、3Dモデル側を修正し続けるのではなく、原因となっている可能性のある入力画像側を調べることにした。
[画像①をここに配置]
前回生成したリンの問題箇所が確認できるHDモデル。
尻尾の分岐、左バッグの重複、右バッグの身体への入り込みなどが分かるスクリーンショット。
画像説明:
前回のHDモデル。尻尾の分岐、左バッグの重複、右バッグの身体への入り込みなどが確認できる。
2.右側面図を使わずに生成してみる
最初に着目したのは尻尾だった。
リンの大きく巻いた尻尾は、正面・側面・背面で見え方が大きく変化する。
そこで、
右側面図を使用しなければ、尻尾はどうなるのか
を試すことにした。
正面、左側面、背面の画像を使用し、右側面図を除外してTripoで再生成した。
すると、明確な変化が現れた。
二つに分かれていた尻尾が、一本の尻尾として生成された。
尻尾全体の形状も整理された。
これは、右側面図に含まれていた尻尾の情報が、他方向の尻尾情報との対応付けに影響していた可能性を示している。
ただし、新たな問題も発生した。
右側面図には右側のバッグが描かれていたため、その画像を除外すると、当然ながら右バッグの情報も失われた。
その結果、右バッグは生成されず、背面に描かれていたベルトだけが残った。
また、左バッグについては、依然として二つ存在していた。
[画像②をここに配置]
右側面図を使用せずに生成した3Dモデル。一本になった尻尾と、右バッグが消えた状態が分かる画像。
画像説明:
右側面図を除外して生成した結果。尻尾は一本になったが、右側面図に描かれていた右バッグも失われた。
3.左バッグが二つ生成された理由を考える
次に左バッグを検証した。
正面図と左側面図には、どちらにも左バッグが描かれている。
しかし、二つの画像を比較すると、バッグの位置と角度が完全には一致していない。
そこで、
Tripoは、この二つを同じバッグではなく、別々のバッグとして解釈したのではないか
と考えた。
この仮説を確認するため、正面図に描かれている左バッグの位置と角度を人間が修正した。
バッグを少し後方へ移動し、左側面図のバッグへつながるように位置関係を調整した。
また、この段階では右バッグを使用していなかったため、背面図に残っていた右バッグ用のベルトも削除した。
[画像③をここに配置]
修正前と修正後の正面図・背面図。正面図では左バッグの位置と角度を変更した部分、背面図では不要なベルトを削除した部分が分かるように配置する。
画像説明:
正面図の左バッグの位置と角度を調整し、左側面図との対応関係を修正した。
4.バッグが一つになった
修正した画像から再び3Dモデルを生成した。
結果は明確だった。
二つ存在していた左バッグが、一つになった。
しかもバッグそのもののデザインは維持されている。
入力画像の位置関係を変更したことで、Tripoが正面図と左側面図に描かれたバッグを、同一の物体として扱った可能性が考えられる。
これは今回の検証において重要な結果となった。
単にTripoが「バッグを二つ作る」という誤生成をしていたのではなく、
入力画像間の位置と角度の違いを、それぞれ別の物体として解釈していた可能性
が出てきたからである。
[画像④をここに配置]
左バッグが一つになった3Dモデル。左側面および正面からバッグの状態が確認できる画像。
画像説明:
入力画像のバッグ位置を調整した結果、二つ生成されていた左バッグが一つのバッグとして生成された。
5.しかし、リンには左右二つのバッグが必要である
ここで別の問題が生じた。
リンの公式デザインでは、バッグは左側だけではない。
左右両側にバッグを持っている。
したがって、右バッグを消した状態を完成形とすることはできない。
しかし、右側面図をそのまま戻せば、改善した尻尾が再び分岐する可能性がある。
そこで、右側面図そのものを使わないのではなく、
右側面図から尻尾だけを削除する
ことにした。
これによって、右側面図に必要なバッグ情報を残しながら、尻尾については他方向の画像から生成させることを試みた。
6.右バッグが身体へ入り込んだ理由
さらに右バッグについても、入力画像を再検討した。
これまでの4方向画像では、
右側面図には右バッグが描かれているが、正面図には右バッグが描かれていなかった。
ところがTripoは、右側面図に描かれたバッグを無視したわけではない。
3Dモデルには右バッグが存在していた。
ただし、そのバッグは身体へ入り込むように生成されていた。
ここで興味深い解釈が可能になる。
正面図では右バッグが見えない。
しかし右側面図では右バッグが存在する。
Tripoがこの二つの情報を同時に成立させようとした結果、
「正面からは見えないが、右側面からは存在が確認できる位置」
として、バッグを身体へ入り込ませるような形状を生成した可能性がある。
一見すると単純な生成ミスに見える。
しかし、入力画像を忠実に解釈しようとした結果であると考えると、むしろ合理的でもある。
7.右バッグの情報を正面図にも追加する
そこで、正面図にも右バッグを追加することにした。
これによって、
「右側にもバッグが存在する」
という情報を、右側面図だけではなく正面図からもTripoへ与える。
さらに右バッグを復活させるため、背面図についても、ベルトが描かれていた以前の画像へ戻した。
最終的な入力画像では、
右側面図からは尻尾を削除する。
一方で、
右バッグについては正面図にも情報を追加する。
そして、
背面図にはバッグへ続くベルトを残す。
という構成になった。
つまり、すべての情報をすべての画像へ描くのではなく、
3D生成AIが同一の形状として対応付けやすいように、各方向画像へ必要な情報を配置し直した
のである。
[画像⑤をここに配置]
最終的に修正したTポーズ入力画像。右側面図から尻尾を削除した部分、正面図へ右バッグを追加した部分、背面図にベルトが存在することが分かる画像。
画像説明:
最終入力画像。右側面図では尻尾情報を削除し、正面図には右バッグ情報を追加した。
8.入力画像の再設計によって問題が解消した
修正した画像を使用して、Tripoで再びHDモデルを生成した。
結果は良好だった。
尻尾は一本の大きな巻き尾として成立した。
左バッグは一つになった。
右バッグも独立した形状として生成された。
そして、前面から背面へ続くベルトについても、これまでより自然な形で成立した。
これまで個別に発生していた主要な問題を、3Dモデルを直接編集することなく、入力画像を再設計することで改善することができた。
[画像⑥をここに配置]
最終生成されたリンのHDモデル・正面。左右のバッグとベルトが確認できる画像。
[画像⑦をここに配置]
最終生成されたリンのHDモデル・側面。一本になった大きな尻尾とバッグの状態が確認できる画像。
[画像⑧をここに配置]
最終生成されたリンのHDモデル・背面。尻尾、左右のバッグ、背面側のベルトが確認できる画像。
※正面・側面・背面を一枚のスクリーンショットで十分確認できる場合は、画像⑥〜⑧を一枚にまとめてもよい。
9.Tripoは本当に「間違えた」のか
今回の結果から、これまで「生成エラー」と考えていた現象を、別の角度から見ることができる。
左バッグについては、正面図と左側面図の位置と角度が異なっていた。
そのため、Tripoが二つのバッグを別の物体として解釈した可能性がある。
右バッグについては、右側面図には存在するが正面図には存在しなかった。
その二つを同時に成立させるため、身体へ入り込む形でバッグを生成した可能性がある。
尻尾についても、複数方向から与えられた複雑な形状情報を統合しようとした結果、先端の分岐や幅の広がりが発生した可能性が考えられる。
もちろん、Tripo内部で実際にどのような処理が行われているのかを今回の実験だけで断定することはできない。
しかし、
入力画像を変更すると、生成結果も予想した方向へ変化した。
これは今回、実際に確認できた事実である。
その意味では、少なくとも今回発生した問題の一部については、
Tripoが画像を正しく読めなかったというより、与えられた画像情報を成立させようとした結果として生じた
と考えることもできる。
10.それでもTポーズは成立した
ここで、さらに興味深い点がある。
バッグや尻尾では、画像間のわずかな違いが3Dモデルへ大きく影響した。
ところがTポーズについては違った。
リンの側面画像では、腕の見え方に正面図や背面図との矛盾が存在していた。
それにもかかわらず、Tripoは最終的に腕を左右へ伸ばしたTポーズとして3Dモデルを生成した。
なぜ、バッグや尻尾では画像の違いをそのまま3D形状へ反映する一方で、Tポーズでは矛盾を吸収できたのだろうか。
これは現時点では仮説である。
Tポーズは、人型キャラクターの3Dモデリングやリギングにおいて一般的に使用される姿勢である。
そのためTripoには、
「Tポーズとはどのような3D形状なのか」
について、学習上の強い基準が存在する可能性がある。
その結果、側面画像に多少の矛盾があっても、正面・背面などの情報と合わせてTポーズとして補完できた可能性が考えられる。
一方、リン固有のバッグの位置や、大きく巻いた尻尾の形状には、そのような一般的な基準が存在しない。
そのため、
一般的な3D構造についてはAIが補完できる場合があるが、キャラクター固有のデザインについては入力画像の整合性がより重要になる
という可能性が見えてきた。
これは今後、ほかのキャラクターを3D化する際にも検証していきたい。
11.入力画像の細かな修正は誰が行うのか
今回の工程では、入力画像そのものを細かく修正する必要があった。
ここで、AI画像生成を使って修正すればよいのではないか、という考え方もある。
しかし、これまでの画像生成実験から、
既存画像の特定部分だけを厳密に変更し、それ以外を完全に維持したまま再生成することは難しい
ことが分かっている。
今回必要だった修正は、
「バッグだけを少し後方へ移動する」
「バッグの角度だけを変える」
「右側面図から尻尾だけを消す」
「正面図に右バッグだけを追加する」
「必要なベルトだけを残す」
といった、局所的で細かな修正である。
しかも、顔、身体のプロポーション、ポーズ、毛並み、色彩など、その他の要素は変更してはならない。
画像生成AIで画像全体を再生成すると、目的とする部分だけではなく、ほかの部分まで変化する可能性がある。
そのため現時点では、
今回のような3D生成用入力画像の精密な整合性調整は、人間が行う必要がある
と判断した。
重要なのは、人間が3Dモデルそのものを作り直したわけではないことである。
人間が行ったのは、
AIが正しい3Dモデルを生成できるように、AIへ与える情報を修正すること
である。
12.HDモデルのフリーリトライについて
今回の制作では、TripoのHDモデルに用意されているフリーリトライも複数回使用した。
その結果、一部の形状が改善されることはあった。
しかし同時に、
ある部分が良くなる一方で、別の部分が悪くなる
ことも確認した。
今回の使用結果を見る限り、HDモデルのフリーリトライは、問題箇所だけを局所的に修正するというより、モデル全体をあらためて生成する性格が強いように見える。
そのため、フリーリトライを繰り返せば、必ず完成形へ近づいていくわけではなかった。
13.AIが作った予想外のデザインを採用する
最終モデルにも、元の画像とは異なる部分が残った。
右バッグの背面側に、Tripoによって独自の形状が生成されたのである。
ここでさらにフリーリトライを行うこともできた。
しかし再生成すれば、右バッグが改善される一方で、ようやく成立した尻尾や左バッグ、ベルトなどが再び変化する可能性もある。
そこで今回は、現在のモデルをあらためて確認した。
そして、
この形状もバッグのデザインとして成立している
と判断した。
そのため、さらに再生成するのではなく、このTripoによるデザインを採用することにした。
[画像⑨をここに配置]
最終モデルの右バッグ背面部分。Tripoが元画像にはない形状を生成した部分が分かるように拡大した画像。
画像説明:
右バッグ背面に生成された予想外の形状。デザインとして成立していると判断し、そのまま採用した。
14.「正確な4面図」から「AIのための入力設計」へ
前回までの検証では、
3Dモデル生成には正確な4方向画像が重要である
という結論に達した。
今回、その意味がさらに具体的になった。
単純に4枚の画像をきれいに描けばよいのではない。
重要なのは、
複数の画像に描かれた同一パーツが、AIから見ても同じ物体として対応付けられること
である。
そして、必ずしも情報量を増やせば精度が上がるとは限らない。
今回の尻尾では、右側面図から尻尾情報を削除したことで改善した。
反対に右バッグでは、正面図にもバッグ情報を追加することで改善した。
つまり、
情報が多いか少ないかではなく、AIへどの情報を、どの方向から、どのような関係で与えるか
が重要なのである。
従来の4面図は、人間のモデラーへキャラクターの形状を伝えるための設計資料だった。
しかしAIによる3Dモデル生成では、それに加えて、
AIが複数画像の情報を矛盾なく3D空間へ対応付けられるように設計された入力資料
という新しい役割が必要になる。
今回の検証結果
今回の実験では、3D生成AIによって発生した問題に対して、生成後の3Dモデルを直接修正するのではなく、入力画像側へ戻って原因を検証した。
その結果、
問題発見
→ 原因の推定
→ 入力情報を変更
→ AIによる再生成
→ 結果を比較
→ 入力情報を再設計
→ 再生成
→ 人間による評価・採用
という制作工程が成立した。
これは単なる「修正作業」ではない。
AIの生成結果を観察し、
AIが入力情報をどのように解釈したのかを逆算し、次の入力を設計する工程
である。
今回、人間は3Dモデルを直接モデリングして完成させたのではない。
人間は問題を発見し、原因を推定し、AIへ渡す情報を設計し直した。
そして3Dモデルそのものは、再びAIによって生成された。
さらに、AIが元画像には存在しない形状を生成した場合でも、それが作品として成立すると人間が判断すれば、デザインとして採用することができる。
ここでも最終的な判断を行ったのは人間である。
まとめ
今回のリンの3Dモデル制作では、一見するとTripoの「誤り」に見えた形状が、実は入力画像に存在する矛盾を3D空間上で成立させようとした結果である可能性が見えてきた。
そして、その原因を推定し、入力画像の情報を整理することで、尻尾、バッグ、ベルトの問題を大きく改善することができた。
今回の実験から得られた重要な知見は、
AIに多くの情報を与えれば、必ず生成精度が高くなるわけではない
ということである。
必要なのは、
AIが複数の画像を一つの3D構造として解釈できるように、情報の整合性を設計すること
である。
さらに、Tポーズのような一般的な3D構造についてはAI自身が画像間の矛盾を補完できる可能性がある一方、バッグや尻尾などキャラクター固有のデザインでは、より正確な入力設計が必要になる可能性も示された。
そして現時点では、その入力画像に対する局所的で精密な修正は、人間が担当する必要がある。
今回の制作工程を整理すると、
AIが生成し、人間が評価する。
人間が入力情報を修正し、AIが再び生成する。
その結果を人間が評価し、最終的に採用する。
という循環になる。
3D生成AIを使用するということは、人間が制作から離れることではない。
むしろ、
人間の仕事が「3D形状を直接作ること」から、「AIが正しく生成できる情報を設計し、その結果を評価すること」へ移り始めている。
今回のリンの制作は、その変化を具体的な制作工程として確認する実験となった。
