【備忘録】FBXモーションをBVHに変換してMMDに持っていく

FBXのデータをMMDで動かすまで

3DCG系のプロジェクトを進めており,モーションを購入した.

モーションパッケージ 第1弾 ”スタンダード①”

https://booth.pm/ja/items/2610761

モーションキャプチャで収録したデータが,FBX形式で入っている.
特になんの知識もなかったので,適当にポンっとやればMMDモデルで動かせると思っていたが,現実は甘くなかった.
Live Animationというツールを使う方法や,AutoRigProを使ってBlenderでリターゲットする方法などがあることが判明したが,どれも自分の思うようにいかなかった.
丸3日費やして方法を見つけたので,メモしておく.

0. 流れ

FBX → BVH をBlenderで行う
BVHの座標軸をBlenderで修正する
BVH → VMD を有志ツール(後述)で行う

1. FBX→BVH

まずはBlenderにFBXを読み込む.,標準の読み込み機能ではなぜかボーンの向きがひっちゃかめっちゃかになってしまう.

腕の向きがおかしい

埒が明かないので,有料アドオンを購入した.こちらでは正常に読み込める.

正常に読み込めた

Blenderくん,頼むよ…

読み込めたら,ファイル>エクスポート>bvhから書き出す.

2. BVHの座標軸の修正

Blenderは上がZの右手系なのに対し,MMDは上がYの右手系であるため,データを回転する必要がある.
ファイル>インポート >bvhのウィンドウの右側のトランスフォームの欄を以下のように変更する.

読み込んだら,FBXのときと同様の手順で再度BVHにエクスポートする.

3. BVH→VMD

ゆきときプロジェクト様のBVH to VMD Converterを使わせていただく.

このツールには以下の3つの機能がある:

1. ボーン名の変換

対照表に従い,BVHのボーン名をMMDのボーン名に変換する

2. 角度補正

(未検証,ミリしらで書いてる)BVHはTポーズからの相対角度,VMDはAポーズからの相対角度でモーションを記録しているっぽい.オフセットを設定することでこの角度差を補正できる.

3. VMDへの変換

上の2つの変換を施した上で,VMDに変換してくれる

まさに神ツール.ありがとうございます.

ボーンマップに今回のボーン名がないため,手動で追記する.追記したAutoBoneMap.csvここに置いておくので,自己責任で使ってください.

Convertをクリックすると変換される.

4. MMDで読み込む

出力したvmdファイルをMMDで読み込むと,モーションが反映されると思う.もし向きや角度がおかしかったら,2の座標軸を見直したり,3のcsvのオフセット値を変えてみたりすると良いだろう.また,足のIKをオフにする必要があるので注意.

comments powered by Disqus