忍者ブログ

Light of the Wave

主に、LightWave3Dに関する事を書き記します。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2013/03/06 【ユーティリティ関数_その9】

54b8bd0a.jpeg
学生の頃:「勉強なんて大人になってから何か役に立つんですか?」

そして今: ↓


はい、「Range Finder」と「Speed」を学んでいきます。
気合入れてやっていきましょう。


 

【Range Finder(Items)】(アイテム)
RF_Items.gif


vmag( CT_1.wpos(Time)- CT_2.wpos(Time))

 ※:緑のBox
 ※:赤のBox


2つのBoxアイテムの間の距離が出力値になります。
ワールド位置座標ベクトルの値が入力値になるのでXYZの3つの値を受け取ります。

しかし、上のGIFを見ると緑のBoxがZ軸に1 m移動すると黄のBallアイテムが2.2361 mという中途半端な値になっています。

これは何でかな~と思っていたんですけど、よくよく考えたら2つのアイテムの距離範囲が出力値になるExpressionでしたねw
(さっき言ったばっかりのことを3秒で忘れる。)

ということは・・・

「 2つのBoxの間の距離 = 中心点(原点)から移動する距離の値 」

ってことになりますね。
図形的に考えると二等辺三角形を自動で作れる性質を感じることが出来ます。
 

そういえば、この「vmag」ってどこかで見たことがあると思ったらマッスルボーンの基本で使われていましたね。
「vmag」はベクトル関数に含まれているもので、ここで使ったものは「vmag (距離/標準)」に当たります。
ボーンの終端が制御用のアイテムにくっ付いているような動きが作れたのはこれのおかげだったということかな?



 


【Range Finder(Origin)】(原点)
RF_Origin.gif


vmag( CT_1.wpos(Time))


原点から「CT_1」(緑の「+」Null)のワールド位置座標ベクトルの値が入力値になり、XYZの3つの値を受け取ってExpressionを適用したアイテムが原点から移動します。

ベクトル関数では、「vmag (大きさ/標準)」に当たります。





 

【Speed(Description)】(解説)

アイテムの移動スピード(速さ)を求める為の公式です。
これはビルダーであらかじめ式の基礎が作られていないので1から自分で入力することになります。
 

速度を求める公式:(Vector Value 2 - Vector Value 1)/(Time 2 - Time 1)
 

って、え?
この数式適用出来るの?
TimeをTimeで引くってどういうことだ??
 

????


とりあえず、この式は等速直線運動の公式なのかな?
 

 「 距離 = 速さ × 時間 」 ← コレ。
 

速さを求めるので、「速さ=距離÷時間」になりますね。
一度、これに沿って入力していきましょう。
例として、原点から移動していく「CT1」と、原点で静止している「CT2」を用意します。
速さを求めたいアイテムは「CT1」になるので、式をこのように・・・
 

(CT2.pos(Time)-CT1.pos(Time))/Time


カッコ内でNullの2点の距離を求めるようにしてTimeで割れば良し!
・・・と思いますが、このままだと出力される値はマイナス値になりますし、そもそもこのExpressionは不適用に扱われます。

 

ぐぬぬ・・・もう一度ビルダーの公式を見ましょう。
 

(Vector Value 2 - Vector Value 1)/(Time 2 - Time 1)


これを言葉に置き換えていきます。
 

(スタート地点 - 移動地点)/(スタートの時間 - 移動時に掛かった時間)
 

おや?
何か分かってきましたねw

スタートの時間は0秒からだから、これは「Time」という記号を入れるんじゃなくて数値を入れていくんですね。
(「Time」は30フレーム=1秒といった具合に自動で値が入力される記号。)
 

(CT2.pos(Time)-CT1.pos(Time))/(0-Time)
 

これで無事にExpressionを適用出来ました。
さらに、移動した値と時間の値がマイナスで割られるので出力される値は正数になります。
 

この公式の意味はだいたいこんな感じなのかな?
でもこれって・・・
 

一定のスピードで移動しているアイテムにしか使えないんじゃあ。


・・・。

・・。

・。

 

「時間返してっ!!」
(気付くのが遅い。)


 

これはExpressionを使って速さを求めるよりもグラフ編集の「スピードを表示」か、カスタムオブジェクトの「Speedometer」使ったほうが変速した時の早さも求められるし簡単にスピードの値が分かりますね。
わざわざイバラの道へ進んで変速でも値が求められるような数式を調べる必要はありません。
こっちを使っていきましょうw

 

ふぅ、余計なところで時間を取られてしまった。
何はともあれ次回の記事でユーティリティ関数が終われそうです。

ここで一区切りにして作品を作るか、それともExpressionの性質を掴みかけている今に一気に進めていくか迷うところですが、Expressionを一気に覚えていった方のが半端に覚えずに済むのでこのまま進めていこうと思います。

 

拍手[0回]

PR

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

プロフィール

HN:
d_suzukky
性別:
男性
自己紹介:
こんにちは、d_suzukkyです。

田舎暮らしでのほほんと3DCGの勉強をしています。

ブログ内検索

Booklog

最新コメント

[05/22 topchecker]
[05/22 topchecker]
[05/22 topchecker]
[05/22 topchecker]
[05/22 Hyksof]

最新トラックバック

バーコード

フリーエリア

Copyright ©  -- Light of the Wave --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]