效果

分析

真实的火焰效果,通常包括:火、火光、火星等组成部分,火焰燃烧的同时会对周围环境进行烘焙。
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,改名Ground2、置为原点位置,即坐标(0,0,0)


2.4、调整摄像机视角

1、Scene场景中调整为合适视角(如上图所示视角即可)2、选中摄像机Main Camera3、设置摄像机使用当前视角: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(垂直)方向上划分的平铺数量,此处分别设置为 22、Frame over Time:默认曲线,指定动画帧随着时间的推移如何增加。此处由逐帧变化,改为随机固定某一帧3、Cycles : 是指动画序列在粒子生命周期内重复的次数,此处设置为4,当然也可根据自身喜爱更改数值

3.5、设置基础模块

1、Duration 粒子发射时长,此处设置为1秒2、Start Lifrtime 单个粒子的生命周期,随机1秒以下,此处设置0.3 ~ 0.5秒3、Start Speed 粒子速度0.1,火多帧图上窜效果有波动,但不宜过大4、Start Size 0.7 ~ 1 增加随机性5、Start Rotation -20° ~ 20° 增加随机性6、Gravity Modifier 重力修改器,因火为升力,此处需改为-17、Max Particles 最大数量为25,不宜过多

以上属性可根据自身喜好,微调其数值

3.6、设置Emission模块

1、rate over Time 设置为25,与粒子最大数量一致即可2、因火是平静燃烧,不存在突然的爆发,所以不需要设置Bursts

以上属性可根据自身喜好,微调其数值


3.7、设置Shape模块

1、Shape 无需改变(咱们实现的效果:火的燃烧点是1个)2、Radius 改为0(系统默认置为0.01),使粒子产生位置固定

3.8、设置Color over Lifetime颜色

颜色可根据自身喜好,自行调整,须注意颜色渐变与透明度变化

4、制作火星(Spark)

火星的效果比较简单:

1、在固定位置产生火星的粒子2、粒子产生后向上升,随位置升高速度渐慢,颜色也渐透明3、为了体现火星的灵动性,火星大小、生命时长等均随机

制作Spark会使用到粒子系统的哪些模块呢?

1、基础模块,用于控制粒子的基础属性:生命时长、大小、颜色、重力等2、Emission模块,用于控制粒子的发射3、Shape模块,用于控制粒子发射器的形状4、Color over Lifetime模块,用于控制粒子颜色随生命周期的变化5、Size over Lifetime模块,用于控制粒子大小随生命周期的变化6、Limit Velocity over Lifetime模块,用于控制粒子限速7、Renderder模块,用于控制粒子渲染(默认就行,无需调整)

4.1、基础模块

1、Duration 发射周期与火的粒子系统一致吧2、Start Lifetime 粒子的生命时长,咱们也随机吧3、StartSpeed 火星粒子的向上速度要更大一些4、Start Size 火星粒子的起始大小应随机5、Start Color 火星粒子的默认颜色6、Gravity Modifier 因火星粒子也是上升的力,应设置为负数(使用此属性,效果更贴近真实)7、Max Particles 最大数量不宜过多,因为正常燃烧时,火星数量不会太多8、其他属性默认(略)

以上属性可根据自身喜好,微调其数值

4.2、Emission模块

RateOverTime: 随单位时间生成粒子的数量,与最大数量一致吧

以上属性可根据自身喜好,微调其数值


4.3、Shape模块

1、Shape形状默认椎体即可,无需调整2、Radius: 将椎体的半径设置小一些,让粒子出现的位置固定,微微随机即可3、其他属性默认即可

以上属性可根据自身喜好,微调其数值


4.4、Color over Lifetime模块

正常情况下,火星是在火焰中上端才能看见,且随时间变化,慢慢灰掉(可理解成与夜色融合,即透明)1、刚开始颜色透明2、中间正常显示3、后面逐渐透明


4.5、Size over Lifetime模块

火星的粒子尺寸随时间变化,视觉上更真实一些


4.6、Limit Velocity over Lifetime模块

当粒子速度超过速度限制时,粒子速度降低Speed: 限速 2Dampen: 粒子速度降低的分数 0.1

以上属性可根据自身喜好,微调其数值

4.7 火星效果图
4.8、火加上火星的效果图 (截图不怎么明显)

5、制作火光效果(Flash)

此效果实现起来也比较简单,固定位置,随机交替产生几个的不同尺寸的粒子即可

制作Flash会使用到粒子系统的哪些模块呢?

1、基础模块,用于控制粒子的基础属性:生命时长、大小、颜色等2、Emission模块,用于控制粒子的发射3、Shape模块,用于控制粒子发射器的形状4、Renderder模块,用于控制粒子渲染(默认就行,无需调整)

5.1、基础模块

Start Lifetime: 粒子生命周期随机时长(为实现忽明忽暗的闪动效果)Start Size:粒子尺寸大小随机(为实现忽明忽暗的闪动效果)Start Color:颜色与火的颜色一致即可(色调统一)Max Particles:正常的火焰闪动不会太厉害,所以粒子不宜过多,此处设置为5个

以上属性可根据自身喜好,微调其数值

5.2、Emission模块

Rate over Time: 与粒子最大值一致即可,此处也为5个

5.3、Shape模块

闪光效果应基于火焰的位置,不应改变:

Radius: 为了让粒子产生的位置不变,置为0.01即可


5.4、Shape效果图(因录屏工具原因,图片非高清)
5.5、与火、火星一起的效果图(因录屏工具原因,图片非高清)

