本文将由游戏开发者Mirza分享使用Unity的默认Shuriken粒子系统,在不使用插件或编写脚本的情况下,实现Logo消融效果。
这是一个Unity中运行的实时效果,你可以使用任意图片实现该效果,无论图片是否是彩色的。本教程将使用纯白色纹理来制作,根据该纹理调整设置,你可以改变部分粒子颜色,使其更符合自己使用的图片。
Part 1:Logo淡入淡出效果
我们首先处理粒子系统,实现整个Logo图片的淡入和淡出效果。
创建一个新材质,将Logo贴图赋予此材质。将其设置为使用Particles/Alpha Blended着色器。
我们需要确保纹理拥有读写权限。如果没有的话,基于纹理的粒子发射效果将只在编辑器中可用,无法在游戏中实现。
创建一个新的粒子系统。每次创建时,请重置Transform属性,这样游戏对象不会出现平移或旋转,除非打算使其以某种方式移动和旋转。
打开Renderer模块,并将粒子材质设置为刚刚创建的材质。如果想提高亮度,并且正使用着后期处理的泛光效果,我们可以将颜色调为纯白色,并将Alpha调到最大。
如下图对材质Tint Color进行的处理,将Render Alignment设为Local。我们不会让Logo的基础纹理粒子面向摄像机,这样能确保粒子面向本地变换的方向。
我们只打算发射一个粒子,所以查看Emission模块并按照下图进行设置。
现在我们可以进行Main模块设置。我们不需要循环播放该效果中的任何粒子系统,所以取消勾选Looping属性来禁用循环过程。
为了能通过脚本轻松地调整模拟时间,我们将Start Lifetime设为1。如果你不打算处理该数值,应该将它设为更合适的值。你可以将其设为较大数值,使观看者有足够时间看到Logo,再让Logo爆炸为精美的粒子。
如果我们不使用正方形纹理,则可能需要启用3D Start Size并处理参数。我们发射的是2D粒子,所以只要处理X和Y值。图像分辨率为1024*512,宽高比为2:1,所以将X值设为2,Y值设为1,使它匹配宽高比,避免使图片变形。
我们还降低了Start Color的Alpha值,因为使用后期处理设置的泛光效果时,图像的亮度会过高。
现在,我们需要使用Color over Lifetime模块来设置Alpha动画。下图是处理Logo淡入和淡出效果的设置。
Alpha淡入时间为总时间的25%,从25%~75%的时间显示Logo,然后再完全淡出。因为我们将该粒子持续时间设为1,所以分别设定的时间为0.25和0.75。
Part 2:Logo爆裂效果
在这一部分,我们将使用的粒子系统制作Logo分散的爆裂效果。
首先创建新粒子系统。我们有三种方法可以选择:
1、为点精灵图片创建简单的粒子纹理,将其指定给附加材质。
2、使用Ultimate VFX资源的点材质。
3、使用Inferno VFX中的附加发光球体材质。
这三种方法均可用于本文教程,Ultimate VFX 和Inferno VFX都是由本文作者Mirza所创作,如果你不想自己制作纹理和材质,也不打算付费购买资源,可以下载免费的Inferno VFX。
打开新建粒子系统的Renderer模块并设置材质,不必修改其它设置。
请按照下面的内容设置Main模块和Emission模块。
Start Delay会按指定时间推迟发射过程,以秒为单位。我们希望该效果在Logo淡出时发生,也就是从前面粒子系统的透明动画开始,即整个过程的第0.75秒。
这些粒子会很小,因此我们将Start Size设为单位大小的1/8,即0.125。粒子不用太亮,所以需要大幅降低Start Colour的Alpha值。
因为会有大量微小粒子,我们需要将Max Particles设为10,000,并将Emission模块中Bursts属性的Count数值也设为10,000。
现在让这些粒子从Logo纹理的形状发射出来,请按下面内容设置。
将Shape设为Box,指定Logo图片到Texture字段。如果想让粒子继承Logo的颜色,请勾选Color affects Particles。
类似之前的粒子系统Start Size设置,我们调整了发射器边界,通过设置Scale为[2, 1, 0],使其匹配图片的宽高比。Z值为0,因为希望让发射器在平面上发射。
此时,当粒子在Start Delay后发射时,我们会看到类似下图的效果。现在有了在纹理形状发射的基础,我们可以实现任何想要的效果。
现在处理分散的文字。启用Velocity over Lifetime模块。
点击该属性最右侧箭头设置Linear属性,选择Random Between Two Curves。指定相似曲线到所有轴,范围从-1~1。曲线会随时间慢慢增强分散效果,而不是立即分散,因此它能更好地融合前面的粒子系统,并提供过渡转变为噪声分散粒子系统。
为方便起见,这里使用了Speed Modifer来调整数值,但是为每个轴直接设置数值会更好,这样粒子系统可以自动剔除。本示例是一个Logo动画效果,所以这样处理意义不大。
最后,按下图启用并编辑Color over Lifetime模块和Size over Lifetime模块。
Part 3:Logo噪声分散效果
接下来,我们将会制作第一个噪声分散效果,如下图所示。该效果需要一个新的粒子系统,我们可以将刚制作好的粒子系统复制过来,因为许多设置是相同的。
我们需要修改部分设置,在Main模块和Emission模块中有一些区别。
Start Delay和Start Lifetime的数值会在1到2秒之间随机选取,Start Size较小,Max Particles设为20000,Burst中的Count值也设为20000。为了随机选取Start Lifetime数值,点击下拉箭头,选择Random Between Two Constants。
Color over Lifetime模块也有不同。
引入噪声后,就变得有趣了,现在启用Noise模块,按下面内容进行设置。
我们将Strength改为使用曲线,这样粒子不会立即以噪声方式分散,从而更好地与其它效果融合。右键点击曲线的控制点,选择Edit Key… 来直接控制并编辑点在视图上的位置,使用Broken切线模式允许你修改左边或右边的切线,而不改变另一侧的曲线。
通过使用这二个方法,我们将控制点设在0.25s,该点左边为直线,右边为曲线。得到的结果是0.25s前不使用噪声,之后会突然上升为1。
频率为1.5时效果看起来不错,它能控制“混乱”等级,因为粒子由渐变场操控。Scroll Speed设为1会使噪声在粒子生命周期生成动画。
我们使用了大量粒子,如果将Quality设为Medium (2D)会加速模拟效果,且不会与最终效果有太大区别。
我们将Render Mode改为Stretched Billboard,设置Speed Scale为0.1,Length Scale设为1,这样会稍微根据当前的移动速度和方向拉伸粒子,产生近似运动模糊的效果。
其它设置可以保留原样,因为我们重用了之前粒子系统的设置。
Part 4:Logo噪声分散2
复制我们刚刚制作的粒子系统,开始制作最后一个粒子系统,它或许是该效果中最精美的部分。
我们需要修改Main模块和Emission模块中的部分设置。
Duration设为0.75。这是因为这里不会在一次爆炸中发射粒子,而是会使用Rate over Time。我们还修改了Start Delay和Start Lifetime数值,并提高了Start Color的Alpha值。
按下图设置Color over Lifetime模块和Size over Lifetime模块。让粒子从蓝色变为桔红色,每个粒子的大小会快速增大然后缓慢减小。
最后,修改Noise模块的设置,将Strength和Frequency设为1。你可以将Quality改为Medium (2D)。
Part 5:组合所有效果
到这里就差不多完成了,让我们重新看一遍已经制作做好的独立粒子系统,然后将所有效果结合成一个可播放对象。
我们可以将这些粒子系统命名并分组为另一个粒子系统,将所有模块禁用,这样它们会在你选择其中任一对象时一起播放。如果禁用Looping并设置Stop Action为Destroy,可以将其用作可实例化效果,它会在Duration时间(以秒为单位)结束后自毁。
本文到此结束,结合所有粒子系统后,精美Logo消融效果就制作完成了,最后的效果如下图所示。