前面几篇把「单个精灵」和「整屏像素」都讲过了,中间还缺一层:成百上千个小图元同时运动——火花、烟尘、血雾、萤火虫。这就是粒子系统。它是独立游戏用最少代码换最大观感提升的一招,也是「打到东西有没有重量」的直接来源。

今日速览

  • 两个节点,选 GPU 版:GPUParticles2D 用 GPU 处理、功能最全;CPUParticles2D 只在低端机/GPU 瓶颈时更划算,官方已不再给它加新功能,默认用 GPU 版。两者可在工具栏一键互转。
  • 一套节点 = 一个节点 + 一块材质:GPUParticles2D 自身只管「发多少、活多久」,外观与运动全交给 Process Material(ParticleProcessMaterial)。
  • Min/Max/Curve 是核心心智模型:粒子诞生时在 Min~Max 间随机取值;若设了 Curve,该值会再乘以「当前生命周期进度对应的曲线值」——由此实现「越活越小、越活越透明」。
  • one_shot 区分两类特效:爆炸/火花 = 一次性(one_shot=true,调用 restart() 重放);烟雾/萤火 = 持续发射(默认 emitting=true)。
  • 贴图决定像不像:单张纹理最省,翻转书(flipbook)最像;翻转书需额外挂一个 CanvasItemMaterial 并填好 H/V Frames。

核心学习内容

1. 节点结构:谁管什么

一个完整粒子效果由三块拼成:

  1. GPUParticles2D(节点):控制「工程参数」——amount(同屏粒子数,默认 8)、lifetime(寿命)、one_shot、explosiveness(爆发度,0=均匀流、1=瞬间喷完)、randomness(随机种子)、fixed_fps(默认 30;想更顺滑设为 0,让每帧都模拟)、speed_scale(整体快慢)。
  2. ParticleProcessMaterial(Process Material):控制「物理与外观」——发射方向/速度、重力、各类加速度、缩放与颜色曲线。
  3. 可选装饰:翻转书动画要挂 CanvasItemMaterial(开启 Particle Animation + 填 H/V Frames);想自定义每颗粒子着色再挂 ShaderMaterial。

新手最容易踩的坑:新建节点后只看到一个白点、场景树里带警告图标——因为没给 Process Material。去 Inspector 的 Process Material → Material 选 New ParticleProcessMaterial 即可。

2. 三件套:Min / Max / Curve

这是全篇最重要的概念。每个属性都可能带三个槽:

  • Min / Max:粒子诞生时在此区间随机取初值;两者相同 = 所有粒子一致。
  • Curve:一条 0~1 的曲线,横轴是「生命周期进度」,纵轴是倍率。属性 = 初值 × 当前曲线值。

举例:把 Scale Curve 做成从 1 降到 0,粒子就会随寿命逐渐缩小;把 Color 曲线的 alpha 从 1 拉到 0,粒子就会淡出消失。这两条曲线一配,任何「火花/烟/雾」立刻有了「生→灭」的生命感,而不是突兀地凭空消失。

3. 发射与运动:把「像什么」调出来

  • 方向(Direction)+ 扩散(Spread)+ 初速(Initial Velocity):三者配合决定「从哪、朝哪、多快」喷出。Spread=180 即全向;初速必须 > 0,方向与扩散才生效。
  • 重力(Gravity):默认向下,粒子会自然下坠;做烟火/水花可给负值或改方向。
  • 径向/切向加速度(Radial / Tangential):正值向外炸开、负值向内吸附,配合切向可做漩涡/环绕。
  • 阻尼(Damping):给粒子加摩擦,让高速火花「冲出去、迅速停」。火花与爆炸几乎必调这一项。
  • 颜色曲线 + 色相变化(Hue Variation):同一系统里让粒子颜色略有差异,避免「一眼假」。

4. 四个能直接照抄的效果

效果关键设置
受击火花one_shot=true、amount 816、Spread=180、初速高、Damping 高、重力轻微向下、Color 曲线 alpha→0、Scale 曲线→0、寿命 0.30.5s
敌人消散one_shot=true、Radial Accel 向外、Color 曲线偏冷色并淡出、Scale→0、寿命 0.5s,可配同色烟雾叠加
环境萤火虫/尘埃emitting 持续、amount 2040、初速极低、轻微重力或零、Preprocess 设 12s(避免进场时空气突然「生出」粒子)
跑步拖尾/尘土把粒子节点挂在角色下、local_coords=true(粒子留在世界空间不跟着转)、寿命短、贴图用一小团模糊圆点

用 AI 出粒子贴图时,一定要提示「单个居中元素、纯黑或透明背景、无渐变底、白/浅色描边」,导入后再按需把混合模式设为 Add(黑色背景的翻转书必须用 Add 才正确)。

