ゴイサギ日記

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

【Unity】Shuriken Particle Unity2018

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

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

Ring Buffer Mode

f:id:aki517:20181212095658p:plain
メインモジュールに追加された機能です。画面に表示されるパーティクル数が Max Particles で設定した上限値に達した時の処理を設定できます。

パラメータ
説明
Disabled Ring Buffer Mode を無効にします。上限値に達した場合、そのパーティクルの寿命(Start Lifetime)がきて上限値未満になるまで次のパーティクルは発生しなくなります。 f:id:aki517:20181213082637g:plain
Pause Until Replaced 上限値に達した場合、古いパーティクルを即時削除して次のパーティクルを発生させます。
f:id:aki517:20181213082629g:plain
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 間はαフェードを設定しています。
f:id:aki517:20181213082436g:plain
パーティクルが出ている間は緑色に発光し続けて、上限値に達して削除対象になった古いパーティクルはαフェードで徐々に消えているのが確認できます。

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

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

f:id:aki517:20181214090808g:plain

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

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

f:id:aki517:20181214091141g:plain

Shape : Rectangle

f:id:aki517:20181214091741p:plain

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

f:id:aki517:20181214090019g:plain

パラメータ 説明
Texture テクスチャを設定します。対象テクスチャはRead/Writeを有効にする必要があります
Clip Channel クリップするRGBAチャンネルを設定します。選択したチャンネルで発生開始位置をマスクする感じになります。
Clip Threshold Clip Channel で設定したチャンネルの閾値を設定します。Clip ChannelでAlphaを設定した場合は適切な閾値を設定しないと下図のように見えないパーティクルが生成され余計な描画負荷が発生するので注意が必要です。f:id:aki517:20181214085418p:plain
Color affects Particles チェックを入れるとパーティクルがテクスチャのカラーの影響を受けます。
Alpha affects Particles チェックを入れるとパーティクルがテクスチャのα値の影響を受けます。
Shape : MeshRenderer

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

パラメータ 説明
Type パーティクルの発生位置を設定します。f:id:aki517:20181214235847g:plain
Mode どのようにパーティクルを発生させるか設定します。Type が Vertex, Edge で設定可能
Spread パーティクルの発生間隔を設定できます。、Type が Edge で設定可能f:id:aki517:20181215001541p:plain
Speed 頂点間を移動する際の速度を設定できます。Type が Edge で設定可能
Mesh Meshを設定します。対象メッシュは Read/Write を有効にする必要があります。
Texture Sheet Animation : FPS

f:id:aki517:20181215002717p:plain
Texture Sheet Animation モジュールの Time Mode に追加されたパラメータです。テクスチャアニメーションの FPS が設定できます。
f:id:aki517:20181215003319g:plain

所感

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

参考

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