はじめに
この記事は Kimodo応用編 です。Kimodoが何なのか、どうやって起動するのかといった基本的な内容は入門編の記事で解説していますので、まだの方は是非先にご覧ください。
今回は「Kimodoを使って綺麗にモーションを作る」ことにチャレンジします。題材として「手を上げて下ろしながら、まっすぐ歩く」というモーションを作っていきます。最終的に作りたいのはこちらです。
まずはプロンプトだけで生成してみる
まずは難しいことを考えず、こんな感じのプロンプトで生成してみます。
A person who walks straight ahead without stopping, raising both hands, and then lowering them.
……腕は上げて前進してくれますが、目標に対して軌道やタイミング、腕の上げ方など、だいぶ粗い点が目立ちます。ここでプロンプトエンジニアリングを頑張ることで、もう少し良いものになりそうですが、プロンプトだけで綺麗なモーションを完成させるのは至難の技です。特に、要求する動きが複雑になるほど。
そこで本記事では、プロンプトで土台を作ったあと、手動で矯正していく流れを紹介します。とりあえず、生成したモーションから適当に1つ選択(クリックするだけ)して、これを元にしていきます。あまりにも理想とかけ離れていれば、何度か生成ガチャしたり、プロンプトを調整しても良いでしょう。
Step 1: 進行方向を整える(2D Rootを整える)
まっすぐ歩けていないので、まずは進行方向を整えます。
右の操作パネル上の「Enter Editing Mode」をクリックして、編集モードに入ります。
下部のタイムライン上の「2D Root」を適当なフレームでクリックすると、そのフレームでの位置が足元に表示されるので、再生フレーム(青い縦線)をそのフレームに合わせてから、ロボットの足元の矢印をドラッグ&ドロップして、位置を整えます。
Kimodoでは、このように生成したモーションを矯正してあげることで、次に生成する際の制約条件として追加することができます。制約のないフレームでは、前後の制約を自然につなぐようにモーションを生成してくれます。
最初・最後に加え、途中のフレームをいくつか直しておくと、抜け出しにくくなるでしょう。こんな感じで。

これで生成してみると...?
進行方向はまっすぐになりました。が、なぜか歩くのではなく走ってしまっています。
おそらく、短い時間で多くの移動を強要してしまい、走って移動するのが自然になったのでしょう。それはそれでKimodoすごい。とはいえここでは歩いて欲しいので、Rootを等間隔に、かつ間隔を詰めて配置し直します。

これで生成し直すと……
ちゃんと理想通り歩いてくれました!
Step 2: 腕の姿勢を固定する(Full-Body Constraints)
歩行はできたので、次は腕です。
今度はFull-Body Constraints(全身の姿勢拘束)を追加し、「腕を上げた姿勢」を固定します。狙ったタイミングのフレームに、両手を上げたポーズを指定してあげましょう。
やり方は、2D Rootの時と同様、タイムライン上で今度はFull-Bodyの姿勢を決めたいポイントでクリックしましょう。
その後、各関節(赤・青・緑の円弧)をドラッグ&ドロップで回して、うまく欲しい姿勢を作っていきます。
この辺り、実際の関節構造がわかっているとなんとなくできると思うのですが、初見の場合はどれがどう動くか想像しづらいと思います。
ちょっと動かしてみて、思ったのと違ったら右下の「Undo Move」ボタンを押す感じで慣れていただくのが良いかと思います。

1か所だけだと一瞬上げてすぐ下ろしてしまう可能性もあるので、同じ要領で2つのタイミングに姿勢を作り、その間ずっと腕を上げ続けるように誘導します。

これで生成してみましょう。
腕を上げ下げしてくれますが、まだ雑ですね。同時に下げてくれなかったり、いつ上げ下げするのかが曖昧なようです。
ということで、上げ始め、下げ終わりの姿勢も追加したのがこちら。
いい感じですね。ここまで来ると、複数生成してもあまりブレなくなってきて、制約がしっかりと効いてるのがわかります。
まとめ
Kimodoはプロンプトだけではなく、位置・姿勢を制約条件に含めて生成ができる高性能なモーション生成ツールです。
今回は「手を上げ下ろししながらまっすぐ歩く」モーションを例に、プロンプトだけでは届かない部分を手動で矯正して仕上げました。ポイントは次の通りです。
- プロンプトで大まかな動きの土台を作る
- 2D Rootを綺麗に並べて、進行方向とスピード(歩く/走る)を整える
- Full-Body Constraintsで狙った姿勢を固定する(複数タイミングで姿勢を保持)
プロンプトと手動チューニングを組み合わせることで、狙い通りの綺麗なモーションが作れます。
ぜひ皆さんも、自分の作りたいモーションで試してみてください。
GMOインターネットグループ株式会社 グループ研究開発本部 AI研究開発室では,フィジカルAI・ロボティクスのリサーチエンジニア・リサーチサイエンティストを募集しています。ヒューマノイドの全身制御やその他の要素技術,社会実装にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。皆さんのご応募をお待ちしています。