【Unity3D】粒子系统ParticleSystem
1 简介
拖尾(TrailRenderer)、线段渲染器(LineRenderer)、粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也最炫酷,但操作也最复杂。粒子系统中,不断地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持一致(除预热阶段),使得粒子系统保持一个稳定状态。使用粒子系统,可以实现烟花、水泡、枪口火花、核弹爆炸等特效。
在 Hierarchy 窗口右键,依次选择【Effects→Particle System】,可以创建一个粒子系统。
粒子系统的使用非常灵活,主要有以下用法:
- 控制发射器的形状(圆柱形、圆锥形、球形、圆形等)、发射周期、粒子数、粒子预热、发射延时等;
- 控制粒子的形状、大小、颜色、材质、速度、旋转、生命周期等,并且在粒子的生命周期内可以修改这些属性;
- 给粒子添加拖尾特效;
- 控制多个粒子系统并行或串行发射粒子。
粒子系统属性面板如下:
- Particle System:初始化模块
- Emission:发射模块
- Shape:发射器形状模块
- Velocity over Lifetime:生命周期内速度变化模块
- Limit Velocity over Lifetime:生命周期内速度约束模块
- Inherit Velocity:继承父对象的速度,粒子速度会受到其父对象移动的影响
- Force over Lifetime:生命周期内受力变化模块
- Color over Lifetime:生命周期内颜色变化模块
- Color by Speed:颜色受速度的影响模块
- Size over Lifetime:生命周期内粒子大小变化模块
- Size by Speed:粒子大小受速度影响模块
- Rotation over Lifetime:生命周期内方向变化模块
- Rotation by Speed:方向受速度影响模块
- External Forces:粒子受外力影响模块
- Noise:粒子受到随机噪声影响模块
- Collision:碰撞模块
- Triggers:触发器模块,如粒子雨,使粒子不会达到屋内
- Sub Emitters:子发射器模块,多个粒子系统并行或串行发射粒子
- Texture Sheet Animation:纹理层动画模块,可以控制将一张图片分割成多个部分,每次将其中的一个部分取出作为粒子贴图
- Lights:光照模块
- Trails:拖尾模块,可以给粒子添加拖尾效果
- Custom Data:自定义模块,为粒子自定义数据
- Renderer:渲染模块,可以设置渲染材质球、拖尾材质球等
2 Particle System(初始化模块)
- Duration:粒子系统发射粒子的持续时间,当开启 Looping 后,Duration 失效;
- Looping:是否循环发射粒子;
- Prewarm:是否开启粒子预热,开启后,粒子个数从 0 逐渐增加到最大值;
- Start Delay:发射粒子之前的延迟,当开启 Prewarm(预热)后不能使用此项;
- Start Lifetime:粒子初始生命(存活时长),以秒为单位;
- Start Speed:粒子初始速度
- 3D Start SIze:粒子初始 3D 尺寸,开启后需要设置 X、Y、Z大小;
- Start Size:粒子初始大小,3D Start SIze 开启后此选项消失;
- 3D Start Rotation:粒子初始 3D 旋转,开启后,需要设置粒子在 X、Y、Z 轴上的旋转;
- Start Rotation:粒子初始旋转角度,3D Start Rotation 开启后此选项消失;
- Randomize Rotation:随机化旋转,取值 0~1,表示粒子反向(顺时针)旋转的概率;
- Start Color:粒子初始颜色;
- Gravity Modifier:粒子受到重力影响;
- Simulation Space:粒子运动使用的坐标系(本地坐标系、世界坐标系);
- Simulation Speed:改变粒子系统中所有粒子的速度,取值表示倍数;
- Delta Time:调整使用固定时间还是帧刷新粒子状态;
- Scaling Mode:缩放粒子系统的状态;
- Play On Awake:粒子系统启动后是否开启自动播放;
- Emitter Velocity:粒子发射后的移动方式,采用 Rigidbody(刚体)还是 Transform(变换)
- Max Particles:粒子系统中最大粒子个数;
- Auto Random Seed:自动随机种子,粒子的部分状态随机生成,相同的随机数种子,每次产生的随机数一致;
- Stop Action:当粒子系统发射完所有粒子后的操作,可以添加回调函数或在脚本中重写以下方法:
public void OnParticleSystemStopped()
补充:属性右边的小三角形都可以展开,用户可以设置某属性取值方式,如下:
- Constant:该属性取值是一个固定常量
- Curve:该属性取值是一个变量,变量由曲线控制,用户可以自定义曲线;
- Random Between Two Constant:该属性取值是 2 个常量中的随机数;
- Random Between Two Curve:该属性取值是 2 个变量中的随机数,变量由 2 条曲线控制,用户可以自定义曲线。
3 Emission(发射模块)
- Rate over Time:发射频率按时间,每秒发射次数(未开启 Bursts 时,每次发射一个粒子);
- Rate over Distance:发射频率按距离,移动粒子系统时,每米发射次数(未开启 Bursts 时,每次发射一个粒子);
- Bursts:每次发射开启多少个循环(Cycles),每个循环发射多少个粒子(Count),每个循环的时间间隔是多少(Interval)
设置 Bursts(爆炸)参数如下:
显示效果如下:
4 Shape(发射器形状模块)
- Shape:发射器形状,主要有:Sphere、Hemisphere、Cone、Donut、Box、Mesh、Mesh Renderer、Skinned Mesh Renderer、Circle、Edge;
5 Renderer(渲染器模块)
- Render Mode:渲染模式,主要有:Billboard(广告牌,粒子永远面朝相机)、Stretched Billboard(可拉伸广告牌)、Horizontal Billboard(水平广告牌,粒子面朝 Y 轴正方向)、Vertical Billboard(垂直广告牌,粒子面朝 X 轴正方向)、Mesh(网格);
- Material:粒子材质;
- Trail Material:拖尾特效材质,通常取 Default-Line。
6 Collision(碰撞模块)
- Planes:碰撞平面;
- Dampen:阻尼系数,取值 0~1,碰撞后速度减小;
- Bounce:反弹系数,取值 0~1,碰撞后的反弹力度,取值为 0 时,粒子会贴着平面飞行;
- Lifetime Loss:生命衰减系数,取值 0~1,每次碰撞生命都会衰减,取 0 时碰撞后粒子正常死亡,取 1 时碰撞后粒子立即死亡;
- Visualization:可视化平面,网格(Grid)还是实体(Solid);
- Scale Plane:缩放平面。
点击 Planes 右边的加号,可以添加碰撞平面(此平面在运行时不可见),此时粒子系统游戏对象上自动添加了个子对象,如下:
选中 Plane Transform 1 游戏对象,在 Inspector 窗口调整旋转角度,粒子系统显示效果如下:
7 Sub Emitters(子发射器模块)
- Birth:子粒子系统与主粒子系统同时发射粒子(并行发射);
- Collision:主粒子系统发生粒子碰撞时,触发子粒子系统发射粒子;
- Death:主粒子系统粒子消亡时,触发子粒子系统发射粒子(串行发射)。
设置主粒子系统每秒发射 1 个粒子(Rate over Time = 1,Emission 模块),再添加子粒子系统,如下:
此时主粒子系统下面会自动添加一个子粒子系统,如下:
选中 SubEmitter0,设置初始生命(Start Lifetime)为 1 秒,初始速度(StartSpeed)为 8 米 / 秒,查看 Emission 模块,发现自动添加了 Bursts,如下:
粒子系统显示效果如下:
8 Trails(拖尾模块)
粒子系统中的拖尾与 TrailRenderer 组件类似。
- Mode:拖尾模式,取值有:Particles(每个粒子拖尾独立绘制)、Ribbon(丝带,相邻粒子拖尾相连)
- Lifetime:拖尾生命,拖尾长度由 0 增长到最长时的时长;
- Color over Lifetime:拖尾生命周期内颜色变化;
- Width over Trail:拖尾从头到尾宽度值;
- Color over Trail:拖尾从头到尾颜色值。
设置粒子系统每秒发射 1 个粒子(Rate over Time = 1,Emission 模块),初始生命(Start Lifetime)为 5 秒,初始速度(StartSpeed)为 25 米 / 秒,重力(Gravity Modifier)为 1,拖尾材质(Trail Material,Renderer 模块)为 Default-Line,拖尾(Trails)模块设置见属性面板,粒子系统显示效果如下:
声明:本文转自【Unity3D】粒子系统ParticleSystem
【Unity3D】粒子系统ParticleSystem的更多相关文章
- [Unity3D]粒子系统学习笔记
粒子阴影的处理 通过Material填充粒子系统的render后,默认是显示阴影的: 可以通过设置来调整: 调整后的效果, 每个粒子就没有阴影了 增加粒子效果 设置为合成的材质,效果显示加倍: 添加子 ...
- 关于Unity3d粒子系统的小发现(天堂3技能释放)
导入系统给的粒子包,发现了一个问题:系统的粒子都有移动轨迹. 而自己新建的空粒子系统却没有这个功能.顺便也复习一下粒子系统. Particle System (粒子系统): Duration(持续时间 ...
- Unity3D 粒子系统
我们先来看看Particle System在Inspector视窗中的属性: 1.Transform:可以控制粒子在世界或者本地坐标的改变.但是有点注意的是,如果你改变Scale属性值是不会影响粒子的 ...
- Unity3D:粒子系统Particle System
1. GameObject → Create Other → Particle System. 2. 选中 Particle System,可看到下列屬性: 3.Particle System: ...
- Unity3D粒子系统 合集
http://www.cnblogs.com/qinyuanpei/p/3659513.htmlhttp://www.cnblogs.com/qinghuaideren/p/3597666.html
- Unity3D 粒子系统 属性
- Unity3d粒子系统详解
- 【Unity3D】基于粒子系统实现烟花特效
1 需求实现 粒子系统ParticleSystem 中介绍了粒子初始化.粒子发射.发射器形状.渲染器.碰撞.子发射器.拖尾等粒子系统的基本用法,本节将基于粒子系统实现烟花特效. 实现需求如下( ...
- Qt终结者之粒子系统
前言 粒子系统用于模拟一些特定的模糊效果,如爆炸.烟火.雪花.水流等.使用传统的渲染技术实现粒子效果比较困难,但是使用QML粒子系统能十分方便的实现各种粒子效果,使你的界面更加炫酷,动感. QML中的 ...
- 基于OpenGL编写一个简易的2D渲染框架-06 编写一个粒子系统
在这篇文章中,我将详细说明如何编写一个简易的粒子系统. 粒子系统可以模拟许多效果,下图便是这次的粒子系统的显示效果.为了方便演示,就弄成了一个动图. 图中,同时显示了 7 种不同粒子效果,看上去效果挺 ...
随机推荐
- SD-Host控制器设计架构
SD Host功能列表 SD Host挂接在SoC中,与外部的SD card进行交互 有控制寄存器和状态寄存器,SoC往往有CPU,通过CPU进行配置寄存器,有些SoC没有CPU,需要使用I2C或者S ...
- [kubernetes]安装dashboard
前言 kubernetes官方文档中的web UI网页管理工具是kubernetes-dashboard,可提供部署应用.资源对象管理.容器日志查询.系统监控等常用的集群管理功能.为了在页面上显示系统 ...
- K8s集群CoreDNS监控告警最佳实践
本文分享自华为云社区<K8s集群CoreDNS监控告警最佳实践>,作者:可以交个朋友. 一 背景 coreDNS作为K8s集群中的关键组成部分.主要负责k8s集群中的服务发现,域名解析等功 ...
- JVM的GC学习
JVM的GC学习 2023-12-28T17:20:25.182+0800: 7.363: [Full GC (Metadata GC Threshold) [PSYoungGen: 29067K-& ...
- [转帖]十步解析awr报告
http://www.zhaibibei.cn/awr/1.1/ 从这期开始讲解awr报告的部分,首先讲解awr整体的部分 后续会针对不同的点进行讲解 1. 数据库细节 这部分可以看到 数据库的版本 ...
- [转帖] 容器内的Linux诊断工具0x.tools
https://www.cnblogs.com/codelogs/p/16242999.html 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# Linux上有 ...
- Rsync的简单使用
Rsync的简单使用 需求 一个运行很久的系统里面可能包含了非常多的垃圾文件. 但是又不可能随便删除, 很多垃圾可能有某些奇葩的用法. 有时候新建一个应用复制文件的话比较浪费磁盘和带宽. 所以这里简单 ...
- 浪潮的CS5260F CS5260H CS5260Z
助力国产操作系统新生态!麒麟信安与东方通.浪潮.新华三.长城超云等多家生态伙伴完成产品兼容性认证 作者:湖南麒麟信安科技股份有限公司时间:2022-03-11 16:28:11 我要发布 关键词: 国 ...
- 【如何提高IT运维效率】深度解读京东云基于NLP的运维日志异常检测AIOps落地实践
作者:京东科技 张宪波.张静.李东江 基于NLP技术对运维日志聚类,从日志角度快速发现线上业务问题 日志在IT行业中被广泛使用,日志的异常检测对于识别系统的运行状态至关重要.解决这一问题的传统方法需 ...
- 【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:加速乐加密 ...