🎯 DeepSeek 提示词

① 让 DeepSeek 直接写一个「受击火花」粒子系统(节点 + 材质 + 脚本)

你是一名 Godot 4 资深游戏程序员。请用 GDScript 实现一个「受击火花」粒子效果,要求可直接挂在一个 Node2D 上使用。

【任务】
生成一个名为 HitSpark 的脚本(extends GPUParticles2D),在 _ready() 里用代码创建一个 ParticleProcessMaterial 并赋值给 process_material,实现:
- 一次性爆发、全向喷射、初速高但迅速被阻尼停下
- 靠近命中点向外扩散,颜色由亮黄偏橙再淡出到透明
- 粒子随寿命缩小到 0,总寿命约 0.4 秒
- 提供一个外部方法 play_at(pos: Vector2),把节点移到 pos 并 restart() 重放

【输出格式】
1) 完整 .gd 脚本(含注释,风格遵循 Godot 4 官方 GDScript 规范)
2) 一段说明:每个关键参数(amount / lifetime / one_shot / explosiveness / direction / spread / initial_velocity / damping / gravity / color_ramp / scale_curve)为什么这么设
3) 一个 6 行的 usage 示例,演示敌人被击中时调用 play_at()

【约束】
- 只用内置类,不引入第三方插件
- 颜色用 Gradient + GradientTexture1D 配置 color_ramp,scale_curve 用 Curve 或默认曲线
- 代码要能直接通过 Godot 4 的语法检查

② 让 DeepSeek 为「敌人死亡消散」设计参数并解释

你是 Godot 4 特效设计师。我要做「敌人被击杀后化为粒子消散并淡出」的效果。

【输入】
敌人贴图尺寸:32x32 像素;目标风格:偏像素/低饱和的奇幻风;希望消散时长约 0.5 秒。

【任务】
给出一套 GPUParticles2D + ParticleProcessMaterial 的完整参数表(含每个参数的推荐值),并解释:
- 为什么用 one_shot + restart() 而不是常驻 emitting
- 如何用 Color 曲线让粒子由实体色过渡到透明,同时用 Scale 曲线做收缩
- 想让粒子「先向外炸开一点再被吸回中心」,Radial / Tangential / Damping 该怎么配

【输出格式】
Markdown 表格(参数名 | 推荐值 | 作用说明),再加一小段 GDScript 展示 _ready 里的初始化与死亡时触发。
【约束】参数名必须与 ParticleProcessMaterial 官方属性名一致。

③ 让 DeepSeek 生成「AI 粒子贴图」提示词 + 导入规范

你是游戏美术与 Godot 导入工程师。我要用 AI 绘图工具(即梦 / Stable Diffusion)批量生成一套可复用的 2D 粒子贴图。

【任务】
1) 分别写出四类贴图的生成提示词(中英各一版):火花粒子、烟雾团、柔和光点(萤火虫)、爆炸翻转书(2x2 或 4x4 帧)
2) 给出「风格统一」的公共前缀(如:single centered element, transparent/solid black background, no gradient background, high contrast, soft edges)
3) 给出 Godot 4 导入规范:作为 GPUParticles2D 的 Texture,或作为翻转书时的 CanvasItemMaterial(H/V Frames)、混合模式该选 Mix 还是 Add,以及像素风应关闭哪些过滤选项
【输出格式】分三节,可直接复制使用。
【约束】所有提示词必须强调「无背景、单个元素、居中、预留边距」,避免生成带场景的整图。

学习心得

粒子系统是「用 DeepSeek 做 Steam 游戏」里性价比极高的一环:它不需要美术线稿能力,靠参数 + AI 贴图就能出效果。把上面第①条提示词丢给 DeepSeek,几分钟就能拿到一份可运行的受击火花脚本,直接接到攻击判定上——这正是「AI 帮我把『能玩』变成『爽』」的具体样子。建议今天先只做一类效果(推荐受击火花),跑通「命中 → 触发 → 淡出」这条链路,再逐步加环境氛围。记住:粒子的观感 80% 来自 Color 与 Scale 两条曲线,先把「生到灭」做对,比堆粒子数量重要得多。

明日关注

  • 把「受击火花」接到主角攻击判定上,实际跑一次看手感,微调 amount 与寿命。
  • 用 AI 生成一套 3~4 张贴图(火花/烟雾/光点/翻转书爆炸),验证风格是否统一、透明通道是否正确。
  • 试一个「环境氛围」系统(萤火虫或雨雪),并记下 Preprocess 对进场观感的影响。

本文由自动化学习流水线每日生成,坚持即学即记。