【Unity】ParticleSystemのRingBufferModeについて

ParticleSystemのMainモジュールにあるRingBufferModeについての記事になります。

RingBufferModeとは

RingBufferModeでは、パーティクルシステムが新しいパーティクルを生成する際に、古いパーティクルをどのように扱うかを決定します。 次の3つのモード設定ができます。

  • Disabled
  • Pause Until Replaced
  • Loop Until Replaced

次に掲載する動画の環境です。

  • Duration : 10
  • StartLifetime : 1
  • MaxParticles : 10

Color over Lifetimeは次のようにしています。

Color over Lifetimeの設定

Disabled

これがデフォルトの設定です。

動画

Disabled

Pause Until Replaced

リングバッファモードが有効化されます。パーティクルシステムは最大パーティクル数に達したとき、新しいパーティクルを生成するために最も古いパーティクルを一時停止し、置き換えます。 これにより、パーティクルの総数が一定に保たれ、連続的なパーティクルの生成が可能になります。

動画

MaxParticlesの数までパーティクルが生存しています。 生存中のパーティクルは停止しています。

Pause Until Replacedの例

Loop Until Replaced

パーティクルシステムは最大パーティクル数に達したとき、最も古いパーティクルをリサイクルして新しいパーティクルを生成します。 これにより、パーティクルの総数が一定に保たれ、連続的なパーティクルの生成が可能になります。

  • Loop Range MaxParticlesに到達するまでにループするLifetimeの割合を設定できます。 例えば0(Min) 0.5(Max)と設定した場合、待機中パーティクルはlifetimeで設定されている0 ~ 0.5の割合をループして再生されます。

動画

MaxParticlesの数までパーティクルが生存しています。 生存中のパーティクルはLoop Rangeで設定された生存期間をループしています。

Loop Until Replacedの例