问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity 2D序列帧动画制作:火焰特效教程

创作时间:
作者:
@小白创作中心

Unity 2D序列帧动画制作:火焰特效教程

引用
51CTO
1.
https://blog.51cto.com/goody/11812252

本文将详细介绍如何在Unity中制作2D序列帧动画火焰特效。首先使用Photoshop制作火焰序列帧图片,然后在Unity中使用ParticleSystem组件实现火焰效果。

一、前言

Unity是一款功能强大的游戏开发引擎,广泛应用于游戏开发和虚拟现实等领域。本文将通过一个具体的案例,介绍如何在Unity中制作火焰特效。

二、本文最终效果

本文将展示如何在Unity中实现火焰特效的完整过程。最终效果如下:

三、制作火焰序列帧图片(PhotoShop)

要制作一个火焰特效,我们得先有火焰的美术素材,自己动手丰衣足食,我们用PhotoShop自己画一个吧。

  1. 创建画布
    在PhotoShop中新建一个1024 x 1024的画布。给画布填充黑色。

  2. 创建参考线
    因为我们要在画布上画火焰的序列帧,为了不画偏了,建议创建参考线。比如我们要画2 x 2的序列帧,那么画布就要分割成4个格子,我们需要知道每个格子的中心点位置等等。

点击菜单视图 / 新建参考线,如下,三条垂直参考线分别是256、512、768,七条水平参考线分别是146、256、366、512、658、768、878,我们在如下的4个位置分别画火焰的序列帧图案即可。

  1. 画序列帧图
    新建一个图层,在刚刚新建的图层上画火焰序列帧图,凭感觉自由发挥,我也是随便画的,

  2. 保存PNG图片
    把黑色的底图图层隐藏掉,点击菜单文件 / 存储为,选择存储格式为PNG,保存图片为file.png。

四、Unity制作火焰特效(ParticleSystem)

  1. 导入火焰序列帧图片
    将刚刚的火焰序列帧图片file.png拷贝到Unity工程中。

  2. 创建粒子系统ParticleSystem
    在Hierarchy视图空白处右键鼠标,点击菜单Effects / ParticleSystem,

此时场景中就会创建出一个粒子系统。

  1. 创建材质球
    先新建一个Materials文件夹,在Materials文件夹上右键鼠标,点击菜单Create / Material,

材质球就创建成功了,我们把它重命名为file,

  1. 设置材质球属性
    选中file材质球,设置它的shader为Mobile / Particles / Additive,把火焰序列帧图拖给材质球作为贴图。

  2. 粒子系统使用材质球
    选中场景中的粒子系统,展开Renderer标签页,把材质球file拖给粒子系统,

此时可以看到,粒子喷射出来的图案变成序列帧图案了。

  1. 设置序列帧(Texture Sheet Animation)
    上面我们看到,虽然粒子喷出来的图案是火焰序列帧图案了,但是它喷出来的不是一帧一帧的图案,我们需要开启粒子的序列帧属性。

勾选Texture Sheet Animation,设置Tiles为2 x 2。

注,如果你的火焰序列帧图案是3 x 3的,则这里的Tiles要设置为3x 3。

此时效果如下:

  1. 设置粒子初始速度(Start Speed)
    上面我们看到粒子拼命地往上飞,这是因为它的初始速度比较大。我们可以把Start Speed调小,比如调整为0.2 ~ 0.3,

效果如下,现在温和很多了:

  1. 设置粒子喷射区域(Shape)
    我们看到粒子喷得很散,这是因为粒子的喷射区域是一个圆锥体(Cone),

我们可以把它的区域调小,展开Shape标签页,把张开角度Angle调整为20,把半径Radius调整为0.01,

现在喷射区域很集中了,

  1. 设置粒子生命周期时长(Start Lifetime)
    我们希望每个粒子的生命周期时长是随机的,将Start Lifetime设置为0.3 ~ 0.8,

效果如下,到这里已经有点感觉了对不对。

  1. 设置粒子颜色随时间变化(Color over Lifetime)
    现在给粒子设置一个随时间而变化的颜色,勾选Color over Lifetime,设置一个渐变色。

效果如下:

  1. 设置粒子帧随时间变化(Frame over Lifetime)
    上面的这个效果,每个粒子会独立得更新帧,为了方便观察,我们先把Max Particles调整为1,

这样就看的出来了,一个粒子在它的生命周期内独立地更新它的图像帧,

我们希望每个粒子是固定的某一帧,展开Texture Sheet Animation标签页,设置Time Mode为Lifetime,设置Frame over Time为0 ~ 3。

再观察一下效果,现在每个粒子是固定的某一帧啦,

把Max Particles调整成50,效果如下:

  1. 设置粒子大小随时间变化(Size over Lifetime)
    火焰燃烧的时候,是会有那种忽大忽小的效果的,我们希望粒子的大小随时间而变化,勾选Size over Lifetime,我编辑了一个曲线,

效果如下:

  1. 添加火星
    PhotoShop再画个火星的图案,

导入Unity中,对应地做一个材质球,

在火焰粒子节点下再创建一个粒子系统作为火星,

与火焰粒子一样调整相关参数,火星的参数就不展开讲了,上面的火焰效果如果能做出来,火星基本就没问题的了。

效果如下:

五、最终效果

加一个背景图和文字,最终效果如下:

六、结束语

就先写这么多吧~

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号