Blenderのインストール
…は省略。まだの人はこちら→https://www.blender.org/下準備
キューブを消し、サルを置く- キューブを右クリックして選択
- Xキーを押して消す
- SHIFT+A → mesh → monky
視点を変更とか
- テンキーの5と1を押す
- Nキーを押して、右側に情報パネルを出す
あとはマウスのホイールを回して適宜ズームするといいです
初期値を確認
右側の情報パネルの、Transform → Rotationに注目。デフォルトでは
XYZ Euler
になってると思います。
このときの数値は、X,Y,Zすべて0です。
次に
Quaternion(WXYZ)
に変更してみましょう
W=1で、X,Y,Zは0です。
角度を変えてみる
XYZ Eulerにして、Y軸を30度にしてみます。その後Quaternion(WXYZ)にして数値を見ると
W=0.966、Y=0.259になってます。Wから少しだけYに数値が移った感じ。
一度XYZ Eulerに戻して、Y軸の角度を60度にしてから同様にQuaternion(WXYZ)の数値を確認してみます
同様に90度も。
このようにして、サルのアタマが元の位置に戻るまで全ての値をチェックしてみます。
Euler x,y,z Quaternion WXYZ
0,0,0 1.000, 0, 0.000, 0
0, 30,0 0.966, 0, 0.259, 0
0, 60,0 0.866, 0, 0.500, 0
0, 90,0 0.707, 0, 0.707, 0
0,180,0 0.000, 0, 1.000, 0
0,270,0 -0.707, 0, -0.707, 0
Quaternionから回転軸を知る
上で求めたQuaternionの数値を見るとWとYだけ数値が変わっていることが分かります。X,Y,Zは回転軸のベクトルを表していて、
X=0、Z=0、Y=なんか数字
であることから、Y軸まわりの回転をやっていることが分かります。
実際、EularでY軸まわりだけ回転させてますので、正しいです。
Quaternionから回転角度を知る
重要な式は- W=COS(θ/2)
- X=nx SIN(θ/2)
- Y=ny SIN(θ/2)
- Z=nz SIN(θ/2)
- W*W + X*X + Y*Y + Z*Z = 1
nx, ny, nzは回転軸の向きを表す単位ベクトルです。
今回のケースではY軸にしか回していないので
{nx, ny, nz} = {0,1,0}
となります。
なので
- W=COS(θ/2)
- Y= SIN(θ/2)
θ=ArcCOS(0.707)*2 = 90[deg]
θ=ArcSIN(0.707)*2 = 90[deg]
大きさが1を確かめる
30度のとき{W,X,Y,Z} = {0.966, 0, 0.259, 0}
なので、
0.966 * 0.966 + 0.259*0.259 =0.933 + 0.067 = 1.000
他についても同様なので省略
覚えるの面倒だけど‥
最初のEuler x,y,z to Quaternion WXYZの表を拡張して、全てのパターンの表を書き出して表にします。その表をなんとかして記憶!そうすればQuaternionからなんとなくオブジェクトがどっちに向いているか分かるはず!
まとめ
- WXYZのうちXYZの数値から、なんとなく回転軸の向きを知る
- W=COS(θ/2)をつかって、なんとなくどのくらい回転してるかを知る
- 気合いれてWXYZの表を覚える。(ちなみに私は覚えられませんでした)
0 件のコメント:
コメントを投稿