2012年9月19日水曜日

上半身2ボーンと chest 対応変換などモーション変換について

以前の投稿で、MikuMikuDance のモーションで「上半身2」ボーンを使ったモーションの変換の話をご紹介しました。

http://snumaw.blogspot.jp/2012/03/secolife-avatar-pmd.html

当時よりちょっとだけ知識が増えたみたいなので、一度まとめてみようと思いました。

1) MMD のモーションを利用する場合は、、、まずは readme を読んでね

改造、利用、再配布条件などモーションを利用させていただくにあたり、大切なことが書かれているのは当然ですが、場合によっては特殊ボーン(標準モデルのボーンとは違うもの、、、と理解してください)についての記載があります。(無いこともありますw)

2) 特殊ボーンが使われていないか確認する

readme にはだいたい「XXXボーン必須のモーションです」という記述があるのですが、特に気を付けたほうがいい特殊ボーンは以下のようなものです。

・上半身2ボーン(これは以降ご紹介するツールで対応可能です)
・腕捩りボーン(左右腕、左右手)(ツールあり、、もしくはさらに手修正で対応可)
・すべての親ボーンやグルーブボーン (すべての親は影響ない場合もありますが、グルーブボーン必須の場合は、ちょっと雰囲気が違うモノになります。体全体でリズムをとるグルーブボーンの動きが変換されないからです。)
・腕IKボーン(変換はあきらめたほうがいいかも。mio で IK 計算できるかは試してません。)

readme に特に記述がなくても、一度、MikuMikuDance で vmd ファイルを読込んで確認したほうがいいです。その際には特殊ボーンがあらかじめ入っているモデルを使ってください。(腕IKは、、、さすがにかなり特殊なので readme にありますし、腕IKモデルは一般的ではありません。が、「うわぁ、すごいダンス!」というモーションで腕IK必須、というのがあるのも現実です)(追記:mio で「全ての親」ボーンがある PMD を使用すると bvh への変換がうまくいかないことが確認されています。全ての親ボーンが初期位置設定くらいしか使われていなければ、全ての親ボーンを無視していい場合がほとんどです。全ての親ボーンを使っていない PMD モデルを mio にて利用してみてくださいね。)

今回は特に「上半身2」ボーンと、腕の「捩りボーン」対策をご紹介します。

3) 上半身2ボーンは、セカンドライフのアバタ―の「chest」に相当します。その時は、、、

といっても、セカンドライフで QAvimator などを使って、ポーズを作ったことがないとさっぱり、、、かもしれません。

これまで一般に紹介してきた mio / MMDBVHToSLBVH では上半身2ボーンの対応モーション変換はできませんでした。MMDBVHToSLBVH が chest への回転データを作成しないことと、mio で「上半身2」ボーン入りのモデルを使わなくてはいけないこと、という2つの要素が重なります。

上半身2?chest ? そんなに違うの?と思われる方は以下の比較動画をご覧ください。

最近の MMD の秀逸なモーションは上半身2ボーン必須モーションが増えてきているので、これまでの MMDBVHToSLBVH では上半身が「暴れ」ます。MMDモデルの下半身ボーンと上半身ボーンは、MMDBVHToSLBVH では Secondlife モデルの「hip(腰)」と「abdomen(腹部)」に対応されます。(*1) これに加えて腰や腹部の動きと逆の動きを上半身2が対応する「chest(胸部)」で行うことで、胸より上の動きを抑えている、というモーションが結構あるからです。

(*1) 正確にいうと、MMDBVHToSLBVH で SL モデルの hip の動きは、MMD モデルの下半身ボーンとセンターボーンを合成させています。正確ではありませんでした。mio で変換された bvh の root と hip を合成しています。mio は MMD モデルのセンターを root に変換しているようです。

いまでも、、、ちょっとどころか、かなり自信が無いのですが、上半身2ボーン必須モーションも増えてきたので、私(とお友達)で esetomo 様が作られた MMDBVHToSLBVH を上半身2ボーン/Chest対応させたものを公開しました。(これをフォークして公開した、というようです。)

snumaw/MMDBVHToSLBVH
https://github.com/snumaw/MMDBVHToSLBVH

Readme は是非とも読んでいただきたいのですが、ツール(MMDBVHToSLBVH.exe)は、[MMDBVHToSLBVH.exe] のリンクをクリックすると、画面の上のほうに [View Raw] というリンクが出るので、それをクリックすればローカルへのダウンロードが始まります。

なお、このツールだけでは上半身2ボーン必須モーションは変換できません。何度も書きますが、mio で bvh に変換する時に使用するモデルに上半身2ボーンが入っていないとだめです。この点は注意してください。(モデル名の英語化も忘れずに!)

上半身2ボーン?確認の仕方がわからない、という人は MMD でモデルを読み込んで、左側のボーンリストを見てください。

同梱のあにまさ式ミクさんV2の場合
mmdbonecheck

人気のままま式GUMIさんの場合、上半身2ボーンがあります。
mmdbonecheck2

4) 腕・手の捩り(ねじり)ボーンを多用しているモーションは2つの対応方法

これは私も結構ハマるパターンです。mio/MMDBVHtoSLBVH で変換し Secondlife にあげてみると「コレジャナイ」感満載のモーションになります。

実はこの「星間飛行」のモーションは両腕捩ボーン、両手捩ボーンを多用したモーションでした。

