Unity3d粒子特效:制作火焰效果
效果
分析
真实的火焰效果,通常包括:火、火光、火星等组成部分,火焰燃烧的同时会对周围环境进行烘焙。
1、针对火焰组成部分,我们可以分别创建粒子系统组件实现
2、火焰燃烧对周围环境的烘焙效果,我们可以通过灯光实现,如点光源。
那么,我们通过粒子系统 + 光源实现火焰效果,在Unity3d场景中结构应如下图所示:
1、Fire 火,火焰的主体部分,因燃烧产生的剧烈化学反应,灵动多变;
2、Flash 火光,即火焰的闪光效果,忽明忽暗;
3、Spark 火星,因高温而升起的燃烧碎屑,行踪飘忽,颜色渐变,效果随机;
4、Point Light 光亮,火焰燃烧对周围环境的烘焙效果;
实现
1、新建工程
1.1、新建3D工程
1.2、导入资源素材(后面会提供素材包)
1、天空盒1个 2、多帧火焰形态图1个 3、地面图1个
2、场景搭建
2.1、新建场景FireScene
2.2、设置场景天空盒,选择BlueSkybox
原因:系统默认天空盒太亮,火焰效果对比不明显,视觉冲击力差。 设置天空盒方式: Window --> lighting -->setting
2.3、创建平面(地面)
用于放置火焰,并作为被烘焙对象(即火焰的光照能显示在该物体上) 1、创建Quad,改名Ground 2、置为原点位置,即坐标(0,0,0)
2.4、调整摄像机视角
1、Scene场景中调整为合适视角(如上图所示视角即可) 2、选中摄像机Main Camera 3、设置摄像机使用当前视角:GameObject --> Align With View
3、制作Fire效果(火)
为了最好体现火的形态变化,此处使用美术人员提供的火的多帧形态图,作为粒子贴图。
火的多帧形态图,素材共4帧,两行两列
3.1、创建粒子系统对象,命名Fire,改其发射方向
正常的火焰效果,火焰粒子应是朝上方向发射; 而新建的粒子系统默认朝前播放粒子,所以需要x轴旋转-90°,改为朝上发射
3.2、思考:火 需要使用粒子系统的哪些模块?
1、基础模块,主要控制粒子生命时长、大小、方向、颜色、重力等 2、Emission模块,粒子主要模块,主要用于控制粒子发射 3、Shape模块,粒子主要模块,主要用于控制粒子发射器的形状 4、Renderer模块,粒子主要模块,主要用于控制粒子渲染 5、Color over Lifetime,控制火的颜色随生命周期而改变,可使火焰效果更真实生动 6、Texture Sheet Animation,用于控制火焰的多帧形态图,随机切换指定帧
3.3、先设置Renderer模块
1、Material 选择多帧火焰图 2、设置Sort Mode:Youngest in Front (即:后渲染出来的显示在最上/前层)
3.4、设置Texture Sheet Animation模块
1、Tiles : 是指纹理在X(水平)和Y(垂直)方向上划分的平铺数量,此处分别设置为 2 2、Frame over Time:默认曲线,指定动画帧随着时间的推移如何增加。此处由逐帧变化,改为随机固定某一帧