この記事について

AIで動くVTuber「鈴森こはね」の3Dモデルを、AIだけで作り直した。 私は3Dモデリングの経験がほとんどない。 同じようにAIで3Dモデルを作ろうとしている人に向けて、うまくいかなかったやり方と、最後にうまくいった進め方を書いておく。

最後には、八ツ橋まろんさんの「ガラクタロード」のモーションで踊らせたショート動画を、YouTubeショートとXに投稿できた。 作り直す前と後のショート動画は、次の2本で見比べられる。

ガラクタロードのショート動画から

先に知っておくと読みやすい言葉

  • VRM: 人型の3Dモデルを入れておくファイルの形式。VTuberのアプリやダンスのデータで広く使われている。
  • 骨(ボーン): モデルの中に入れる関節の骨組み。骨を回すと、体の表面がついて動く。
  • 重み(ウェイト): 表面のそれぞれの点がどの骨にどれだけついて動くかの割合。ここがずれていると、動かしたときに体が裂けたりつぶれたりする。
  • 揺れもの: 髪や袖、スカートのように、体の動きに遅れて揺れる部分。揺れるための骨を入れて動かす。
  • 当たり判定: 揺れものが体に入り込まないように、体の形をおおまかに表した見えない筒や球。

作業の分担

絵はChatGPTに描かせた。 3Dの形はTripo(画像から3Dモデルを作るサービス)で作った。 Blender(3Dの編集ソフト)での組み立てと確認は、Claude Codeに任せた。 私は、できたものを見て良いか悪いかを判断した。

配信ではLive2Dのこはねを使っていて、3Dはダンスの動画に使う。

最初のやり方は、動くと崩れた

最初はTripoで作った3Dモデルの表面に、Live2Dの絵を板のように貼って、正面から見た姿を絵に合わせていた。 正面で立っている分には絵に近くなったが、腕を上げると袖の板がずれ、指は曲げるとつぶれた。 もとの3Dモデルには指や袖の骨がなく、外側の形しかなかったからだ。

ここで目標を変えた。 立ち姿はLive2Dに任せて、3Dは正面の見た目より「動いても崩れないこと」を優先する。

衣装を部品ごとに作り直す

顔と髪と耳は、Live2Dに合わせて調整したものをそのまま残した。 衣装は上半身、袖、帯、脚、手と、部品ごとに作り直した。 1つの部品は次の流れで作った。

  1. ChatGPTに、その部品だけを前・左・右・後ろの4方向から描かせる。
  2. 4枚に切り分けて、Tripoの「複数の画像から作る」機能に入れる。
  3. できた形に、色や柄(テクスチャ)を別に付ける。
  4. Blenderで体の位置に合わせ、骨の重みを付ける。

ChatGPTに描かせた袖の4方向図

ChatGPTには、部品を3Dで使う姿勢のまま描かせるのがこつだった。 3Dモデルは腕を水平に伸ばした姿勢(Tポーズ)を基準に作る。 袖も腕を水平にした状態で描かせると、体に合わせやすかった。

腕を下ろした姿で作った部品は、腕を下ろしたまま体に合わせて重みを付け、それからTポーズに戻した。 先に腕を水平に回すと、肩が角張った形になってしまった。

Tripoを使うときは、無料プランに注意してほしい。 無料プランで作ったものは公開され、商用にも使えない。 私は有料のプランで、生成のたびに「非公開」になっているかを確かめた。 生成の種類を切り替えると、公開範囲が元に戻ることがあったからだ。

手は、AIの形ではうまくいかなかった

いちばん手こずったのが手だった。 Tripoで作った手は、手首が手のひらと同じ幅の板のような形で、指もきれいに曲がらなかった。 頬に手を当てるポーズが鼻をほじっているようにも猫の手のようにも見えた。

最終的には、VRoid Studio(無料の3Dキャラクター作成ソフト)の素体の手と前腕を使った。 VRoidのプリセットは改変も商用利用もできる。 人の手の形と、指の骨がきちんと入っているので、ここは自分で作るより借りるほうが早かった。

ポーズも、人の関節が動ける範囲で付け直した。 肘は一方向にしか曲がらない、手首はひねらない、という決まりを入れると、不自然な形がなくなった。

ダンスで崩れるところを一つずつ直す

形がそろったら、実際に踊らせて崩れるところを探した。 使ったのは、配布されているダンスのモーション「うい麦畑でつかまえて」と「さくゆい体操」だ。 ダンスのデータは別の体型のモデル向けに作られているので、そのまま当てると、どこかが崩れる。 見つかったのは、たとえば次のようなところだった。

  • 脚を上げると、太ももの付け根がちぎれる。脚の部品が股関節より下で終わっていたので、腰の中まで伸ばした。
  • 手や腕が頭にめり込む。頭と髪の外形を測っておき、手がその内側に入ったら外へ押し出すようにした。
  • 顔が上を向くと、目があさっての方を見る。目をカメラの方へ向けるようにした。
  • 指が反ったり、開きすぎたりする。指は反らせず、力を抜いた手くらいには曲げるようにした。
  • 長い髪と尻尾が硬い。ダンス中は揺れものとして揺らすようにした。
  • スカートが揺れると、縞が段々に折れ、腰を引くと太ももがスカートを突き抜ける。揺れを少し硬くし、脚の当たり判定を脚の本当の位置に合わせ、太ももを上げると前のスカートも持ち上がるようにした。

