Xファイルエクスポーター:ヤター正常にアニメーション出力できたよー!!!

一週間悩んだ挙句ちゃんとBlender上と同じ様に再生できるようになりました。
何を一週間も悩んだかというと、二つほど大きな問題があったわけで。

  • Meshのローカル座標変換のつもりで作っていたFrameの行列がアニメーション処理後に掛かっていた

こいつのせいでいつも回転軸すら一致しないという意味不明状態に陥る。
結局Mesh用のFrameを作るのを止めて直接Meshのローカル座標変換をしてやることで解決。
しかしこの構造ではMeshオブジェクト自体にキーフレームが付いていた場合、対応できない。

  • SkinWeightsに定義されるボーンオフセット行列に付いて勘違い

ボーンFrameの行列は親からの相対位置なのでボーンオフセットもその逆行列でよいと思っていたのだが
実際はルート(Armatureのローカル座標空間)からの逆行列にしないといけないようであった。

TODO:
Object(Armature,Mesh,Empty等)自体のキーフレーム処理
Blender上でのプラグインGUI