2011年10月27日木曜日

Blender2.6用VMDインポーター作成中・・・

ひと通り形になったので記事にしてみました。

Blender2.5版は作らない予定です。というのも、2.6からBlenderの日本語化が出来るようになり、いま組んでるスクリプトは日本語化していることが前提となるからです。

調べてみましたが 、公式で日本語化に対応したのはBlender2.6RCからみたいです。

今の方法だと2.5では導入できないので、おかしな動作が起きてもそれがスクリプトのバグなのかBlender2.6の不具合なのかがわからないのがネックです。

何故ネックなのかというと、以下のような現象が起こったからです。実際に見てもらいたいと思います。

まずはZ軸回転モーションをMMDとBlender2.6で読み込み比較したものです。

次にX軸回転モーションをMMDとBlender2.6で読み込み比較したものです。

膝がおかしいのはIKの使用の違いからくるものなので気にしないで下さい。それ以外はX・Z軸回転はMMDと同じ動作をしています。ところがY軸回転だとこのようになってしまいます。

何故このようになるのかがよくわかりません。Blender側で同じような回転を手動で行って回転角度を出力したところ、Y軸の角度は対して変わっておらずX軸の角度が大きく変貌してました。

X軸角度とY軸角度を入れ替えると、MMDと同じように回転するモーションもあればそうでないモーションもありチンプンカンプンです。

クォータニオン回転・オイラー角回転の両方で試してみましたが結果は同じでした。

これはBlender2.6の不具合なんでしょうか?それとも只私が 仕様を誤認識して起きたスクリプトの不具合なのでしょうか?よくわからないです。

2.5版でも導入できたら確認しやすかったんですけどね・・・まぁこのスクリプトは元々作る予定のなかった、オマケみたいなようなものなのでゆっくりと作っていくつもりです。

もう一度既存のスクリプトやドキュメントに目を通してみようかな?

6 件のコメント:

  1. Blenderは、ボーンのheadとtailを結ぶ軸が、ボーンのローカルY軸になっています。一般的にはX軸であることが多いようです。
    ボーンのローカル軸はAxesを表示することで確認できます。
    この軸の違いが原因かもしれません。
    なお、Blenderは、そのY軸周りにあらかじめボーンを回転させておく、「Roll」というパラメータがあり、ボーンのEditモードで調整できるのですが、これも回転に影響するので、全て0にした状態でテストしたほうが良いかもしれません。
    ボーンのEditモードで、全てのボーンを選択して、Ctrl+R,数字の0,エンターと押すと0になります。

    既にご存知でしたらすみません。影ながら応援しております。

    返信削除
  2. >>uimacさん

    情報ありがとうございます。ローカル軸を表示して確認しました。なるほど、そういうことだったんですね。headとtailを結ぶ軸がボーンのローカルY軸になるなんて知らなかったです。

    MMDとの軸の違いを意識して再度スクリプトを組みなおしてみようと思います。本当にありがとうございました。

    あと、Rollの値は確認したところ全て0になってました。

    返信削除
  3. いろいろ試してみたのですが、原因が分からないので質問させていただきます。

    実はテクスチャがBlenderにインポートされません。
    私の環境ですと相対パスの設定だとダメのようです。絶対パスだと大丈夫でした。

     環境はWindows7 32Bitです

     絶対パス変更すればよい話なのですが、更新履歴を拝見すると、相対パスの設定に変更されいらっしゃるのでご連絡させていただきました。
     もちろん、相対パスのほうが利便性は高いです。

    返信削除
  4. すみません。お手数ですが、使用されてるスクリプトの名前、及びBlenderのバージョンを教えていただけないでしょうか?

    返信削除
  5. すみません 昨日質問させていただいたものですが、投稿するところを間違えました。メタセコイア⇒BLENDERのスクリプトでした。

     Blenderは2.6安定版です。

     投稿場所を変えたほうがよろしいでしょうか。

    返信削除
  6. 投稿場所は変えなくても結構ですよ。

    以前のスクリプトだとエラー情報が出ないので、エラー情報が出力できるようにスクリプトを更新しました。

    コマンドプロンクトにエラー情報が出力されるのでダウンロードして確認してみてください。

    テクスチャ名が表示された後、読み込みに成功してたら「Succeed.」、失敗したら「Failed.」と表示されます。

    Failed.と表示されるテクスチャのパスが正しいか確認をしてください。

    日本語名が含まれてると失敗する可能性があるので注意してください。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。