ゴイサギ日記

東京でエンジニアとして頑張って何とか生きてます。。ゆる~く更新していきます

【Unity】Shuriken Particle Unity2018

Unity2018以降で Shuriken Particle に追加された機能で個人的に気になったものを書いていきます。

確認バージョンは 2018.3.0f1 です。

Ring Buffer Mode


メインモジュールに追加された機能です。
パーティクル数が Max Particles 到達時の処理を設定します。

パラメータ
説明
Disabled Ring Buffer Mode を無効にします。上限値に達した場合、そのパーティクルの寿命(Start Lifetime)がきて上限値未満になるまで次のパーティクルは発生しなくなります。
Pause Until Replaced 上限値に達した場合、古いパーティクルを即時削除して次のパーティクルを発生させます。
Loop Until Replaced Pause Until Replaced 同様に古いパーティクルを削除しますが、上限値に達するまで Loop Range で設定した値内でアニメーションをループ再生できます。

下の動画では Loop Range を 0.0 - 0.5 で設定した後に Color over Lifetime で 0.0 - 0.5 間は白→緑→白、0.5 - 1.0 間はαフェードを設定しています。

パーティクル発生中は緑色に発光し続けて、上限値に達して削除対象になった古いパーティクルはαフェードで徐々に消えています。

設定はこんな感じです。
注意点として、古いパーティクルが完全に消える前に次のパーティクルが発生するため一時的に Max Particles を超えたパーティクル数が発生します。
Orbital Velocity


Velocity over Lifetime モジュールに追加されたパラメータです。任意軸を中心に渦を巻くパーティクルの動きを設定できます。Orbital で軸を設定します。軸の中心はエミッターの位置になります。

(動画はパーティクルの動きを確認しやすくするためにTrailモジュールを使っています)

Offset パラメータで軸の中心を変更できます。エミッターの位置から離れるほど下の動画のように大きな渦になります。

Shape : Rectangle

Shape モジュールに追加されたパラメータです。テクスチャの色情報を元にパーティクルの発生開始位置を設定できます。

パラメータ 説明
Texture テクスチャを設定します。対象テクスチャはRead/Writeを有効にする必要があります
Clip Channel クリップするRGBAチャンネルを設定します。選択したチャンネルでマスクして発生開始位置を調整します。
Clip Threshold Clip Channel で設定したチャンネルの閾値を設定します。注意点として、Clip ChannelでAlphaを設定した場合は適切な閾値を設定しないと透明なパーティクル(下図)を生成して余計な描画負荷を引き起こします。
Color affects Particles チェックを入れるとパーティクルがテクスチャのカラーの影響を受けます。
Alpha affects Particles チェックを入れるとパーティクルがテクスチャのα値の影響を受けます。
Shape : MeshRenderer


こちらも Shape モジュールに追加された機能です。指定Mesh上からパーティクルを発生させます。

パラメータ 説明
Type パーティクルの発生位置を設定します。
Mode どのようにパーティクルを発生させるか設定します。Type を Vertex, Edge で設定可能
Spread パーティクルの発生間隔を設定できます。Type を Edge で設定可能
Speed 頂点間を移動する際の速度を設定できます。Type を Edge で設定可能
Mesh Meshを設定します。対象メッシュは Read/Write を有効にしてください。
Texture Sheet Animation : FPS


Texture Sheet Animation モジュールの Time Mode に追加されたパラメータです。テクスチャアニメーションの FPS を設定できます。

所感

あと今回の機能はβ版で確認したので正式リリースでは仕様変更される可能性もありますが、色々とゲームの演出に使えそうな機能を追加しており表現の幅は広がりそうです。

参考

【Unite Tokyo 2018】パーティクル・マニアクス - YouTube
【CEDEC2018】 パーティクル新機能の紹介 - YouTube