李晨

特效美术:粒子脚本优化实例-剑阵


概述

我们先来看看这两个效果的差距。上面这个是原版的, 下面一个是使用粒子脚本优化后的。
eight-sword-old
eight-sword-new

我们先整理一下思路,原本的八次攻击除了位置、出现的时间之外并没有什么区别,差不多就是将一次的落剑攻击复制了8次,所以这种特效就可以使用粒子脚本来进行分离控制。 使用脚本控制就是只要做一个,通过脚本让它变成我们想要的数量;从根本上减少性能消耗,理论上我们可以分离出N个相同个体,性能消耗都不会出现成倍增长的情况。下面是两个效果的峰值性能消耗对比。
eight-sword001
eight-sword002

优化流程

首先将一次的落剑变成8次落剑,那么首先需要设置分布,为了保证完全环状分布(因为可能会改成6次或者更多一些18次),我们使用极坐标来定义坐标点位置。
eight-sword003
接下来我们需要设置让它均分分布在圆的八个边缘位置(这个位置其实是可以随意更改的),使用旋转矩阵。
eight-sword004
OK基本上每个素材都应用上就可以了,现在我想这个烟雾的出生时随机生成黑色和白色,那么我们可以再添加脚本来控制 烟雾贴图的E.G.B色彩叠加。
eight-sword005
这样的优化思路是不是很简单 ^_^ 。

实战开始:

首先我们来创建粒子,进入sparticleData开始编辑脚本
eight-sword006
首先将使用到的参数指定给相应使用位置,先指定的好处是我们可以实时看到我们脚本参数控制的结果。
eight-sword007
eight-sword008

然后我们开始编写脚本
eight-sword009
eight-sword010

这里是对烟雾的脚本使用,其他元素的脚本使用都是相同原理,将需要的参数加载到sparticleData里面。
顺便提一下每个sparticleData的脚本都可以根据需要单独修改脚本中的参数,但是复制出来的sparticleData是共用脚本的,只能重新编写一遍哦。

案例文件下载

PS:

① 本文主要目的是讲解对于多个相同素材的特效怎么利用脚本来进行性能优化。 ② 如果有疑问或者错误不足之处,请和TA组联系!欢迎交流,我们会及时补充纠正的!