[リストへもどる]
一括表示
タイトルモーションの取得
記事No9956
投稿日: 2011/12/03(Sat) 17:27
投稿者26℃
こんにちは、モーションの全てのボーンのクォータニオンと、移動量の情報を毎フレーム取得しようとして
E3DGetBoneQ、E3DGetBoneTraを使ったのですが処理が重いようですね。
現在はE3DGetBoneQ、E3DGetBoneTraを毎フレーム使わずに
モーションのロードしたあとに一度だけE3DGetBoneQ、E3DGetBoneTraをつかい全フレーム、ボーンの情報を配列変数に代入して必要なフレームのデータを取り出すようにしています。これだと処理はこうそくなのですがメモリを喰うのであまり満足はしていませんorz

E3DGetBoneQ、E3DGetBoneTraが重いのがきになるので
内部的にどのようにして取得しているのか教えていただけないでしょうか。

タイトルRe: モーションの取得
記事No9957
投稿日: 2011/12/03(Sat) 19:42
投稿者おちゃっこ
GetBoneQ, GetBoneTraでは前後のキーを探し出し
指定フレームの姿勢を計算しなおしています。
たぶんその処理が重いのだと思います。

なぜ計算しなおしているかと言うと
内部でQとTraの形でフルフレームを保存していないのです。
4x4Matrixの形で保存しています。

MatrixからQとTraを分離することも可能ですが
逆行列を使うので計算誤差でプルプル震えてしまうなどの副作用が考えられます。

タイトルRe^2: モーションの取得
記事No9958
投稿日: 2011/12/03(Sat) 20:06
投稿者26℃
回答ありがとうございます。
前後のキーフレームですか、たしかにそれだと計算の処理がかかりそうですね。