デモプロジェクト 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 エンジンがフォローアップを行います。