美文网首页Unity游戏开发
Unity-粒子系统2017

Unity-粒子系统2017

作者: passiony | 来源:发表于2018-04-25 21:50 被阅读1937次

    了解粒子系统,必须先了解每一个属性都代表了什么,之后才能根据这些原理来调整出自己满意的效果。


    particle.png

    主面板ParticleSystem:

    • Duration:粒子发射周期,如图的意思就是在发射3.32秒以后进入下一个粒子发射周期。如果没有勾选looping的话,3.32秒之后粒子会停止发射。
    • Looping:粒子按照周期循环发射。
    • Prewarm:预热系统,比如说我有一个空间大小的粒子系统,但是粒子发射速度有限,我想在最开始的时候让粒子充满空间,此时就应该勾选Prewarm。
    • StartDelay:粒子延时发射,勾选后,延长一段时间才开始发射。
    • StartLifeTime:粒子从发生到消失的时间长短。
    • StartSpeed:粒子初始发生时候的速度。
    • 3DStartSize:这个属性是当你需要把粒子在某一个方向上扩大的时候使用。
    • StartSize:粒子初始的大小。
    • 3DStartRotation:需要在一个方向旋转了子的时候可以使用。
    • StartRotation:粒子初始旋转。
    • RandomizeRotation:随机旋转粒子方向,感觉在3D粒子的情况下,尤其是圆形的没什么用。
    • StartColor:粒子初始颜色,可以调整加上渐变色。
    • GravityModifier:重力修正。
    • SimulationSpace:a.Local,此时粒子会跟随父级物体移动。b.World,此时粒子不会跟随父级移动。c.Custom,粒子会跟着指定的物体移动。
    • SimulationSpeed:根据Update模拟的速度。
    • DeltaTime:一版的DeltaTime都是1,如果需要用到Sacled是在游戏需要暂停的时候,根据TimeManager来定。如果选择UnScale的话,就会忽略时间的影响。
    • ScalingMode:Local:粒子系统的缩放和自己Transform的一样会忽略父级的缩放。Hierarchy:粒子缩放跟随父级。Shape:将粒子系统跟随初始位置,但是不会影响粒子系统的大小。
    • EmitterVelocity:
    • MaxParticles:粒子系统可以同时存在的最大粒子数量。如果粒子书数量超过最大值粒子系统会销毁一部分粒子。
    • AutonRandomSeed:随机种子,如果勾选会生成完全不同不重复的粒子效果,如果勾选即为可重复。

    Emission模块

    • RateOverTime:随单位时间生成粒子的数量。
    • RateOverDistance:随着移动距离产生的粒子数量。只有当粒子系统移动时,才发射粒子。
    • Bursts:
      Time:从第几秒开始。
      Min:最小粒子数量。
      Max:最大的粒子数量,粒子的数量会在Min和Max之间随机。
    • Cycles:在一个周期中循环的次数。
    • Interval:两次两次Cycles的间隔时间。

    Shape模块。

    粒子被约束在这个形状中发射。我们看看效果图就知道了。就拿这个Cone锥形来看,可以看见粒子发射总是被约束在这个锥形中。
    我们看看总共有几种形状:

    • 1.Sphere:球体。粒子被约束在这个球体中发射。
      1.Radius。球体半径。
      2.Emit from Shell:是否粒子发射是在圆形的表面发射。默认是圆形体内任意位置。
      3.Random Direction:是否是随机方向。默认是跟形状相关的从中心向外发散方向,比如球体就是爆炸方向。如果是随机方向的话,就是胡乱发射。但是他还是被约束在球体里面发射。只不过发射的方向变了而已。

    • 2.HemiSphere:半球体。粒子被约束在这个半球体内发射。
      1.Radius:半球体的半径。
      2.Emit from Shell:是否粒子发射是在半球体的表面发射。默认是半球体内任意位置。
      3.Random Direction:跟球体类似。本来是从球体中心发散出去,但是勾选这个之后,就随机方向发射。

    • 3.Cone:椎体。粒子被约束在这个椎体中发射出去。
      1.Angle:锥形斜面和垂直方向的夹角。如0度就是圆柱。90度就是跟平面类似。
      2.Radius:锥形底面的半径。
      3.Length:底面和顶面的距离。也就是圆锥的高。这个参数是受第4个参数的影响,如果是从Base(底面)发射,那么Length就没有用。如果是Volume(体积)发射,那么Length就有用。因为体积肯定和高度有关嘛。
      4.Emit form:从哪里发射:总共有4种:
      1.Base:圆锥底面。粒子是从圆锥体的底面的任意位置沿着体积方向发射出去。
      2.BaseShell:圆锥底面周长边。粒子是从圆锥底面的周长边沿着侧表面的方向发射。与Base唯一的区别就是一个是沿体积,一个是沿侧面。*
      3.Volume:体积。粒子是从圆锥体内的任意位置沿着体积的方向发射出去。
      4.VolumeShell:体积侧面。粒子是从圆锥体的侧面的任意位置沿着侧面方向发射出去的。
      5.Random Direction:与上面讲的随机类似。

    • 4.Box:长方体。粒子被约束在长方体内发射。
      1.Box X:x方向上的长度。
      2.Box Y: y方向上的长度。
      3.Box Z:z方向上的长度。
      默认发射粒子是在长方体内的任意位置沿着z方向(与xy平面垂直)发射。

    • 5.Mesh:网格。粒子被约束在网格里面发射。
      可以看到我这里选择了一个Plane网格,那么上面的参数Triangle是什么鬼。这个参数是表示粒子在哪里反射。总所周知,网格由顶点,线段,面构成。那么Triangle代表是三角面。他这里有三个选择:
      1.Vertex:粒子就是从网格的顶点发射出去。
      2.Edge:粒子是从网格的边长发射出去。
      3.Triangle:粒子从网格的面发射出去。


    Velocity Over Lifetime模块

    属性 功能
    X,Y,Z X,Y和Z轴的速度。
    Space 选择X,Y和Z轴是指本地空间还是世界空间。

    Limit Velocity Over LifeTime模块

    属性 功能
    Separate Axis 将轴拆分为单独的X,Y和Z组件。
    Speed 设置粒子的速度限制。
    Space 选择速度限制是指本地空间还是世界空间。此选项仅在启用“ 分离轴”时可用。
    Dampen 当粒子速度超过速度限制时,粒子速度降低的分数。

    Inherit Velocity 模块

    属性 功能
    模式 指定发射器速度如何应用于粒子
    当前 发射器的当前速度将应用于每个帧上的所有粒子。例如,如果发射器减速,所有粒子也将减速。
    初始 当每个粒子出生时,发射器的速度将被施加一次。粒子出生后对发射器速度的任何改变都不会影响该粒子。
    乘数 粒子应该继承的发射器速度的比例。

    Force Over Lifetime模块

    属性 功能
    X,Y,Z 力施加到X,Y和Z轴上的每个粒子。
    空间 选择是在局部空间还是在世界空间中施加力。
    随机化 使用“两个常数”或“两个曲线”模式时,会导致在定义的范围内的每个帧上选择新的力方向。这会导致更多的动荡,不稳定

    Color Over Lifetime模块

    属性 功能
    颜色 粒子在其生命周期内的颜色梯度。渐变条的左侧点表示粒子寿命的开始,渐变条的右侧表示粒子寿命的终点。

    Color By Speed模块

    属性 功能
    颜色 在速度范围内定义的粒子的颜色梯度。
    速度范围 颜色梯度映射到的速度范围的低端和高端(超出范围的速度将映射到渐变的终点)。

    Size Over Lifetime模块

    属性 功能
    分开的轴 在每个轴上独立控制粒径。
    尺寸 定义粒子尺寸在其生命周期内如何变化的曲线。

    Size By Speed模块

    属性 功能
    分开的轴 在每个轴上独立控制粒径。
    尺寸 定义粒子在速度范围内的大小的曲线。
    速度范围 尺寸曲线映射到的速度范围的低端和高端(超出范围的速度将映射到曲线的终点)。

    Rotation Over Lifetime模块

    属性 功能
    分开的轴 允许每轴指定旋转。启用此选项后,将显示为X,Y和Z中的每一个设置旋转的选项。
    角速度 旋转速度,以度/秒为单位。请参阅下面的详细信息。

    Rotation By Speed模块

    属性 功能
    分开的轴 为每个旋转轴独立控制旋转。
    角速度 旋转速度,以度/秒为单位。
    速度范围 尺寸曲线映射到的速度范围的低端和高端(超出范围的速度将映射到曲线的终点)。

    External Forces模块

    属性 功能
    乘数 适用于风区力量的比例值。

    Collision模块

    属性 功能
    飞机弹出 选择“平面”模式。
    飞机 可扩展的转换列表,用于定义碰撞平面。
    可视化 选择是否将“场景”视图中的碰撞平面Gizmo显示为线框网格或实体平面。
    缩放平面 用于可视化的平面大小。
    可视化边界 在“场景”视图中将每个粒子的碰撞边界渲染为线框形状。
    挫伤 碰撞后失去的粒子速度的分数。
    弹跳 碰撞后从表面反弹的粒子速度的分数。
    终身损失 粒子在碰撞时失去的总寿命的分数。
    Min Kill Speed 碰撞后行驶速度低于此速度的颗粒将从系统中移除。
    半径比例 允许您调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘。
    发送冲突消息 如果启用,则可以通过OnParticleCollision函数从脚本中检测粒子碰撞。

    Triggers模块

    要使用该模块,首先添加要为其创建触发器的碰撞器,然后选择要使用的事件。

    您可以选择在粒子为以下时触发事件:

    • 在对撞机的范围内
    • 在对撞机的界限之外
    • 进入对撞机的界限
    • 退出对撞机的界限
    属性 功能
    如果希望在粒子位于Collider内时触发事件,请选择Callback。选择“忽略”以便在粒子位于“碰撞器”内时不触发事件。选择Kill以消除Collider内的粒子。
    如果希望在粒子位于对撞机外部时触发事件,请选择“回调”。选择“忽略”以便在粒子位于“碰撞器”之外时不触发事件。选择“杀戮”以摧毁对撞机外部的粒子。
    输入 如果希望在粒子进入碰撞器时触发事件,请选择回调。选择“忽略”以在粒子进入“碰撞器”时不触发事件。选择“杀戮”以在粒子进入“碰撞器”时消除它们。
    出口 如果希望在粒子退出碰撞器时触发事件,请选择“回调”。选择“忽略”以在粒子退出碰撞器时不触发事件。选择“杀戮”以在粒子退出碰撞器时消除它们。
    半径比例 此参数设置粒子的碰撞器边界,允许事件在粒子接触碰撞器之前或之后出现。例如,您可能希望粒子在弹回之前看起来稍微穿透碰撞对象的表面,在这种情况下,您可以将“半径比例”设置为略小于1.请注意,当事件实际发生时,此设置不会更改触发器,但可以延迟或提高触发器的视觉效果。输入1表示事件看起来发生在粒子碰到碰撞器时;输入一个小于1的值,触发器在粒子穿透碰撞器后似乎发生;输入一个大于1的值,触发器似乎发生粒子穿透对撞机后
    可视化边界 这允许您在编辑器窗口中显示粒子的碰撞器边界。

    Sub Emitters

    属性 功能
    子粒子发射器 配置子发射器列表并选择它们的触发条件以及它们从其父粒子继承的属性。

    Texture Sheet Animation

    粒子的图形不必是静止图像。此模块允许您将纹理视为可以作为动画帧播放的单独子图像的网格。

    属性 功能
    Grid 用网格来实现。
    Sprite 通过相同尺寸的Sprite实现粒子动画。
    Tiles 纹理在X(水平)和Y(垂直)方向上划分的平铺数量。
    Animation 动画模式可以设置为整张或单行(即,工作表的每一行代表一个单独的动画序列)。
    WholeSheet 随机从工作表中选择一行以生成动画。此选项仅在选择“ 单行”作为“ 动画”模式时可用。
    SingleRow 从工作表中选择特定行以生成动画此选项仅在选择单行模式且禁用随机行时可用。
    FrameOverTime 一条曲线,指定动画帧随着时间的推移如何增加。
    StartFrame 允许您指定粒子动画应该从哪个帧开始(对于在每个粒子上随机定相动画非常有用)。
    Cycles 动画序列在粒子生命周期内重复的次数。
    FlipU 在一定比例的粒子上水平镜像纹理。较高的值会翻转更多的粒子。
    FlipV 在一部分粒子上垂直镜像纹理。较高的值会翻转更多的粒子。
    EnabledUVChannels 允许您准确指定粒子系统影响的UV流。

    Lights

    Lights模块是一种为粒子效果添加实时照明的快速方法。它可用于使系统将光线投射到周围环境中,例如用于火灾,烟火或闪电。它还允许您使灯光从它们所附着的粒子继承各种属性。这可以使粒子效应本身发光更加可信。例如,这可以通过使光与其粒子淡出并使它们共享相同的颜色来实现。

    该模块可以非常快速地创建大量实时灯光,实时灯光具有很高的性价比,尤其是在正向渲染模式下。如果灯光也投射阴影,性能成本会更高。为了防止意外调整发射率并因此导致创建数千个实时灯,应使用Maximum Lights属性。创建比目标硬件能够管理的更多灯光可能会导致速度降低和无响应。

    属性 功能
    指定一个Light Prefab,描述粒子灯的外观。
    介于0和1之间的值,描述将接收光的粒子的比例。
    随机分布 选择是随机分配还是定期分配灯光。设置为true时,每个粒子都有一个随机接收基于比率的光的机会。较高的值增加了粒子具有光的概率。设置为false时,Ratio控制新创建的粒子接收光的频率(例如,每个第N个粒子将接收光)。
    使用粒子颜色 设置为True时,Light的最终颜色将通过其附加的粒子的颜色进行调制。如果设置为False,则使用Light颜色而不进行任何修改。
    大小影响范围 启用后,Light中指定的Range将乘以粒子的大小。
    阿尔法影响强度 启用后,光的强度乘以粒子alpha值。
    范围乘数 使用此曲线在粒子的生命周期内将自定义倍增器应用于灯光范围。
    强度乘数 使用此曲线将自定义乘数应用于粒子生命周期内的光强度。
    最大灯光 使用此设置可以避免意外创建大量灯光,这可能会使编辑器无响应或使应用程序运行得非常慢。

    Trail 模块

    使用此模块为一定百分比的粒子添加拖尾。此模块与Trail Renderer组件共享许多属性,但提供了将Trails轻松附加到粒子以及从粒子继承各种属性的功能。轨迹可用于各种效果,例如子弹,烟雾和魔法视觉效果。

    属性 功能
    Ratio 介于0和1之间的值,描述分配了Trail的粒子的比例。路径是随机分配的,因此该值表示概率。
    Lifetime Trail中每个顶点的生命周期,表示为它所属粒子的生命周期的乘数。当每个新顶点添加到Trail时,它在存在的时间超过其总生命周期后消失。
    MinimumVertexDistance 定义粒子在其接收新顶点之前必须经过的距离。
    TextureMode 选择应用于Trail的纹理是沿其整个长度拉伸,还是重复每N个距离单位。重复率基于材料中的“ 平铺”参数进行控制。
    WorldSpace 启用后,即使使用本地模拟空间,Trail顶点也不会相对于粒子系统的GameObject移动。相反,Trail顶点在世界中被丢弃,并忽略粒子系统的任何移动。
    DieWithParticle 如果启用(选中此框),Trails会在粒子死亡时立即消失。如果未启用(未选中此框),则剩余的Trail将根据其自身的剩余生命周期自然到期。
    SizeAffectsWidth 如果启用(选中该框),则将Trail宽度乘以粒子大小。
    SizeAffectsLifetime 如果启用(选中此框),则路径寿命将乘以粒度。
    InheritParticleColor 如果启用(选中此框),则路径颜色将由粒子颜色调制。
    ColorOverLifeTime 一条曲线,用于控制整个Trail在其附着的粒子的整个生命周期内的颜色。
    WidthOverTrail 用于控制Trail长度的曲线。
    ColorOverTrail 用于控制Trail长度的颜色的曲线。

    Renderer模块

    在渲染模式可以让你几个2D图形广告牌模式和Mesh模式之间进行选择。当使用3D网格物体代表实体游戏对象(如岩石)时,它们可以为粒子提供额外的真实性,还可以改善云,火球和液体的体积感。使用2D广告牌图形时,不同的选项可用于各种效果。

    广告牌模式适用于表示从任何方向(例如云)看起来大致相同的卷的粒子。

    当粒子覆盖地面时(例如目标指示器和魔法效果)或当它们是平行于地面飞行或漂浮的扁平物体(例如,手里剑)时,可以使用水平广告牌模式。

    垂直广告牌模式使每个粒子保持直立并垂直于XZ平面,但允许其围绕其y轴旋转。当您使用正交相机并希望粒度保持一致时,这可能会有所帮助。

    拉伸广告牌模式以类似于传统动画师使用的“拉伸和挤压”技术的方式突出了粒子的表观速度。请注意,在“拉伸广告牌”模式下,粒子对齐以面向相机并且还与其速度对齐。无论Velocity Scale值如何,都会发生此对齐 - 即使Velocity Scale设置为0,此模式下的粒子仍然与速度对齐。

    法线方向可用于在扁平矩形广告牌上创建球形阴影。如果您使用的材质将光照应用于粒子,这可以帮助创建3D粒子的幻觉。此设置仅用于Billboard渲染模式。

    属性 功能
    Render Mode 如何从图形图像(或网格)生成渲染图像。有关详细信息,请参阅下面的详细信息。
    Billboard 粒子始终面向相机。
    Stretched Billboard 粒子面向相机,但应用了各种缩放(见下文)。
    Camera Scale 根据相机移动拉伸粒子。将此值设置为0可禁用相机移动拉伸。
    Velocity Scale 按比例拉伸颗粒的速度。将此值设置为0可根据速度禁用拉伸。
    Length Scale 沿着它们的速度方向按比例拉伸粒子的当前尺寸。将此值设置为0会使粒子消失,有效长度为0。
    Horizontal Billboard 粒子平面平行于XZ“地板”平面。
    Vertical Billboard 粒子在世界Y轴上直立,但转向面向相机。
    Mesh 粒子是从3D网格而不是纹理渲染的。
    None 如果您只想渲染轨迹并隐藏默认渲染,则在使用“ 轨迹”模块时这非常有用。
    Normal Direction 用于粒子图形的照明法线的偏差。值为1.0指向相机的法线,而值为0.0指向屏幕中心(仅限广告牌模式)。
    Material 用于渲染粒子的材质。
    Trail Material 用于渲染粒子轨迹的材质。此选项仅在启用“ 路径”模块时可用。
    Sort Mode 绘制粒子(因此重叠)的顺序。可能的值是通过距离(从相机),最老的前,和最年轻的前面。系统中的每个粒子将根据此设置进行排序。
    Sorting Fudge 粒子系统排序的偏差。较低的值会增加粒子系统在其他透明GameObject(包括其他粒子系统)上绘制的相对几率。此设置仅影响整个系统在场景中的显示位置 - 它不对系统中的单个粒子执行排序。
    Min Particle Size 最小粒径(无论其他设置如何),表示为视口大小的一小部分。请注意,此设置仅在“ 渲染模式”设置为“ 广告牌”时应用
    Max Particle Size 最大粒径(无论其他设置如何),表示为视口大小的一部分。请注意,此设置仅在“ 渲染模式”设置为“ 广告牌”时应用
    Billboard Alignment 使用下拉列表选择粒子广告牌面向的方向。
    View 粒子面向相机平面。
    World 粒子与世界轴对齐。
    Local 粒子与GameObject的Transform组件对齐。
    Facing 粒子面向Camera GameObject的直接位置。
    Pivot 修改用作旋转粒子中心的轴心点。
    Visualize Pivot 在“场景视图”中预览粒子轴点。
    Custom Vertex Streams 配置材质的“顶点着色器”中可用的粒子属性。有关详细信息,请参阅粒子系统顶点流。
    Cast Shadows 如果启用,粒子系统会在阴影投射光照射到它上时创建阴影。
    On 选择以启用阴影。
    Off 选择“ 关闭”以禁用阴影。
    Two-Sided 选择双面以允许从网格的任一侧投射阴影(意味着不考虑背面剔除)。
    Shadows Only 选择“仅阴影”以使阴影可见,但“网格”本身不可见。
    Receive Shadows 决定阴影是否可以投射到粒子上。只有不透明材质才能接收阴影。
    Sorting Layer 渲染器的排序图层的名称。
    Order in Layer 此渲染器在排序图层中的顺序。
    Light Probes 基于探针的光照插值模式。
    Reflection Probes 如果启用并且场景中存在反射探测,则会为此GameObject拾取反射纹理并将其设置为内置的Shader均匀变量。
    Anchor Override 用于确定使用光探测器反射探测器系统时的插值位置的变换。

    相关文章

      网友评论

        本文标题:Unity-粒子系统2017

        本文链接:https://www.haomeiwen.com/subject/tzqulftx.html