皆さま、ごきげんよう。歌乃です。
Blenderを使ってSecondLife用のAnimation(BVH format)ファイルを作成した際の顛末です。
作業環境の違いのせいで想定外の動きをしてしまうので、SLで期待通りの動作をさせるには、作業環境(オブジェクトやボーンの向き)をSLに合わせる手順が必要になります。
ハロウィン用に作っていたジャックオーランタンアバターのモデルが出来上がったので、それに合わせたモーション(アニメーション)を作成しました。
手を軽く握ったモーションです。
が、
実際にアップしてみると
なんじゃこりゃ ( ゚Д゚)
あーでも、動きをみると、移動方向(角度に対する増加分)に一定の偏りと言うか法則性があるので、多分SLビューワーと制作環境(Blender)で対応する軸が違ってるせいかなーと思い至りました。
過去にも同じような現象に遭遇した経験があったので、そのあたりの記憶をたどりつつ、SL公式フォーラムを漁ってみると、目的の情報が見つかりました。
スレッド内に説明動画があるのでそちらを見るのがわかりやすいです。
アニメーションが破綻する原因はMaya(SLのアバター開発で使われていたツール)とBlenderの環境の違いによるものと推測されています。
なのでBlenderでアニメーションを作る(Exportする)際は、一旦ボーンオブジェクトを、Y正方向が上、Z正方向が正面になるように配置して、回転を初期化(適用)しておく必要があります。
画像でみせると、
この状態が初期状態の向きとなります。
当然このままだと作業しにくいので、ここからZ軸正方向を上にして作業しましょう。
ボーンオブジェクトの向き(回転)を変えた後に「適用」してはいけません。元の向きを保持したまま作業してください。
以前紹介したBlender用のSLBoneのプラグインでも似たような作業をしてましたね。
モーション(アニメーション)ファイルの書き出し自体は、Blenderにプラグインが実装されている(v3.3.1現在)ので、それをそのまま利用します。
モーションを記録したアーマチュア(ボーンオブジェクト)を選択した状態で「ファイル > エクスポート > Motion Capture (.bvh)」を実行します。
ファイル出力用のダイアログが表示されるので「ルートの移動のみ」にチェックを入れてエクスポートしましょう。
なんとか期待通りの動きになってくれました。
最初、ボーンオブジェクトの向きが問題なのはわかっていたので公式フォーラムを見ずに、あれこれ試行錯誤していましたが気付いたら二時間くらい経ってしまったので、素直にフォーラムで情報を探しました(´・ω・`)
動画を見たあとに「あーそうそう、そうだったわ」と思い出して昔も同じようなことしてたと、ちょっと懐かしくなりました。