パーティクル・システム(2D)¶
イントロ¶
単純な(しかしほとんどの用途には十分に柔軟な)パーティクル・システムが提供されています。パーティクル・システムは、火花、火、魔法の粒子、煙、霧などの複雑な物理的効果をシミュレートするために使用されます。
その考えは、 "particle" が一定の間隔でそして一定の寿命で放出されるということです。 その寿命の間、すべての粒子は同じ基本的なふるまいを持ちます。 各パーティクルを他のパーティクルとは異なるものにし、より有機的に見えるのは、各パラメータに関連付けられた "randomness" です。基本的に、パーティクルシステムを作成することは、基本物理パラメータを設定してから、それらにランダム性を追加することを意味します。
パーティクルノード¶
Godotは、2Dパーティクル用に2つの異なるノード、Particles2D および CPUParticles2D を提供します。 Particles2Dはより高度で、GPUを使用してパーティクルエフェクトを処理しますが、それはより高度なグラフィックスAPI、この場合はGLES3レンダラーに限定されます。 GLES2バックエンドを使用するプロジェクトの場合、CPUParticles2Dは、Particles2Dとほぼ同等の機能を備えたCPU駆動のオプションですが、パフォーマンスは低下します。 Particles2Dは ParticlesMaterial を介して(およびオプションでカスタムシェーダーを使用して)構成されますが、一致するオプションはCPUParticles2Dのノードプロパティを介して提供されます(トレイル設定を除く)。インスペクタでノードをクリックし、ツールバーの「Particles」メニューで「Convert to CPUParticles2D」を選択すると、Particles2DノードをCPUParticles2Dノードに変換できます。

The rest of this tutorial is going to use the Particles2D node. First, add a Particles2D node to your scene. After creating that node you will notice that only a white dot was created, and that there is a warning icon next to your Particles2D node in the scene dock. This is because the node needs a ParticlesMaterial to function.
ParticlesMaterial¶
パーティクル・ノードにプロセス・マテリアルを追加するには、インスペクタパネルの Process Material
に移動します。 Material
の横のボックスをクリックし、ドロップダウン・メニューから New ParticlesMaterial
を選択します。

これで、Particles2Dノードが下方に白いポイントを放出するようになります。

テクスチャ¶
パーティクルシステムは単一のテクスチャを使用します(将来、これはスプライトシートを介してアニメーションテクスチャに拡張される可能性があります)。テクスチャは、関連するテクスチャプロパティを介して設定されます。

時間パラメータ¶
生存時間¶
すべてのパーティクルが生き続ける秒単位の時間。ライフタイムが終了すると、新しいパーティクルが作成されて置き換えられます。
Lifetime: 0.5

Lifetime: 4.0

単発¶
有効にすると、Particles2Dノードはすべてのパーティクルを一度だけ放出し、その後は二度と放出しません。
前処理¶
パーティクルシステムは、パーティクルの放出がゼロから始まり、放出を開始します。これは、シーンを読み込むときに不便になる場合があり、トーチ、ミストなどのシステムは、入力した瞬間に放出を開始します。プリプロセスは、システムが実際に最初に描画される前に指定された秒数を処理するために使用されます。
スピードスケール¶
速度スケールのデフォルト値は 1
で、パーティクルシステムの速度を調整するために使用されます。値を小さくすると粒子が遅くなり、値を大きくすると粒子が非常に速くなります。
爆発性¶
ライフタイムが 1
で、パーティクルが10個ある場合、0.1秒ごとにパーティクルが放出されることを意味します。explosiveness パラメータはこれを変更し、パーティクルをすべて一緒に放出させます。範囲は次のとおりです。
0: 一定の間隔でパーティクルを放出します(既定値)。
1: すべてのパーティクルを同時に放出します。
中間の値も使用できます。この機能は、パーティクルの爆発や突然のバーストを作成する場合に便利です。

ランダム性¶
すべての物理パラメータをランダム化できます。ランダム値の範囲は 0
から 1
です。パラメータをランダム化する数式は次のとおりです:
initial_value = param_value + param_value * randomness
Fixed FPS¶
この設定を使用して、固定FPSでレンダリングするようにパーティクルシステムを設定できます。たとえば、値を 2
に変更すると、パーティクルは毎秒2フレームでレンダリングされます。これにより、パーティクルシステム自体の速度が低下することはありません。
Fract Delta¶
これを使用して、Fract Deltaをオンまたはオフにできます。
描画パラメータ¶
Visibility Rect¶
可視領域を設定する四角形は、画面上のパーティクルの可視性を制御します。この四角形がビューポートの外側にある場合、エンジンはパーティクルを画面にレンダリングしません。
長方形の W
および H
プロパティは、それぞれ幅と高さを制御します。X
および Y
プロパティは、パーティクルエミッタを基準とした長方形の左上隅の位置を制御します。
Godotは、2Dビューの上にあるツールバーを使用して、Visibility Rectを自動的に生成できます。これを行うには、Particles2Dノードを選択し、Particles > Generate Visibility Rect
をクリックします。 Godotは数秒間パーティクルを放出するParticles2Dノードをシミュレートし、パーティクルがとるサーフェスに合うように四角形を設定します。
Generation Time (sec)
オプションを使用して、放出時間を制御できます。最大値は25秒です。パーティクルが移動する時間が長くなる場合は、Particles2Dノードの preprocess
の継続時間を一時的に変更できます。
Local Coords¶
デフォルトでは、このオプションはオンになっており、パーティクルが放出される空間がノードに対して相対的であることを意味します。ノードを移動すると、すべてのパーティクルも一緒に移動します:

