タイトル | : Re^3: 追伸 |
投稿日 | : 2008/01/06(Sun) 18:41:14 |
投稿者 | : koi |
はじめまして。
あけましておめでとうございます。
返事が遅くなり申し訳ございません。
FBXエクスポータのボーンプラグイン対応については、
もう少し完成度が上がった際にmqdl様にご連絡差し上げようと思っていました。
「1)」については、こちらでも当初デバッグバージョンではうまく動かず、少々悩みました。
「2)」についてですが、あれば便利というものを書かせていただきます。
・ボーンの親子付けについて
ボーンの親子関係を作成するには、親が誰であるかを見るしか方法が無いと思われます。
親から子へアクセスする手段などがあれば、便利なのではないかと思います。
※FBXのノード(ボーンプラグインでいうボーン、KFbxNode)では
KFbxNode* KFbxNode::GetParent();
int KFbxNode::GetChildCount();
KFbxNode* KFbxGetChild(int index);
という親子アクセス関数があります。
・ボーンの初期状態に関して
現在、ボーンのローカル変換の初期状態(回転や移動)についてはPivotから計算して求めています。
これを、ボーンプラグイン側から取得できると便利だと思います。
・線でつながれているボーンの扱いについて
現在、ボーンの親子関係が、線でつながっているのか、
点でつながっているのかを判断するのは、Pivotを見るしかないので、
それを判断できるようなインターフェースがあると便利かと思います。
※線のところにもスケルトンを入れたい場合などに使用するかと思います。
・アニメーションについて
FBXでアニメーションを出力する場合、回転値はオイラーで出さなければなりません。
ですので、現在キーフレームのクオータニオンの値をオイラーに変換して出力しています。
FBXはオイラーでの補間を前提としており、X、Y、Zの回転値をそれぞれ補間します。
この場合、ボーンプラグインで作成したアニメーションを、
FBXを介して他のツール(例えばXSI MOD Tool等)で再生すると、
意図したものと異なる場合があります。
これを避けるために、アニメーションをベイク(1フレームごとに値を書き込む)します。
この処理を実行する際に、ボーンプラグイン側のクオータニオンの補間結果を取得できると便利だと思います。
以上、あれば便利程度のものですが、ご検討よろしくお願いいたします。