【Unity】Particle System各モジュール一覧

この記事では、Particle Systemの各モジュールの種類や使い方について説明します。
Particle Systemの解説はUnityの公式HPに詳細なドキュメントがありますが、本記事では動画を用いて直感的に理解することを目指します。
※今回使用したUnityのバージョンは、2019.3.6fです。

Particle Systemモジュールの説明

Particle Systemモジュールの基礎についてはこちらの記事を参考にしてください。

Emissionモジュールの説明

Emissionモジュールは、Particleの量や放出のタイミングを決めます。
Rate over Distanceの数値を10にすると、Particleが一定距離移動するごとに10のParticleが放出されます。

Emissionモジュール、RateOverDistanceの設定

Rate over Distanceの設定


Emission Module,RateOverDistance

Emission Moduleの設定をした場合

Burstsでは、一定時間ごとにParticleを大量に放出する設定ができます。

Emission Module

Burstsの設定をした場合


Emissionモジュール、Burstsの設定

Burstsの設定

Shapeモジュールの説明

Shapeモジュールは、Particleを放出する形状を設定できます。
Shapeのプルダウンから形を選択します。

Shapeの設定

Shapeの設定


Shape

色々なShapeの形状

Rendererモジュールの説明

Particleの形状や影を設定できます。Render ModeでMeshを選択し、Meshのプルダウンから形状を選択します。
Meshでは、Defaultで入っているCube等の形状のほかに、自分で作成したMeshやAsset StoreからImportしたMeshを使用できます。

RendererモジュールでMeshを設定する

RendererモジュールでMeshを設定する

Rendererモジュールでは、Materialを変更することもできます。

Materialの設定

Materialの設定


Rendererモジュールでmeshの設定をした場合

MeshとMaterialの設定をした場合

Size over Lifetimeモジュール説明

Size over Lifetimeモジュールでは、Particleの大きさを時間経過により変更することができます。
Curveの設定もできるので大→小→大のような表現もできます。

Size over LifetimeモジュールをCurveで設定した場合

Size over LifetimeモジュールをCurveで設定した場合


Size over Lifetimeモジュールの設定をした場合

Size over LifetimeモジュールをCurveで設定した場合

Color over Lifetimeモジュールの説明

Color over Lifetimeモジュールでは、時間経過でColorとα値を変化させることができます。

Color over Lifetimeの設定


Color over Lifetimeモジュールの設定をした場合

Color over Lifetimeの設定をした場合

Force over Lifetimeモジュールの説明

Force over Lifetimeモジュールでは、Particleに風の影響を受けたような表現を追加することができます。
例えば、画像のように設定すると右に向かって風が吹いているようになります。

Force over Lifetimeモジュールの設定

Force over Lifetimeモジュールの設定


Force over Lifetimeモジュールの設定をした場合

Limit Velocity over Lifetimeモジュールの説明

Limit Velocity over Lifetime モジュールでは、Particleの動きを減速させることができます。
これにより、空気抵抗のような表現を実装することができます。
Limit Velocity over LifetimeモジュールのSpeedでは、空気抵抗を受けて減速した結果のSpeedを入力します。
Dampenは空気抵抗の大きさです。
Start Speedを20、Limit Velocity over LifetimeモジュールのSpeedを0、
Dampenを0.1に設定すると、20のSpeedが徐々に0に近づき最後には停止します。

StartSpeedを20に設定

Start Speedを20に設定


Speedを0、Dampenを0.1に設定

Speedを0、Dampenを0.1に設定


Limit Velocity over LifetimeモジュールのSpeedを0にした場合

Limit Velocity over LifetimeモジュールのSpeedを0にした場合

Velocity over Lifetimeモジュールの説明

Velocity over Lifetimeモジュールでは、速度に加える力を制御することができます。
y軸をCurveに設定するとParticleの動きに高低差をつけることができます。

VelocityoverLifeTimeモジュールをCurveに設定

Velocity over LifetimeモジュールをCurveに設定


Velocity over Lifetimeモジュールのy軸をCurveにした場合モジュールのy軸をCurveにした場合

Velocity over Lifetimeモジュールのy軸をCurveにした場合

渦のような表現をすることもできます。
Orbitalを5、Radialを1に設定します。
Particleの発生数を1、TrailsをONにして渦を表現しています。

Orbitalを5、Radialを1に設定

Orbitalを5、Radialを1に設定


Orbitalを5、Radialを1に設定

渦のようなParticleを作ることができる

Rotation over Lifetimeモジュールの説明

Rotation over Lifetimeモジュールでは、Particleを時間経過に沿って回転させることができます。

Rotation over Lifetimeモジュール

Rotation over Lifetimeモジュールの設定をした場合

Separate AxesをチェックするとX軸、Y軸、Z軸それぞれの回転軸で回るように設定できます。

X軸を100に設定する


X軸を100に設定した場合


Yを100に設定した場合


Zを200に設定した場合

Trailsモジュールの説明