動画は修正後のものですが、最初、secondlife にアップしてみて、、、、あれ?違う?と思い、MMD を立ち上げてオリジナルモーションを確認すると、、、上半身2はもちろん、捩ボーンを多用していました。

MMD001S

両腕・両手捩ボーンは標準モデルでもついているので使われてるケースは多いのですが、Secondlife に上げてしまうと手首から指にかけては正直相当アバウトなモーションになるので、極端に「肘が捩れている」場合や「腕の付け根が捩れている」場合でなければ気が付かない、もしくは無視しています。

ですが、今回は、どうみても別のモーションになっていました(涙
どのくらい別ものかは、後で、修正前、修正後のビデオでご紹介しますね。

このような場合は2つの方法で対応します。

a) 手作業で修正

星間飛行のモーション、よく見ると左手は常にマイクをもってあまり動きがなく、右手だけの修正で済みそう、、、と思い、実際動画のモーションは手作業で修正しました。

まず、捩りボーンのキーフレームをすべて無効化します。無効化の仕方はフレーム操作ボックスの下にあるフレーム数指定で 0~最後のフレーム で捩りボーンをドロップダウンから選択して、[範囲選択] ボタンを押します。それを繰り返して、すべての腕・手捩ボーンのキーフレームが選択された状態にします。

MMD002S

ここで、[フレーム編集] – [フレーム位置角度補正] という便利な機能を使って、すべての回転を無効にします。メニューバーから選ぶと以下のダイアログボックスが出るので、回転すべてに ゼロ を入れて [OK] を押せばいいんです。

MMD004

この状態が、secondlife にアップしてみた「コレジャナイ」モーションです。なので、もう1体モデルを読込み、同じモーションを読み込ませて、並べて見ながら、腕と肘の回転でだいたいあってる感じの回転を付与します。終わったら、モーションを保存して変換をかけることになります。

b) ツールで一気に修正

これは実は手作業した後で気が付いたのですが、MMD の姉妹ツール MikuMikuMoving 製作者の Mogg さんが便利なツールを1年以上も前に公開されていたんです。。。

VMD Motion Integrator
https://sites.google.com/site/moggproject/

以下、説明
--------------
VMD Motion Integrator
多段ボーン、捩りボーンのモーションを、元の1つのボーンモーションに統合するツールです。
これにより、多段/捩りボーンによるカスタムモデルのモーションを、他の通常モデルに適用することが可能になります。

下記のような感じで統合します。

- キーフレーム位置では補間曲線を使っていてもほぼ完全一致します
- キーフレーム間の補間では一致しないことがあります
- 捩りボーンは特にボーン構造が異なるため、多くの場合、動きが異なります。

* オリジナルファイルを上書きしてしまわないよう注意してください。
--------------

ね?簡単でしょ?。。。。。

とはいえ、そこはツールで一気に変換するわけで、モーション製作者があえて「捩りボーン」を利用している理由はあるわけです。最終的には目視による確認と手付による修正は必要、となります。でも、、、楽ですよね!

では、オリジナル(画面左)、捩りボーン無効(真ん中)、ツール変換で腕に統合(画面右) のモーションをお楽しみください、、、、

画面右の Mogg さんのツールモーションすごいですね。
一番いいのは Mogg さんツールで統合して、以下のような部分を手で修正かな~。

gumishoulder

ご参考になれば、、、(なるのかな?)幸いです~。

9 件のコメント:

  1. http://kagamikohime.blog118.fc2.com/blog-entry-1814.html

    うちのブログでリンク付きで紹介したよヒャッハー!

    返信削除
  2. ヒャッハー・・・・(笑

    返信削除
  3. とつぜんの書き込み失礼します。カガミンさんのブログとこちらのブログを参考させていただいております。。そこで質問なんですがフランス人の友達がこのMMDBVHToSLBVH がクラッシュして使えないのです。mioまでは変換ができるんですが
    いいアドバイスがありましたら幸いです。かのじょのPCはXPのOSでフランス語バージョンです。

    返信削除
  4. たぶんその方から別のところか、インワールドで質問もらったかもしれません。MMDBVHToSLBVHは .NET アプリケーションなので .NET Framework 3.5以上がきちんと入っているかどうかのチェックは最低必要です。readme が日本語なので仕方ないかもしれませんが、、、、逆に言えば、.NET Framework さえ最新版が入っていれば動くはずで、それでも動かない場合は個体の問題になりそうなので解決には時間がかかるでしょうね。アプリケーションエラーでダイアログに 0xc0000135 などがあれば、確実に必要なレベルの .NET Framework が入っていないためです。
    Vista、7 であれば .NET Framework が最低レベルのものが最初から入っているので漏れがないかもしれません。XP は古いOSなのでこのあたりに漏れがあるかもしれません。

    返信削除
  5. 早速のアドバイスありがとうございます
    。解決ができればまた報告いたします。

    返信削除
  6. 知らないうちにボーンが増えてたのか、対応しなきゃ、と思って最後まで読んだら対応も済だった。

    返信削除
  7. いちご先生、このツールには大変お世話になっております。Gitでソース公開されているおかげでフォークして対応してみました。ありがとうございます!

    返信削除
  8. すごく勉強になりました、有難うございます! 比較動画まで公開してくださってて大変わかりやすかったです(*^▽^*)

    返信削除
  9. 匿名さん、参考になったようでなによりですw

    返信削除