緑と赤のオブジェクト二点間の距離によって、青のオブジェクトの振動の強さを変化させる。
(基準点は、緑のオブジェクトと、赤のオブジェクトの中心)
・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関数では、測定値が異なる場合がある。