粒子光效一般都是比较绚丽的,如果多个效果配合到一起,更能起到意想不到的效果,下面我就再介绍一种粒子效果,这个是在项目中的测试,我就把方法跟大家分享:
第一步
这里我就拿个圆形路径来说,其他路径都是一样的效果,主要的知识点就是让粒子沿着曲线运动,但并不是像Maya Effects里的Create Curve Flow那样的效果,首先建立一个圆环,然后开个小口,把360度调为359度即可,这样你就可以看到圆环有个小口了。
第二步
然后建立一个粒子发射器,把它放到缺口的位置,这样方便goal。
第三步
然后把粒子goal到曲线上,goal值为1。
第四步
然后给粒子添加goalU,因为曲线没有V向,所以不用添加goalV,之后在运行时上写让goalU随着是的变化不断增长goalU+=0.005。
第五步
这样就可以看到粒子沿着曲线运动了,但是太密集而且是贴着曲线的。
第六步
下面我们给粒子添加个goal偏移属性goalOffset。
第七步
写上表达式后是下面这样的效果,这里我让粒子在曲线的x y z轴的正负1的位置范围goalOffset=<>。
第八步
然后用粒子1再发射粒子2;并把emiter2的速度调为0,我们让粒子1的速度带出粒子2。
第九步
然后把继承因子的值给为0.2。
第十步
效果如下面所示。
第十一步
粒子2的生命值给为如下图所示。
第十二步
把粒子2的模式改为streak,尾巴长度为0.5。
第十三步
当粒子运行一周后,我们会发现,粒子的运动会突然变慢,一方面是因为粒子多,但是就算你刚开始发射少了也会发现出现同样的问题,这是因为圆环的最大U值为1,当粒子的U不断增加,大于1时,粒子就不知道去往何处了,所以导致机器不断的运算,这样机器就卡了。
第十四步
解决的办法时,让粒子1在运行时,让U值大于1,这样就不卡了,牵扯到生命值的表达式就要把粒子1的生命模式改为lifespanPP only。
if(goalU>1){lifespanPP=0;}
第十五步
播放时我们会发现,如下图红圈内所示的那样,在粒子发射器的位置的粒子有点糟糕。
第十六步
对于这个问题,我想了很久最后才找了个解决办法,就是让粒子避开发射粒子的第一帧,这里的第一帧并不是时间轴的第一帧,因为发射器是不断发射的。换言之,就是粒子1出生的第一帧,只要避开这一帧,就不会出现上图的那种情况,就是让粒子1在活一段时间后再发射粒子2,具体这段时间是多少,其实这个时间就是粒子发射一帧所用的时间,1s = 24 frames,那么这个时间就是1/24。
首先给粒子添加个属性Per-Point。
Emission Rates
第十七步
然后写句表达式:
if(particleShape1.lifespanPP>(1/24)){particleShape1.emitter2RatePP=350;}
让粒子1在出生一帧后才开始以每秒350个粒子的发射率发射粒子2;这样再播放就不会出现是上图那样的情况了。
第十八步
给粒子2添加个物体颜色。
第十九步
数值如下图,这个你自己随意,然后勾上颜色叠加。
第二十步
渲染如下
第二十一步
给粒子2再加个每粒子透明,表达式:particleShape2.opacityPP=(1-particleShape2.age/particleShape2.finalLifespanPP)
其实稍微修改一些表达式也会得到不通的效果