2007年12月18日火曜日

あーあ、俺のドリルは回転しっぱなしだなぁ!!

3ds max to Worldtoolkit追記。

気をつけろ!3dsMaxから書き出したROTはそのままWorldtoolkitじゃ使えねぇや!

ex)3dsmaxからase形式で書き出したときのデータ
*CONTROL_ROT_SAMPLE 0 -0.000000 0.000000 1.000000 1.570796

 前三つが回転軸。X,Y,Zの合成ベクトルで表している。それぞれ二乗して合計すると1になるよう正規化されている。
 最後のがラジアン。この分だけ回転する。これを[a]としておく。

ex)WorldToolKitで使うデータ
Orie 0.000000 -0.707107 0.000000 0.707107

 前三つが回転軸。だが3dsmaxのものとちがって sin(a/2)がかけられている。 X*sin(a/2)
 一番最後は cos(a/2)。
 畜生、道理でそのままつかえねーはずだ。

 しかも3dsmax標準の座標は高さ軸が上に向かうZなのに対して、WTKは高さ軸が下に向かうYときやがる。
 その辺を考慮してコンバータをつくらねーと駄目ですね。
 それかもともとWTKの座標系にあわせて3dsmaxで作るか。それでもYとZの入れ替えは必要なんですよね。

 あと、3dsmaxのラジアンは増加量。WTKのパスの方で必要なのは絶対量なので、直前までの値をもってきてごにょごにょしましょう。

 にゃー。