B-MoMiの使い方
- BVH motion converter for MikuMikuDance (by インドカレー)
これは
モーションキャプチャデータなどで広く使用されているBVH形式のモーションデー
タを、MikuMikuDanceのVMD形式に変換するための支援ツールです。
必要なもの
- Java 1.5以降
コマンドプロンプトで java -version と打って1.5以降ならOK
- モーションキャプチャデータ(BVHファイル)
モーションキャプチャデータにも著作権がありますので、ネットに公開され
ているデータを利用の際はご注意ください。
自前でキャプチャできる方は自前で。
インストール
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形式を生成します。
|
バージョン履歴
- 0.1 (2009/7/14)
とりあえず公開
- 0.2 (2009/7/29)
スケール自動調整。VMDファイルを直接出力できるようにした。ボーンマップ作成支援機能追加。