Ueta CG Tech (blog)

Maya・MotionBuilderツール開発/ゲーム開発支援/映像制作支援/各種テクニカルスタッフ代行

MayaのQuaternionノードを使ってみよう(ベクトルの回転)

Mayaのプラグインマネージャーに quatNodes.mll というのを見かけたことがありませんでしょうか。
私は、この記事投稿時点で Maya2014 を使用しておりますが、2~3つぐらい前のバージョンから追加されていた気がします。存在は知っていても使ったことがある人はあまりいないんじゃないかなと思います。
というわけで今回はこのクォータニオン系のノードを使ってみようと思います。

計算式の参考にさせて頂いたサイト様

やろうとしていることは「あるベクトルを回転させる」です。

画像では、赤い球の位置と立方体の回転を与えて、青い球の位置を求めています。

f:id:ue_ta:20150213000826p:plain

ノードグラフは以下のようになりました。

先ほどのサイトの中の 「★こうすれば四元数で3次元の回転が計算できる」の部分の式を参考にノードを組んでいます。

f:id:ue_ta:20150213000752p:plain

(quatProdノードはクォータニオンの掛け算ノードです)

赤い球の位置ベクトルをそのままクォータニオン虚数部(XYZ)に渡して、立方体の回転クォータニオンとそれの共役四元数虚数部の符号反転)を掛け合わせるというシンプルな計算です。
計算結果のクォータニオン虚数部が目的の位置ベクトルになっているというのがなんとも不思議といいますか面白いなと思いました。

とても小さな小さな使用例なので、お役に立つんだか立たないんだかわかりませんが、こういう風にも使えるんだなーぐらいに思っていただければということで終わりにしたいと思います。以上です。