VRMをAIで動かす その3 Human Motion Diffusion Model

2022年9月、Human Motion Diffusion Modelという論文が発表されました。
Human Motion Diffusion Model (guytevet.github.io)

テキストでモーションを生成できるというものです。すごい!

Githubでコードも公開されています。というわけでやってみました。
GitHub - GuyTevet/motion-diffusion-model: The official PyTorch implementation of the paper "Human Motion Diffusion Model"

Windows環境でセットアップ

Windows環境で試したので少しコツが必要でした。

その1 Anadonda Promptから実行する

そのままです。スタートメニューから探しましょう。

その2 environment.ymlを書き換える

オリジナルのファイルにはLinux用のバージョン指定が入っていますので、そのままではWindowsではconda環境を作成できません。
Linux用のバージョン指定と、Linuxしか使わないパッケージを削除することで、conda環境を作成できるようになります。

以下に修正したファイルを置いておきましたので、どうぞ。https://gist.github.com/hiraokusky/934bf858b8169eda065f51f3e7330b04

その3 shは実行できないので中身を手動で実行する

以下の手順は実行できませんでした。

bash prepare/download_smpl_files.sh
bash prepare/download_glove.sh

中身は大したことないので、手動で実行します。

さっそく動かしてみる

早速、サンプルを実行。ちょっと待ちます。

python -m sample --model_path ./save/humanml_trans_enc_512/model000200000.pt --text_prompt "the person walked forward and is picking up his toolbox."

できました。

いろいろ試してみます。

スキップしてほしかったのですが、謎のジャンプをしています。

ヒップホップダンスっぽいものもできます。なぜか蹴りと側転が入ることが多いですね。

狙った連続した動作をやってもらうのは意外と難しいです。

モデルデータの作り方

モデルデータを取りたいmp4ファイルを指定してコマンドを実行すると、フレームごとのobjファイルが生成されます。

python -m visualize.render_mesh --input_path ".\save\humanml_trans_enc_512\samples_humanml_trans_enc_512_000200000_seed10_The_human_is_standing,_then_sit_on_the_floor\sample00_rep00.mp4"

Windowsで実行するには、visualize/joints2smpl/smpl_models/gmm_08.pklの改行コードをLFに変換しておく必要があります。

objファイルには、頂点座標とポリゴン情報が入っていました。
これでフレームごとのモデルデータを再現することができますが、VRMの頂点データとして使うには、もうひと手間必要そうです。

シンプルなモーションしか生成できないような感じですが、生成したモーションをいくつか組み合わせると複雑なモーションもできそうなポテンシャルを感じました。

というわけで今回はここまで。


この記事が気に入ったらサポートをしてみませんか?