原创作品

Unity粒子系统小技巧X1

画影 发表于   2019-07-08 20:07:14
16585
27
262

没错,又是我

最近在群里看到有同学想要粒子出去又回来

QQ图片20190708184606.jpg

就像玩悠悠球一样

但是扔出去却收不回来

QQ图片20190708184618.jpg

下面我们就来学几个跳出去又跳回来的小技巧

放心,不会被人打的


首先我们来看看效果图

jietu.gif



几个方法都是用unity粒子系统里面的Velocity over lifetime

(不知道这是什么的去学基础课)



第一个方法(只要有Velocity over lifetime双曲线就可以用):linear三轴向双曲线

不要循环发射,生命值自定,初始速度为0,发射器shape当然是用你喜欢的形状

QQ图片20190708184629.jpg

image.png

image.png

我们看到这三个轴向都是用这个形状的双曲线

首先A部分,这是给粒子一个速度,让它跑出去,然后停下来

B部分,是给一个和一开始相反的速度让粒子回去它出来的地方

C部分,是让粒子在外面停留


A部分和B部分的比重是差不多的,这样才能保证粒子出去后回到正确的地方

我们可以看到C部分的两条曲线中间有个缝隙,那是因为两条曲线的数值并不是0,而是0.01和-0.01

这么给的原因是可以让粒子在外面停留的时候是一个缓动的状态,而不是完全静止


好了第一个方法讲完了,是不是很简单呢

QQ图片20190708184606.jpg






下面是第二个方法(貌似17.3版本才有?反正我17.3有看到):Speed Modifier

效果图就不上了,一样的(算了我复制一个,反正你们也看不出来)

jietu.gif

一样不要循环发射,生命值自定,但是要给初始速度!

image.png

image.png

这个speed modifier呢,好像是17.3版本才更新的,反正我之前17刚出的时候做粒子系统注解的时候是没看到的23333


功能呢类似百分比调节速度吧

QQ图片20190708192749.gif

例如我一开始给了个5的初始速度,那么A那里就是粒子5速度发射出去然后速度慢慢降低到很慢很慢(5X0.01)

然后C部分就是缓动啦

B部分就是慢慢给个反方向速度回去(比例也是和A部分一致,确保刚回到家就死掉)


这个方法和一开始的方法不一样的就是,曲线是相反的,因为要给初始速度,当然你也可以配合上面linear食用






QQ图片20190708193100.jpg

下面是第三个方法(18版本才有的):Ridial

这个鬼东西是18版本才有的,很方便,给正的数值就是往外的力,给负的数值就是往内的力

所以不要循环发射,生命值自定,而速度的数值和Ridial有关,下面我们详细说

对了,效果图

jietu.gif


这里呢可以看见我没有做在外面停留的部分,这是要给大家留思考的空间,绝不是觉得麻烦我就懒了

image.png

image.png

image.png


生命值是随便给的,速度我给了2,然后Radial的数值我给了3

Radial的数值比速度大的原因是,这个数值会和速度相互影响,例如速度是2,Radial是-2,那么粒子就不会动,等于没有速度

所以这个曲线呢和前面那些不一样,你给的速度和Radial的数值不一样,曲线都需要调整

QQ图片20190708195316.jpg想着就有点累

但是原理是一样的,就是一开始A部分让粒子正常速度出去

然后给一个慢慢变大的往内的力,这个力在大到B点的时候(-2)粒子就停了下来(速度为0)

这个力超过B点的时候,也就是C部分就是粒子往回走的时候,然后最后刚好回到原点

某些同学会发现,这个回去的速度比出去的慢,那是因为回去的速度只有1,要快一点的话,就调整Radial的数值和曲线吧23333


QQ图片20190708195559.gif

好了第三个方法也讲完了,这个数值可以配合Orbital做一些螺旋收回之类的操作

但是也是18版本才有,如果不是18版本,就乖乖学上面的方法吧,或者去把某人(或者一群人)打一顿,叫他换版本



方法讲完了,大家可以开始反复横跳了

我们有缘再见

QQ图片20190708200206.jpg


没有标签
确定
评论(27)
还没有人评论,快来抢沙发吧!