小伙伴们好久不见呀!今天又熬夜给大家带来一篇特效干货,建议大家多多点赞转发,大家的支持就是我更新的动力,点赞转发越多更新越快呀。
今天分享的是用粒子系统做这种圆形运动以及由此种方法扩展的其他任意你想要的运动轨迹的一种方法。
很多小伙伴都会用速度曲线或者新版本的引擎自带的orbital直接给一个参数就能做到这样的效果(演示用的unity,UE4同理,其他引擎我暂时还没使用过但是底层原理肯定是一样的)
这次讲一下这两根曲线的来历,为什么这样拉曲线就可以让粒子按圆形运动。以及这种方法的扩展。
首先我们画一个简单的坐标轴,然后画一个圆形,比如我这里想让粒子按顺时针方向绕一个圆运动。
然后标上几个交点的坐标。
我们要做的是这样的顺时针运动,把几个坐标排列一下顺序。这里要记住我们是从A点出发,最后也要回到A点的哦。
然后再把X和Y分开,就得到了这样一个排列。
相信聪明的小伙伴已经知道后面的做法了吧!
我们回到unity中,将速度曲线的X轴按照上面我们的排列(0→100 → 0 → -100 → 0)这样拉一下。
有的小伙伴可能会问为啥图片里面是100这里又是3,其实这个只是圆形轨迹的大小,需要针对自己实际情况调整,只要是等比例的就可以了。
这里注意一下因为我们虽然有5个点,但是首尾其实是相同的,所以第二个点是在0.25(1/4)的位置而不是0.2(1/5)的位置哦。为了圆形轨迹更标准,可以手动设置一下这几个的精确位置。
需要注意的是由于unity是Y轴朝上,所以我们需要将上面分析图中Y轴的运动曲线设置到unity中Z轴的运动曲线中。其他引擎的话需要根据实际情况判断一下。
这样设置完成以后就得到了一个规则的圆形运动的轨迹了。
同时需要注意将初始速度归零,只用曲线来控制速度(有的引擎以及老版本的unity曲线是控制倍速,需要初始有一个值,这个也根据自己实际情况判断哇,我这里演示用的是unity2018.4.9)
其次、我们可以通过lifetime来控制转一圈的时间,通过曲线的最大值来控制圆圈的大小。
好了,我们今天的分享到此结束
前面讲了这两根曲线的原理,我这里就抛砖引玉分享一些由此原理做的扩展效果,相信大家知道这种方法以后就可以扩展出很多漂亮的效果的。
例如我们只需要再给Y轴一个速度,就可以做到像DNA那样螺旋上升的效果。
有的小伙伴可能会说这个圈数少了,不像DNA。
其实很简单,我们只需要将两条曲线再重复一次就可以。如果想旋转多圈的就根据实际需求调整即可。
继续扩展,我们设置一个发射器形状以及拖尾。就可以得到这样鬼魂缠绕的效果。
如果觉得太整齐了,我们可以设置为双曲线然后拉开一些区间。其实这里已经开始很有趣了,拉的时候不需要像前面演示的那样很精确,随意一些有时候也能获得一些不一样的效果。
比如我想做一个这样的拖尾轨迹,也可以先画个图然后根据坐标来拖曲线。
这里需要注意三点:
第一是这个轨迹不像圆形需要回到起始点,所以最后一个点不需要回到A点,以F结尾即可。
第二是标记坐标的时候需要开启网格来对位置,否则这种自定义曲线肉眼是判断不准确的。
第三是实际上我的曲线也不是完全按照画的图来的,只是一个大致参考,再配合节奏来调整。
要记住这只是方法手段,最终的表现才是目的。方法可以多种多样,不要因为方法而改变目的,那就本末倒置了。
本来还想做一个这样蝴蝶翅膀描边的演示的,由于时间有限(我太懒)就不做啦,相信大家看完上面的分析,要做这样的效果也是简简单单的。
结尾再说一下,我分享的只是一种做法,做这种轨迹还有不少方法可以做到。我分享的这种方法不一定适合每个人,大家根据自己项目实际情况选择适合自己的方法就可以啦,不用太拘泥于哪种方法。要记住这些方法都是手段,最后的特效表现才是目的。不要本末倒置了。
我建了一个特效交流群,大家有问题的也可以进群交流。群号【176529744】,欢迎大家来讨论特效问题。
|
全部评论12