MAYA標準ノードで三角関数
概要
MAYA(2023)の標準搭載されているノードのみを使用し、
三角関数の計算ができるノード
使用方法
①トランスフォームノード(Trig)を選択する
②Angle(アトリビュート)に好きな角度を入力する
③Sin/Cos/Tan(アトリビュート)から利用したい数値を取得する
制作方法
※ノード名は分かりやすくするために変更しています。
お好きな名前にしていただいて構いません。
※CubeとSphereのメッシュノードは視覚的に分かりやすくするために
作成しています。トランスフォームノードのみでも制作できます。
①CubeとSphereを作成 {ワールド座標(0,0,0)}
Cubeのトランスフォームノード名を「Rotation」に変更
Sphereのトランスフォームノード名を「Trig」に変更
(見にくい場合は、スケールを縮小しトランスフォームをフリーズする)
②Trigを{ワールド座標(1,0,0)}に移動
アトリビュートにロックをしておくこと推奨
③Trigを複製
複製したTrigのトランスフォームノード名を「Matrix」に変更
④TrigをRotationの子供にする
Rotationの回転Zを動かし、TrigがZ軸を中心に回転することを確認
確認したらRotationの回転Zを0に戻しておく
⑤Trigに「Angle」「sin」「cos」「tan」4つのアトリビュートを追加する
全て名前以外同じ : float型、スカラー、最小最大=未入力、規定=0
↓↓↓↓以下ノードエディタで作業を行う↓↓↓↓
⑥Trig.Angle -> Rotation.回転Z に繋ぐ
Trig.Angleに数字を入れて、rotationとTrigが回転するかを確認
⑦「decomposeMatrix」を作成
ノード名を「deWorld」に変更
⑧Trig.ワールド行列[0] -> deWorld.入力行列 に繋ぐ
ワールド行列からトランスフォームの情報に変換する
⑨deWorld.出力移動(X,Y) -> Matrix.移動(X,Y) に繋ぐ
Z以外を、それぞれ対応する個所につなぐ (X -> X Y-> Y)
(Matrixのアトリビュートがロックされている場合は解除する)
⑩Matrix.移動X -> Trig.cos / Matrix.移動Y -> Trig.sin に繋ぐ
ワールド座標Xはcos。ワールド座標Yはsin。(理由は検索してください)
⑪「multiplyDivide」(乗算除算) を作成
ノード名を「calTan」に変更
↓↓↓↓tanθ = sinθ / cosθ の計算を行う↓↓↓↓
⑫アトリビュートエディタでcalTanの"操作"を"除算"に変更
割り算を行えるようにする
⑬Trig.sin -> calTan.入力1X / Trig.cos -> calTan.入力2X に繋ぐ
入力1 / 入力2 になる
⑭calTan.出力X -> Trig.tan に繋ぐ
計算結果がtanになる
⑮meshノードを削除する
CubeやSphereのポリゴンは計算に不要なので削除する
⑯不要なアトリビュートを削除、重要なアトリビュートをロックする
Trigの移動、回転、スケールなどを非表示
Rotateのアトリビュートをロック
完成!!
まとめ
標準で搭載されているノードのみを使用し、三角関数の計算が行えるノードを作成してみました。
プラグインなどで、より簡単に計算できるノードも存在するので…
これを利用するときは「標準機能のみを使用する」などの制限があるときになるとは思いますが、参考になれば幸いです。
※今回の組み方が最適解というわけではないので、
あくまで参考程度にとどめてください
この記事が気に入ったらサポートをしてみませんか?