mayaのtransform nodeには移動(translate)、回転(rotate)、スケール(scale)、シアー(shear)
というお馴染みのアトリビュートがありますがこれらを全て合わせたものがmatrixです。
(シアーはあまり使わないですかね・・・)
matrixは16個の数字を持ちます。
ちなみに移動(translate)は3つの数字(X、Y、Z)ですよね。
その数字についてとても分かりやすく解説して下さってるブログをご紹介します。
http://melpystudio.blog82.fc2.com/blog-entry-69.html
さて、ではmatrixをどんな時に使えばいいのかということですが
以前decomposeMatrixに触れたのでそれを使った
グレードアップ版ペアレントコンストレインをご紹介します。
(ちなみに今回はmaya2011で作ってます)
まずはこのようにオブジェクトを2つ用意し、トランスフォームのフリーズをしておきます。
プラグインマネージャでdecomposeMatrix.mllというのをロードしておいて下さい。
次に、ハイパーシェードを開いて下さい。
次に、画面左下のMELのところに
createNode decomposeMatrix;
と打ちこんでEnterキーを押してください。
するとハイパーシェードの作業領域にdecomposeMatrix1というノードが
一つ出来上がったと思います。
もし表示されない場合は
select decomposeMatrix1;
と同じくMELのところにうって入出力コネクションボタンを押してみてください。
ちなみにmaya2013の場合はノードエディタを開きTABキーを押し
decぐらいまで打ったらdecomposeMatrixが出てくるのでそれを押せば出来ます。
decomposeMatrixノードはmatrixの16個数字から移動(translate)、回転(rotate)、
スケール(scale)、シアー(shear)の値に変換してくれるノードです。
では次にコネクションエディタを開き右側にpCube1
左側にdecomposeMatrix1をロードします。
そしてworldMatrixからinputMatrixへコネクションします。
ちなみにtransformノードにはmatrixが幾つもあるのですが
なぜworldMatrixなのかというとペアレントコンストレインのように
world座標で制御したい為です。
次に左側にdecomposeMatrix1、右側にpSphere1をロードします。
そしてそのまま
outputTranslateとtranslate
outputRotateとrotate
outputScaleとscale
outputShearとshear
をコネクションします。
これで完成です!
で、なにがグレードアップ版かというとスケール
シアーの値もコンストレインされているという点と
コネクションされている数が全然違うので処理が軽いということです。
ハイパーシェード等で見てもらえば分かると思いますが
通常のペアレントコンストレインは17つコネクションされているのに対し
グレードアップ版ペアレントコンストレインは5つしかコネクションされていません。
今回は簡単な使い方だけでしたがいろいろと使い道はあると思います。
ペアレント化されている子供の階層のワールド座標を取得できるというだけで
夢がひろがりますよね?・・・よね・・・?
はい、ではまぁ色々とチャレンジしてみてください。