Version: 2019.4
言語: 日本語
パーティクルシステム
ビルトインのパーティクルシステム

パーティクルシステムソリューションの選択

パーティクルシステムを作成するときに柔軟に対応できるよう、Unity には 2 つのソリューションがあります。プロジェクトが コンピュートシェーダー をサポートするプラットフォームをターゲットにしている場合、両方を同時に使用することができます。パーティクルシステムソリューションは以下の 2 つです。

  • ビルトインパーティクルシステム: C# スクリプトからシステムとそれに含まれるパーティクルへの完全な読み取り/書き込みアクセスを提供するソリューション。パーティクルシステム API を使用して、パーティクルシステムのカスタム動作を作成できます。
  • Visual Effect Graph: GPU 上で実行できるソリューションで、数百万のパーティクルのシミュレーションを行い、大規模なビジュアルエフェクトを作成できます。Visual Effect Graph には、カスタマイズが自由自在なビジュアルエフェクトを作成するのに役立つビジュアルグラフエディターも含まれています。

以下の表は、2 つのパーティクルシステムソリューションを比較しています。各ソリューションの詳細については、ビルトインのパーティクルシステムVisual Effect Graph を参照してください。

機能 ビルトインパーティクルシステム Visual Effect Graph
レンダリングパイプラインの互換性 ビルトインレンダーパイプライン、ユニバーサルレンダーパイプライン、HD レンダーパイプライン ユニバーサルレンダーパイプライン、HD レンダーパイプライン
可能なパーティクル数 数千 数百万
パーティクルシステムのオーサリング インスペクターで Particle System コンポーネント を使用する簡単なモジュラー式オーサリングプロセス。各モジュールは、パーティクルの定義済みの動作を表します。 グラフビューを使用する高度にカスタマイズ可能なオーサリングプロセス。
物理演算 パーティクルは Unity の基礎となる物理演算システムと相互作用します。 パーティクルは、Visual Effect Graph で定義する特定の要素と相互作用できます。例えば、パーティクルは深度バッファと相互作用します。
スクリプトの相互作用 C# スクリプトを使用して、ランタイムにパーティクルシステムを完全にカスタマイズできます。システム内の各パーティクルの読み取りと書き込みを行い、衝突イベントに応答できます。Particle System コンポーネント は再生制御 API も提供します。つまり、スクリプトを使用してエフェクトを再生および一時停止し、カスタムのステップサイズでエフェクトのシミュレーションを行います。 グラフのプロパティを公開し、C# スクリプトを通してそれらにアクセスして、エフェクトのインスタンスをカスタマイズできます。また、イベントインターフェース を使用して、グラフが処理できる添付データと共にカスタムイベントを送信することもできます。Visual Effect コンポーネント は再生制御 API も提供します。つまり、スクリプトを使用してエフェクトを再生および一時停止し、カスタムのステップサイズでエフェクトのシミュレーションを行います。
フレームバッファ 不可 HD レンダーパイプラインで、カラーバッファと深度バッファにアクセスできます。例えば、カラーバッファをサンプルし、その結果を使用してパーティクルの色を設定したり、深度バッファを使用して衝突のシミュレーションを行います。
パーティクルシステム
ビルトインのパーティクルシステム