3D 粒子系统属性

发射器属性

../../../_images/particle_props_emitter.webp

Emitting 属性旁边的复选框用于激活和停用粒子系统。只有选中该复选框被时,才会处理和渲染粒子。如果需要动态激活或停用粒子系统,可以在运行时设置此属性。

Amount 属性控制着在任何时间下可见粒子的最大数量。增加这个值将会在消耗性能的同时生成更多的粒子。

Amount Ratio 属性是粒子与要射出的粒子数量的比例。如果它小于 1.0,则生命周期内发射的粒子数量将为 Ammount * Amount Ratio。发射后更改此数值不会影响已创建的粒子,也不会导致粒子系统重新启动。对于制作发射粒子的数量随时间变化的效果来说这个属性很有用。

可以将另一个粒子节点设置为 子发射器,它将作为每个粒子的子节点生成。有关如何将子发射器添加到粒子系统的详细说明,请参阅本手册中的子发射器部分。

时间属性

../../../_images/particle_props_time.webp

Lifetime 属性控制每个粒子在消失之前存在的时间长短,以秒为单位。许多粒子属性都可以在粒子生命周期内设置而变化,从一个值平滑过渡到另一个值。

LifetimeAmount 是相互关联的,决定了粒子系统的发射速率,要知道每秒产生多少粒子,可以使用以下公式:

\[每秒粒子数 = \frac{Amount}{Lifetime}\]

示例:以每个粒子寿命为4秒的速度发射32个粒子,意味着该系统每秒发射8个粒子。

Interp to End 属性会使节点中的所有粒子在其生命周期结束时进行插值。

如果选中 One Shot 属性旁边的复选框,则粒子系统将会发射 amount 数量的粒子,然后自行禁用,会仅运行一次。默认未选中此属性,系统将持续发射粒子,直到手动禁用或销毁。一次性粒子非常适合用于单个事件做出反应的特效,例如,物品拾取或子弹击中墙壁时迸发出的碎片。

Preprocess 属性用于将时间快速推进到粒子系统生命周期的中间某个点,从那里开始渲染,以秒为单位进行测量。如果值为 1 ,则粒子系统开始运行时,将看起来已经运行了一秒钟。

尽管刚刚加载到场景中,希望粒子系统看起来已经活跃了一段时间,那么这个功能非常有用。请考虑以下示例。两个粒子系统都模拟了在该区域内飞舞的灰尘。如果预处理值为 0 ,则在前几秒钟内不会有灰尘,因为系统还没有发射足够的粒子以使效果变得明显。这可以在左侧的视频中看到,与其右侧的视频进行比较,其中粒子系统已预处理了 4 秒。从一开始,灰尘就完全可见了,因为跳过了前四秒的 "装载" 时间。

../../../_images/particle_preprocess.webp

无预处理(左侧)与 4 秒预处理(右侧)

可以设置 Speed Scale 属性来减慢或加快粒子系统的速度。这既适用于数据处理,也适用于渲染粒子。将其设置为 0 可以完全暂停粒子系统,或者将其设置为 2 ,使其移动速度加快一倍。

../../../_images/particle_speed_scale.webp

不同的速度缩放值:0.1(左侧),0.5(中间),1.0(右侧)

Explosiveness 属性控制粒子是顺序发射还是同时发射。值为 0 表示粒子一个接一个地发射。值为 1 表示所有 amount 粒子同时发射,从而使效果看起来更具爆炸性。

Randomness 属性为粒子发射时间添加了一些随机性。当设置为 0 时,完全没有随机性,一个粒子和下一个粒子的发射间隔始终相同:粒子以固定间隔发射。当 Randomness 值为 1 时,间隔完全随机。可以使用该属性来打破效果中的一些均匀性。当 Explosiveness 设置为 1 时,该属性无效。

粒子以低帧率运行

Interpolation off (left) vs. on (right)

Fixed FPS 属性限制了粒子系统的处理频率,包括属性更新以及碰撞和吸引器。这可以有效提高性能,特别是在大量使用粒子碰撞的场景中。请注意,这不会改变粒子移动或旋转的速度。要更改这些属性,应该使用 Speed Scale 属性。

Fixed FPS 设置为非常低的值时,你会注意到粒子动画开始看起来不流畅。如果符合艺术设计,有可能是期望的效果,但大多数情况下,会希望粒子系统动画是平滑的。这就是 Interpolate 属性的作用,它会在更新之间混合粒子属性,因此即使粒子系统以 10 FPS运行,看起来也像是 60 FPS运行一样平滑。

备注

使用 粒子碰撞 时,如果粒子移动速度快且碰撞器较薄,则可能会发生隧道效应。这可以通过增加固定 FPS(以性能为代价)来解决。

碰撞属性

参见

设置粒子碰撞需要按照《3D粒子碰撞》中描述的进一步步骤进行。

Base Size 属性定义了每个粒子的默认碰撞大小,用于检查粒子当前是否与环境发生碰撞。通常,希望这个大小与粒子的大小大致相同。对于非常小且移动非常快的粒子,增加此值可以防止其穿过碰撞几何体。

绘制属性

粒子绘制属性

Visibility AABB 属性定义了一个围绕粒子系统原点的盒子。只要这个盒子的任意部分在相机的视野内,粒子系统就是可见的,一旦离开相机视野,粒子系统将停止渲染,可以尽可能使盒子较小来提高性能。

设置 Visibility AABB 的大小时需要注意的一点是,当粒子系统离开相机视野时,超出其边界的粒子会立即消失。虽然在技术上来说这不算bug,但可能带来不好的视觉体验。

当选中 Local Coords 属性时,所有粒子计算都使用局部坐标系来确定诸如上下、重力和运动方向等。例如,上下会跟随粒子系统或其父节点而旋转。当未选中该属性时,这些计算将使用全局世界空间:在世界空间中,向下始终为 -Y ,不跟随粒子系统旋转。

../../../_images/particle_coords.webp

局部空间坐标(左)与世界空间坐标(右)

Draw Order 属性控制着单个粒子绘制时的顺序。Index 代表以发射顺序绘制:即后生成的粒子会绘制在先生成的粒子的顶层。。Lifetime 代表以剩余生命周期顺序绘制。Reverse Lifetime 则是反转了 Lifetime 的绘制顺序。View Depth 代表以与摄像机的距离顺序绘制:距离摄像机更近的粒子绘制在更远的粒子顶层。

Transform Align 属性控制粒子的默认旋转。Disabled 意味着它们不以任何特定的方式对齐,相反,它们的旋转由处理材质设置的值决定。Z-Billboard 表示粒子将始终面向相机,类似于 Standard MaterialBillboard 属性。Y to Velocity 表示每个粒子的 Y 轴与其移动方向对齐,这对于子弹或箭矢之类的物体很有帮助,因为你希望粒子一直指向“前方”。Z-Billboard + Y to Velocity 结合了前两种模式。每个粒子的 Z 轴将指向相机,而Y 轴与速度对齐。

尾迹属性

粒子尾迹

粒子尾迹属性

Enabled 属性控制粒子是否渲染为尾迹。如果想使用粒子尾迹,就需要勾选该框。

Length Secs 属性控制尾迹应该被发射多长。该持续时间越长,尾迹就会越长。

有关粒子尾迹工作原理及其设置方法的详细说明,请参阅本手册中的粒子尾迹部分。