Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)

一、属性介绍

1、主面板Particle System

(1)Duration:粒子发射周期

图中,5.00即在发射5秒后进入下一个粒子发射周期。若没有勾选Looping,则5秒后粒子会停止发射。

(2)Looping:粒子按照周期循环发射

让粒子发射时间循环起来,一直发射粒子。

(3)Prewarm:预热系统

开始播放粒子是已经发射了一段时间的,只在Looping循环时才有效。

(4)Start Delay:粒子延时发射

粒子系统创建后隔多久后才开始发射粒子。如果有Prewarm则没法设置延时。0就是不延时;若为5,则5秒后才开始发射。

(5)Start Lifetime:粒子从发生到消失的时间长短
(6)Start Speed:粒子初始发生时候的速度

一般选择两个值之间,点击后面的倒三角,选择Random Between Two Constants。

Constant(常量):固定的值,不会变化。
Curve(曲线):用曲线代表Duration时间内的变化。竖轴是这个值的变化,横轴是Duration时间。但注意的是初始的值,出生时的不同,一旦出生了,是其他值控制。
Random Between Two Constants(随机在两个常量间变化):随机值。
Random Between Two Curves(随机在两个曲线间变化):随机曲线。

(7)3D Start Size:3D粒子初始大小

可以让粒子在X、Y、Z三个轴上有不同的尺寸。当粒子是billboard模式时,Z轴调节无意义。

(8)Start Size:粒子初始大小

总体设置初始的尺寸。X、Y、Z三个轴同步大小,单位是米。

(9)3D Start Rotation:3D粒子初始旋转

粒子可以绕着X、Y、Z三个轴设定不同的角度。

(10)Start Rotation:粒子初始旋转

默认是只设置z轴方向旋转角度,值是角度。

(11)Flip Rotation:反跳旋转

主要针对设定的Start Rotation值进行反方向的变化。假如旋转是10。这个值设置为1,就会变成-10。设为0.5就会变成一个从-10~10的随机。

(12)Start Color:粒子初始颜色

颜色上经常有这几个变换:

Color(颜色):设置一个颜色。
Gradient(渐变):可以设置一个渐变色。从左到右是Duration时间。
Random Between Two Colors(随机在两个颜色变化):随机颜色。
Random Between Two Gradients(随机在两个渐变变化):随机渐变。
Random Color(随机颜色):它跟Random Between Two Colors最大的不同是可以控制随机颜色的数量。

(13)Gravity Modifier:重力修正器

粒子施加一个向下的力。负值是向上的。注意这个值是一个外部的力,它不随粒子系统缩放而改变。

(14)Simulation Space:模拟空间

就是使用的空间坐标。粒子的运动所使用的空间坐标。
Local(自身): 使用自身粒子系统的游戏物体的坐标。
World(世界):使用世界坐标,就是场景坐标。
Custom(制定):使用另一个物体的坐标。当这个物体坐标变化时,粒子也会跟着变化,比如物体的位移会带动粒子位移。

(15)Simulation Speed:模拟速度

整体改变粒子的运动快慢,注意不只是粒子的速度,而是粒子总体属性在空间位置中的变化,整体放慢或加快。

(16)DeltaTime:变量时间

Delta Time是一个函数。确切意思是上一帧的时间情况。因为设备刷新率的不同,所以一帧消耗的时间也是不一样的。这个Scaled是调节使用时间变化而非帧的变化。每帧走1米和每0.1秒走一米是不一样的。默认是Scaled(缩放的)是正确的。

(17)Scaling Mode:缩放模式

缩放粒子系统时的状况。
Hierarchy(阶层):默认值。
Local(自身):效果上是和Hierarchy一样,如果粒子系统缩放,粒子的运动距离和大小同时被缩放。Gravity Modifier的力不会被缩放。
Shape(形状):只会缩放发射器的大小。

(18)Play On Awake:唤醒就播放

勾掉时,运行时出现粒子系统并不会播放,直到在程序中勾上这个勾才会播放,便于程序控制。

(19)Emitter Velocity:发射速率

是关于粒子移动方式。

(20)Max Particles:最大粒子数

为了节省开支设定粒子数量的上限。

(21)Auto Random Seed:自动随机种子

粒子呈现的状态是由seed种子决定的,相同的seed产生的结果相同。而seed数十分庞大,如果用了随机种子,可能永远不会碰到数值一样、粒子状态一样的情况。

