HEXA BLOG
ヘキサブログ
デザイン
TA と Maya Node Editor その4
こんにちは、Ritaro です。
こちらに記事を書くのはこれで7回目となります。
今回も、どうぞよろしくお願い致します。
TAにとって開発上の問題点を解くのに技術的な引き出しを色々な持っておくことが必要、
について・・また少し紹介したいと思います。
前回の記事内容
に引き続き、Mayaの Node Editorまわりの話、その4です。
キャラクターセットアップ等に便利に使える手段の1つです。
コンストレイント>作成下にあるペアレントやポイントといった
機能以外にも制御する方法があるということで、
今回も ノードの組み合わせでオブジェクトをワールド座標値で設定する方法や
更にベクター(Vector)についても話をしてみようと思います。
では、さっそく・・
ちょっと具体的な、面白い対処法、でもあったら『おお、使えるかも』
・・って思うようなものをまたご紹介していきましょう。
4)「Maya NodeEditor を使った ワールド座標のベクター」その2
さー vectorProductノードを使ってより本格的な計算例をご紹介しよう
と思いましたところで終わってしまいました。
その時はやったことは、
ベクターのノーマライズ を行うのに
plusMinusAverage の操作 減算 の後、
distanceBetween の距離 と multiplyDivide の操作 除算で
求めるのではなく、
plusMinusAverage の操作 減算 の後、
vectorProduct 操作を ベクトル行列積 に、
そして [レ] 出力の正規化 にチェックを入れて有効にするだけで
求めるられる、というところでした。(前記事チェックしてください)
では、2つの locator のグローバルの位置は pointMatrixMult についないだ
親行列と移動 値から得るとして
それをベクター値にするには plusMinusAverage の 3dD[0] 入力し
操作を 減算 にしたものと とします。
試しに 一旦 displayPoints というノードを繋げると
位置が一致することが目で見て確認出来ます。
これで 2つベクターが得られたので、
2つのベクターを plusMinusAverage で操作を再び 平均とすれば
2点間の中間が ベクターから計算出来たことになります。
■ 外積 (Cross Product)
そうしたら、2つのベクター値を vectorProduct につなぎ
操作を 外積 にして何が得られるか目で見てみましょう。
locator1 の位置は 0.000 1.000 0.000 としました。
locator2 の位置は 4.000 1.000 0.000 としました。
vectorProduct へのつなぎ方は
1つのLocatorから得た2つベクターを
それぞれ 入力1 と 入力2 につなぎ
vectorProduct の操作は 外積 とします。
この状態をMayaのシーンを上から見ると
locator2 を左右(X軸方向)に動かすと
displayPoints3 はその同じ分を直角上下(Z軸方向)に動きます。
locator2 を上下(Z軸方向)に動かすと
displayPoints3 はその同じ分を直角左右(X軸方向)に動きます。
つまり、locator1を中心にlocator2の方向(ベクトル)に対して
直角(90度)を保った位置(displayPoints3) を算出している
という結果を目で見えるかたちで示しています。
ただし、位置の動きが大きい値で変化してしまうので、
通常は vectorProduct の 操作は 外積 の下の
[レ] 出力の正規化 にチェックと入れて有効化し、
ノーマライズ(0から1の値)にして利用します。
■ 内積 (Dot Product)
今度は、2つのベクター値を vectorProduct につなぎ
操作を 内積 にして何が得られるか目で見てみましょう。
locator1 の位置は 0.000 1.000 0.000 としました。
locator2 の位置も 0.000 1.000 0.000 としました。
結果が見える displayPoints4 には
内積から得た値が 移動X に入るようにしてあります。
解りやすいように locator2 は 半径1.0 の円カーブ上に
パスコンストレイント してあります。
フレームを0から120にすると時計まわりに回るようにしてあります。
locator1 と locator2 のベクトルが同じ向きだと
内積の結果は 1.0 になります。
locator1 と locator2 のベクトルが90度の向きだと
内積の結果は 0.0 になります。
locator1 と locator2 のベクトルが逆向きだと
内積の結果は -1.0 になります。
この内積の結果を最も良く使うのがシェーダーになります。
locator1 が 平行光源のベクトル
locator2 が オブジェクトの法線の向きに置き換えて考えます。
もっとも明るい部分は
光のベクトルと法線が同じ向きの場合であり
一番暗い所は 光が当たらない つまり 逆向きの
黒(0.0以下の値は0.0の黒と考える)になります。
下図はMaya/Maxに搭載されているリアルタイムシェーダーである
ShaderFXの説明の時に利用したシーンの画面ですが、
一番明るい所が光源ベクトルと法線ベクトルの向きが一致
している場合という説明になります。
ここでの話しは少し横道にずれますが、
ついでにShaderFXでの内積を使った光源処理も見てみましょう。
いわゆるランバート(Lambert)を表現する為の描画結果を
得る為に 光源とオブジェクトのワールドの法線の
ベクトルを内積を使って導き出していることが
理解できると思います。
といったところで、今回はここまで。
また次回も、NodeEditor についての続きが出来たらと思っております。
ではでは。
*—–
Ritaro
CATEGORY
- about ヘキサ (166)
- 部活動 (6)
- CG (18)
- プロジェクトマネジメント (1)
- 研修 (5)
- 美学 (1)
- いいモノづくり道 (230)
- 採用 -お役立ち情報も- (149)
- プログラム (188)
- デザイン (99)
- ゲーム (274)
- 日記 (1,104)
- 書籍紹介 (113)
- その他 (875)
- 就活アドバイス (20)
- ラーメン (3)
- ライフハック (25)
- イベント紹介 (10)
- 料理 (23)
- TIPS (7)
- 怖い話 (3)
- サウンド (5)
- 子育て (1)
- 筋トレ (1)
- 商品紹介 (21)
- アプリ紹介 (31)
- ソフトウェア紹介 (33)
- ガジェット紹介 (12)
- サイト紹介 (10)
- 研究・開発 (34)
- 回路図 (4)
- アナログゲーム (40)
- 交流会 (21)
- 報告会 (3)
- インフラ (25)
- グリとブラン (6)
- カメラ (9)
- クラフト (27)
- 部活 (14)
- 画伯 (15)
- カレー (6)
- 音楽(洋楽) (6)
- 映画・舞台鑑賞 (43)
- 飼育 (5)
- いぬ (8)
- ねこ (19)
ARCHIVE
- 2024年
- 2023年
- 2022年
- 2021年
- 2020年
- 2019年
- 2018年
- 2017年
- 2016年
- 2015年
- 2014年
- 2013年
- 2012年
- 2011年
- 2010年
- 2009年
- 2008年
- 2007年