AIゲーム開発研究室

2026-09-19 13:07:00

第8回 TripoリグにMixamo Actionは使えるのか

AIゲーム開発研究室

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


第8回

TripoリグにMixamo Actionは使えるのか

― 骨格構造の検証とリターゲット実験 ―


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


はじめに

前回までの検証によって、Tripoでは3Dモデルにリグを設定し、プリセットActionを適用できることを確認した。

また、AIアニメーション機能を使用して、テキストによる指示からオリジナルActionを生成する実験も行った。

しかし、実際に生成されたActionには問題があった。

「3回ジャンプして喜ぶ」と指示したActionでは、ジャンプしようとする動作は確認できたものの、足は地面から離れなかった。

「まっすぐ前に走る」と指示したActionでは、キャラクターは前進したものの、動作そのものは走行ではなく歩行に近いものとなった。

さらに、手の部分が最初から不自然にねじれたActionも確認された。

ゲーム制作では、キャラクターに多様なActionが必要になる。

Tripoに用意されたプリセットActionだけでは選択肢が限られ、AIによるオリジナルAction生成についても、前回の実験では要求した動作を安定して生成することができなかった。

そこで今回は、

Tripoで生成したリグをそのまま使用し、豊富なActionを持つMixamoからアニメーションだけを利用することができるのか

を検証することにした。


1 MixamoのActionをCモデルへ適用する

まず、本物のMixamoからダウンロードしたダンスActionを使用した。

これを、TripoでリギングしたCタイプのパンタへBlender上で適用する。

ボーン名には、

mixamorig:Hips

mixamorig:Spine

mixamorig:LeftArm

など、Mixamoと同じ形式の名称が使用されている。

そのため、当初はMixamo Actionをそのまま利用できる可能性があると考えた。

しかし、実際にActionを適用すると、パンタは正常な位置にとどまらず、空間内を大きく飛び回った。

 

61.png

 


2 Hipsの位置情報を調べる

Blenderのグラフエディターで mixamorig:Hips を確認すると、位置情報がXYZ各軸に記録されていた。

そこで、Hipsの位置XYZを一つずつ無効化して動作を確認した。

一軸だけを停止してもパンタは動き続け、動き方だけが変化した。

最終的にXYZすべての位置情報を無効化すると、パンタはその場に固定され、ダンスを行うようになった。

しかし、新たな問題が確認された。

パンタの身体が傾いている。

さらに、ダンス自体も完全に崩壊しているわけではないものの、Mixamo本来のダンスと比較すると不自然だった。

 

60.png

 

3 100倍のスケール差を疑う

Mixamo純正ArmatureとTripo CモデルのArmatureを比較すると、大きな違いがあった。

Mixamo側は、

Rotation X = 90°
Scale = 0.01

Tripo側は、

Rotation = 0°
Scale = 1.0

となっていた。

特に気になったのが、

Scale 0.01とScale 1.0という100倍の違い

である。

Mixamo ActionにはHipsの位置情報も記録されている。

そのため、Mixamo ActionをTripoのArmatureへ直接適用したことで、100倍のスケール差が位置移動に影響した可能性を考えた。

そこでMixamo純正Armatureに、

Ctrl+A → 回転とスケール

を適用すると、

Rotation = 0°
Scale = 1.0

となった。

しかし、変更したのはMixamo純正Armatureであり、Tripo Cモデルではない。

そのため、この実験だけでは、100倍のスケール差が異常な位置移動の原因だったのかを確認することはできなかった。

そこで、次に骨格そのものを比較することにした。


4 MixamoとTripoの骨格を比較する

Mixamo純正ArmatureとTripo CモデルのArmatureを比較した。

Actionによる変形の影響を受けず、骨格本来の状態を確認するため、Blenderの、

Rest Position(レスト位置)

で表示した。

Mixamo純正骨格はTポーズを基準としている。

一方、Tripo Cモデルは、パンタのAポーズをもとに生成された骨格である。

当然、両者の骨格配置には違いがある。

しかし調べてみると、違っていたのはポーズや体型だけではなかった。


5 Bone Rollが大きく違っていた

Blenderの編集モードで、それぞれのBone Rollを確認した。

結果は次のようになった。

ボーン Tripo Cモデル Mixamo純正
Hips −90° 0°
Spine −99° 0°
LeftArm 29° −180°

Tripoのボーンには、

mixamorig:Hips
mixamorig:Spine
mixamorig:LeftArm