(22)Stop Action:停止行动

当粒子系统发射完了所有粒子之后的程序的处理方式,跟消耗有关。

None:无处理,内存被动释放。
Disable:禁用,就是被废弃状态,不会再出现,但是还在内存中。
Destroy:被摧毁掉,内存会直接释放掉。
Callback:添加脚本或者在原有脚本中监听以下函数:

public void OnParticleSystemStopped()

即可监听到粒子系统的完全停止。

(23)Culling Mode:剔除模式

当粒子系统从屏幕中移出的时候,对应的处理方式。

Automatic:如果粒子系统是循环发射,则会暂停发射,非循环情况下不会暂停发射。
Pause and Catch-up:暂停粒子播放,当再次移入屏幕时,会做额外计算,使粒子系统看起来像没有被暂停过一样,是耗性能的设置,根据实际情况使用。
Pause:暂停粒子发射。
Always Simulate:不会暂停粒子发射。

(24)Ring Buffer Mode:环形缓冲模式

控制粒子的消失方式,这个模式适合用来做脚印或者弹孔等持续性的效果。

Disabled:粒子在自己的生命周期后销毁。
Pause Until Replaced:粒子在生命周期后并不会被销毁,保持最后的形态直至系统中的粒子数超过最大限制后立即被新粒子取代。
Loop Until Replaced:这种模式跟上一种很像,在自己的生命周期后不会销毁,选择该设置后会增加一个Loop Range的选项:

可以设置从0 ~ 1的值,这个值表示的是粒子生命周期的比重,比如设置的是0 ~ 0.5,如果粒子的生命周期是2s,那么经过2s后,粒子会重复显示0s ~ 1(2 * 0.5)s这段时间内粒子的效果,直至超过系统最大粒子数后被新粒子取代。

2、发射器Emission模块

粒子发射的速率,以及瞬间发射大量粒子(爆炸效果),可以在该模块中进行设置。

(1)Rate over Time:发射频率按时间

1秒发射的数量。曲线时间轴是Duration时间。

(2)Rate over Distance:发射频率按距离

1米发射的数量。曲线时间轴是Duration时间。

(3)Bursts:迸发

从第几(Time)秒开始。发射多少个(Count)。这次发射循环几次(Cycles)。每次循环间隔多久(Interval)。

Time:粒子爆发的时间,不能超过粒子系统的Duration,就算你填写一个非法的数,也会被强制修改。
Count:如果选择曲线,曲线的横轴是时间轴,代表的是粒子系统的生命周期。有4个配置可以选择.
Cycles:从爆发时间开始的循环次数。
Interval:两次循环的间隔时间,超过粒子系统的Duration无意义。
Probability:每次爆发的可能性。

3、发射器形状Shape模块

发射器形状内部随机位置生成,并能提供初始的力,该力的方向将延表面法线或随机方向发射。

(1)Sphere:球体


Radius:球体半径。

Radius Thickness :发射粒子的体积比例。值为0表示从形状的外表面发射粒子,值为1表示从整个体积发射粒子。

Arc:圆弧,适用于球体、半球、椎体、甜甜圈、圆形边缘。
(1)Mode:模式控制粒子围绕圆弧生成的模式
(Random随机,Loop循环,Ping-Pong乒乓,Burst Spread突发扩张)。
(2)Spread:传播,只在弧的特定角度产生粒子。
(0为禁用,在Arc设定的值下,展现特定的角度来发射粒子,看起来没有那么随机)。

Texture:粒子用来从上边获得颜色纹理。

Position:改变粒子发射的位置。

Rotation:改变粒子发射的旋转。

Scale:改变粒子发射的形状缩放。

Align To Direction:根据粒子的初始行进方向定向粒子。(貌似广告板模式失效,图片朝向都改成了初始速度的方向)

Randomize Direction:将粒子方向朝随机方向混合,设置为0将不起作用,设置为1时粒子方向完全随机。

Spherize Direction:将粒子方向朝球面方向混合,从它们的变换中心向外行进。设置为 0 时,此设置不起作用。设置为 1 时,粒子方向从中心向外(与 Shape 设置为 Sphere 时的行为相同)。

Randomize Position:以随机量移动粒子,直至达到指定值。此属性设置为 0 时,此设置不起作用。任何其他值都会对粒子的生成位置应用一些随机性。

