请选择 进入手机版 | 继续访问电脑版

查看: 1033|回复: 11

[技术] 使用粒子实现Logo消融效果

[复制链接]

1193

主题

1894

帖子

2万

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
24860
QQ
发表于 2018-10-30 04:11:06 | 显示全部楼层 |阅读模式
本文将由游戏开发者Mirza分享使用Unity的默认Shuriken粒子系统,在不使用插件或编写脚本的情况下,实现Logo消融效果。

01.gif


这是一个Unity中运行的实时效果,你可以使用任意图片实现该效果,无论图片是否是彩色的。本教程将使用纯白色纹理来制作,根据该纹理调整设置,你可以改变部分粒子颜色,使其更符合自己使用的图片。

Part 1:Logo淡入淡出效果
我们首先处理粒子系统,实现整个Logo图片的淡入和淡出效果。

02.gif


创建一个新材质,将Logo贴图赋予此材质。将其设置为使用Particles/Alpha Blended着色器。

03.png


我们需要确保纹理拥有读写权限。如果没有的话,基于纹理的粒子发射效果将只在编辑器中可用,无法在游戏中实现。

04.png


创建一个新的粒子系统。每次创建时,请重置Transform属性,这样游戏对象不会出现平移或旋转,除非打算使其以某种方式移动和旋转。

05.png


打开Renderer模块,并将粒子材质设置为刚刚创建的材质。如果想提高亮度,并且正使用着后期处理的泛光效果,我们可以将颜色调为纯白色,并将Alpha调到最大。

如下图对材质Tint Color进行的处理,将Render Alignment设为Local。我们不会让Logo的基础纹理粒子面向摄像机,这样能确保粒子面向本地变换的方向。

06.png


我们只打算发射一个粒子,所以查看Emission模块并按照下图进行设置。

07.png


现在我们可以进行Main模块设置。我们不需要循环播放该效果中的任何粒子系统,所以取消勾选Looping属性来禁用循环过程。

为了能通过脚本轻松地调整模拟时间,我们将Start Lifetime设为1。如果你不打算处理该数值,应该将它设为更合适的值。你可以将其设为较大数值,使观看者有足够时间看到Logo,再让Logo爆炸为精美的粒子。

如果我们不使用正方形纹理,则可能需要启用3D Start Size并处理参数。我们发射的是2D粒子,所以只要处理X和Y值。图像分辨率为1024*512,宽高比为2:1,所以将X值设为2,Y值设为1,使它匹配宽高比,避免使图片变形。

我们还降低了Start Color的Alpha值,因为使用后期处理设置的泛光效果时,图像的亮度会过高。

08.png


现在,我们需要使用Color over Lifetime模块来设置Alpha动画。下图是处理Logo淡入和淡出效果的设置。

Alpha淡入时间为总时间的25%,从25%~75%的时间显示Logo,然后再完全淡出。因为我们将该粒子持续时间设为1,所以分别设定的时间为0.25和0.75。

09.png


Part 2:Logo爆裂效果
在这一部分,我们将使用的粒子系统制作Logo分散的爆裂效果。

10.gif


首先创建新粒子系统。我们有三种方法可以选择:
1、为点精灵图片创建简单的粒子纹理,将其指定给附加材质。
2、使用Ultimate VFX资源的点材质。
3、使用Inferno VFX中的附加发光球体材质。

这三种方法均可用于本文教程,Ultimate VFX 和Inferno VFX都是由本文作者Mirza所创作,如果你不想自己制作纹理和材质,也不打算付费购买资源,可以下载免费的Inferno VFX。

打开新建粒子系统的Renderer模块并设置材质,不必修改其它设置。

11.png


请按照下面的内容设置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。

12.png


现在让这些粒子从Logo纹理的形状发射出来,请按下面内容设置。

将Shape设为Box,指定Logo图片到Texture字段。如果想让粒子继承Logo的颜色,请勾选Color affects Particles。

类似之前的粒子系统Start Size设置,我们调整了发射器边界,通过设置Scale为[2, 1, 0],使其匹配图片的宽高比。Z值为0,因为希望让发射器在平面上发射。

13.png


此时,当粒子在Start Delay后发射时,我们会看到类似下图的效果。现在有了在纹理形状发射的基础,我们可以实现任何想要的效果。

14.png
15.png


现在处理分散的文字。启用Velocity over Lifetime模块。

点击该属性最右侧箭头设置Linear属性,选择Random Between Two Curves。指定相似曲线到所有轴,范围从-1~1。曲线会随时间慢慢增强分散效果,而不是立即分散,因此它能更好地融合前面的粒子系统,并提供过渡转变为噪声分散粒子系统。

为方便起见,这里使用了Speed Modifer来调整数值,但是为每个轴直接设置数值会更好,这样粒子系统可以自动剔除。本示例是一个Logo动画效果,所以这样处理意义不大。

16.png


最后,按下图启用并编辑Color over Lifetime模块和Size over Lifetime模块。

17.png


Part 3:Logo噪声分散效果
接下来,我们将会制作第一个噪声分散效果,如下图所示。该效果需要一个新的粒子系统,我们可以将刚制作好的粒子系统复制过来,因为许多设置是相同的。

