説明:
次のサンプル スクリプトは、Script Test の既定のスクリプトです。球状のボリュームに対してパーティクルをテストする方法を示します。
用途:
このスクリプトは、Script_Test テスト アクション内で使用します。
効果:
スクリプトは、すべてのパーティクルの位置を半径 20 と比較し、パーティクルが半径内にある場合はパーティクルのテスト状態を
true
に設定します。
上記の設定では、球を通り抜けるパーティクルが次のイベントに送信され、そこでカラー変更が行われます。
例:
|
--ChannelsUsed ハンドラは、スクリプトに提供される
--チャンネルを定義します。
--すべてのチャンネルのリストについては、
--インタフェース: MaxscriptParticleContainer を参照してください。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on ChannelsUsed pCont do
(
--時間チャンネルを有効にします。
pCont.useTime = true
--位置チャンネルを有効にします。
pCont.usePosition = true
)
--初期化時には Init ハンドラが呼び出されます。
--この例では使用しません。
on Init pCont do
(
)
--Proceed ハンドラには、パーティクルに割り当てる
--メイン スクリプトが含まれています。
--ハンドラに渡されるパラメータ pCont には
--スクリプトの適用先のパーティクル コンテナが含まれています。
on Proceed pCont do
(
--パーティクルの合計数を取得します。
count = pCont.NumParticles()
--すべてのパーティクルをループ処理します。
for i in 1to count do
(
--コンテナ内のパーティクル インデックスに現在の i 値を設定します。
--コンテナ内の i 番目のパーティクルが現在のパーティクルになります。
pCont.particleIndex = i
-- 半径 20 の球の内部のすべてのパーティクルがテストの条件を満たします。
if length (pCont.particlePosition) < 20 then
(
--パーティクルのテストの状態を true に設定します。
pCont.particleTestStatus = true
--パーティクルのテスト時間を現在のパーティクル時間に設定します。
pCont.particleTestTime = pCont.particleTime
)
)--i ループを終了します。
)
--Release ハンドラを使ってクリーンアップを行います。
--この例では使用しません。
on Release pCont do
(
)
|