本文使用 UE4.26 版本,利用 ActionRPG 示例项目,对 UE 中的粒子特效 (Particle System) 进行学习,总结(虽然 UE5 已经不太打算用这个了,而是使用 Niagara,但是了解还是很有必要的),主要包括:
- 特效编辑器 Cascade 与 Particle System
- 特效相关优化
- 特效相关问题记录
一、Cascade 与 Particle System
1.1 Cascade 里的操作
-
Restart Level
空格(Space),可以按上边的 Restart Level 按钮一样,重新从 0 开始播这整个特效
-
切换发射器设置和整个特效设置
点击一个发射器(Emitter),Details 中会显示发射器的设置,点击发射器中的 Module,Details 中会显示 Module 的设置;如果想切换成整个特效的设置,点击最右侧的黑色区域即可(这也就是为什么不管怎么加发射器,最右边都会留有黑色区域)。 -
折叠发射器
双击发射器可以折叠发射器,虽然感觉没啥用。。
-
重置摄像机
在预览窗口鼠标右键、左键按住,WASD移动摄像机的操作和正常的编辑器游戏窗口中一样,但是有时候转着转着特效就不知道去哪儿了,这时候,点一下F
按键即可。 -
背景颜色和 Bounds
上方的Background Color
选项可以修改预览窗口的背景颜色,为了更好的观察特效;Bounds 按钮可以显示特效的 Bounds,用于查看是否会有问题,或者 Bounds 过大导致效率降低等。
1.2 Cascade 里的术语
在 UE 中编辑 ParticleSystem 的编辑器叫 Cascade(双击打开一个 Particle System 资源即可),界面如下图所示:
右侧中间的这部分最重要,是 Emitters,即粒子发射器。
其中每一个竖着的方块每一个 Emitter,Emitter 有四种类型(像下图就是一个 Mesh 类型 Emitter):
- Sprite 默认
- Mesh(网格,可以做成球形或者其他形状)
- Beam(激光类型)
- Ribbon(条带,如飞机拖尾烟雾)
每一个 Emitter 分为两部分:
其中:
- 发射器列 —— 每一列表示一个单独的发射器。
- 发射器块 —— 这是每个发射器顶部的一个框,其中包含发射器本身的主要属性和控件,例如发射器类型和发射器名称,还包含一些其他主要属性。
- 模块列表 —— 发射器块下方是定义发射器的外观和行为的所有模块的列表。所有发射器都有一个 必需 模块(Required Module),之后可以添加任意数量的模块来进一步定义行为。
每一个 Emitter 里的每一横条,是一个 Module(如下图就是一个 Required Module):
每个 Module 里的 Details 里,是对于这个 Module 或者说,这个粒子特效的描述(如下图就是 Required Module 的一部分 Detail)
1.3 一些 Note
想到再写
1.4 代码里的变量
在代码里,创建出的是 UParticleSystemComponent 类型的特效,如:
UParticleSystemComponent* PSC = UGameplayStatics::SpawnEmitterAtLocation(
Target->GetWorld(),
PSTemplate,
StartLocation,
Rotator);
其中所有的粒子是 Emitter Instances,即 1.1 中的 Emitters:
TArray<FParticleEmitterInstance*>& EmitterInstances = PSC->EmitterInstances;
这是个数组,其中每一个就是 1.1 中的每一个 Emitter(FParticleEmitterInstance 类型)