2013年4月30日火曜日

matrixについて

諸事情によりだいぶ期間が開きましたが今回はmatrixについてです。

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つしかコネクションされていません。


今回は簡単な使い方だけでしたがいろいろと使い道はあると思います。
ペアレント化されている子供の階層のワールド座標を取得できるというだけで
夢がひろがりますよね?・・・よね・・・?

はい、ではまぁ色々とチャレンジしてみてください。

2 件のコメント:

  1. 新人リガーです。 記事とても参考になりました。
    ありがとうございます。

    返信削除
  2. Best casinos in Las Vegas: Top 25 slots, games, casinos
    Top 10 slot machines 포커 족보 · The Catfather · Desert Strike: Return to the 다파벳 Gulf · Gonzo's Quest · The 룰렛 사이트 Revenge of Cobra · Sinister 검증업체먹튀랭크 Bonanza Bros. · Slots 강원 랜드 후기

    返信削除