前言

今天写粒子系统的第六篇文章,讲到这,一些主要模块其实已经讲完了,剩下的就是一些无关紧要或者更加高级的模块了,比如涉及到物理碰撞模块的,涉及到光照系统模块的等等。今天先把剩余无关紧要的模块给讲了,涉及到9个模块,虽然看起来很唬人,但是这些模块很多只有一两个属性。这一堆模块主要用于控制粒子在发射出去之后的速度,方向,大小,颜色等等的变化。下面就开始吧 (ง •_•)ง

目录

  • 前言
    • 本系列提要
  • 一、Velocity over Lifetime
  • 二、Limit Velocity over Lifetime
  • 三、Force over Lifetime
  • 四、Color over Lifetime
  • 五、Color by Speed
  • 六、Size over Lifetime
  • 七、Size by Speed
  • 八、Rotation over Lifetime
  • 九、Rotation by Speed
  • 十、总结和参考资料
    • 1.总结
    • 2.参考资料

本系列提要

Unity粒子系统专题博客共分成十二篇来讲解: 【本篇为第五篇】

  • 第一篇(点击直达):粒子系统概述
  • 第二篇(点击直达):主模块
  • 第三篇(点击直达):Emission、Shape模块
  • 第四篇(点击直达):Renderer、Custom Data模块
  • 第五篇(点击直达):Noise模块
  • 第六篇(点击直达):生命周期相关模块
  • 第七篇(点击直达):Collision、Triggers模块
  • 第八篇(点击直达):Inherit Velocity、Sub Emitters模块
  • 第九篇(点击直达):Texture Sheet Animation模块
  • 第十篇(点击直达):Light、Trails模块
  • 第十一篇(点击直达):粒子系统力场(Force Field)组件和External Forces模块
  • 第十二篇(点击直达):案例与应用

前排提醒:本文仅代表个人观点,以供交流学习,若有不同意见请评论留言,笔者一定好好学习,天天向上。

Unity版本[2019.4.10f1] 梦小天幼 & 禁止转载

视频讲解:
【详解Unity】粒子系统(六) | Particle System | 生命周期相关模块讲解 | 哔哩哔哩


一、Velocity over Lifetime

控制粒子在其生命周期内的速度

Linear X,Y,Z 粒子在X、Y和Z轴的线性速度

Space 指定线性速度参照的坐标空间 | Local、World(仅对Linear生效)

Orbital X,Y,Z 粒子绕某个轴旋转的轨道速度

Offset X,Y,Z 粒子所绕旋转轴的偏移量

Radial 粒子远离/朝向中心位置的径向速度

Speed Modifier 对上述参数乘以一个量值

模块说明: 对于上述参数的合理应用可以做出很炫的效果,比如漩涡,轮回圈,螺纹,螺旋攻击波等,主要是修改Linear用以指定方向,修改Orbital用于使粒子绕着某轴向旋转。记得在主模块把初始速度设为0,这样更加方便参数计算修改。

下图是一个螺旋形状的粒子。


二、Limit Velocity over Lifetime

控制粒子的速度在其生命周期内如何降低

Separate Axes 按照XYZ轴来分别设置限速值

Speed 粒子在其生命周期内的最大速度限制,若超过该值,则通过Dampen对速度降低

Space 参照局部空间还是世界空间,启用Separate Axes时,此选项生效

Dampen 当粒子速度超过速度限制时,会通过Dampen以一定比例衰减速度直到达到Speed设定的值

Drag 对粒子速度施加线性阻力(模拟空气阻力),作用于全局的,不受上面参数影响

Multiply by Size 启用此属性后,较大的粒子会更大程度上受到阻力系数的影响

Multiply by Velocity 启用此属性后,较快的粒子会更大程度上受到阻力系数的影响

