本文へスキップ
試したこと Tripo 3D

Tripo 3D でゲーム用のチーターを作ってみたら、後ろ脚が 3 本になりました

ChatGPT PlayCanvas Tripo 3D ゲーム
Tripo 3D でゲーム用のチーターを作ってみたら、後ろ脚が 3 本になりました

スマホ向け 3D ランゲームの次のキャラクターに、Tripo 3D でチーターを作ってみました。

動物になって走るゲーム「WILD RUSH ∞(ワイルドラッシュ・インフィニティ)」に次の動物としてチーターを足したくて、Tripo 3D で 3D モデルを作ってみました。画像を入れると 3D モデルが出てきて、リグとアニメーションまで付けられる、というサービスです。

結果から言うと、正面は驚くほどそれらしくて、横に回すと後ろ脚が 3 本ありました。どこで崩れて、何が良くて、どう使うのが現実的なのか。そのあたりをざっくり書いておこうと思います。

フリー素材探しをやめて、AI で作ることにしました

WILD RUSH ∞ の動物は、今は犬と猫です。この先キツネ・鹿・虎・チーター・ゴリラと増やしたくて、まずはフリーの 3D 素材を探していました。

ただ、無料で商用利用ができて、リグと走るアニメーションが付いていて、作者とライセンスがはっきりしている動物モデルは、ほとんど見つからないんです。チーターは特に厳しくて、無料だけど非商用、アニメーションなし、テクスチャなしの白モデル、権利元の怪しい転載サイト、という感じでした。

それなら素材を探すのではなく、AI で自分で作ればいいのでは、と思ったのが今回のきっかけです。頭の中にあった理想の流れはこうでした。

  1. ChatGPT でチーターの基準画像を作る
  2. Tripo 3D の Multi-view で 3D モデルにする
  3. Smart Mesh でゲーム向けのポリゴン数に落とす
  4. 四足用の Auto Rig で骨を入れて、走りのアニメーションを付ける
  5. GLB で書き出して PlayCanvas に入れる

これが回れば、動物を何匹足しても Blender をほぼ触らずに済みます。そこに期待していました。

正面から見た瞬間は「これ、使えるのでは」でした

まず ChatGPT で、横向きに立ったリアルなチーターの画像を作りました。全身が入っていて、背景は白、目から口元へ伸びる黒いティアラインがあって、脚が長くて細い。この 1 枚は、見た目としてかなり良かったと思います。

Tripo 3D の Multi-view は、前・左・右・裏の 4 方向を入れる形で枠が固定されています。そこで ChatGPT に、正面・左側面・右側面・背面を 1 枚ずつ別々に作ってもらいました。並べて見るかぎり、同じチーターに見えます。

ChatGPT で別々に作った正面・右側面・左側面・背面のチーター画像

設定は HD モデル、AI モデルは v3.1 の最高品質、Ultra Mesh Quality とテクスチャ、PBR、Remove Lighting をオン、テクスチャは 4K にしました。ポリゴン数は最大 2,000,000 まで指定できましたが、あとで Smart Mesh で落とす前提で 200,000 程度にしています。1 回の生成が 55 クレジットと表示されたので、闇雲に回すわけにもいきません。

できあがったモデルを正面から見た第一印象は、正直「普通にめちゃくちゃ良くない?」でした。一目でチーターと分かるし、ティアラインも耳の形も再現されていて、胸から腹の白い毛まで入っています。斑点のテクスチャも自然で、遠目ならかなりリアルなんです。

横に回したら、後ろ脚が 3 本ありました

崩れ始めたのは、顔に寄ったところからです。眼球が丸い球として成立していなくて、目が表面に貼り付いたように潰れていました。左右の視線も揃っていなくて、片目が眠そうに見えます。走っている最中なら気にならないと思いますが、キャラクター選択画面で顔を近くに見せると目立つ品質です。

Tripo 3D で生成したチーターの顔のアップ。目が潰れて表面に貼り付いたように見える

そして横と後ろに回すと、後ろ脚が壊れていました。足首の位置がおかしくて、足先が潰れていて、左右で形が違う。内側の脚が癒着したように見えて、そこにもう 1 本余分な脚のような形があるんです。実質、後ろ脚が 3 本あるように見えます。

Tripo 3D で生成したチーターを横後方から見たところ。後ろ脚が癒着して 3 本に見える

このゲームでプレイヤーがいちばん長く見るのは、走っている動物の後ろ姿です。静止した状態で脚が崩れているモデルに骨を入れて走らせると、足が地面に刺さる、浮く、関節が逆に曲がる、といったことがそのまま起きます。顔の目は誤魔化せても、脚は走らせた瞬間からずっと目立つんです。

