日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年5月11日月曜日

ベクトルの大きさ:magコマンド

larning Maya (MEL fundamentals) を読んでいるとき、「mag」というコマンドが出てきた。(p110)
これはMagnitudeの略だが、ベクトルの大きさ(Magnitude)を得るためのコマンドだ。

ベクトルは高校の物理で習った記憶があるが、大体そのあたりからついて行きづらくなってきて
ほとんど覚えていない。


そこでもう一度ベクトルをおさらいしてみた。
KIT数学ナビゲーションによると

ベクトルとは、

大きさと向きで定まる量をベクトルという。

ベクトルと聞くと→(矢印)の図を思い出す。
なぜ「矢印」とか「方向」と言わないで「ベクトル」と呼ぶのか?
それは大きさも含まれているからだ。


ベクトルの語源は、

ラテン語で vector vehere 運ぶ者とか 移動するとか言う意味。
英語の乗り物 vehicle < ラテン語 vehere も同系語


ベクトルの大きさとは

ベクトルの始点と終点との距離をベクトルの大きさという。


--------------------

もう一つ、詳しいサイトがあったのでそちらからも抜粋:
(物理のカギしっぽ「もう一度ベクトル1」より)


高校の数学のテキストを見てみると「ベクトルとは有向線分である」と書いてあります.ここで言う「有向」とは「方向が有る」と言うことです.つまり向きつきの線分と言うことですね
ベクトルは“有向”であるために図形的に表現するときは矢印で表しますそして。
矢印の根元を始点,先っぽを終点と言います.

vectorという言葉は,1843年にHamiltonがラテン語のvectumから作った造語ですが,
vectum とは運ぶもの,という意味です。
更に遡ると,サンスクリット語で女神の乗り物を意味するヴァーハナと同根のようです。
また,日本語で発音を表記する際に正確には“ベクター” の方が近いです。
生物学でベクター(綴りも一緒)と言えば遺伝子運搬因子の事を指し,病理学で言えば病原菌媒介生物のことを指します。


そして上記サイト「もう一度ベクトル」で説明されているようにある方向を示すには
2次元ならx方向とy方向の向きと量が必要となり、3次元ならこれにz方向の向きと量が加わる


通常Mayaで操作しているとき、
x=7とかy=5という座標値は単体でベクトル(方向と大きさを持っている)と言える。
x=7ならx方向へ7の大きさをもったベクトルである。
そして3次元空間の中である一点を示すときは、xyzの3つの座標が与えられる。


Mayaで「ベクトル」というと変数のタイプの一つを意味する。
このベクトルは<<7,>>と表記され、
最初の数値からxyzという順番になっているという、暗黙の了解がある。
数字が表しているのは、その大きさだけである。

数学的な観点から考えれば二次元のベクトルを表す変数もあって良いのかもしれないが
Mayaに存在するのはこの三次元のベクトルだけだ。

3つの数字を決まった順番で書き記すことで表現しようとしているは、実は一つのベクトルである。
それは原点と空間上のある一点を結んだ直線である。

しかし表記上、方向を示すには、xyzの座標軸に従った表現をするしかない。
これでこの直線の方向は示すことができる。
しかしながらその直線の大きさは実は「<>」の表現には直接書かれていない

magコマンドは、この量を計算する。
与えられた、3つのベクトル値から、原点とその点を結んだ線の量を計算する。
言い換えるなら、原点からその点までの距離を計算している。

もっと簡単に言うと、
座標値から、その線分の長さ(直線距離)を計算するということだ。

mag <<7,>>;
// Result: 13.9284 //



このmagコマンドはどのように役に立つのか?
LearningMayaの例(pg110)では、
あるカメラの座標(vecor)からオブジェクトの座標(vector)を引き、
その値に対してmagコマンドを適用し、カメラ-オブジェクト間の距離を計算している。

vector $camVec = <<$camX, $camY, $camZ>>;
vector $objVec = <<$objX, $objY, $objZ>>;

float $distance = mag ($camVec - $objVec);


これにより、この例では簡単なLOD(レベル・オブ・デティール)を実現している。


goalU,goalVを調べているときオンラインヘルプのどこかで
パーティクルがゴールに近づいたときに色を変えることができると書いてあったが、
これを使えばそれが可能ではないかと思う。

 

0 件のコメント:

コメントを投稿