Unityの新機能「ParticleSystemForceField」
概要
「ParticleSystemForceField」はUnity2018.3から新たに追加された機能です。
この機能は、ParticleSystemに力場の概念を加えるものになります。
準備
この機能を使うためにはParticleSystem側でも準備をする必要があります。
ParticleSystemのオプションに「ExternalForces」というものが追加されているのでチェックを付けてください。
これはParticleSystemForceFieldの影響を受けるか、という設定です。
Shape(力場の形状)
球体、半球、筒、箱の4種類から選べる
StartRange:力場が発生する半径
EndRange:力場が終了する半径
Direction(力場に接触したときに発生する移動ベクトル)
X軸、Y軸、Z軸それぞれに速度を設定できる。
力場内では指定した方向に力が発生する。
Gravity(力場に触れた際に力場中心に引っ張られる力)
Strength:引っ張る力
Focus:重力場が占める割合
Focusは力場の外側を1で力場の中心を0として、何割を重力場にするかを設定します。
ここは少し複雑なんですが、重力の掛かり方は重力場と力場の関係によって変わります。
パーティクルが力場と重力場の両方に入っている場合は重力場は押し出す力が加わります。
逆に、パーティクルが力場に入っていて重力場から出ている場合は引っ張る力が働きます。
この時、Strengthの数値をマイナスにすると挙動が反転します。
Rotation(力場を中心にして回転する)
Speed:回転の速度
Attraction:パーティクルの中心への興味度
0から1で設定しますが、1の場合は力場に入った瞬間に力場を回り始めます。
逆に0の場合は全く興味を示さず影響を受けません。
Randomness:回転方向にランダム性を持たせます。
Drag(制動を掛ける)
Strength:止めようとする力の大きさ
MultiplyBySize:サイズの動きを抑えるか
MultiplyByVelocity:移動を抑えるか
VectorField(立体的な方向を持った力場)
これについてはあまり理解出来ていないのですが、3DTextureという
立体的なテクスチャに方向を描いて、その方向に力を加える機能だと思います。
VolumeTexture:移動方向を描いた立体テクスチャ
Speed:移動速度
Attraction:指定された方向への興味度
3Dテクスチャについてはこちらから
https://docs.unity3d.com/ja/current/Manual/class-Texture3D.html
これは使いこなせば面白い表現が出来そうなので時間があったら別の記事でまとめます。
まとめ
今回のアップデートでは、ParticleSystemForceFieldの他にもVisualEffectGraphというものも追加されていたり、演出回りがかなり強化されてきた感じがします。
ShaderGraphも楽しそうだし、いろいろやってみたいですね!