模块说明: 该模块本质上和Velocity over Lifetime是相对的,一个是控制速度,一个是限制速度。很少有在一起使用的场景。该模块的主要使用场景是爆炸(粒子初始速度很高,然后逐渐减弱到一个均值下落速度)、子弹、炮弹等等

下图是一个爆炸演示粒子,用到了Emission的波次,Shape的发射形状和方向,主模块的初始化设置,以及当前模块在生命周期内的速度限制(可能不是很明显…)


三、Force over Lifetime

力对粒子在生命周期内的影响

X,Y,Z 按照XYZ轴施加力到每个粒子上

Space 参照坐标系

Randomize 使用 Two Constants 或 Two Curves 模式时,该属性生效;
此属性会导致在每个帧上在定义的范围内选择新的作用力方向,因此会产生更动荡、更不稳定的运动。


四、Color over Lifetime

生命周期内颜色对粒子的影响

Color 用于设置粒子在其生命周期内的颜色

点击颜色部分会弹出一个颜色编辑窗口,在这里可以编辑颜色,长条代表粒子颜色在其生命周期内的变化


五、Color by Speed

让粒子的颜色随着速度的变化而变化

Color 颜色渐变

Speed Range 将颜色渐变映射到速度范围的上限和下限

Speed Range的数值0代表白色,1代表绿色,根据上图这个数据,那么粒子的颜色就是刚发射是白色,然后变成绿色(为了方便理解,建议把主模块的StartSpeed设为0)


六、Size over Lifetime

控制粒子在其生命周期内的大小

Separate Axes 是否在每个轴向独立控制

Size 通过一条曲线来定义粒子在其生命周期内的大小

这个模块更好理解,就一个参数,粒子的大小会按照曲线在其生命周期内的变化而变化,比如下图,粒子从出生到消亡,Size是越来越小。

曲线设置如下(X轴将粒子生命周期归一化为1,Y轴将粒子的Size归一化为1)


七、Size by Speed

让粒子的速度随着速度的变化而变化

Separate Axes 是否在每个轴向独立控制

Size 通过一条曲线来定义粒子大小如何随着速度变化而变化

Speed Range 速度范围的上限和下限

不多解释,整篇文章没啥难理解的参数。


八、Rotation over Lifetime

控制粒子在其生命周期内的旋转

Separate Axes 是否在每个轴向独立控制

Angular Velocity 旋转角速度

四个选项来控制,一般使用曲线来控制,注意,曲线的值来自预先设置的常量,比如上图中的45


九、Rotation by Speed

让粒子的角度随着速度的变化而变化

Separate Axes 是否在每个轴向独立控制

Angular Velocity 旋转角速度,根据速度区间设置

Speed Range 速度范围的上限和下限,只有在Angular Velocity选择了曲线或双曲线时该参数才能使用,因为角速度要是动态的该模块才有意义。

不多解释。


十、总结和参考资料

1.总结

无总结

2.参考资料

[1].Unity官方.官方手册-粒子系统

