この記事は【目次】MMDモーショントレース自動化への挑戦の為の導入手順になります。
v2リリースに伴い、こちらの導入は廃止となりました。クラウド版をご利用ください
クラウド(colab)でMMD自動トレース
miu200521358/VMD-3d-pose-baseline-multi
3Dの関節情報からvmd(MMDモーションファイル)を出力するライブラリの私的改変版。
1. VMD-3d-pose-baseline-multi の導入
1. miu200521358/VMD-3d-pose-baseline-multi のトップページから「Clone or Download
」>「Download ZIP
」を順に押下
2. ダウンロードした圧縮ファイルを、空白のないパス以下に解凍。私は以下に配置しました。
「C:\MMD\VMD-3d-pose-baseline-multi
」
2. 学習データの導入
※ MMDを触ってる方の場合、Windowsでシェル環境がない方が多いと思いますので、VMD-Lifting
の setup.sh
から、必要なとこだけ抜き出してます
1. data
ディレクトリ配下 に saved_sessions
ディレクトリを作成する
2. 以下2ファイルをダウンロードする
http://visual.cs.ucl.ac.uk/pubs/liftingFromTheDeep/res/init_session.tar.gz
http://visual.cs.ucl.ac.uk/pubs/liftingFromTheDeep/res/prob_model.tar.gz
3. ダウンロードした圧縮ファイルを解凍し、saved_sessions
ディレクトリ配下に設定する
3. 必要ライブラリのインストール
1. 「Aanaconda Prompt」で、3.で作成したディレクトリに移動
※新しくプロンプトを立ち上げた場合には、「activate tensorflow
」で、必ず自分が作成した環境に移動すること
コマンド入力行の先頭に (tensorflow)
と、環境名が出ていればOK。
「cd C:\MMD\VMD-3d-pose-baseline-multi
」
2. 必要ライブラリをインストール。以下コマンドを一行ずつ「Aanaconda Prompt」に入力してEnter。
pip install PyQt5
4. VMD-3d-pose-baseline-multi 実行
1. 「Aanaconda Prompt」を起動し、(tensorflow)
を有効にして、「VMD-3d-pose-baseline-multi
」のインストールディレクトリに移動
「cd C:\MMD\VMD-3d-pose-baseline-multi
」
実行方法
- Openpose簡易起動バッチ で データを解析する
-
OpenposeTo3D.bat を実行する
- OpenposeTo3D_en.bat is in English. !! The logs remain in Japanese.
- miu200521358/FCRN-DepthPrediction-vmd で生成された深度推定データ(depth.txt)を用意する
- miu200521358/3d-pose-baseline-vmd で生成された3D関節データ(pos.txt)、2D関節データ(smoothed.txt)を用意する
- miu200521358/3dpose_gan_vmd で生成された3D関節データ(pos_gan.txt)、2D関節データ(smoothed_gan.txt)を用意する
-
3DToVmd.bat を実行する
- 3DToVmd_en.bat is in English. !! The logs remain in Japanese.
-
3D解析結果ディレクトリパス
が聞かれるので、1.の結果ディレクトリパスを指定する -
ボーン構造CSVファイル
が聞かれるので、トレース先のモデルのボーン構造CSVファイルパスを指定する- センター移動の計算に身長を使用する
- ボーン構造CSVファイルの出力方法は、born/README.md参照
- 未指定の場合、デフォルトでborn/あにまさ式ミクボーン.csvが読み込まれる
-
足をIKで出力するか
聞かれるので、出す場合、yes
を入力する- 未指定 もしくは
yes
の場合、IKで出力する -
no
の場合、FKで出力する
- 未指定 もしくは
-
踵位置補正
が聞かれるので、踵のY軸補正値を数値(小数可)を指定する- マイナス値を入力すると地面に近付き、プラス値を入力すると地面から遠ざかる。
- ある程度は自動で補正するが、ヒールのある靴や厚底などで補正しきれない場合に設定
- 未指定の場合、「0」で補正を行わない
-
センターZ移動倍率
が聞かれるので、センターのZ移動時の移動幅を入力する- 値が小さいほど、Zの移動量が少なくなり、大きいほど、移動量が増える
- 未指定の場合、デフォルトで「5」とする
- 「0」を指定した場合、センターZ移動を行わない
-
円滑化度数
が聞かれるので、適当な正の整数を指定する- 未指定の場合、デフォルトで1回指定
-
移動キー間引き量
が聞かれるので、移動キー(センター・IK)間引き時の移動量(小数可)を指定する- 指定された移動量範囲内の移動キーフレームを間引く
- 未指定の場合、デフォルトで「0.5」とする
- 「0」が指定された場合、間引きを行わず、以下
回転キー間引き角度
はスキップする
-
回転キー間引き角度
が聞かれるので、回転系ボーン間引き時の回転角度(0~180度の整数のみ)を指定する- 回転が指定された角度範囲内であれば、キーフレームを間引く
- 未指定の場合、デフォルトで「3」とする
-
詳細なログを出すか
聞かれるので、出す場合、yes
を入力する- 未指定 もしくは
no
の場合、通常ログ
- 未指定 もしくは
- 処理開始
- 処理が終了すると、1. の結果ディレクトリ以下に vmdファイルが出力される
- output_{日付}_{時間}_u{直立フレームIDX}_h{踵位置補正}_z{センターZ移動倍率}_s{円滑化度数}_p{移動キー間引き量}_r{回転キー間引き角度}_full/reduce.vmd
- キーフレームの間引きなしの場合、末尾は「full」。アリの場合、「reduce」。
- upright.txt … 直立フレームのキー情報
- output_{日付}_{時間}_u{直立フレームIDX}_h{踵位置補正}_z{センターZ移動倍率}_s{円滑化度数}_p{移動キー間引き量}_r{回転キー間引き角度}_full/reduce.vmd
- MMDを起動し、モデルを読み込んだ後、モーションを読み込む