生成AI研究室(50) Blender×Mixamo×MiniMax H3——動きを先に決めてから焼く。白い素体の5秒を参照に、キャラシートの女性が住宅街を走った

生成AI研究室(50) Blender×Mixamo×MiniMax H3 動きを先に決めてから焼く

このサイトで一番人が来ているのは、第14回(Blenderで作った参照動画)です。Xで引用を付けるたびにそこへ飛ぶ。「先に動きを決めてから焼く」という考え方に需要があるようなので、その作り方を頭から1本にします。

今回の素材は、Mixamoのジョギングです。Blenderで白い素体の5秒動画にし、別に作ったキャラクターシート1枚と一緒にMiniMax H3へ渡しました。人物の外見はシートから、動きとカメラの構図は素体から。背景は文章で「日本の早朝の住宅街」と指定しました。

できた動画(5秒・672×928)。参照にした白い素体の動きと構図を、キャラシートの女性が住宅街で演じている
上=参照にした白い素体の5秒(320×240)、下=できた動画。同じ秒(0〜5秒)。右奥から近づいて左へ抜ける構図が移っている
上=参照にした白い素体の5秒(320×240)、下=できた動画。同じ秒(0〜5秒)。右奥から近づいて左へ抜ける構図が移っている
目次

作り方の全体

Mixamoの画面。「Jogging」(78フレーム・30fps)をX Botで再生しているところ。ここからFBXを落としてBlenderへ
Mixamoの画面。「Jogging」(78フレーム・30fps)をX Botで再生しているところ。ここからFBXを落としてBlenderへ
  1. Mixamoで動きを選び、FBXをBlenderに読み込む(30fps・78フレーム・前進あり)
  2. 30fpsの動きを24fpsに打ち直し、繰り返しで5秒(120フレーム)にする。前進は原点に戻さず続ける
  3. Workbenchで白い単色・薄い陰影で描く。320×240。固定カメラ(130mm)で、右奥から近づいて左端で切れる構図
  4. 別の正面写真1枚から、5面のキャラクターシート(前・後・横の全身+顔の正面・横顔)を作る
  5. H3に Picture 1=シート、Video 1=素体の5秒、文章=背景・時系列・「何を移し、何を移さないか」を渡して焼く
キャラクターシート(5面)。全身の顔はぼかし、顔アップ2点は鮮明。元は正面写真1枚で、背面と横顔は生成による補完
キャラクターシート(5面)。全身の顔はぼかし、顔アップ2点は鮮明。元は正面写真1枚で、背面と横顔は生成による補完

ポイントは、動きと外見を別々の参照から渡すことです。素体は白い人形なので、その見た目は移さず、動きとカメラ枠だけを移す。人物の顔・髪・服・靴はシートから取る。これを文章で明示します(「白いマネキンの外見と分節された関節は移さない。動作とカメラ構図を移す」「シートの5人を別人として描かない」)。

30fpsの罠と、白い素体の作り方

Mixamoの動きは30fps、H3の参照動画は24fps基準です。fpsのラベルだけ24に付け替えると、尺が125%に伸びて解釈されます(1秒の動きが1.25秒に)。今回はBlender側で、キーフレームの時刻を0.8倍に詰めてから24fpsで描きました。

`

new_frame = 1 + (old_frame – 1) * 0.8 # 24/30

`

白い素体は、Workbenchの単色描画(1,1,1)に影とキャビティを足し、背景を暗い灰色にしたものです。深度マップ(距離を濃淡にしたもの)ではなく、普通のRGB動画です。H3の参照動画はRGBで受けるので、これで足ります。骨のガイドやグリッドは入れていません。

白い素体の参照動画(5秒・24fps・320×240)を0.21秒おきに24コマ。右奥から近づき、左端で切れる
白い素体の参照動画(5秒・24fps・320×240)を0.21秒おきに24コマ。右奥から近づき、左端で切れる

解像度を320×240に落としたのは参照の負荷を下げるためです。第3弾で書いたとおり、参照動画の負荷は色ではなく画素数×コマ数で決まります。動きは低周波なので、320×240でも「何の動きか」は伝わります。

できたもの

  • 動き: 走る足運びと腕振り、右奥から近づいて左へ抜ける構図は、参照に沿っています(図1)。
  • 人物: 白いTシャツ・黒のショーツ・白ソックス・白いスニーカー・ポニーテールはシートどおり。全身像の顔にかけたぼかしは、生成動画には移っていません。
  • 背景: 早朝の光、二階建て、塀、電柱と架線。
  • 1本目は少ないステップ数で焼いたため、住宅の壁に縞が入りました。同じプロンプト・同じ条件でステップを10に上げた2本目(上の動画)では消えています。動きと構図は2本とも同じでした。
同じ秒(2秒)の上半分を拡大。左=1本目(少ないステップ)は壁と屋根に縞、右=2本目(10ステップ)は消えている。人物と構図は同じ
同じ秒(2秒)の上半分を拡大。左=1本目(少ないステップ)は壁と屋根に縞、右=2本目(10ステップ)は消えている。人物と構図は同じ

背景を文章で変えると、どうなるか。同じ素体の動き・同じキャラシートのまま、背景の指定だけを「白いスタジオ」にした版がこれです。