など、Mixamoと同じ形式の名前が付けられている。

しかし、

ボーン名が同じでも、骨格そのものが同じとは限らない。

Bone Rollが異なれば、ボーンが回転するときの基準となるローカル軸も異なる。

これが、Mixamo ActionをTripoリグへ直接適用したときに、身体が傾いたり、不自然な動きになったりする原因の一つではないかと考えた。


6 直接適用せず、動きを転送してみる

そこで、Mixamo ActionをTripoリグへ直接適用する方法をやめ、

正常に動いているMixamo純正骨格の動きを、Tripo骨格へ転送する

方法を試した。

Blenderの、

Copy Rotation

を使用する。

まず、Tripo側の mixamorig:LeftArm にCopy Rotationを設定し、Mixamo側の同名ボーンの回転を受け取るようにした。

すると、Tripo側のLeftArmもMixamo側の動きに追従した。

Copy Rotationの影響を0にすると停止し、1に戻すと再び動いた。

これによって、

Mixamo骨格からTripo骨格へ回転動作を転送できる

ことを確認した。


7 他のボーンでも確認する

同じ方法を、

RightArm
LeftForeArm
RightForeArm
Hips

にも設定した。

これらもMixamo側の動きに追従した。

つまり、

Mixamo Actionを直接Tripoリグへ入れる方法には問題があるが、Mixamo骨格の動きをTripo骨格へ転送することはできる

ことが分かった。


8 全身へ一括設定する

しかし、全身のボーンへ一つずつCopy Rotationを設定するのは現実的ではない。

そこでBlenderのPythonスクリプトを使用し、Mixamo側とTripo側に同じ名前のボーンが存在する場合、自動的にCopy Rotationを設定するようにした。

これによって、全身へのリターゲット設定を一括して行った。


9 全身は動いた。しかし傾きが残った

一括設定後、Cモデルの全身がMixamo Actionに追従するようになった。

直接Actionを適用した場合と比較すると、動作は大幅に改善した。

つまり、

TripoリグへMixamoの動作を転送すること自体は可能

である。

しかし、パンタの身体には依然として傾きが残った。

HipsやSpineのCopy Rotationを無効化してみたが、改善するどころか姿勢はさらに悪化した。

完全に一致させるためには、Bone Rollや基準姿勢など、両骨格の違いをさらに補正する必要があると考えられる。


10 技術的には可能だが、実制作には適さない

今回の実験で、

Mixamo骨格の動きをTripo骨格へリターゲットできる

ことは確認できた。

しかし、そのためには、

Mixamo純正骨格を用意し、
Tripo骨格との対応を設定し、
全身へリターゲットを行い、
さらに姿勢の違いを補正する必要がある。

ゲーム制作の実用工程として考えると、複雑すぎる。


11 TripoのActionにも問題が残る

Tripoだけで完結できるのであれば、Mixamoを使用する必要はない。

しかし、前回までの実験では、TripoのAIによるオリジナルActionにも問題があった。

「3回ジャンプして喜ぶ」では、ジャンプしようとするものの足が地面から離れなかった。

「まっすぐ前に走る」では、前進はしたものの、動作は走行ではなく歩行に近かった。

さらに、手が不自然にねじれたActionも生成された。

また、Tripoに用意されたプリセットActionだけでは、ゲーム制作に必要な多様な動作をまかなうことは難しい。


12 今回の結論

Tripoではリグを生成でき、キャラクターを動かすこともできる。

しかし、今回の検証では、

TripoのプリセットActionだけでは選択肢が不足する。

AIによるオリジナルActionも、要求した動作を安定して生成できない。

Mixamo ActionをTripoリグへ直接適用すると正常に動作しない。

リターゲットによる動作転送は可能だが、追加設定と補正が必要になる。

という結果になった。

そのため、本研究では一旦、

TripoによるリギングとAction制作を、ゲーム制作の本線から外す。

Tripoは、

3Dモデル生成・軽量化

までを担当し、

リギングとActionについては、

Mixamoを使用する

方向で検証を進めることにした。


13 次の検証へ

次は、リグを持たないパンタをMixamoへ直接アップロードし、

Mixamoでリギング → Action設定 → Blenderで編集 → Unityで確認

という制作工程を検証する。

ただし、この後の研究では、

「Tripoで作ったリグを、本当にMixamoで利用する方法はないのか」

という疑問が再び浮上することになる。

この問題については、改めて別の実験として検証する。