3D游戏第八次作业-烟花粒子效果实现
结果展示
先来个结果镇楼


下面是一个动画演示:
本次项目使用的资源:
Unity Particle Pack:使用的Flame 01以及Twinkle等material均来自这个包,且该包有较多的示例。
粒子效果制作
我们的烟花分为以下5个部分组成:

其中,Firework主体也是一个粒子系统,它拥有下辖的5个粒子系统作为子部件。我们利用粒子系统面板中的 Sub Emitters 使得Firework所发射的每个粒子都拥有子部件的粒子效果。实际上,Firework主体只是提供一个粒子的移动,具体的粒子渲染效果全部由Firework的五个子部件来完成;
我们将从各个子部件的实现开始,逐步讲解,最后在Firework中完成各个粒子效果的合并;
trail子部件
即我们的烟花在爆炸之前飞行过程中产生的尾迹:

我们可以看到,我们的尾迹中的粒子在运动过程中发生了一些变化,总结如下:
- size:粒子的大小先变大再变小;
- color:粒子的颜色随着运动时间的变化而变化。
- velocity:粒子在产生后向四周扩散,使尾迹变大,如同烟雾;
那么我们如何创建这样一个trail粒子效果呢?
-
创建tail: 右键 → Effects → Particle System 创建一个新的粒子系统,然后我们给它取名为 trail。
-
设置粒子大小动态变化: 打开trail的粒子系统面板,勾选 size over lifetime 选项。并在面板下方设置粒子在运动中的size变化的曲线如下。
通过我们的size变化的曲线,我们可以知道我们的trail所发射的粒子的大小变化为:
缓慢变大 → 保持一段时间大小 → 缓慢变小 → 瞬间变大 → 瞬间变小
最后一段的瞬间变大再瞬间变小是为了模拟粒子灰烬的闪动效果。 -
设置粒子颜色动态变化: 打开trail的粒子系统面板,勾选 color over lifetime 选项。并设置颜色如下:
最后一段颜色接近于橙红色,和粒子动态变化最后一部分的瞬间变化相结合,可以模拟出粒子灰烬的闪动效果。
-
设置粒子运动: 打开trail的粒子系统面板,勾选 Velocity over lifetime 选项。选择粒子运动的速度变化方式为 Random between two curves。
然后令x轴和z轴方向上的速度变化曲线如下:
而y轴方向上的速度变化不要改变,一直保持为0即可。
这样,尾迹粒子在被产生之后就会向四周随机扩散,使得尾迹整体变大,模拟烟雾的扩散效果;
-
设置粒子的发射方向: 打开trail的粒子系统面板,勾选 Shape 选项。并选择shape为 sphere 。这样粒子在产生的时候就会在烟花的周围随机产生,而不是直接从烟花尾部直直地产生,更加贴合现实。
-
设置Emission和粒子系统主模板