説明
このサンプルは、パーティクル システムの概念について説明し、
SpriteBatch を使用してパーティクル エフェクトを描画する方法を示します。爆発および煙の立ち上がりの 2 つのパーティクル エフェクトを実装しています。
サンプルの概要
パーティクル システムは、通常は流動的で有機的な特殊エフェクトをレンダリングするためのテクニックです。ゲームでは、煙、炎、火花、水しぶきなどでよく使用されています。たとえば、Spacewar での爆発はパーティクル システムの一例です。
パーティクル システムは、任意の数の小さなパーティクルで構成されます。各パーティクルは独自の物理的プロパティを持ち、通常、これには位置、速度、加速度が含まれます。パーティクル システムが複雑になればなるほど、含まれるプロパティの数は多くなります。各パーティクル オブジェクトは、元となる全体的なシステムによって定義されるいくつかの初期プロパティによって初期化されますが、一度初期化された後はすべてのパーティクルが他のパーティクルから独立して動作します。パーティクルは通常、2D のアルファ ブレンディングされたスプライトとして描画されます。これらの独立して更新されるパーティクルを別のパーティクルの上に多数描画すると、ランダムで自然な表現が実現できます。
このサンプルのパーティクル システムは、Spacewar のパーティクル システムを基盤としています。ただし、ここでは、ガベージ コレクションを回避するための事前割り当ての使用方法についても説明します。さらに、Spacewar の
SceneItem が
DrawableGameComponent に変更されているので、XNA Framework ゲームにすぐに組み込むことができます。