日々適当

hibitekitou

なるほど。

xsi |2012-05-15
ヌルとかの方向でポン2。 [Junki The Junkie's Junkyard]

こちらを読んで、「なんですとー」と思ったので試してみたんです。


参考:その58 やっぱり欲しい回転行列⇔クォータニオン相互変換 [○×(まるぺけ)つくろーどっとコム]

難しいことは考えたくないんで、4x4 Matrix to 3D Vectorノードなんて見向きもしませんでした。
このノード、マニュアルによると「4x4 マトリクスから作成された、行列の右上部分を表す 3 つの 3D ベクトルと移動ベクトルを出力します。」と記されております。

Kinematics.GlobalやKinematics.Localから出力される4x4 Matrixは、座標変換をしているわけで、つまり、位置・回転・スケールを一気に変換してくれる行列ですけど、このノードをかませることで、3つのベクトルとTranslationが出てくるというのはどーいうことでしょうか。
どうも、このノードのオプションでRowを選んだとき、4x4のうち、左上の3x3の各行がVector 1~3として出てくるようです。

んで、難しい理屈はともかくとして、4x4の行列
ABC0
DEF0
HIJ0
0001
があったとして、左上の3x3に注目します。
この行列は、(1,0,0)を(A,B,C)に、(0,1,0)を(D,E,F)に、(0,0,1)を(H,I,J)にするためのものに一致するようです(未検証(^^;)。

というわけで、この3行目をEmitノードのDirectionにつなげば、リファレンスとなるオブジェクトのローカルのZ軸方向向きにパーティクルを噴き出させることができる、ということみたいです。
なので、1行目につなげばローカルのX軸方向、2行目につなげばローカルのY軸方向に出てくることになるわけっすね。

なるほどなぁ。
コメント ( 0 )|Trackback ( )
  ・