背景の文章だけを「白いスタジオ」にした版(5秒・672×928)。動きと人物は住宅街版と同じ

動きと人物は住宅街版と同じで、背景だけが変わります。動き・外見・背景を3つの参照に分けて渡すと、1つだけ差し替えられる——これが分けて渡す一番の効用です。

なぜ「文章+動画」なのか: 8月の2×2実験

この型は、8月にMacで確かめた結果の上に立っています。参照画像1枚・seed固定・640×384・124コマ・4ステップで、変えたのは2つだけ。

参照動画あり参照動画なし
動きの文章あり(363語)AB
動きの文章なし(105語・蹴り/弧/回転の語をゼロに)V2D

参照動画は、Mixamoの蹴り(Inside Crescent Kick)をBlenderの素体で描いた2秒です。名前から想像する「軸足を着けたまま脚が弧を描く」動きではなく、跳びます。沈み込んで両腕を後ろに振り、踏み切って両腕を開き、空中で両脚を前後に開いて、片脚を伸ばしたまま落ちる。

8月の実験の参照動画(素体の蹴り)24コマ。構え→沈み込み→踏み切り→滞空→着地
8月の実験の参照動画(素体の蹴り)24コマ。構え→沈み込み→踏み切り→滞空→着地

結果は、2軸で見ます。①振り付けが参照と対応するか、②人体として成立しているか。

出力の動き参照との対応体の整合
A(文章+動画)腕を後ろへ振り抜く→踏み切りで腕を開く→滞空して両脚で鋏→落下→着地を沈んで吸収局面の並び・腕の使い方・空中姿勢まで対応保たれている
B(文章のみ)立ったまま片脚を高く上げる。滞空なし別物。「蹴る」は伝わったが振り付けは伝わらない保たれている
V2(動画のみ)沈み込み→腕を開く→滞空→着地。局面は出る局面は対応壊れている(地面を蹴っていないのに回り続ける・骨盤と肩の向きが矛盾・脚がコマごとに別位置)
D(どちらもなし)その場で腰を振るだけ——
  1. 参照動画は振り付けを運ぶ。 V2とDの違いは参照動画の有無だけで、文章に動きの語はない。動きは画素からしか来ようがない。
  2. 文章は振り付けを運ばない。 Bは「蹴る」にはなったが、別の蹴りになった。
  3. 動画だけでは足りない。 動画=何の動きをするか、文章=その動きを人体として壊さない。採用できたのはAだけ。
  4. H3は勝手に激しく動かない。 指定しなければ、Dのように腰を揺らす程度。
  5. 参照動画を付けても時間はほぼ増えない(AとBの差2%)。

この実験で当方は最初「振り付けは再現されていない」と報告して、間違えました。参照を名前で済ませ、参照そのものを見ていなかったからです。1/12秒刻みで見直したら、参照が跳んでいた。参照は自分の目で見てから評価する、が教訓です。

Mixamoの自動リグに素体を拒否されたら

自前の素体(Blender MPFBで作った人体)をMixamoに送ると、最初はこう返ってきました。

> Sorry, unable to map your existing skeleton.

自動リグが失敗したのではなく、FBXに骨が入っていたので、自動リグを走らせずに「既存の骨をMixamo規格に対応づける」モードに回り、そこで止まった、という意味です。直し方は骨を含めずに書き出すこと。素体以外(骨・カメラ・ライト)を消し、マスクとシェイプキーを焼き込んでメッシュだけをFBXにすると通り、骨65本・指まで入ったリグが返ってきます。

今回のジョギングはMixamo付属のモデル(Betaモデル)をそのまま使ったので、この工程は踏んでいません。自分のキャラを素体にしたいときだけ要ります。

Macでは参照動画が載らない

8月の時点では、Mac(M5・32GB)で640×480×65コマの参照動画を渡すと100秒で止まり、256×192×48コマ(8分の1)にすると通りました。H3本体とテキストエンコーダで40GB規模を使うので、参照動画の分が乗る余地がほとんどない。今回320×240×120コマにしたのも同じ理由です。品質を見る段は16GB×2のデスクトップか、クラウドになります。

まとめ

  • 動きはMixamo→Blenderの白い素体(24fpsに打ち直し・320×240・固定カメラ)、外見はキャラシート1枚、背景と「何を移すか」は文章。3つを分けて渡す。
  • 参照動画は振り付けを運び、文章は体を保つ。両方あるときだけ使える(8月の2×2)。
  • Mixamoの自動リグは骨を抜いて送る。Macでは参照動画を小さく。
  • できた動画は動きと構図が参照に沿い、人物はシートどおり。ステップ数が少ないと背景に縞が出る(10ステップで解消)。

次は、同じ型でMixamoのダンスを着せた15秒です。


本記事の動画・画像は当方の生成物で、人物は当方の参照画像から作ったものです。実在の人物ではありません。Mixamoの動きはAdobeのライブラリ、素体はMixamo付属のモデルとBlender(MPFB)で作った人体です。

続き: 第52回——同じ動きを正面・後方・横から。カメラだけ変えて3本焼き、15.5秒につないだ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次