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