particleInteger サンプル スクリプト
 
 
 
 

   

パーティクル フロー - クイック ナビゲーション

説明:

次のサンプル スクリプトは、パーティクル速度に従って particleInteger チャンネルに整数値を割り当てます。

用途:

.Assignment_Type 4: [By Script Integer] に設定されているとき、Find_Target テスト内でターゲットを選択するために使用できます。

効果:

Find_Target オペレータと使用すると、particleIntegerチャンネルで、インデックスからターゲット オブジェクトを指定できます。

フレームごとの速度が 1 単位より小さい場合、パーティクルは最初のターゲット(インデックス 0) に割り当てられます。フレームごとの速度が 10 単位より大きい場合、パーティクルは 3 番目のターゲット(インデックス 2)に割り当てられます。その他のすべてのパーティクルは 2 番目のターゲット (インデックス 1) に割り当てられます。

例:

--ChannelsUsed ハンドラは、スクリプトに提供される
--チャンネルを定義します。
--すべてのチャンネルのリストについては、
--インタフェース: MaxscriptParticleContainer を参照してください。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on ChannelsUsed pCont do
(
--時間チャンネルを有効にします。
pCont.useTime = true
--速度チャンネルを有効にします。
pCont.useSpeed = true
--整数チャンネルを有効にします。
pCont.useInteger = true
)
--初期化時には Init ハンドラが呼び出されます。
--この例では使用しません。
on Init pCont do
(
)
 
--Proceed ハンドラには、パーティクルに割り当てる
--メイン スクリプトが含まれています。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on Proceed pCont do
( 
--パーティクル数を取得
count = pCont.NumParticles()
 
--2 つのローカル変数 slowSpeed と fastSpeed の定義:
--それぞれフレームあたり 10 単位と 160 単位 (NTSC 時間では 1 ティックが フレーム)
slowSpeed = 1/160.0
fastSpeed = 10/160.0
 
--1 からパーティクルの数だけループ
for i in 1 to count do
(
 
--コンテナ内のパーティクル インデックスに現在の i 値を設定します。
pCont.particleIndex = i
 
--particleSpeed ベクターの長さが
--定義された slowSpeed 値より短い場合、
--particleInteger 値を 0 に設定します。
iflength(pCont.particleSpeed) < slowSpeedthen
pCont.particleInteger = 0
 
--パーティクルの速度が slowSpeed 値より速い場合、
--fastSpeed 値に対して速度をテストします。パーティクルの速度のほうが速い場合は 2、遅い場合は
--(slowSpeed と fastSpeed 間で) 1 を
--particleInteger チャンネルに割り当てます。
else
(
if (length(pCont.particleSpeed) > fastSpeed) then
pCont.particleInteger = 2
else
pCont.particleInteger = 1
)
)--i ループを終了
)--Proceed を終了します。
--Release ハンドラを使ってクリーンアップを行います。
--この例では使用しません。
onRelease pContdo
(
)
関連事項