B-MoMiの使い方

- BVH motion converter for MikuMikuDance (by インドカレー)

これは

モーションキャプチャデータなどで広く使用されているBVH形式のモーションデー タを、MikuMikuDanceのVMD形式に変換するための支援ツールです。

必要なもの

インストール

ZIPファイルを展開。

使い方

コマンドプロンプトを開き以下のようにコマンドを入力します。
> b-momi.bat -bvh BVHファイル -map ボーンマップファイル
(例)
> b-momi.bat -bvh tennis.bvh -map boneMap_mocapdata_1.txt

成功するとtennis.vmdが生成されます。MMDで読み込む際はミクのIKを OFF状態にしてモーションを読み込んでください。

ボーンマップファイル

BVHにはMMDのボーンに相当するスケルトンと呼ばれる階層構造が存在します。 BVHファイルをメモ帳などで開くとHIERARCHY から始まるデータがあり、これが スケルトンを示しています。スケルトンの中にはJOINTと呼ばれる関節の定義が あり、ボーンマップファイルはJOINTとMMDのボーンの対応関係を記述します。

ボーンマップファイルでは、MMDのボーン=BVHのジョイントという形で記述します。

例えは、センターボーンに対応するJOINTがHipsであれば、
センター=Hips
のように書きます。

ファイルの書き方は、「ボーンマップサンプル」フォルダのサンプルを参考に してください。
また、BVHファイルについては詳しくはこのあたりを参照 →MOCAP データファイル

ボーンマップ作成支援

B-MoMiにはボーンマップの作成を支援する機能があり、BVHファイルからある程度 ボーンマップを生成できます。ボーンマップを生成するには-makeMapオプションを指定します。

> b-momi.bat -bvh tennis.bvh -map boneMap_newMap.txt -makeMap
boneMap_newMap.txtにtennis.bvhのボーンマップが生成されます。
生成されたボーンマップファイルは場合によっては不十分なことがあります。 たとえば、JOINT "LeftWrist"に対応するボーンがわからなかった場合、 以下のように"#"で始まる行が挿入されます。(先頭の#はコメント行を表しています)
# =LeftWrist
LeftWristが左手に対応するJOINTあれば、以下のように修正してください。
左手=LeftWrist
また、ボーンに対応するJOINTの候補が複数ある場合には、以下のように同じボー ン(ここではセンター) の行が複数できることがあります。この場合は、どち らか必要な方を残してください。
センター=Hips
センター=Hip

初期姿勢の調整

MMDではミクの初期姿勢が手を斜め下げた格好ですが、モーションキャ プチャデータの場合、両手を水平に広げた格好が一般的です。
そこで、初期姿勢を補正するために、各ボーンの後ろにX軸,Y軸,Z軸の順で 角度が書けます。
例えば、Z軸で-60度補正するという場合は以下のように記述します。
左腕=LeftShoulder,0,0,-60

モーションの拡大、縮小

B-MoMiでは、センターボーンの移動量をモデルの身長に合わせて自動調節します。 自動調整の情報はコマンド実行時に以下のように表示されます。
BVHモデル身長=23.428449999999998
ミク身長=15.5686
@scale=0.6645168587764022
BVHモデル身長はBVHスケルトンの足首から頭までのY軸座標を表しており、ミク 身長はMMDでのミクの足首から頭までのY軸座標を表しています。(ミク身長は 固定です)@scaleはBVHの座標の拡大率で、BVHでの移動距離1をVMDファイルで は0.6645168587764022にしたという意味です。 拡大率は変更することができ、ボーンマップファイルに以下のように記述する と0.1倍の拡大率になります。
@scale=0.1

使い方のヒント

一部のボーンの動作だけ変換する

ボーンマップには対応関係をすべて記述する必要はなく、変換したいボーンと スケルトンの対応だけ書くことができます。
例えば、移動が不要という場 合には、センターの行をコメントアウトすれば、移動がなくなります(センター の回転もなくなりますが)。これにより、移動だけあとで手で修正するという こともできます。

人型以外のモデルのモーションの変換

ボーンマップファイルでスケルトンとボーンの対応関係を設定すれば、人型以 外のモデルのモーションも変換できます。この場合、身長が正しく計算されな いので@scaleパラメータを使ってモーションの拡大・縮小を行ってください。

時間軸

いまのことろ、時間軸の変換は行いません。MMD側の拡大・縮小機能を使って モーションの時間軸を調整してください。

不要キーフレームの削減

いまのことろ、自動ではできません。手動でで消すか、CSV形式で出力してうまく削減してください。

リファレンス

コマンドラインパラメータ

パラメータ 内容
-bvh ファイル名 bvhファイルを指定します
-map ファイル名 ボーンマップファイルを指定します
-out ファイル名 出力ファイル名を指定します。指定しない場合は入力ファイルの拡張子がvmd またはcsvとなったものになります。
-makeMap 指定されたBVHファイルの情報を元にボーンマップファイルを生成します。 BVHの変換は行いません。
-format vmdまたはcsv vmdを指定するとvmd形式を生成します (デフォルト) 。csvを指定すると  VMDConverterで読み込み可能なcsv形式を生成します。

バージョン履歴

inserted by FC2 system