最初は生成ガチャの問題だと思って、同じ 4 枚で再生成してみました。結果は、ほぼ同じ壊れ方でした。しかも生成中に表示される点群の段階で、すでに後ろ脚が 3 本に見えていたんです。「完成したら直るかも」という希望が消えた瞬間でした。

たぶん原因は入力側にあります。AI で 4 方向を別々に作った画像は、人間には同じチーターに見えても、脚の位置や腰の高さ、胴体の長さが少しずつ違います。3D の再構築から見ると「少しずつ形の違う 4 匹を同一個体として渡された」状態に近いんだと思います。Multi-view に必要なのは 4 枚の画像ではなく、同じ個体の同じポーズをカメラだけ回して撮った 4 枚なんですね。

顔アップの画像を足せば目が良くなるかとも考えましたが、枠が 4 方向で固定なので、1 枚を顔に差し替えると今度は全身の整合性が崩れます。今回の方法では、ここが行き止まりでした。

アニメーションを付けたら、さらに厳しくなりました

形はあとで直せるかもしれないと思って、Tripo 3D のリギングとアニメーションも試してみました。AI モデルは v2.5 の「動物に最適」、モデルタイプは四足として認識されて、「歩く」のアニメーションが適用できます。

Tripo 3D の「歩く」アニメーションを適用したチーター

動かしてみると、歩き方が機械的で、重心の移動がほとんどありません。前脚と後ろ脚の連動が不自然で、肩と腰があまり動かず、背骨はほぼ止まって見えます。足の接地感も弱くて、地面に刺さったり浮いたりする感じがありました。

チーターの全力疾走は、背骨を大きく曲げて身体を縮め、蹴った後に大きく伸びる、という繰り返しが特徴です。犬や猫用の汎用的な走りを速く再生しただけだと「速い犬」に見えてしまいます。今回の Tripo 3D のアニメーションに、その動きは感じられませんでした。

普通の歩行や試作なら十分と感じる人もいると思います。ただ WILD RUSH ∞ は走る姿がゲームそのものなので、見た目が 85 点でも走りが 30 点なら採用できないんです。

完成品製造機ではなく、叩き台を作る道具だと思います

Tripo 3D を使いたかった理由は、Blender を手で触る量を減らしたかったからでした。目も脚もアニメーションも直しが要るなら、結局 Blender を通すことになります。それなら Tripo 3D を使う意味はどこにあるのか、と一度は思いました。

今の答えは「0 から 70〜80 までを短時間で作る道具」として使う、です。生成は速いし、ブラウザだけで完結して、テクスチャは遠目なら十分きれいです。PBR も 4K テクスチャも Smart Mesh もあります。岩や木、家具、小物、遠景、動きの少ない NPC、コンセプト確認の試作なら、かなり使えると思います。

一方で、四足動物の最終的な形状、足先と脚、目と顔の細部、リグの最終品質、そしてゲーム本番用の走りは、Tripo 3D だけに任せないほうがよさそうです。今考えている現実的な流れはこうです。

  1. Tripo 3D で生成して、Smart Mesh で軽くする
  2. GLB で書き出して Blender に持ち込む
  3. Blender でリグとウェイトを調整する
  4. 既存の四足の走りをリターゲットする
  5. GLB にして PlayCanvas へ入れる

Blender の部分は、Claude Code から Python で headless に動かせないかも検討しています。ただ、有機的なキャラクターの骨の位置やウェイト、チーター専用の走りまで自動にするのは簡単ではなさそうです。

今回の条件での主観評価を残しておきます。5 段階で、リアルなチーターをゲームの主役として走らせる用途に限った評価です。

項目評価
モデル生成の速さ★★★★★
第一印象★★★★★
テクスチャ★★★★☆
顔の近距離品質★★★☆☆
四足動物の形状の安定性★★☆☆☆
脚・足先★★☆☆☆
リグ★★☆☆☆
アニメーション★☆☆☆☆
試作用途★★★★☆
将来性★★★★★

「正面から見ると未来。横から見るとまだ AI。」今回の体験を一言にするとこれでした。ただし「Tripo 3D では脚が 3 本になる」わけではなくて、AI 生成した 4 方向画像を Multi-view に入れた今回の方法で崩れた、という話です。Text-to-3D なら、チーターのような一般的な動物は最初から一貫した形で出てくるかもしれません。次はそちらを試してみようと思います。

同じように動物のモデルを AI で作ろうとしている人の参考になればうれしいです。

この記事で作ったもの WILD RUSH ∞
share Xでシェア