本文主要是介绍Unity 粒子系统(Particle System) (三)Sub Emitters,Texture Sheet Animation,Lights等属性详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上篇点击这里(一)!!
上篇点击这里(二)!!
Sub Emitters module(子发射器)
属性
属性 | 功能 |
---|---|
Sub Emitters | 配置子发射器的列表,并选择它们的触发条件以及它们从其父粒子继承的属性。 |
细节
许多类型的粒子在其生命周期的不同阶段产生效果,也可以使用粒子系统来实现。例如,一颗子弹在离开枪管时可能伴随着一团粉尘烟雾,而一个火球则可能因撞击而爆炸。您可以使用子发射器来创建这些效果。
子发射器是在场景或Prefabs(预制件)中创建的普通的粒子系统对象。这意味着子发射器可以拥有自己的子发射器(这种类型的布置对于像烟花这样的复杂效果可能是有用的)。然而,使用子发射器产生大量的粒子是非常容易的,这可能是资源密集型的。
有三个条件可以用来触发子发射器:
- Birth(诞生):创建粒子时
- Collision(碰撞):当粒子碰撞一个物体
- Death(死亡):当粒子被破坏
请注意,Collision 和Death 事件只能在Emission(发射)模块中使用爆发排放。
另外,可以使用Inherit选项将属性从父粒子传递到每个新创建的粒子。可以传输任何尺寸,旋转,颜色和使用寿命的组合。要控制速度如何继承,请在子发射器系统上配置Inherit Velocity模块。
Texture Sheet Animation module(纹理图表动画模块)
一个粒子的图形不需要是静止图像。此模块可让您将“纹理”视为可作为动画帧回放的独立子图像的网格。
Grid mode properties(网格模式的属性)
Property | Function |
---|---|
Mode popup | 选择Grid (网格)模式。 |
Tiles | 纹理分为X(水平)和Y(垂直)两个方向。 |
Animation(动画) | 动画模式可以设置为“Whole Sheet(整体)”或“ Single Row(单行)”(单行:表单的每一行代表一个单独的动画序列)。 |
Random Row(随机行) | 从表格中随机选择一行以产生动画。此选项仅在选择Single Row(单行)作为Animation模式时可用。. |
Row(行) | 选择工作表中的特定行以生成动画此选项仅在选择“ Single Row(单行)”模式并禁用“ Random Row(随机行)”时可用。 |
Frame over Time(随着时间的推移) | 指定动画框架随着时间的推移而增加的曲线。 |
Start Frame(开始帧) | 允许您指定粒子动画应该在哪个帧上开始(对每个粒子随机调整动画有用) |
Cycles | 动画序列在粒子寿命期间重复的次数。 |
Flip U(翻转U) | 在一定比例的粒子上水平镜像纹理。较高的值翻转更多的粒子。 |
Flip V(翻转V) | 在一定比例的粒子上垂直镜像纹理。较高的值翻转更多的粒子。 |
Enabled UV Channels(启用UV通道) |
Sprite mode properties(精灵模式属性)
Property | Function |
---|---|
Mode popup | Select Sprites mode. |
Frame over Time(随着时间推移) |
细节
粒子动画通常比角色动画更简单和不太详细。在粒子单独可见的系统中,可以使用动画来传达动作或动作。例如,火焰可能会闪烁,虫群中的昆虫可能会像扑翼一样振动或颤抖。在粒子形成像云这样的单一连续实体的情况下,动画粒子可以帮助增加能量和运动的印象。
您可以使用Single Row(单排)模式为粒子创建单独的动画序列,并在脚本之间切换动画。这对于创建变体或在碰撞后切换到不同的动画可能很有用。在Random Row(随机行)选项非常有效,可以打破粒子系统中显着的规律(例如,一组重复完全相同的闪烁动画的火焰对象)。该选项也可以用于每行一个帧,以生成随机图形的粒子。这可以用来打破像云这样的对象的规则性,或者从单个系统产生不同类型的碎片或其他对象。例如,bl might可能会发射一堆钉子,螺栓,球和其他抛射物,或者撞车的效果可能会导致弹簧,汽车油漆,螺钉和其他金属碎屑的排放。
UV翻转是为您的效果添加更多视觉效果的好方法,无需编写额外的纹理。
选择Sprites(精灵)“模式”下拉列表中的选项允许您定义要为每个粒子显示的精灵列表,而不是在纹理上使用常规网格。使用这种模式,您可以利用Sprite的许多功能,如Sprite Packer,自定义枢轴和每个Sprite框架的不同大小。Sprite Packer可以帮助您在不同的粒子系统之间共享材质,通过纹理的贴图,反过来可以通过动态分批提高性能。使用此模式需要注意一些限制。最重要的是,所有连接到粒子系统的精灵必须共享相同的纹理。这可以通过使用多模式Sprite或使用Sprite Packer来实现。如果为每个Sprite使用自定义枢轴点,请注意,您不能在它们的帧之间进行混合,因为每个框架之间的几何图形会有所不同。只支持简单的精灵,而不是9片。另外请注意,Mesh粒子不支持自定义枢轴或变化的Sprite大小。
Lights module(灯光模式)
使用此模块将实时灯光添加到一定比例的粒子中。
属性
Property | Function |
---|---|
Light(灯光) | 指定一个Light Prefab来描述你的粒子灯应该如何显示。 |
Ratio(比例) | 介于0和1之间的值,描述将接收光的粒子的比例。 |
Random Distribution(随机分配) | 选择灯光是否随机或定期分配。勾选此设置每个粒子有一个随机的机会接受一个基于比例的光。较高的值会增加粒子发光的概率。取消勾选Ratio控制新创建的粒子接收光的频率(例如,每个第N个粒子将接收光)。 |
Use Particle Color(使用粒子颜色) | 勾选此设置,光线的最终颜色将被其附着的粒子的颜色调制。取消勾选,则使用Light颜色而不进行任何修改。 |
Size Affects Range(大小影响范围) | 启用时,Light中指定的Range(范围)将乘以粒子的大小。 |
Alpha Affects Intensity(Alpha影响强度) | 启用时,光的Intensity(强度)乘以粒子阿尔法值。 |
Range Multiplier(范围乘数) | 使用此曲线将自定义乘数应用于粒子生命周期中的光强度。 |
Intensity Multiplier(强度乘数) | 使用此曲线将自定义乘数应用于粒子生命周期中的光强度。 |
Maximum Lights(最大灯光) | 使用此设置可避免意外创建大量灯光,这可能会导致编辑器无响应或使您的应用程序运行速度非常缓慢。 |
细节
Lights模块是一种快速添加实时灯光效果的方法。它可以用来使系统投射到周围环境,例如火灾,烟火或闪电。它也允许你让灯继承它们附着的粒子的各种属性。这可以使粒子效应本身发光的可信度更高。例如,这可以通过使光线与其颗粒淡出并使它们共享相同的颜色来实现。
这个模块使得很容易快速地创建大量的实时灯,而且实时灯具有高性能成本,尤其是在正向渲染模式下。如果灯光也投下阴影,性能成本更高。为了防止对排放速率的意外调整,从而导致创建数千个实时灯,应使用Maximum Lights属性。创建比目标硬件能够管理更多的灯光可能会导致速度变慢和无响应。
Trails module(足迹模块)
使用此模块将轨迹添加到您的粒子的百分比。该模块与Trail渲染器组件共享许多属性,但可以轻松将Trails附加到粒子,并从粒子继承各种属性。路径可以用于各种效果,如子弹,烟雾和魔法视觉效果。
Particles(粒子)模式下的Trails(足迹)模块
Ribbon(功能区)模式中的Trails模块
属性
Property: | Function: |
---|---|
Mode | 选择如何为粒子系统生成路径。 - Particle (粒子)模式创建一个效果,每个粒子在其路径上留下一条固定的路径。 - Ribbon (功能区)模式创建一个连接每个粒子的轨迹,根据其年龄。 |
Ratio(比例) | 介于0和1之间的值,描述具有分配给它们的Trail的粒子的比例。Unity随机分配路径,所以这个值代表一个概率。 |
Lifetime(生命周期) | 取值介于0和1之间的值。轨迹中每个顶点的生命周期,表示为它所属粒子生命周期的乘数。当 每个新的顶点 被添加到轨迹中时,它在存在之后消失的时间比其总寿命长。 |
Minimum Vertex Distance(最小顶点距离) | 定义粒子在其Trail接收新顶点之前必须行进的距离。 |
World Space(世界空间) | 当启用时,即使使用Local Simulation Space(本地模拟空间),轨迹顶点也不会相对于粒子系统的游戏对象移动。相反,轨迹顶点在世界中被放弃,并且忽略粒子系统的任何移动。 |
Die With Particles(粒子死亡) | 如果选中此复选框,则当它们的粒子死亡时,迹线立即消失。如果未选中此框,则剩余的路径将根据其剩余的生命期自然消失。 |
Ribbon Count (丝带计数) | 选择在整个粒子系统中渲染多少个Ribbon(丝带)。值为1将创建一个连接每个粒子的单个功能区。但是,高于1的值会创建连接每个第N个粒子的色带。例如,当使用值2时,将有一个带连接颗粒1,3,5,另一个带连接颗粒2,4,6等。粒子的排序是根据它们的年龄决定的。 |
Split Sub Emitter Ribbons(拆分子发射器丝带) | 当在用作子发射器的系统上启用时,从同一父系统粒子派生的粒子共享一个条带。 |
Texture Mode(纹理模式) | 选择应用于轨迹的纹理是沿着其整个长度延伸,还是以每N个距离单位重复。重复率是根据Tiling (材料中)的Material(物质)参数来控制的。 |
Size affects Width(大小影响宽度) | 如果启用(该框被选中),Trail宽度乘以粒度。 |
Size affects Lifetime(大小影响生命周期) | 如果启用(该框被选中),轨迹寿命乘以粒度。 |
Inherit Particle Color(继承粒子颜色) | 如果启用(该框被选中),Trail颜色将被粒子颜色调制。 |
Color over Lifetime(足迹的颜色) | 一条曲线来控制路径在其长度上的颜色。 |
Width over Trail(足迹的宽度) | 控制Trail在其长度上的宽度的曲线 |
Color over Trail(足迹的颜色) | 一条曲线来控制路径在其长度上的颜色。 |
Generate Lighting Data | 启用此项(勾选框),建立包含法线和切线的Trail几何。这允许他们使用使用场景照明的材质,例如通过标准着色器,或使用自定义着色器 |
Custom Data module(自定义数据模块)
自定义数据模块允许您在编辑器中定义自定义数据格式以附加到粒子。你也可以在脚本中设置它。有关如何从脚本设置自定义数据并将该数据提供给着色器的更多信息,请参阅粒子系统顶点流的文档。
数据可以采用Vector的形式,最多可包含4个MinMaxCurve组件,或者Color,这是一个支持HDR的MinMaxGradient。使用此数据驱动脚本和着色器中的自定义逻辑。
每个曲线/渐变的默认标签可以通过点击它们并输入上下文名称来定制。将自定义数据传递给着色器时,了解在着色器内如何使用这些数据很有用。例如,曲线可以用于自定义alpha测试,或者可以使用梯度向粒子添加第二颜色。通过编辑标签,很容易在UI中记录每个自定义数据输入的目的。
Renderer module(渲染器模块)
渲染器模块的设置决定了粒子的图像或网格如何被其他粒子转换,着色和透支。。
属性
Property | Function |
---|---|
Render Mode | 如何从图形图像(或网格)生成渲染图像。见细节,下面,以获取更多信息 |
Billboard( 广告牌) | 粒子总是面向相机。 |
Stretched Billboard(拉伸的广告牌) | 粒子面向相机,但应用了各种缩放(见下文)。 |
Camera Scale(相机比例) | 根据相机移动拉伸粒子。将其设置为0可禁用相机移动拉伸。 |
Velocity Scale(速度比例) | 沿着它们速度的方向按比例地将粒子拉伸到当前的大小。将其设置为0有效长度为0,使得粒子消失。 |
Length Scale (长度比例) | 沿着它们速度的方向按比例地将粒子拉伸到当前的大小。将其设置为0使得粒子消失,具有有效的0长度。 |
Horizontal Billboard(水平广告牌) | 粒子平面平行于XZ“底”平面。 |
Vertical Billboard( 垂直广告牌) | 粒子在Y轴上是直立的,但是面向相机。 |
Mesh(网孔) | 粒子是从3D网格而不是纹理渲染的。 |
None(无) | 如果您只想渲染路径并隐藏默认渲染,则在使用Trails模块时,这可能很有用。 |
Normal Direction(正常方向) | 用于粒子图形的照明法线偏移。相机的法线值为1.0,0.0值指向屏幕中心(仅限广告牌模式)。 |
Material(材料) | 用于渲染粒子的材质。 |
Trail Material(足迹材质) | 用于渲染粒子轨迹的材质。该选项仅在Trails模块启用时可用。 |
Sort Mode(排序模式) | 粒子被抽取的顺序(因此被重叠)。可能的值是By Distance (from the Camera),Oldest in Front和Youngest in Front。系统中的每个粒子将根据此设置进行排序。 |
Sorting Fudge | 粒子系统排序的偏差。较低的值会增加粒子系统相对于其他透明GameObjects(包括其他粒子系统)的相对机会。此设置仅影响整个系统出现在场景中的位置 - 它不会对系统中的单个粒子进行排序。 |
Min Particle Size(最小粒径) | 最小的颗粒大小(不管其他设置),表示为视口大小的一部分。请注意,此设置仅适用于“Rendering Mode(渲染模式)”设置为“Billboard(广告牌)”时。 |
Max Particle Size(最大粒径) | 最大粒径(不管其他设置),以视口尺寸的一部分表示。请注意,此设置仅适用于“Rendering Mode(渲染模式)”设置为“ Billboard(广告牌)”时。 |
Billboard Alignment(广告牌队列) | 使用下拉菜单选择粒子广告牌面对的方向。 |
View | 粒子面向摄像机。 |
World | 粒子与世界轴线对齐。 |
Local | 粒子与其GameObject的Transform组件对齐。 |
Facing | 粒子面对Camera GameObject的直接位置。 |
Pivot(中心点) | 修改用作旋转粒子中心的中心点。 |
Visualize Pivot(可视化中心点) | 在场景视图中预览粒子中心点。 |
Custom Vertex Streams(自定义定点流) | 在您的材质的顶点着色器中配置哪些粒子属性可用。有关更多详细信息,请参阅粒子系统顶点流。 |
Cast Shadows(投射阴影) | 如果启用,粒子系统在阴影投射光照时创建阴影。 |
On | 选择On(开)可启用阴影。 |
Off | 选择Off (关)可禁用阴影。 |
Two-Sided(双面) | 选择Two Sided(双面)可以从网格的任何一边投射阴影(意思是不考虑背面剔除)。 |
Shadows Only(仅阴影) | 择 Shadows Only(仅阴影)为了使阴影可见,但是网格本身不是。 |
Receive Shadows(接收阴影) | 指示是否可以将阴影投射到粒子上。只有不透明的材料可以获得阴影。 |
Sorting Layer(排序图层) | 渲染器的排序图层的名称。 |
Order in Layer(在图层中订购) | 此渲染器在排序图层中的顺序。 |
Light Probes(光探针) | 基于interpolation (探头)的照明插值模式。 |
Reflection Probes(反射探针) | 如果启用并且场景中存在反射探针,则会为此GameObject选取反射纹理,并将其设置为内置Shader统一变量。 |
Anchor Override(锚覆盖) | 用于确定使用Light Probe(光探针)或Reflection Probe(反射探针)系统时的插值位置的变换。 or Reflection Probe systems are used. |
细节
在Render Mode(渲染模式)可以让你几个2D图形广告牌模式和Mesh模式之间进行选择。使用三维网格物体,当它们代表坚固的GameObjects(如岩石)时,会给予粒子更多的真实性,并且还可以提高云,火球和液体的体积感。当使用2D广告牌图形时,不同的选项可以用于各种效果。
Billboard mode(广告牌模式)适用于表示从任何方向(如云)看起来都相同的音量的粒子。
Horizontal Billboard(水平广告牌)模式可以在粒子覆盖地面时使用(例如目标指示符和魔法效果),或者当它们是平面飞行或平行于地面浮动的平面物体(例如,手枪)。
Vertical Billboard(垂直广告牌)模式保持每个粒子直立和垂直于XZ平面,但允许它围绕其y轴旋转。当使用正交相机时,这可能会有所帮助,并希望粒径保持一致。
Stretched Billboard(拉伸的广告牌)模式突出显示了粒子的速度,类似于传统动画设备使用的“拉伸和压扁”技术。请注意,在“展开式广告牌”模式下,粒子会对齐到面向相机,并与其速度对齐。无论速度比例值如何,这种对齐都会发生 - 即使“速度比例”设置为0,此模式下的粒子仍会与速度对齐。
正常方向可用于在平面矩形广告牌上创建球形阴影。如果您使用将光照应用于粒子的材质,这可以帮助创建3D粒子的幻觉。此设置仅用于Billboard渲染模式。
如果有理解错误的地方欢迎指点!!!
这篇关于Unity 粒子系统(Particle System) (三)Sub Emitters,Texture Sheet Animation,Lights等属性详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!