見出し画像

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のアトリビュートをロック

完成!!

まとめ

標準で搭載されているノードのみを使用し、三角関数の計算が行えるノードを作成してみました。
プラグインなどで、より簡単に計算できるノードも存在するので…
これを利用するときは「標準機能のみを使用する」などの制限があるときになるとは思いますが、参考になれば幸いです。
※今回の組み方が最適解というわけではないので、
 あくまで参考程度にとどめてください


この記事が気に入ったらサポートをしてみませんか?