TrailsモジュールをONにすると、Particleが通った跡を表示することができます。

Trailsモジュールの設定をONにした場合(Materialなし)

Trailsモジュールの設定をONにした場合(Materialなし)

Materialの設定は、Rendererモジュールから行います。

TrailsのMaterial設定

TrailsのMaterialの設定

RendererモジュールのRenderer ModeをNoneに設定すると、デフォルトで表示されていたParticleが非表示になり、Trailのみ表示されます。

RendererモジュールのRendererModeをNoneに設定

Renderer ModeをNoneに設定


Trailsモジュールの設定をした場(Materialあり)

Trailsモジュールの設定をした場合

TrailsモジュールのTypeをRibbonにすると、Particleの粒同士を線で繋いだ表現をすることができます。
Particleの生成数を4に設定し、TrailsモジュールのModeをRibbon、Ribbon Countを2に設定します。

生成される数を4に設定

生成される数を4に設定


ModeをRibbon、RibbonCountを2に設定

ModeをRibbon、Ribbon Countを2に設定


TrailsモジュールのTypeをRibbonに設定した場合

TrailsモジュールのTypeをRibbonに設定した場合

Noiseモジュールの説明

NoiseモジュールをONにすると、Particleに不規則な動きを追加することができます。
Noiseの動きはTrailsを表示すると確認しやすくなります。
TrailsをONにし、Noiseの強さを制御するStrengthを4にすると次の動画のようになります。

Noiseモジュールの設定をした場合

Noiseモジュールの設定をした場合

Collisionモジュールの説明

Collisionモジュールは、Particleが他のオブジェクトと衝突したときの挙動を制御します。
ONにすると、オブジェクトと衝突したときの物理挙動を表現できます。
CollisionモジュールのTypeをWorldに設定すると、シーン上に存在するコライダーを持つほかのオブジェクトとの衝突が可能になります。
Bounceでは、衝突したときの衝撃の大きさを設定します。値が小さいほど、衝撃が小さいです。

TypeをWorld、Bounceを0.8に設定


Collisionモジュールの設定をした場合

Particleが他のオブジェクトと衝突すると跳ね返るようになる

Sub Emittersモジュールの説明

Emitterとは、Particleの発生地点のことです。Sub EmittersモジュールではEmitterを追加することができます。
追加の条件には、Birth、Collision、Deathなどがあります。Collisionの条件を適用してみます。
CollisionモジュールのTypeをWorldに設定します。

Sub Emittersモジュールを使用するときはCollisionをONにし、TypeをWorldにする

CollisionモジュールをONにし、TypeをWorldにする

シーンには、衝突させたいオブジェクトを設置します。

ColliderのついているObjectをSceneに設置する

コライダーのついているオブジェクトをシーンに設置する

Sub EmittersモジュールをCollisionに設定し、衝突したら発生させるParticleを設定します。

SubEmittersモジュールをCollisionに設定し、衝突したら発生させるParticleを設定する

衝突したら発生させるParticleを設定する


Sub EmittersモジュールでCollisionの設定をした場合

白いParticleがキューブに衝突するとカラフルなParticleが発生する

Lightモジュールの説明

Lightモジュールを設定すると、Particleを発光させることができます。
LightモジュールのLightに、ヒエラルキーウィンドウのPoint Lightを選択し、Intensity Multiplierを0.5に設定すると次の動画のようになります。

Colorの設定

Colorの設定


Lightモジュールを設定

LightにPoint Light、Intensity Multiplierを0.5に設定


Lightモジュールの設定をした場合

Lightモジュールの設定をした場合

Inherit Velocityモジュールの説明

Inherit Velocityモジュールは、Particle Systemを子階層にしているときに、親オブジェクトの速度を考慮した動きをParticle Systemに与えることができます。
Inherit Velocityモジュールを使用するときは、Simulation SpaceをWorldに設定します。

Simulation SpaceをWorldに設定

Simulation SpaceをWorldに設定

Multiplierが1より小さい場合は、子階層にあるParticleが親オブジェクトに追従します。

ModeをCurrent、Multiplierを0.1にした場合

ModeをCurrent、Multiplierを0.1に設定


Inherit VelocityモジュールのMultiplierを0.1に設定した場合

Inherit VelocityモジュールのMultiplierを0.1に設定した場合

Multiplierが1より大きい場合は、子階層にあるParticleが親オブジェクトより速く進みます。

ModeをInitial、Multiplierを2にした場合

ModeをInitial、Multiplierを2に設定


Inherit VelocityモジュールのMultiplierを2に設定した場合

Inherit VelocityモジュールのMultiplierを2に設定した場合

Particleの各モジュールについての概要を、動画を用いて紹介しました。
奥が深い部分なので、色々カスタマイズしてみると、面白い表現が見つかりそうです。

STYLYにアップロードする方法

3DモデルをSTYLYにアップロードしてみましょう。

STYLYアカウントを作成する

アカウント作成方法

STYLYにアップロードする方法

UnityからSTYLYにアップロードする方法