最後に、設定画にあった帯の脇のリボンを、同じ流れで作って腰から揺らした。

確かめるときは、正面だけでなく、横と後ろからも描いて拡大して見た。 スカートと脚のように重なって見分けにくいところは、部品ごとに色を塗り分けて描くと、どちらが前にあるかがすぐ分かった。

ショート動画にする

動画の舞台と撮影には、ゲームエンジンのUnityを使った。 ただし、Unityでは体を動かしていない。 崩れないための直しはここまで使ってきたブラウザのプログラム(three.js)に入っているので、動きはそちらで計算し、1コマずつの姿勢と表情とカメラの位置を書き出した。 Unityはそれを読み込んで再生し、舞台と照明を付けて描くだけにした。 こうしておくと、ダンスの崩れの直しと、見た目の演出を別々に進められる。

カメラ割り

カメラの動きは曲ごとの「ショット表」に書いた。 ショット表には曲の速さ(BPM 140)、イントロやサビといった曲の区切り、カメラの位置と、何拍目でどのカメラに切り替えるかを並べる。 カメラは全身の引き、上半身、左右の低い位置からのあおり、手持ち風の寄り、高い位置からのクレーンの6台を用意した。

参考にしたのは、モーションの作者さんが公開している振付のデモ動画だ。 デモは0.5〜1秒ごとにカットが変わり、真上から見下ろす画や、大きく傾いた画も入っていた。 最終的には1〜2拍ごとに切り替え、決めの拍では急に寄る(パンチイン)ようにした。 サビの頭では、こはねの正面を通ってカメラが回り込む。 寄りのカメラはこはねの向きに付いて回るので、くるっと回る振付でも顔が映る。

ステージと照明

ステージの絵は、こはねの画像を参考にCodex(画像も作れるAI)に描かせた。 夜桜と鳥居を映す大きな画面、床の狐の紋章、提灯、舞う花びら、電球の付いた鳥居と、こはねに合う夜の神社のステージにした。

照明は曲の拍と区切りで自動で動くようにした。 10台のムービングライトが拍に合わせて振れ、盛り上がりでこはねに光が集まり、サビの前は細かく点滅して、サビの頭で全体が光る。 もっと派手にしたくて、レーザーと紙吹雪キャノンも足した。 レーザーは盛り上がりで立ち上がり、サビで扇形に振れる。 紙吹雪はサビの頭と最後のサビで桜の花びらと金銀の紙を撃ち上げ、ゆっくり舞い落ちて、最後には床に積もっている。

表情はモーションの配布物に入っていた表情のデータ(笑顔、目を閉じた笑顔、ウインク、歌う口)を取り出して当てた。

縦長で、高い画質で書き出す

最初は横長の動画の真ん中を縦に切り抜いていたので、ぼやけてしまった。 ショート用には、はじめから縦長(9:16)で、4K(2160×3840)で描いて書き出した。 低い位置のカメラでスカートの中が映ってしまったので、低いカメラは膝の高さより上に置くようにした。

音の付け方

曲は学園アイドルマスターの「ガラクタロード」だ。 ボーカル入りの原曲を動画に入れて上げるのは避けた。 動画は音なしで書き出し、投稿するときに、YouTubeショートのリミックス機能で公式MVの音を付けた。 曲の頭が動画の0秒に来るように、作者さんのデモ動画と並べて、両手を上げる振りと目を閉じた笑顔の位置でそろえた。

まだおかしいところ

踊れるところまでは来たが、どの場面も完璧というわけではない。 今も次のようなところが残っている。

  • 腕を上げたり伸ばしたりすると、袖の付け根に白い板や棒のような部品が見えるコマがある。
  • 寄りで見ると、髪の縁が紙の切れ端のようにギザギザで、前髪を横切る細い線も見える。
  • 頬に手を当てるポーズを真横から見ると、フリルに小さな白い面が見える。
  • 速く回った直後は、ツインテールが大きく横に流れる瞬間がある。

AIで3Dモデルを作るときのこつ

  • 正面の見た目を絵に合わせるより、動いても崩れない形を先に作る。見た目だけを合わせても、動くと崩れる。
  • ChatGPTには部品を1つずつ、3Dで使う姿勢のまま、4方向から描かせる。
  • 手や指のように細かく動くところは、AIで作るより、VRoidの素体のような作りのしっかりしたものを借りる。
  • 関節は、人の体が動ける範囲を決めてから動かす。
  • ダンスのデータは別の体型向けなので、実際に踊らせて、崩れるところを一つずつ直す。正面だけでなく横と後ろからも見る。
  • 動画にするときは、動きの計算と、舞台や照明の演出を分けておく。演出はUnityのような道具に任せると、崩れの直しを壊さずに派手にできる。

3Dの知識がなくても、AIに描かせて、作らせて、見て判断することを繰り返せば、踊れるモデルまではたどり着けた。 次はほかの曲でも崩れないかを確かめていきたい。