18.gif


我们需要修改部分设置,在Main模块和Emission模块中有一些区别。

Start Delay和Start Lifetime的数值会在1到2秒之间随机选取,Start Size较小,Max Particles设为20000,Burst中的Count值也设为20000。为了随机选取Start Lifetime数值,点击下拉箭头,选择Random Between Two Constants。

19.png


Color over Lifetime模块也有不同。

20.png


引入噪声后,就变得有趣了,现在启用Noise模块,按下面内容进行设置。

我们将Strength改为使用曲线,这样粒子不会立即以噪声方式分散,从而更好地与其它效果融合。右键点击曲线的控制点,选择Edit Key… 来直接控制并编辑点在视图上的位置,使用Broken切线模式允许你修改左边或右边的切线,而不改变另一侧的曲线。

通过使用这二个方法,我们将控制点设在0.25s,该点左边为直线,右边为曲线。得到的结果是0.25s前不使用噪声,之后会突然上升为1。

频率为1.5时效果看起来不错,它能控制“混乱”等级,因为粒子由渐变场操控。Scroll Speed设为1会使噪声在粒子生命周期生成动画。

我们使用了大量粒子,如果将Quality设为Medium (2D)会加速模拟效果,且不会与最终效果有太大区别。

21.png


我们将Render Mode改为Stretched Billboard,设置Speed Scale为0.1,Length Scale设为1,这样会稍微根据当前的移动速度和方向拉伸粒子,产生近似运动模糊的效果。

22.png


其它设置可以保留原样,因为我们重用了之前粒子系统的设置。

Part 4:Logo噪声分散2
复制我们刚刚制作的粒子系统,开始制作最后一个粒子系统,它或许是该效果中最精美的部分。

23.gif


我们需要修改Main模块和Emission模块中的部分设置。

Duration设为0.75。这是因为这里不会在一次爆炸中发射粒子,而是会使用Rate over Time。我们还修改了Start Delay和Start Lifetime数值,并提高了Start Color的Alpha值。

24.png


按下图设置Color over Lifetime模块和Size over Lifetime模块。让粒子从蓝色变为桔红色,每个粒子的大小会快速增大然后缓慢减小。

25.png


最后,修改Noise模块的设置,将Strength和Frequency设为1。你可以将Quality改为Medium (2D)。

26.png


Part 5:组合所有效果
到这里就差不多完成了,让我们重新看一遍已经制作做好的独立粒子系统,然后将所有效果结合成一个可播放对象。






我们可以将这些粒子系统命名并分组为另一个粒子系统,将所有模块禁用,这样它们会在你选择其中任一对象时一起播放。如果禁用Looping并设置Stop Action为Destroy,可以将其用作可实例化效果,它会在Duration时间(以秒为单位)结束后自毁。

27.png


本文到此结束,结合所有粒子系统后,精美Logo消融效果就制作完成了,最后的效果如下图所示。

小结
使用粒子实现Logo消融效果,你学会了吗?是不是制作特效非常简单。更多Unity教程尽在Unity官方中文论坛(UnityChina.cn) !

0

主题

8

帖子

120

贡献

初级UU族—2级

Rank: 2

积分
120
发表于 2018-10-30 06:39:08 | 显示全部楼层
这是哪个版本的unity,很多设置都不一样

0

主题

21

帖子

160

贡献

初级UU族—2级

Rank: 2

积分
160
发表于 2018-10-30 06:45:06 | 显示全部楼层
能给源码吗,

0

主题

1

帖子

45

贡献

初级UU族—1级

Rank: 1

积分
45
发表于 2018-10-30 07:05:31 | 显示全部楼层
哪一个版本的粒子系统?
30岁的食梦者

0

主题

2

帖子

20

贡献

初级UU族—1级

Rank: 1

积分
20
QQ
发表于 2018-10-30 07:29:51 | 显示全部楼层
我的shape里没有找到Texture啊,5.6.3

0

主题

36

帖子

1750

贡献

中级UU族—2级

Rank: 5Rank: 5

积分
1750
发表于 2018-10-31 01:08:29 | 显示全部楼层
66666666666666厉害了。。。。。。

0

主题

2

帖子

75

贡献

初级UU族—2级

Rank: 2

积分
75
发表于 2018-10-31 02:10:16 | 显示全部楼层
后期处理的泛光怎么实现啊 大神指教

0

主题

4

帖子

50

贡献

初级UU族—2级

Rank: 2

积分
50
发表于 2018-10-31 02:54:10 | 显示全部楼层
darkwood 发表于 2018-10-30 06:39
这是哪个版本的unity,很多设置都不一样

unity2018

0

主题

4

帖子

50

贡献

初级UU族—2级

Rank: 2

积分
50
发表于 2018-10-31 02:55:25 | 显示全部楼层
Sending 发表于 2018-10-30 07:05
哪一个版本的粒子系统?

unity2018

0

主题

1

帖子

30

贡献

初级UU族—1级

Rank: 1

积分
30
发表于 2018-10-31 03:38:39 | 显示全部楼层
能提供下案例工程么,做出来的效果不一样想细致学习学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表