(2)Hemisphere:半球
(3)Cone:椎体
(4)Donut:甜甜圈
(5)Box:盒子
(6)Mesh,Mesh Renderer,Skinned Mesh Renderer:网格和网格渲染


Type:指定从何处发射粒子。(Vertex从顶点发射粒子,Edge从边上发射,Triangle从三角形发射)

Mode:如何为每个新粒子选择网格上的位置。(Random随机位置的粒子,Loop从网格中下一个顶点发射每个新粒子,Ping-Pong类似Loop,但会在每个循环后沿网格顶点交替方向)

Mesh:提供发射器形状的网格。

Single Material:指定是否从特定子网格(由材质索引标识)发射粒子。(启用此属性,会显示一个数字字段,可以用该字段指定材质索引号)

Use Mesh Colors:使用网格顶点颜色调整粒子颜色,或者,如果顶点颜色不存在,则使用材质中的着色器颜色属性color或者tincolor。

Normal Offset:在距离网格表面多远处发射粒子(在表面法线方向上)

(7)……

4、Texture Sheet Animation模块

粒子的图形不必是静止图像。此模块允许您将纹理视为可做为动画帧进行播放。

(1)Mode

分别有Grid模式和Sprites模式。

(2)Tiles

纹理在水平和垂直方向上划分的区块数量。
若纹理为3行4列,则X、Y分别填入3,4。

(3)Animation

动画模式。可设置为Whole Sheet或Single Row
(即精灵图集的每一行代表一个 单独的动画序列)

(4)Time Mode

选择粒子系统如何在动画中对帧进行采样。

(5)Frame over Time

通过一条曲线指定动画帧随着时间的推移如何增加。

(6)Start Frame

允许指定粒子动画应从哪个帧开始。

(7)Cycles

动画序列在粒子生命周期内重复次数。

(8)Affected UV Channels

允许具体指定粒子系统影响的UV流。

5、Lights模块

使用此模块可将实时光照添加到一部分粒子。

(1)Light

分配一个光照,说明粒子的灯光应该是什么样子。

(2)Ratio

一个介于0和1之间的值,表示将接受光照的粒子的比例。

(3)Random Distribution

选择是随机分配还是定期分配光照。设置为true时,每个粒子都有根据ratio的值随机接受光照的机会。较高的值可增加粒子接受光照的概率。为false时,由ratio控制新创建的粒子接受光照的频率。

(4)Use Particle Color

设置为true的时候,光照最终颜色将通过其附加到的粒子的颜色进行调制。为false则不作任何更改。

(5)Size Affects Range

启用此属性在光照中指定的Ratio(范围)将受到粒子大小的影响。

(6)Alpha Affects Intensity

启用此属性后在光照的Intensity(强度)将受到粒子Alpha影响。

(7)Range Multiplier

使用此曲线在粒子的生命周期内将一个自定义乘数应用于光照范围。

(8)Intensity Multiply

使用此属性在粒子的生命周期内将一个自定义乘数应用于光照强度。

(9)Maximum Lights

使用此设置可避免意外创建大量光照,大量光照可能会使编辑器无响应,且影响程序性能。

6、Renderer模块

(1)Render Mode


Billboard:粒子始终面向摄像机。

Stretched Billboard:粒子面向摄像机,但是会应用各种缩放。
(Camera Scale:根摄像机运动拉伸粒子。为0禁用相机运动拉伸)
(Velocity Scale:根据粒子速度比例拉伸粒子。为0禁用)
(Length Scale:沿着粒子速度方向根据粒子当前大小按比例拉伸粒子。为0则会使粒子消失)

Horizontal Billboard:粒子平面与XZ“地板”平面平行。

Vertical Billboard:粒子在世界y轴上直立,但面向摄像机。
Mesh:从3D网格而非从纹理渲染粒子。(粒子会变成立体的)
None:使用Trails模块时,如果只是想渲染轨迹并隐藏默认渲染,则可使用此属性。(不启用Trails模块时,粒子会消失)

(2)Normal Direction

用于粒子图形的光照法线的偏差。值为1表示法线指向摄像机,而值为0表示法线指向屏幕中心。(仅适用于Billboard模式)

(3)Material

渲染粒子的材质

(4)Sort Mode

绘制粒子的顺序。

(5)Sorting Fudge

