説明:
次のサンプル スクリプトは、particleVector チャンネルにベクター値を割り当てます。
用途:
Script_Operator内で使用して、Find_Target テストのターゲット ポイントの位置を制御できます。
効果:
シーン ジオメトリ オブジェクトの最初の頂点の位置を取得し、ランダム オフセットを追加して、すべてのパーティクルの particleVector チャンネルに割り当てます。その結果、Find_Target が particleVector チャンネルを読み取り、すべてのパーティクルをチャンネル内の頂点に設定されます。このため、すべてのパーティクルが頂点に向かうようになります。
例:
|
--ChannelsUsed ハンドラは、スクリプトに提供される
--チャンネルを定義します。
--すべてのチャンネルのリストについては、
--インタフェース: MaxscriptParticleContainer を参照してください。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on ChannelsUsed pCont do
(
--ベクトル チャンネルを有効にします。
pCont.useVector = true
)
--初期化時には Init ハンドラが呼び出されます。
--この例では使用しません。
on Init pCont do
(
--一意の名前のグローバル変数を定義し、
--その中に一意の名前のシーン オブジェクトを格納します。
globalobj_19680217 = $Sphere_19680217
--シーン オブジェクトが存在しない場合、球を作成し、
--一意の名前を付けて、グローバル変数に割り当てます。
if obj_19680217 == undefined then
obj_19680217 = Sphere name:"$Sphere_19680217"
)
--Proceed ハンドラには、パーティクルに割り当てる
--メイン スクリプトが含まれています。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on Proceed pCont do
(
--現在のパーティクル数を取得
count = pCont.NumParticles()
--1 からパーティクルの数だけループ
for i in 1 to count do
(
--コンテナ内のパーティクル インデックスに現在の i 値を設定します。
--コンテナ内の i 番目のパーティクルが現在のパーティクルになります。
pCont.particleIndex = i
--シーン オブジェクトの最初の頂点の位置を取得します。
vpos = (getVert obj_19680217.mesh 1)
--3 軸すべてに -1 ~ +1 の範囲のランダムな変動を追加します。
vpos += random [-1,-1,-1] [1,1,1]
--particleVector チャンネル値を計算された値に設定します。
pCont.particleVector = vpos
)--i ループを終了
)--Proceed を終了します。
--Release ハンドラを使ってクリーンアップを行います。
--この例では使用しません。
on Release pCont do
(
)
|