[3dsMax]二点間の距離によって、振動の強さを変化させる。

緑と赤のオブジェクト二点間の距離によって、青のオブジェクトの振動の強さを変化させる。
(基準点は、緑のオブジェクトと、赤のオブジェクトの中心)

・3dsMaxの単位設定:標準設定
・計算に使用する緑と赤の距離の範囲:100
・振動の最大値:30

青オブジェクトの位置に、スクリプトコントローラー・位置スクリプトを割り当てる。
スクリプトコントローラーで、緑オブジェクトと、赤オブジェクトを入れた変数を用意する。
スクリプトコントローラーの式蘭に以下のスクリプトを入力する。

▼スクリプトコントローラー・位置スクリプトの式蘭に入力する文

※変数hako1には、トラックの割り当てから、緑オブジェクトの位置を割り当てる。
※変数hako2には、トラックの割り当てから、赤オブジェクトの位置を割り当てる。

kyori = distance hako1 hako2
wariai = kyori/100

wariai = 1-wariai
sindou = 30*wariai
sindou = sindou/2
sindoux = random (sindou * (-1)) sindou
sindouy = random (sindou * (-1)) sindou
sindouz = random (sindou * (-1)) sindou

[0,0,0] + [sindoux, sindouy, sindouz]

↑のスクリプトだと、
緑と赤のオブジェクトの距離が開けば開くほど、青オブジェクトの振動が強くなっていく。
緑と赤、二点間の距離が100以上開くと、振動の最大値である30を超えてしまう。

振動の最大値が30を超えないようにするためには、
wariai = kyori/100
↑の次の行に、
if wariai > 1 do wariai = 0
という文を追加する。
こうすれば、割合が1を超えても、後の処理で割合が1を超えることが無くなる。


※Box01:緑 ※Box02:赤 ※Box03:青

▼リアクションマネージャで処理するほうが簡単。

この場合は、緑のオブジェクトは必要ない。
青オブジェクトの位置に、位置コントローラー・ノイズ位置を割り当てる。

リアクションマネージャで、
赤オブジェクトのX位置をマスターに登録し、スレーブには青オブジェクトのノイズ強度を登録する。
あとは状態1と状態2を設定するだけ。

※distance関数についての注意。
[3dMax]距離を測定ツールと、distance関数では、測定値が異なる場合がある。

広告

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*