無効にすると、パーティクルはグローバルな空間に放出され、ノードを移動しても、既に放出されたパーティクルは影響を受けません。

Draw Order¶
これにより、個々のパーティクルが描画される順序がコントロールされます。Index
は、パーティクルが放出順序に従って描画される事を意味します(デフォルト)。Lifetime
は、残っている寿命の順に描画されることを意味します。
パーティクルマテリアルの設定¶
Direction¶
This is the base direction at which particles emit. The default is
Vector3(1, 0, 0)
which makes particles emit to the right. However,
with the default gravity settings, particles will go straight down.

For this property to be noticeable, you need an initial velocity greater than 0. Here, we set the initial velocity to 40. You'll notice that particles emit toward the right, then go down because of gravity.

広がり¶
このパラメータは、基本的な 放出方向
に対していずれかの方向にランダムに加算される角度(度単位)です。180
のスプレッドでは、すべての方向(+/- 180度)で放出されます。スプレッドが作用するためには、"Initial Velocity"パラメータが0より大きくなければなりません。

Flatness¶
This property is only useful for 3D particles.
重力¶
すべてのパーティクルに適用される重力。

初期速度¶
初期速度は、パーティクルが放出される速度(ピクセル/秒)です。速度は、後で重力または他の加速度によって変更される可能性があります(後で詳しく説明します)。

Angular Velocity¶
角速度は、パーティクルに適用される初期角速度です。
Spin Velocity¶
回転速度は、パーティクルが中心軸で回転する速度(度/秒)です。

オービット速度¶
軌道速度は、パーティクルを発生点の周で回転させるために使用されます。

Linear Acceleration¶
各パーティクルに適用される線形加速度。
Radial Acceleration¶
この加速度が正の場合、パーティクルは中心から遠ざかります。負の場合は、中心に吸収されます。

Tangential Acceleration¶
この加速度は、中心への接線ベクトルを使用します。radial accelerationと組み合わせることで、素敵な効果が得られます。

Damping¶
ダンピングはパーティクルに摩擦を加え、パーティクルを強制的に停止させます。通常、速い初速(velocity)で始まり、フェードすると停止する火花または爆発に特に役立ちます。

角度¶
パーティクルの初期角度(度単位)を決定します。このパラメーターは、主にランダム化に役立ちます。

スケール¶
パーティクルの初期スケールを決定します。

色¶
放出されるパーティクルの色を変更するために使用します。
Hue variation¶
Variation
の値は、各パーティクルに適用される初期の色相変化を設定します。 Variation Random
の値は、色相変動のランダム性の比率を制御します。
Emission Shapes¶
パーティクルマテリアルを使用すると、パーティクルが放出される領域と方向を指定する放出マスクを設定できます。これらは、プロジェクト内のテクスチャから生成できます。
パーティクル マテリアルが設定され、パーティクル 2D ノードが選択されていることを確認します。ツールバーに「パーティクル」メニューが表示されます。

それを開き、"Load Emission Mask" を選択します:

次に、マスクとして使用するテクスチャを選択します。

いくつかの設定を含むダイアログボックスが表示されます。
放出マスク¶
テクスチャからは3種類の放出マスクを生成できます:
Solid Pixels: テクスチャの透過部分を除くすべての領域から、パーティクルが発生。

Border Pixels: パーティクルはテクスチャの縁から発生。

Directed Border Pixels: Border Pixelsと同じで、さらに方向の情報をマスクに加えることで、パーティクルは縁から遠ざかるように発生。これを使用するには
Initial Velocity(初速)
をセットする必要があります。

放出色¶
`` Capture from Pixel`` は、パーティクルがマスクの発生ポイントから色を継承するようにします。
「OK」をクリックすると、マスクが生成され、Emission Shape
セクションの下にあるパーティクルマテリアルに設定されます。

このセクション内のすべての値は、「Load Emission Mask」メニューによって自動的に生成されているため、通常はそのままにしておく必要があります。
注釈
画像を Point Texture
または Color Texture
に直接追加しないでください。代わりに、常に「Load Emission Mask」メニューを使用する必要があります。