粒子生成器
初级 美术 程序员
粒子生成器(Particle Spawner) 控制何时、生成多少以及多快发射粒子。发射器至少需要一个生成器,但可以包含多个具有不同设置的生成器。
Per second(每秒)
每秒发射固定数量的粒子。它会对粒子进行均衡和插值,即使帧率变化或下降也能保持稳定。例如,在每秒 20 个粒子的速率下,生成器在 60fps 游戏中每三帧生成一个粒子,在 30fps 游戏中每三帧生成两个粒子(跳过每三帧中的第三帧)。

| 属性 | 描述 |
|---|---|
| Loop | 要让生成器在到达持续时间末尾时循环,请选择 Looping(默认)。要让生成器循环且每次循环之间没有等待,请选择 Looping, no delay。要让生成器生成一次然后停止,请选择 One shot。 |
| Delay | 生成器在生成前等待的时长(以秒为单位)。这是介于 X(最小值)和 Y(最大值)之间的随机值。 |
| Duration | 生成器生成粒子的持续时长(以秒为单位)。在持续时间结束时,生成器会根据 Loop 属性重新开始或停止。 |
| Particles | 每秒生成的粒子数量。这可以是浮点值(例如 36.875)。 |
Per frame(每帧)
无论帧率如何,每帧发射固定数量的粒子。如果你需要固定数量的粒子,这会很有用——例如,每帧正好一个,这对于轨迹和缎带很有用。

| 属性 | 描述 |
|---|---|
| Loop | 要让生成器在到达持续时间末尾时循环,请选择 Looping(默认)。要让生成器循环且每次循环之间没有等待,请选择 Looping, no delay。要让生成器生成一次然后停止,请选择 One shot。 |
| Delay | 生成器在生成前等待的时长(以秒为单位)。这是介于 X(最小值)和 Y(最大值)之间的随机值。 |
| Duration | 生成器生成粒子的持续时长(以秒为单位)。 |
| Particles | 每帧生成的粒子数量。该值可以是浮点值,包括小于 1 的值,在这种情况下每几帧生成一个新粒子。 |
| Framerate | 这仅用于引擎计算最大粒子数时的估算。 |
Burst(爆发)
一次性爆发发射所有粒子。

| 属性 | 描述 |
|---|---|
| Loop | 要让生成器在到达持续时间末尾时循环,请选择 Looping(默认)。要让生成器循环且每次循环之间没有等待,请选择 Looping, no delay。要让生成器生成一次然后停止,请选择 One shot。 |
| Delay | 生成器在生成前等待的时长(以秒为单位)。这是介于 X(最小值)和 Y(最大值)之间的随机值。 |
| Duration | 生成器生成粒子的持续时长(以秒为单位)。 |
| Particles/burst | 每次爆发生成的粒子数量。 |
Distance(距离)
根据发射器移动的距离发射粒子。如果发射器不移动,则不会生成任何粒子。

| 属性 | 描述 |
|---|---|
| Loop | 要让生成器在到达持续时间末尾时循环,请选择 Looping(默认)。要让生成器循环且每次循环之间没有等待,请选择 Looping, no delay。要让生成器生成一次然后停止,请选择 One shot。 |
| Delay | 生成器在生成前等待的时长(以秒为单位)。这是介于 X(最小值)和 Y(最大值)之间的随机值。 |
| Duration | 生成器生成粒子的持续时长(以秒为单位)。 |
| Particles/unit | 生成器每移动一个距离单位生成的粒子数量。如果你需要每个距离单位少于一个粒子,可以使用分数。该速率会随缩放调整。 |
From parent(来自父级)
根据其他粒子(父级)发射粒子。当父级粒子满足某些条件时,生成器会生成粒子。

| 属性 | 描述 |
|---|---|
| Loop | 要让生成器在到达持续时间末尾时循环,请选择 Looping(默认)。要让生成器循环且每次循环之间没有等待,请选择 Looping, no delay。要让生成器生成一次然后停止,请选择 One shot。 |
| Delay | 生成器在生成前等待的时长(以秒为单位)。这是介于 X(最小值)和 Y(最大值)之间的随机值。 |
| Duration | 生成器生成粒子的持续时长(以秒为单位)。 |
| Parent emitter | 父级发射器,应与该发射器上设置的发射器名称匹配。 |
| Spawn Control Group | 该字段将添加到父级粒子中,以便更精确地控制哪个父级粒子生成多少子粒子。有 4 个组可供选择,如果初始化器需要控制,它们应与初始化器的组匹配。 |
| Particles/trigger | 每次触发条件满足时,从一个父级生成多少粒子(最小值和最大值)。 |
| Particle Spawn Trigger | 什么条件触发子粒子生成(详见下文) |
粒子生成触发条件(Particle Spawn Trigger)
- On Birth(出生时)- 当父级粒子出生时生成一次子粒子(每个父级一次)
- On Death(死亡时)- 当父级粒子死亡时生成一次子粒子(每个父级一次)
- Distance(距离)- 当父级粒子移动时,按移动距离生成子粒子
- On Hit(命中时)- 父级粒子需要实现 Collision Updater。当父级粒子命中表面时生成子粒子。
- Lifetime(存活时间)- 当父级粒子的存活时间介于两个限制值 A 和 B 之间时生成子粒子,以粒子存活时间上的归一化值(0 到 1)表示。如果 A < B,则周期为 0..(A..B)..1,如果 B > A,则周期反转为 (0..B)..(A..1)。这种方法不如 On Birth/On Death 条件精确。