6、灯光烘焙

新建点光源,设置光源位置、颜色和强度,如下图:
6.1、火焰 + 灯光 效果图 (因录屏工具原因,图片非高清):

7、素材提供

https://pan.baidu.com/s/1eugxPGWb5sVczJKyvLLpYg

声明:发布此文是出于传递更多知识以供交流学习之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与我们联系,我们将及时更正、删除,谢谢。

作者:齐行超

来源:https://www.cnblogs.com/qixingchao/p/11804623.html

More:【微信公众号】 u3dnotes

unity3d改变物体的中心位置_Unity3d粒子特效:制作火焰效果相关推荐

  1. unity 彩带粒子_Unity3d粒子特效:制作火焰效果

    效果 分析 真实的火焰效果,通常包括:火.火光.火星等组成部分,火焰燃烧的同时会对周围环境进行烘焙. 1.针对火焰组成部分,我们可以分别创建粒子系统组件实现 2.火焰燃烧对周围环境的烘焙效果,我们可以 ...

  2. Maya粒子特效制作(二)

    继续上次的粒子特效工作,本周已经完成该特效的制作. 首先创建一个新的摄像机,并固定到合适的位置,首先是背景的创建,为其创建一个图像平面. 为该平面创建一个渐变纹理Ramp,使背景呈现渐变的效果,然后创 ...

  3. 【Cocos 3d】金币粒子特效制作

    首先,这里有金币模型和金币贴图 新建一个材质Material,命名为coin,配置一下,把贴图拉进去 新建一个粒子特效节点 把这个Mesh绑定上去,之后上面的模式选Mesh 配置一下其他参数,让金币有 ...

  4. Unity3D粒子特效

    第一次粒子特效制作,边做边记录吧 首先 要拿到粒子的图片  爱心\雪花等 然后  在Assets下创建一个材质球     材质球Shader 选择particles\Additive   将你要设置的 ...

  5. ThingJS粒子特效一键实现雨雪效果

    1.粒子效果 2.加载场景 3.不同粒子效果实现 在做3D项目时,我们经常需要模拟下雨,下雪的天气,有时也会模拟喷泉.着火等效果.这些效果需要使用名为粒子系统(particle)的技术来实现.使用Th ...

  6. Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效

    Unity添加中文字体 ## 1.拷贝字体文件 拷贝C:\Windows\Fonts文件夹下,华文细黑常规文件到项目中 ## 2.下载中文字库 链接: https://pan.baidu.com/s/ ...

  7. unity 彩带粒子_[Unity3D] 官方案例——粒子系统制作火焰效果

    1. 导入资源 打开素材里面的Shuriken场景,然后通过菜单GameObject->Particle System创建一个粒子系统对象,并将物体移至火把位置,此时效果如下: 2. 设置粒子系 ...

  8. Unity3D学习笔记:粒子特效参数

    Unity3D学习笔记:粒子特效参数含义 转载 https://blog.csdn.net/asd237241291/article/details/8433534 粒子特效 粒子系统检视面板 初始化 ...

  9. Unity3d 控制物体transform移动的几种方法

    在Unity开发中我们难免要使用代码控制角色的移动,现将已知的几种方法总结如下: 一.transform.Translate() function Translate (translation : V ...

  10. CRI-O将如何把Kubernetes推上容器生态系统的中心位置

    开源项目CRI-O(https://github.com/kubernetes-incubator/cri-o),即之前的OCID,旨在不依 赖传统容器引擎的前提下,使开源Kubernetes调度框架 ...

最新文章

  1. 怎样对拍、如何对拍、对拍模板
  2. 2021 GitHub年度报告:7300万开发者,最爱的依旧是Javascript
  3. 更新Silverlight ctp到Silverlight beta 1.0
  4. hibernate的懒加载(延迟加载)问题
  5. [蓝桥杯] 连号区间数
  6. HikariCP 高性能的 JDBC 连接池
  7. python引用传递产生的问题_理解Python中传递值和引用时出现问题
  8. 初一模拟赛(5.4)
  9. 调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别...
  10. reg类型变量综合电路_Verilog中reg型变量的综合效果(待补充)
  11. oracle大于条件,oracle中sql语句中的in的条件数量大于1000有问题
  12. Hibernate 一对一外键单向关联
  13. 95-190-028-源码-window-Window介绍与使用md
  14. 2017java面试_2017 Java面试大全(一)
  15. tensorflow之线性回归
  16. 创建数据账号只有个别表的权限_只有普通权限账号,如何把远程数据库中该用户的数据表导入到本地数据库?...
  17. 把“~/niunantest.aspx”转成http://localhost:4532/test/niunantest.aspx的方法
  18. 戴尔计算机没有硬盘驱动,戴尔电脑进PE系统找不到硬盘解决教程
  19. 将cocos2dx项目从VS移植到Eclipse - CoolJie
  20. 2022 IDEA大会引领科技创新趋势 沈向洋团队重磅发布低空经济白皮书

热门文章

  1. 基于Servlet+jsp的web计算器
  2. system_Class类说明文档
  3. DocsBuilderGUI 工具使用介绍
  4. Oozie 安装及 examples app 的使用
  5. centos6 挂载ntfs格式移动硬盘
  6. ASP.NET 2.0下实现匿名用户向注册用户的迁移(上) zhuan
  7. xxl-job架构源码解析
  8. Spring Cloud Eureka详解
  9. dubbo源码之SPI机制源码
  10. 微信小程序事件绑定无效