概要
煙や噴水などのパーティクル (粒子) エフェクトを定義します。
生成規則
particle-applier ::=
Particle{ TextureFileName = filename; AttachObject = string; SourceCoord = vector-3d; MinQty = float; ( MaxQty = float; )opt ( VelocityRel = float; )opt ( AccelerationRel = float; )opt ( DecelerationRel = float; )opt Lifetime = float, float; Direction = vector-3d, vector-3d; InitialRadius = float, float; FinalRadius = float, float; Color = color, color; BlendMode = ( Alpha | Add ); ( AirResistance = float; )opt ( Gravity = float; )opt ( Turbulence = float; )opt }
解説
TextureFileName
パーティクルの表現に使用するテクスチャファイルを指定します。
AttachObject
固定先のオブジェクト名を指定します。オブジェクト名は object-3d や body-object で定義されたものです。
SourceCoord
固定先オブジェクトのローカル座標で、パーティクルの生成位置を指定します。
MinQty
単位時間当たりのパーティクル最小発生数 [個/s] を指定します。
MaxQty
単位時間当たりのパーティクル最大発生数 [個/s] を指定します。以下の各種比例成分を指定した場合に、単位時間当たりの発生個数の上限を設定します。デフォルト値は MinQty です。
VelocityRel
単位時間当たりのパーティクル発生数の、発生源の移動速度に比例した成分 [(個/s)/(km/h)] を指定します。デフォルト値は 0.0 です。
AccelerationRel
単位時間当たりのパーティクル発生数の、発生源の加速度に比例した成分 [(個/s)/(km/h/s)] を指定します。加速度は常に正または 0 で、減速中の加速度は 0.0 となります。蒸気機関車の煙の量等を制御するのに使用します。デフォルト値は 0.0 です。
DecelerationRel
単位時間当たりのパーティクル発生数の、発生源の減速度に比例した成分 [(個/s)/(km/h/s)] を指定します。減速度は常に正または 0 で、加速中の減速度は 0.0 となります。ブレーキの火花等を制御するのに使用します。デフォルト値は 0.0 です。
Lifetime
パーティクルの寿命の最大値と最小値を秒単位で指定します。寿命はパーティクルごとに最小値と最大値の間でランダムに決定されます。
Direction
パーティクルの初期速度ベクトルの最小値と最大値を設置先オブジェクトのローカル座標系で指定します。
InitialRadius
パーティクルの初期サイズの最小値と最大値を指定します。
FinalRadius
パーティクルの最終サイズの最小値と最大値を指定します。
Color
パーティクルの色の変化範囲を指定します。パーティクルの色はここで指定した 2 色の間でランダムに決定されます。この機能を使えば、白いテクスチャ画像だけを用意しておけば、同じ形ならこのパラメタを変えるだけでどんな色のパーティクルも表現できます。
BlendMode
テクスチャ画像の描画モードを指定します。Alpha の場合は半透明合成、Add の場合は加算合成になります。加算合成は火花など発光粒子を表現するために使用します。
AirResistance
空気抵抗を 0.0〜1.0 の間で指定します。この値は 1 秒間に粒子の速度が何倍になるかを表します。空気抵抗が大きいほど、速度の減衰具合や風の影響を受けやすくなります。デフォルト値は 0.0 です。
Gravity
実効重力加速度を [m/s^2] で指定します。デフォルト値は 0.0 です。
Turbulence
乱気流の影響を指定します。この数値が大きいほど、速度ベクトルがランダムに変化します。デフォルト値は 0.0 です。
パーティクルを使えば様々な表現が可能になります。蒸気機関車の煙はもちろん、パンタグラフの火花や噴水、ラッセル車の掃き出す雪などが表現できるものと思われます。