粒子特效用以为游戏呈现视觉效果.可以用来表现爆炸, 喷血, 拖尾, 天气等等效果.
粒子特效包含一些发射器以及可选的修改器:
在 Assets 浏览器菜单栏选择 New... ▸ Particle FX. 为新建粒子特效命名. 编辑器会为其自动打开 场景编辑器.
在 Outline 面板中显示出默认粒子发射器. 点选发射器 Properties 面板会对应更新.
新建发射器, 右键点击 Outline 视图, 从上下文菜单中选择 Add Emitter ▸ [type]. 其中发射器类型可以创建后在属性里更改.
新建修改器, 右键点击 Outline 视图里的发射器, 从上下文菜单中选择 Add Modifier, 再选择修改器类型.
在根节点 (而不是发射器子级) 上添加的修改器会作用域所有粒子.
作为在发射器子集添加的修改器只会作用域该发射器的粒子.
在发射器和修改器上做的属性修改会立即反映在预览之中, 即使是在暂停状态:
Once
播放结束后即停止.Loop
播放结束后再次播放.Auto
基于图片大小.Manual
基于 size 设置.World
世界空间.Emitter
发射器空间.Alpha
, Add
或者 Multiply
.Circle
从圆的内部随机位置发射粒子. 发射方向背向圆心. 圆直径基于 发射器 Size 的X值.
2D Cone
从锥形(三角形)的内部随机位置发射粒子. 发射方向为锥顶到锥底. 宽度基于 发射器 Size 的X值, 高度基于 Y值.
Box
从盒子的内部随机位置发射粒子. 发射方向延盒子本地 Y 轴方向. 发射器 Size 的X值, Y值 和 Z值 分别定义宽度, 高度和长度. 如果需要2D矩形, 把Z值设置为0即可.
Sphere
从球体的内部随机位置发射粒子. 发射方向背向球心. 球体的直径基于 发射器 Size 的X值.
Cone
从锥体的内部随机位置发射粒子. 发射方向为锥顶到锥底. 宽度基于 发射器 Size 的X值, 高度基于 Y值.
Default
元向量方向Initial Direction
粒子初始化方向.Movement Direction
速度向量方向.World
时有效. 发射器速度每帧更新.Blend Mode 属性定义了可视组件如何与其后面的图像混合. 以下列举了支持的混合模式及其混合算法:
src.a * src.rgb + (1 - src.a) * dst.rgb
src.rgb + dst.rgb
src.rgb * dst.rgb
src.rgb - dst.rgb * dst.rgb
这种属性分为两个部分: 一个数值和一个抖动. 抖动就是施加于粒子上的随机数值. 比如数值是 50 抖动是 3, 则最终值的范围就是 47 到 53 (50 +/- 3).
点击关键帧按钮, 则属性值由一条曲线决定. 恢复数值加抖动模式, 取消点选关键帧按钮即可.
曲线编辑器 (位于视口下方) 用以修改曲线. 这种属性不会显示在 属性 视图中, 只能显示在 曲线编辑器 中. 通过 点击拖动 控制点与其切线来修改曲线形状. 双击 曲线添加控制点. 双击 控制点可以删除它.
自动缩放显示完整曲线快捷键为 F.
以下属性都可以基于发射器发射时间周期用曲线表示:
Automatic
并且粒子使用基于图片大小的逐帧动画的话, 此属性无效.以下属性都可以基于粒子的生命周期用曲线表示:
粒子的速度受以下四种修改器影响:
Acceleration
Drag
Radial
Vortex
开始/停止粒子特效播放的脚本命令:
-- 开始当前游戏对象上的粒子特效组件 "particles" 的播放
particlefx.play("#particles")
-- 停止当前游戏对象上的粒子特效组件 "particles" 的播放
particlefx.stop("#particles")
即使粒子特效组件依附的游戏对象被删除, 粒子效果也不会停止播放.
详情请见 粒子特效索引文档.
粒子特效默认的材质常量可以使用 particlefx.set_constant()
和 particlefx.reset_constant()
进行设置和重置 (详情请见 材质教程):
tint
vector4
). 四元组的 x, y, z, 和 w 分别对应红, 绿, 蓝和不透明度. 详情请见 API 文档上的示例.在 game.project 文件里有些关于粒子效果的 设置项目.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB