AIゲーム開発研究室
第12回 Tripo Auto Rigの再検証 ― 手首の捻れと5本指リグの問題 ―
AIゲーム開発研究室
3Dモデル制作ドキュメント
第12回 Tripo Auto Rigの再検証
― 手首の捻れと5本指リグの問題 ―
研究代表 大川 博
主任研究員 Arc(ChatGPT)
はじめに
前回までの検証によって、Tripoで生成したパンタをMixamoへ送り、Mixamoのアニメーションを適用し、Blender、さらにUnityまで持ち込む一連の工程は成立した。
しかし、その過程で新たな問題が見つかった。
Mixamoのアニメーションを適用すると、パンタの手首が不自然に捻れる。
ゲーム用キャラクターとして使用する以上、この問題を放置することはできない。
そこで今回は、TripoのAuto Rigによって生成されたアーマチュアをBlender上で詳しく確認し、手首の捻れがどこから生じているのかを検証した。
さらにTripoの「再挑戦」を使用してAuto Rigをやり直し、同じモデルでもリグ生成結果が変化するのか、そしてMixamoでの手首の捻れが改善するのかを確認した。
結論を先に述べれば、再リグによって手首の大きな捻れは改善した。
しかし、別の問題が明らかになった。
パンタには存在しない5本指用のボーンが生成され、それが手のメッシュを変形させていたのである。
今回は、この問題について現時点で完全な解決方法を得ることができなかった。
そのため、本研究ではTripo Auto Rigをゲーム用パンタのリギング工程として採用することをいったん保留し、実制作ではMixamoによるリギングを使用することとした。
1 Mixamoアニメーションで発生した手首の捻れ
TripoのAuto Rigを使用したパンタにMixamoのアニメーションを適用したところ、手首が大きく捻れる現象が発生した。
そこでBlender上で、Tripoによって生成されたアーマチュアを詳しく確認した。
まず分かったのは、左右の腕から手にかけてのボーンが、単純な鏡像になっていないことである。
前腕と手のBone Rollを確認すると、次のような値になっていた。
LeftForeArm 約56°
LeftHand 約-2.1°
RightForeArm 約-123°
RightHand 約-130°
左右で大きく異なる値となっている。
さらに手を拡大して確認すると、パンタには人間のような独立した5本の指が存在しないにもかかわらず、人間型の指ボーンが生成されていた。
しかも左右の指ボーンの配置も、完全な鏡像にはなっていなかった。
【画像1 Blenderで確認した左右の手・指ボーン】
2 指ボーンを削除して検証する
そこで、手首の捻れに指ボーンが関係している可能性を考え、Blender上で指ボーンを削除して検証した。
しかし、
指ボーンを削除しただけでは、手首の捻れは解消しなかった。
次に、手のメッシュのウェイトを調整しながらHandボーンについても検証した。
その結果、Handボーンを削除し、手のメッシュをForeArm側へ持たせることで、初めて大きな手首の捻れが解消した。
この実験から、少なくとも、
5本指のボーンだけが手首の大きな捻れを発生させていたわけではない
ことが分かった。
一方で、Handボーンそのもの、Bone Roll、ボーンの方向、Mixamoアニメーションとの回転軸の対応など、どの要素が直接の原因なのかまでは特定できなかった。
ここでは原因を断定せず、実験結果として記録することとした。
3 Tripoの「再挑戦」でAuto Rigをやり直す
TripoのAuto Rig画面には「再挑戦」という機能が用意されている。
そこで元のモデルを残すため複製を作成し、同じパンタに対して再度Auto Rigを実行した。
設定は前回と同じ、
Rigging Type:Humanoid
Skeleton Preset:Mixamo
とした。
再生成されたアーマチュアを確認すると、前回とは異なるリグが生成されていた。
しかし、左右の指ボーンは今回も完全な鏡像にはなっていなかった。
さらにBlenderへエクスポートして全身のアーマチュアを確認すると、左右の腕や脚、手だけでなく、頭部を含めた骨格全体が完全な左右対称として配置されているわけではないことが確認できた。
【画像2 再挑戦後のパンタとアーマチュア全体】
したがって今回のパンタでは、Tripo Auto Rigによって生成された骨格は、左右完全対称の骨格にはなっていなかった。
ただし、Tripo内部でどのようなアルゴリズムによって骨格が生成されているのかについては、今回の実験から判断することはできない。
4 非対称なリグでもTripoでは正常に動く
興味深い結果も得られた。
左右非対称な部分を含むアーマチュアであるにもかかわらず、Tripo内蔵のアニメーションを適用すると、パンタは正常に動作した。
前回Mixamoのアニメーションで発生していたような、大きな手首の捻れも見られなかった。
さらに、このモデルをFBXとしてエクスポートし、Blender上でTripoのアクションを再生した。
ここでも手首は正常に動いた。
つまり、
Tripo → FBX → Blender
というエクスポート工程そのものによって手首の捻れが発生しているわけではないことが確認できた。
5 5本指ボーンによる別の問題
ところが、Blender上でアニメーション中の手を拡大すると、別の問題が見つかった。
パンタの手の中に生成された5本指用のボーンが動き、それによって手のメッシュが局所的に変形していた。
【画像3 指ボーンによって変形するパンタの手】
ここで、二つの現象を分けて考える必要がある。
一つは、
Mixamoアニメーション使用時に発生した、手首全体の大きな捻れ。
もう一つは、
パンタには必要のない5本指ボーンによって発生する、手先の局所的なメッシュ変形。
前者は指ボーンを削除しただけでは解消しなかった。
一方、後者は5本指ボーンそのものがパンタの手形状に適していないことによって生じている。
この二つは、同じ問題として扱うべきではない。
6 再リグしたパンタを再びMixamoへ
次に、「再挑戦」で生成した新しいリグを持つパンタをMixamoへ送り、再びMixamoのアニメーションを適用した。
その結果、前回とは明らかな違いが現れた。
前回発生していた大きな手首の捻れが大幅に改善した。
同じパンタであっても、Auto Rigをやり直すことで、その後のMixamoアニメーション適用時の結果が変化したのである。
これは今回の検証で得られた重要な結果の一つである。
しかし、問題が完全に解決したわけではない。
手首の大きな捻れは改善したものの、5本指用ボーンによる手先の変形は残った。
Tripoのアニメーションでも、Mixamoのアニメーションでも、パンタには必要のない指ボーンが動くことで手の形状が変化する。
したがって、再リグによってすべての問題が解決したとは判断できない。
7 パンタに5本指のリグは必要なのか
パンタの手は、人間の手とは異なる。
ゲーム内で一本一本の指を動かす予定もなく、モデルそのものにも独立した5本の指は存在しない。
したがって、パンタのゲーム用リグとして考えれば、5本指用のボーンは必須ではない。
理想的には、
ForeArm → Hand
という単純な構造で手を動かすことができればよい。
しかし今回確認したTripoのAuto Rigでは、Humanoid/Mixamoプリセットを使用するとパンタにも指ボーンが生成された。
現時点では、
Tripo Auto Rigで5本指ボーンを生成せず、パンタのような手に適した簡略なリグを生成する方法
を確認できていない。
これは今後の検討課題として残すことにした。
8 Blenderで修正することは可能だが
もちろん、Blender上で不要な指ボーンを削除し、ウェイトを再設定してパンタ用の骨格へ修正することは可能である。
実際、今回の検証でもボーン削除とウェイト変更を行った。
しかし、それには手作業による修正が必要になる。
本研究の目的は、単に一体のモデルを完成させることではない。
生成AIやAIサービスを活用し、できるだけ効率よくゲーム用3Dモデルを制作できるワークフローを構築すること
である。
すでにこれまでの検証で、パンタのメッシュをMixamoへ直接アップロードし、Mixamo側で新しくAuto Rigする方法は問題なく使用できることを確認している。
それならば、Tripoで生成されたリグをBlenderで修正してウェイトまで調整するより、Mixamoで最初からリギングした方が工程は単純であり、結果も確実である。
9 今回の結論 ― Tripo Auto Rigの採用は保留
今回の検証によって、Tripo Auto Rigについていくつかの重要なことが分かった。
Tripoで生成されたパンタのアーマチュアは完全な左右対称ではなかった。
それでもTripo内部ではアニメーションが正常に動作し、FBXとしてBlenderへ持ち込んでもTripoのアクションは正常に再生できた。
また、Auto Rigを「再挑戦」することで、Mixamoアニメーション適用時に発生していた大きな手首の捻れは大幅に改善した。
一方で、パンタには存在しない5本指用のボーンが生成され、それによる手のメッシュ変形という問題は残った。
そして現時点では、Tripo Auto Rigでこの指ボーンを生成せず、パンタに適した簡略な手のリグを作る方法を確認できていない。
したがって今回の結論は、
Tripo Auto Rigをゲーム用パンタの最終リギング工程として採用するかどうかは保留する。
とする。
これはTripo Auto Rigそのものが使用できないという意味ではない。
実際、Tripo内部のアニメーションではパンタは動作している。
しかし、今回の目的であるMixamoの豊富なアニメーションを利用し、最終的にUnityでゲームキャラクターとして使用するというワークフローを考えた場合、現時点では別の方法の方が実用的であると判断した。
10 ゲーム制作ではMixamoリギングを採用する
研究上の結論は保留する。
しかし、ゲーム制作を止める必要はない。
パンタについては、すでにMixamoへモデルを直接アップロードし、Mixamo側でAuto Rigできることを確認している。
そこで今後の実制作では、
Tripoで3Dモデルを生成
↓
必要なモデルデータを準備
↓
MixamoでAuto Rig
↓
Mixamoでアニメーションを適用
↓
Blenderで確認・調整
↓
Unityへ
という工程を基本とする。
Tripo Auto Rigについては、パンタのような人間とは異なる手形状を持つキャラクターに対して、より適切な簡略リグを生成する方法が確認できた段階で、改めて検証する。
まとめ
今回の検証は、問題を完全に解決して終わる実験にはならなかった。
しかし、それも研究結果の一つである。
最初に問題となったMixamoアニメーションによる手首の捻れを調べる過程で、Tripo Auto Rigによって生成された骨格が完全な左右対称ではないこと、パンタには必要のない5本指用ボーンが生成されていることが分かった。
さらに、指ボーンを削除しただけでは手首の大きな捻れは解消せず、Handボーンまで含めた構造が関係している可能性が示された。
Auto Rigを再実行すると手首の大きな捻れは改善したが、不要な指ボーンによるメッシュ変形は残った。
したがって、
「Tripo Auto Rigをどのように修正すれば使えるか」
を追い続けるよりも、現時点ではすでに安定して利用できるMixamoで新しくリギングする方が、ゲーム制作のワークフローとして合理的である。
一方、
「パンタのような5本指を必要としないキャラクターに対して、Tripoで簡略なリグを生成できるのか」
という問いには、まだ答えが出ていない。
この問題については結論を保留する。
使える方法は採用する。
問題が残る方法は、その事実を記録したうえで保留する。
それもまた、AIを実制作に導入するための検証工程の一部である。
第12回 完
