パーティクルシステムを作成するときに柔軟に対応できるよう、Unity には 2 つのソリューションがあります。プロジェクトが Compute Shader をサポートするプラットフォームをターゲットにしている場合、Unity では両方を同時に使用することができます。このパーティクルシステムソリューションが以下の 2 つです。
以下の表は、2 つのパーティクルシステムソリューションの主な違いを比較しています。各ソリューションの詳細については、ビルトインのパーティクルシステムまたは Visual Effect Graph を参照してください。
| 機能 | ビルトインパーティクルシステム | Visual Effect Graph |
|---|---|---|
| レンダーパイプラインの互換性 | ビルトインレンダーパイプライン、ユニバーサルレンダーパイプライン、HD レンダーパイプライン | ユニバーサルレンダーパイプライン、HD レンダーパイプライン |
| 可能なパーティクル数 | 数千 | 数百万 |
| パーティクルシステムのオーサリング | Inspector で Particle System コンポーネントを使用する、簡単なモジュラー式のオーサリングプロセスです。各モジュールは、パーティクルの定義済みの動作を表します。 | グラフビューを使用する高度にカスタマイズ可能なオーサリングプロセス。 |
| 物理演算 | パーティクルは Unity の基礎となる物理演算システムと相互作用します。 | パーティクルは、Visual Effect Graph で定義する特定の要素と相互作用できます。例えば、パーティクルは深度バッファと相互作用します。 |
| スクリプトの相互作用 | C# スクリプトを使用して、ランタイムにパーティクルシステムを完全にカスタマイズできます。システム内の各パーティクルを読み取り/書き込みし、衝突イベントに応答できます。Particle System コンポーネントは再生コントロール API も提供します。つまり、スクリプトを使用してエフェクトを再生および一時停止し、カスタマイズしたステップサイズでエフェクトをシミュレーションできます。 | グラフのプロパティを公開し、C# スクリプトでそれらにアクセスして、エフェクトのインスタンスをカスタマイズできます。イベントインターフェースを使用して、グラフが処理できる添付データとともにカスタムイベントを送信することもできます。Visual Effect コンポーネントは再生コントロール API も提供します。つまり、スクリプトを使用してエフェクトを再生および一時停止し、カスタマイズしたステップサイズでエフェクトをシミュレーションできます。 |
| フレームバッファ | いいえ | HD レンダーパイプライン (HDRP) で、カラーバッファと深度バッファにアクセスできます。例えば、カラーバッファをサンプリングしてその結果からパーティクルの色を設定したり、深度バッファを使用して衝突をシミュレーションしたりできます。 |