最終ステップ更新の例
 
 
 

説明:

次の例では、詳細コメント付きで既定値の Final Step Update スクリプトを示しています。

用途:

既定値の Final Step Update スクリプトとして PF_Source によって使用されます。

効果:

既定のスクリプトでは、パーティクルの速度と方向が修正され、パーティクルは球状のパスを描くようになります。

例:

--スクリプトを実行している現在のパーティクルを取得します。
pf_node_current = particleFlow.scriptRunner()
 
--現在のパーティクル システムが有効なノードである場合
if (pf_node_current != undefined) then(
 
--パーティクルの合計数を取得します。
count = pf_node_current.NumParticles()
--1 からパーティクルの数だけループします。
for i in 1 to count do(
--コンテナ内のパーティクル インデックスに現在の i 値を設定します。
--コンテナ内の i 番目のパーティクルが現在のパーティクルになります。
pf_node_current.particleIndex = i
 
--パーティクルのエージを取得して、それに 5 を掛けて角度として使用して
--パーティクル速度を定義します。
--定数 5 を減少させると回転速度が下がります。
--定数を増加させると回転速度が上がります。
age = 5*pf_node_current.particleAge
 
--パーティクル エージに基づいて係数の変数を計算します。
--この変数は球の半径を定義し、また、
--時間の経過によるエージの正弦 (sin) によって変動します。
--定数 20 を変更して半径を変更します。
factor = 20*(sin(2*age)+1)
 
--最後に、円の関数において、Radius を係数に、
--Angle をパーティクル インデックスに使用して、パーティクルの位置を
--計算して設定します。パーティクルを Source の原点に移動するには、
--ノードの位置を追加する必要があります。
--参考:一般的に、円は、0 から 2*Pi までの範囲の角度と
--以下に示す X と Y の関数を使用して描くことができます。
--X = CenterX+Radius*Cos(Angle)
--Y = CenterY+Radius*Sin(Angle)
--この例では、CenterX と CenterY は 0 で、Radius には係数を設定し、
--Angle は、パーティクル インデックスを 77 倍したものに基づきます。
--Z 位置はエージに基づきます。
pf_node_current.particlePosition = [factor*cos(77*i), factor*sin(77*i), -age] + pf_node_current.pos
 
)--i ループを終了
)--if 終了
関連事項