unity 使用粒子系统 实现一个火焰燃烧效果

前置效果

早在去年,我就打算写一套特效教程。但苦于生计,一直也没时间。希望新工作能多给我留点时间吧。哎。
在这里插入图片描述

准备工作。

本教程素材需要自己制作,需要的工具是ps、shader、unity。有不会的没关系。跟着步骤走就可以。

步骤一:制作火焰素材

制作素材我们只需要ps软件。往下翻有已经做好的素材,你也可以跳过这步直接用我做好的素材。
进入软件后,首先删掉默认图层。使图片背景透明。
在这里插入图片描述
打开ps后,点击左侧工具栏的钢笔在这里插入图片描述在画布上拖出一个泪滴形状
在这里插入图片描述
然后在图层窗口中点击路径选项卡,就能看到路径的图层了:
在这里插入图片描述
然后用鼠标右键点击路径图层,就弹出了这个东东:

点击建立选区选项,弹出选取设置窗口:
在这里插入图片描述
羽化半径填5,然后确定,就出现了羽化边缘的选区:
在这里插入图片描述
点击图层窗口的图层选项卡,然后点击右下角的加+号,新建一个图层在这里插入图片描述
再点击工具栏的油漆桶,并设置颜色为白色
再点击工具栏的油漆桶,并设置颜色为白色
点击画布上的选取,就完成了填充:
在这里插入图片描述
重复羽化选区的部分,再创建一个羽化为20像素的选区并填充一个图像:在这里插入图片描述
现在我们拥有了两个泪滴。把羽化边缘为20的边缘比较模糊的那个,放大一点,再往下移动一点,让两个图形重合成这个样子。
在这里插入图片描述
其实这个就已经够用了,但为了更好的效果,我们重复以上步骤,调整路径和羽化范围,制作4个火苗,并均匀放在画布上。
注意:关于形状,这里有两种做法。第一种做法是做出火焰燃烧变化的序列,这样的火焰看起来变化会更自然,比较适合静静燃烧的火焰。第二种是像我这样做几个随机图像,这样看着动感更强一些,适合喷发型的火焰。
【喷发型火焰元素图】
在这里插入图片描述

为了让你看的清楚,我事先加了黑色的背景,现在删掉背景,保证图片空白的部分是透明的。
在这里插入图片描述
最后一步,点击上方菜单栏文件->另存为,扩展名保存为png,保存到桌面。
在这里插入图片描述

==== 下面空白部分是素材图
在这里插入图片描述

==== 这空白部分,就是我导出的图片素材。你可以直接在空白处右键另存为,拿走图片直接用。

使用unity制作火焰

1 创建火焰材质

1.将刚刚创建的图片拖到unity的assets资源管理器中,在管理器中点击该图片,然后在右边Inspector窗口中,将 Texture Type 设置为Sprite(2D sprite)
2.assets资源管理器中右键->新建Materil,shader,选择 moble -》粒子 unit。
这里需要说明的是,如果你想弄的效果好一点,其实应该自己去写一个shader, 并通过shader中的模板过滤来改变火焰的重合颜色。该shader我未来会补齐。这里只是暂用unity内置的用一下。选则unlight是因为光源无需对光线产生互动。

2 创建粒子系统

1.在hearchy窗口中 右键》effect》particle system 创建粒子系统
在这里插入图片描述
这是粒子系统默认的效果。
我们首先需要改变粒子的材质,替换成火焰图案

调整火焰发射形状

在粒子发射器的Inspector面版中找到Renderer栏,然后将我们自己制作的火焰材质拖至Material处
在这里插入图片描述
就可以看到火焰变成这样了
在这里插入图片描述
粒子系统将我们的贴图原样输出。。。看起来很萌的样子,为什么让我想起了国宝滚滚。。

接下来我们需要将贴图分割为4个部分,然后让图像按顺序变换显示。在粒子发射器的Inspector窗口中找到Texture Sheet Animation。在这里插入图片描述
将Tiles 的X、Y选项分别设置为2,就可以将图像水平、垂直各切一刀,将图像分割为四个部分。着重说一下 Time Mode设置。这个的意思是,粒子被发射出来,随着时间的推移,应该显示哪张图片
在这里插入图片描述
我设置成了这个样子,代表开始播放第2张图片,然后播放第3张图片、接着播放第一张、最后播放第四张。
设置完后,就可以看到,粒子发射器变成了这个样纸:
在这里插入图片描述

调整粒子发射器的发射形状

现在这样发射太散了,如果真有那么一个火堆是这么燃烧的,恐怕周围很快就烧光了吧。。这一步我们要约束粒子发射器的发射范围。

第一步,约束发射形状。找到Inspector面板中的Shape栏,设置Angle为15,这样散射的角度就收敛了。然后设置Radius为0
在这里插入图片描述
这样发射位置就变成了1个较为集中的点
在这里插入图片描述
第二部,粒子存在时间和速度。找到Particle system的主设置。
在这里插入图片描述

勾选Prewarm,会让粒子系统在游戏运行开始就满状态运行,而不是由少到多的发射。
设置Start Lifetime 和Start Speed 分别为1.这样发射范围和距离就被控制住了。
设置Simulation Space 为 world。这样在火焰移动的时候,已经发射的火焰就会留在之前的位置。
设置Simulation Speed,将火焰燃烧的速度,设置为0.8
设置完这些后,粒子长成了这个吊样:
在这里插入图片描述

调整火焰的形状

火焰都是从无到有,再由有变无,所以我们需要设置粒子元素刚发射出来是无限小,然后变大,在消亡的时候,再次变小直到消失。
找到 Size over Life time栏,设置Size的曲线。
在这里插入图片描述
将曲线设置成这样个样子:
在这里插入图片描述
然后变得就有那么点意思了:
在这里插入图片描述

设置火焰颜色

我们观察打火机或蜡烛的火焰,中心部分是高亮部分,接近白色的。然后第二层部分是黄色的,最外层则是深红色的。
我们通过设置Color over lifetime即可实现这种效果:
在这里插入图片描述
设置color的过度色为这个样子:
在这里插入图片描述
注意,该颜色条从左到右代表时间的起始和结束的颜色变化。点击这个在这里插入图片描述,再点击Color选择颜色,就可以设置当前阶段的颜色,而在这里插入图片描述则用于设置透明度。
我的这个设置,就是开始时是白色并透明,然后变成纯白色, 随着时间推移,变成了黄色,最后变成红色,再变完全透明。

设置完后,我们的【小火苗】就完成了:
在这里插入图片描述
有点像火柴和打火机的火焰是吧,不要着急。调整那些随着时间变化的参数,会然让你的火焰展示出多变的形态。同样是刚才的火焰,我们设置发射速度、color over lifetime、size over lifetime等设置,会让他们产生很多变化:
【喷火】
在这里插入图片描述
【篝火】
在这里插入图片描述
如果把贴图改为真实的火焰图片素材,并加入些烟雾和火星的粒子,再编写一个重合变色的shader,就能弄出比较接近真实效果的火焰。 这个就留作你自己去发挥想象吧。

  • 33
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千年奇葩

从来没受过打赏,这玩意好吃吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值