粒子系统排序的偏差。较低的值会增加粒子系统在其他透明对象(包括其他粒子系统)上绘制的几率。对整个系统有影响,对单个粒子排序没影响。

(6)Min Particle Size

最小粒子大小(仅当Billboard模式)

(7)Max Particle Size

最大粒子大小(仅当Billboard模式)

(8)Render Alignment

使用下拉单选框选择粒子公告牌面向的方向。
(View:粒子面向摄像机平面)
(World:粒子与世界轴对齐)
(Local:粒子与游戏对象的变换组件对齐)
(Facing:粒子面向摄像机游戏对象的直接位置)

(9)Flip

在指定轴上镜像一定比例的粒子。较高的值会翻转更多的粒子。

(10)Allow Roll

控制面向摄像机的粒子是否可以围绕摄像机的z轴旋转,禁用此属性对VR应用特别有用。

(11)Pivot

修改粒子的中心轴点。此值是粒子大小的乘数。

(12)Visualize Pivot

在Scene视图中预览粒子的轴心点。

(13)Masking

设置粒子系统渲染的粒子在与精灵遮罩交互的行为方式。
(No Masking:不与厂家中任何精灵遮罩交互)
(Visible Indide Mask:在由精灵遮罩覆盖的地方是可见的,而在遮罩外部不可见)
(Visble Outside Mask:在精灵遮罩外部是可见的,而在遮罩内部不可见,精灵遮罩会隐藏其覆盖的粒子部分)

(14)Apply Active Color Space

在线性颜色空间中渲染时,系统会在将粒子颜色上传到 GPU 之前从伽马空间转换粒子颜色。

(15)Custom Vertex Streams

配置材质的顶点着色器中可用的粒子属性。

(16)Cast Shadows

启用此属性,粒子在光下会产生阴影。(Two Sided允许从网格的任一侧投射阴影,Shadows Only使阴影可见,网格不可见)

(17)Receive Shadows

决定阴影是否可投射到粒子上。只有不透明材质才能接受阴影。

(18)Shadow Bias

沿着光照方向移动阴影以消除因使用公告牌来模拟体积而导致的阴影瑕疵。

(19)Motion Vectors

运动矢量

(20)Sorting Layer ID

渲染层级

(21)Order in Layer

此渲染器在排序图层中的顺序。

(22)Light Probes

基于探针的光照插值模式。

(23)Reflection Probes

如果启用此属性,并且场景中存在反射探针,则会为此游戏对象拾取反射纹理,并将此纹理设置为内置的着色器 uniform 变量。

7、其他模块暂不介绍

二、火焰粒子系统案例制作

1、火焰素材

本案例以下面火焰素材为例。

2、创建粒子系统

Hierarchy面板中,在需要创建粒子系统的物体下,鼠标右击,选择Effects | Particle System。对其重命名为HuoYan。

3、创建材质球

在Project面板中创建一个新的材质New Material,重命名为HuoYan,一定要将其Shader修改为Additive(Mobile/Particles/Additive),这个模式主要是可以去除透亮贴图中的黑色部分。

4、贴图

(1)将火焰素材图片拖入Textures文件夹中。
(2)将贴图赋给材质,再将材质拖给Hierarchy面板中的粒子系统。

5、属性修改

(1)务必勾选上纹理层动画模块Texture Sheet Animation,并设置其贴图的行列Tiles,本例中改为2,2,如下图所示。

(2)通常将粒子系统Renderer里的最大粒子大小Max Particle Size由初始的0.5修改为1(也就是视窗大小,它的有效值为0-1)。

(3)此时粒子都是朝着一个方向,非常地规律,没有火焰的样子,这时我们需要调整它的初始旋转角度Start Rotation,选择“倒三角”下的Random Between Two Constants(-360,360)。

(4)更改发射器Emission模块中的数值,使火焰更加逼真。

(5)还可以对其形状做修改。

(6)对火焰颜色进行一个调整,用到Color over Lifetime。下图箭头中,上面代表透明度,下面代表颜色。

(7)还可以修改其初始生命周期Start Lifetime,初始速度Start Speed,初始大小Start Size等属性。

