Godot 4 演習 - パーティクルの作成

デモプロジェクト dodge_the_creeps には、特定の操作効果である Trail があります

どのように実装されているか見てみたいのですが、読んでもよくわからないので、いくつかのキー属性を設定する必要があると感じています。

 ChatGPT は次のように述べています: ここにいくつかの重要なプロパティがあります:

  • texture: パーティクルのレンダリングに使用されるテクスチャ。2D テクスチャまたはアニメーション テクスチャ (AnimatedTexture) を使用できます。
  • size:粒子のサイズ。
  • speed: パーティクルの速度。
  • amount: 粒子の総数。
  • emit_radius: パーティクルの放出の半径。
  • pixel_size: 画面上のピクセル単位のサイズ。
  • draw_order:描画順。
  • lifetime: 画面上のパーティクルの寿命。
  • offset: パーティクルのオフセット。
  • texture_offset: テクスチャのオフセット。
  • blend_mode: ピクセルブレンディングモード。
  • gravity:重力の影響。
  • radial_acceleration: 半径方向の加速度。
  • tangential_acceleration: 接線方向の加速度。
  • particle_system: パーティクルを管理するために使用される親ノード。

 残念ながら、ChatGPT は役に立ちません。使用できる属性もあれば、使用できない属性もあります。これは true であり false であり、手間がかかります。

ステーション B でまだチュートリアルを探しています。一つ見つかった

[Godot 4] 2D 火、煙、爆発パーティクル エフェクト_哔哩哔哩_bilibili

このチュートリアルは少し興味深いもので、話さずにバックグラウンド ミュージックを再生し、ステップバイステップのテキスト指示を追加します。試してみましたが、まだ機能します。それを記録しなさい

火炎粒子

  • GPUParticles2D ノードを作成し、画面の中央にドラッグして効果を確認します。戻って主要なプロパティの設定を開始します

  • 1 つ目は [プロセス マテリアル] で、プルダウンして [新しい ParticleProcessmaterial] をクリックします。このステップの後、被験者はスプレーを開始しました。小さすぎる場合は、スクロールして拡大して効果を確認できます

 さらに設定するには、「ParticleProcessmaterial」をクリックします。まず重力の方向を上向き (y = -98) に設定し、次に上向きにスプレーを開始します。

  • 次に Scale を設定します。このプロパティを読んだ後、これはマッピングであると理解しました。0 ~ 1、つまり粒子の出発から粒子の消滅までの距離を入力し、出力も 0 ~ 1 の間の値になります。 0 - 1. カーブ設定を通じて、それぞれの入力値は出力値を取得し、出力値は対応する位置のスケーリング率です。1 の場合は元のサイズを意味し、0 の場合はそのサイズを意味しますが消え、残りが比例して表示されます。通常の起動、大きく開始し、最終的には消えるため、次のようにカーブを設定できます。

  • 次に、Scale Min = 2、Scale Max = 2 を設定し続けます。これはスケーリング ベースの 2 に相当しますが、0*2 は最終的に消えても 0 のままです。
  • 次はエフェクトのボーナス項目であるカラー設定です。カラー -> カラーランプ。カラー ランプは、パーティクルのカラー ランプを定義するために使用されるテクスチャです。[カラー ランプ] ドロップダウン リストで、新しい GradientTexture1D を選択し、さらにキー カラーを 0 (HSV 47/82/100) 0.5 (RGB 255/83/37) 1 (RGBA 42/42/42/145) に設定します。

  • もちろん、パーティクル カラー グラデーション テクスチャはコードで実装することもできます。これについては後で検討します。
# 为Color Ramp纹理分配一个Color Ramp对象。Color Ramp对象是一个包含多个颜色值的数组,用于定义渐变的颜色
ramp = [Color(1, 0, 0, 1), Color(0, 1, 0, 1), Color(0, 0, 1, 1)]
# 创建一个Color Ramp纹理
color_ramp_texture = Environment.get_current_environment().set_texture("color_ramp_texture", ColorRampTexture.new(ramp))
# 将Color Ramp纹理分配给GPUParticles2D组件
trail.texture = color_ramp_texture
  •  パーティクル放出量を増加 量 = 50

  •  インパルス ノイズ (摂動) テクスチャを作成します: Turbulence.Enabled = true、Noise Scale = 1.08

 煙の粒子

  • 最初の 2 つの手順は火炎パーティクルと同じです。GPUParticles2D ノードを作成し、新しい ParticleProcessMater を作成します。
  • Time.Explosiveness を最大値 1 に設定します。これは、パーティクル システムの放出速度を定義するために使用されます。
  • テクスチャを追加し、GPUParticles2D.Texture をsmoke.pngに設定します。
  • CanvasItem.Texture.Filter を Nearest に設定し、方向 Direction.Spread を 180 に設定すると、周囲の散乱効果が発生します。
  • Gravity を 0 に設定します。これは、重力がないことを意味します。初速 InitialVelocity を 25 ~ 75 に設定します
  • 数量「Amount」を 30 に設定します
  • スケールを設定して、起動プロセス中の消失効果を制御します
  • 発光プロセス中の色の変化効果を制御するために色を設定します。最初は完全に白で、結果は完全に透明になります。
  • 乱気流の設定
  • ダンピングの制御 ダンピング、最小 = 最大 = 28.13、結果がよりスムーズになります
  • 最終効果

質感のある素材のため、動画との誤差がございます。

爆発粒子

前のものと似ていますが、テクスチャはなく、方向、色、スケールを制御するだけです。

デモプロジェクトのトレイル

ここで、Trail エフェクトを振り返ってみましょう。関連するプロパティ設定は次のとおりです。

重力 = Vector3(0, 0, 0)

scale_curve.curve._data = [ベクトル 2(0.00501098, 0.5), 0.0, 0.0, 0, 0, ベクトル 2(0.994989, 0.324), 0.0, 0.0, 0, 0]

スケールカーブ.カーブ.ポイントカウント = 2

color_ramp.gradient.colors = PackedColorArray(1, 1, 1, 0.501961, 1, 1, 1, 0)

よく考えてみると、粒子効果が存在しており、放出から消滅までのプロセスは変化しない、つまり、消滅した位置が放出位置のままであることがわかります。しかし、プレイヤーは動いているため、発射位置は常に変化し、それに応じて消える位置も変化し、人はスミアや軌道があるように感じます。

このアイデアは良いですね。パーティクル システムは典型的な起動であり、放っておいても問題ありません。実際には、Godot エンジンがフォローアップを行います。

おすすめ

転載: blog.csdn.net/drgraph/article/details/132117547