详解Unity中的粒子系统Particle System (六)相关推荐

  1. 详解Unity中的粒子系统Particle System (二)

    前言 上一篇我们简要讲述了粒子系统是什么,如何添加,以及基本模块的介绍,以及对于曲线和颜色编辑器的讲解.从本篇开始,我们将按照模块结构讲解下去,本篇主要讲粒子系统的主模块,该模块主要是控制粒子的初始状 ...

  2. 详解Unity中的粒子系统Particle System (三)

    前言 上一篇我们详细讲解了有关主模块的全部内容,已经对粒子系统的基本运作有了足够的了解,本篇就来讲一下被粒子系统默认启用的Emission.Shape.Renderer模块又在粒子系统中扮演着怎么样的 ...

  3. 详解Unity中的粒子系统Particle System (一)

    前言 游戏中很多炫酷效果的背后都离不开粒子系统,比如击中.爆炸.火焰.崩塌.喷射.烟雾等等.Unity也我们提供了强大的粒子系统,模块化的设计,上百个参数供我们调节使用,足以创造出非常震撼的效果了,本 ...

  4. 详解Unity中的粒子系统Particle System (七)

    前言 本篇来讲一讲Collision和Triggers模块,这两个模块主要用于粒子系统与物理世界的交互,一个是碰撞器,另一个是触发器.有了这两个模块我们又可以做出更炫酷的粒子效果啦! 目录 前言 本系 ...

  5. 详解Unity中的粒子系统Particle System (九)

    前言 今天讲Texture Sheet Animation模块,先前我们已经讲了很多很多模块,通过上述模块可以实现很酷的效果,但是缺了一点真实感.比如说爆炸特效,仅指望单独的粒子来模拟真实的爆炸效果是 ...

  6. 详解Unity中的粒子系统Particle System (四)

    前言 上一篇我们主要讲解了Shape形状模块,以及Emission发射模块,这是粒子系统中最为重要的两个模块,学会了它们我们足以做出惊艳的效果,比如霰弹枪的发射,蘑菇蛋的冲击波等等.本篇讲的内容依旧重 ...

  7. 详解Unity中的粒子系统Particle System (十一)

    前言 今天讲最后一个模块--External Forces,该模块需要和Force Field组件配合使用,作用是模拟物理的力对粒子的影响.至此,Unity内置粒子系统的最后一块物理砖补齐,理论上来讲 ...

  8. 详解Unity中的粒子系统Particle System (八)

    前言 书接上回,咱们继续讲粒子系统,本篇该说Inherit Velocity和Sub Emitters这两个模块,依旧是重量级选手,特别是Sub Emitters这个模块,有了它,我们的粒子效果可以做 ...

  9. 详解Unity中的粒子系统Particle System (五)

    前言 通过前几篇的学习,我们已经知道了粒子系统的几大基础模块的设置,有了这些模块的知识,我们足以做出惊艳的效果了.今天我们再学一个新的模块,叫做Noise模块,中文译为噪波.噪声.湍流模块等.这个模块 ...

最新文章

  1. SQL Server 2008企业试用版到期,升级为企业版
  2. Oracle Database 10g:删除表
  3. python作用域链_具有动态特性的Python嵌套作用域
  4. 【操作系统】进程调度(4):I/O、不可预测的运行时间
  5. ajax跨域为什么会失败,ajax跨域请求失败是怎么回事?
  6. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线...
  7. 怎样在接口地址中添加请求头参数_jmeter5.3做soap接口性能测试配置
  8. 蓝桥杯2021年第十二届C++省赛第七题-砝码称重
  9. 傅里叶变换及拉普拉斯变换直观理解总结
  10. ubuntu 下载以及安装CPAN
  11. 电子词典 C语言实现
  12. 不干胶标签的印刷工艺
  13. 屏下指纹版iPhone终于稳了!效果很好很强大
  14. 2015年第六届蓝桥杯C/C++程序设计本科B组决赛第二题
  15. Kettle的安装和使用
  16. 《Adobe Photoshop大师班:高级合成的秘密》目录—导读
  17. 化学人学python有前途吗-浅析材料化学在生活中的应用
  18. 计算机系晚自习,计算机专业关于晚自习实训情况的总结
  19. RSDet:学习用于旋转目标检测损失
  20. 偏爱BI的他们,率先实现“业务+品牌”共进双赢

热门文章

  1. PMP、IPMP、ITPMP、CPMP详解(项目管理认证详解)
  2. Nginx 502错误原因和解决方法
  3. 嵌入式软件设计(串口调试)
  4. 2019年福州大学计算机专业录取分,2019年福州大学艺术类专业录取分数线
  5. 光明旅者的冲刺挑战成就
  6. Linux 检查PCIe盘协商速率是否正确
  7. 64位的jre和32位的jre
  8. 西电毕业论文Latex排版教程
  9. 解决字符终端下fbterm打不开yong输入法的问题
  10. 自定义 Android toast 字体大小