6、实现效果图

Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)相关推荐

  1. ps基础入门知识课程教程学习文字设计制作小白

    ps基础入门知识课程教程学习文字设计制作小白

  2. 【二】零基础入门深度学习:用一个案例掌握深度学习方法

    (给机器学习算法与Python学习加星标,提升AI技能) 作者 | 毕然  百度深度学习技术平台部主任架构师 内容来源 | 百度飞桨深度学习集训营 本文转自飞桨PaddlePaddle 导读 从本课程 ...

  3. 怎么把ppt文字大小设置一致_在家学技能:PPT基础入门技巧,学会瞬间提高PPT制作水平...

    [在家学技能]--大家是否有这样的烦恼:每次做PPT要么慢,要么出来的效果不怎么理想.其实,是你的方法没用对.今天小编给大家带来了几个非常好用的PPT技巧,全都学起来,相信大家都能快速做出好看的PPT ...

  4. unity碰撞检测函数,碰撞信息获取,触发检测,使用粒子系统创建火焰,创建动画(火光闪烁),导航系统,通过导航系统控制人物移动,控制摄像机的跟随,控制角色动画播放

    碰撞检测函数 private void OnCollisionEnter(Collision collision){print("OnCollisonEnter");}privat ...

  5. 视频教程-Unity3D实战入门之第三人称射击游戏(TPS)-Unity3D

    Unity3D实战入门之第三人称射击游戏(TPS) 6年程序开发经验,精通C/C++/C#编程. 曾担任过Unity3d游戏开发主程和Unity3d游戏开发讲师,熟悉Unity3d的UI系统.物理引擎 ...

  6. Unity3D实战入门之第三人称射击游戏(TPS)-伍晓波-专题视频课程

    Unity3D实战入门之第三人称射击游戏(TPS)-327人已学习 课程介绍         这是一套第三人称射击游戏开发的入门基础课程. 本课程以一款小型的第三人称射击游戏为案例,手把手教你如何搭建 ...

  7. 2014-Unity3d基础入门到高级全套全系列视频教程

    加入QQ群302040480或加QQ2521238762,免费索取教程 2014-Unity3d基础入门到高级全套全系列视频教程下载: 1.Unity游戏大鬼战斗制作视频教程 2.游戏蛮牛 第二季 U ...

  8. 零基础入门3D游戏建模师知识必备

    入门3D游戏建模师 随着国内游戏市场的蓬勃发展,行业对于游戏建模的需求在不断增加,相信很多想要进入游戏行业的小伙伴,想做3D游戏建模师,又不知道该如何去做,今天小编就带大家聊一聊关于零基础入门建模须要 ...

  9. Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

最新文章

  1. android ios 上传图片到服务器,.net 接收ios, android的上传图片
  2. 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)...
  3. Intel汇编语言程序设计学习-第四章 数据传送、寻址和算术运算-上
  4. 华为MAC Flapping , MAC的漂移
  5. 如何估算Oracle数据库所需的UNDO表空间的大小
  6. 让我们揭穿有关学习编码的主要神话
  7. python list合并_python基础===两个list合并成一个dict的方法
  8. Linux更改文件及目录权限问题
  9. 【ABAP系列】SAP ABAP 总结常用术语简称解析
  10. 现有Android项目中集成Flutter/Flutter混合开发实战(一)
  11. silverlight自定义安装客户端插件
  12. 开源及第三方软件管理体系
  13. 前加加 后加加 ++ 详解
  14. C语言 case语句 连续值,对一个switch case语句使用两个值
  15. 视频黑屏画面检测 blackframe
  16. 睡眠 应该用 a加权 c加权_困成狗?谈谈睡眠研究的遗传发现之旅
  17. linux搭建tht框架,教程 中标麒麟linux硬盘安装图解
  18. 好的Python培训机构具备的条件
  19. 使用七牛的sdk上传报错:incorrect region
  20. 计算机音乐制作专业美国研究生,美国音乐制作专业研究生六大首选音乐学院

热门文章

  1. 用Tableau实现动画数据可视化
  2. android学习之屏幕解锁
  3. Mac必备小工具 eul 1.4.1中文版 (菜单栏系统查看工具)
  4. 论文作者和论文摘要阐述
  5. 【C语言笔记】【宏定义系列】 向上取整到指定数值的倍数
  6. 2021秋招-机器阅读理解整理
  7. 暖心VR系统上线,VirtuCare让痴呆老人重温旧梦
  8. 基于Keras实战项目-猫狗熊猫分类大战
  9. GPR(高斯过程回归)
  10. 数据安全能力成熟度模型DSMM----6、数据交换安全