particleVector サンプル スクリプト
 
 
 
 

   

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

説明:

次のサンプル スクリプトは、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
(
)
関連事項