首页 > 代码库 > 粒子系统模块(Particle System Modules40)

粒子系统模块(Particle System Modules40)

粒子系统模块(Particle System Modules40)        

粒子系统模块(忍者飞镖)

粒子系统(忍者飞镖)(Particle System (Shuriken)) 用模块描述粒子一段时间内的行为。此处记载了模块的详细说明。有关模块介绍,请参阅此页面。

 

初始化模块

技术分享

该模块始终存在,无法删除或禁用。

  
持续时间 (Duration)粒子系统 (Particle System) 发射粒子的持续时间。
循环 (Looping)粒子系统 (Particle System) 是否循环。
预热 (Prewarm)只可预热循环系统,这意味着,粒子系统 (Particle System) 在游戏一开始时就发射粒子,就像已发射了一个周期的粒子。
初始延迟 (Start Delay)粒子系统 (Particle System) 发射粒子之前等待的延迟,以秒为单位。请注意,预热的循环系统不能使用初始延迟。
初始生命 (Start Lifetime)粒子存活时间,以秒为单位(请参阅 MinMaxCurve)。
初始速度 (Start Speed)粒子发射时的速度(请参阅 MinMaxCurve)。
初始大小 (Start Size)粒子发射时的大小(请参阅 MinMaxCurve)。
初始旋转 (Start Rotation)粒子发射时的旋转(请参阅 MinMaxCurve)。
初始颜色 (Start Color)粒子发射时的颜色(请参阅 MinMaxGradient)。
重力修改器 (Gravity Modifier)粒子在存活期间受到的重力影响。
继承速度 (Inherit Velocity)控制粒子速率的因素应继承粒子系统 (Particle System) 的转换(对于移动中的粒子系统)。
模拟空间 (Simulation Space)模拟本地坐标系或世界坐标系中的粒子系统 (Particle System)。
唤醒时播放 (Play On Awake)如果启用该项,粒子系统 (Particle System) 会在其创建时自动开始播放。
最大粒子数 (Max Particles)粒子系统 (Particle System) 可发射的最大粒子数量。
 

发射模块

技术分享

控制粒子发射的速率,允许在某个时刻生成大量粒子(粒子系统 (Particle System) 存续期间)。在爆炸时非常有用,那时需要一次创建大量粒子。

  
速率 (Rate)单位时间 (Time)(每秒)或单位距离 (Distance)(每米)发射的粒子数量(请参阅 MinMaxCurve)。
突发 (Bursts)(仅限时间 (Time) 选项下)添加粒子系统 (Particle System) 存续期间发生的粒子爆发。
时间和粒子数量 (Time and Number of Particles)指定发射规定数量粒子的时间(在存续期内,以秒为单位)。用“+”和“-”调节爆发数量。
 

形状模块

技术分享

定义发射器的形状:球体 (Sphere)、半球体 (Hemishpere)、圆锥 (Cone)、立方体 (Box) 和网格 (Mesh)。可沿着表面法线或随机方向施加初始力。

 
  
球体 (Sphere) 
半径 (Radius)球体的半径。(也可以在场景视图 (Scene View) 中用手柄操作)。
从外壳发射 (Emit from Shell)从球体外壳发射。如果禁用此项,粒子将从球体内部发射。
随机方向 (Random Direction)粒子是在随机方向还是沿着球体表面法线方向发射?
半球体 (Hemisphere) 
半径 (Radius)半球体的半径。(也可以在场景视图 (Scene View) 中用手柄操作)。
从外壳发射 (Emit from Shell)从半球体外壳发射。如果禁用此项,粒子将从半球体内部发射。
随机方向 (Random Direction)粒子是在随机方向还是沿着半球体表面法线方向发射?
圆锥 (Cone) 
角度 (Angle)圆锥的角度。如果角度为 0,粒子将在一个方向发射。(也可以在场景视图 (Scene View) 中用手柄操作)。
半径 (Radius)发射点的半径。如果值接近零,则将从一点发射。如果值超过 0,将创建一个帽子状的圆锥,粒子从一个圆盘而非一个点发射。(也可以在场景视图 (Scene View) 中用手柄操作)。
长度 (Length)发射量的长度。仅从内部 (Volume) 或内部外壳 (Volume Shell) 发出时可用。(也可以在场景视图 (Scene View) 中用手柄操作)。
发射位置 (Emit From)确定从哪里发射出。可能的值有底部 (Base)、底部外壳 (Base Shell)、内部 (Volume) 和内部外壳 (Volume Shell)。
随机方向 (Random Direction)粒子是在随机方向还是沿着圆锥方向发射?
立方体 (Box) 
立方体 X 轴 (Box X)立方体 X 轴的缩放。(也可以在场景视图 (Scene View) 中用手柄操作)。
立方体 Y 轴 (Box Y)立方体 Y 轴的缩放。(也可以在场景视图 (Scene View) 中用手柄操作)。
立方体 Z 轴 (Box Z)立方体 Z 轴的缩放。(也可以在场景视图 (Scene View) 中用手柄操作)。
随机方向 (Random Direction)粒子是在随机方向还是沿着立方体 Z 轴方向发射?
网格 (Mesh) 
类型 (Type)粒子可从顶点 (Vertex)、边 (Edge) 或面 (Triangle) 发射。
网格 (Mesh)选择网格 (Mesh) ? 作为发射形状。
随机方向 (Random Direction)粒子是在随机方向还是沿着网格表面方向发射?
 

存活时间的速度模块

技术分享

直接动画化粒子的速率。主要用于具有复杂物理特性的粒子,不过只演示简单的视觉行为(例如飘荡的烟雾和温度降低),与物理世界的互动很少。

  
XYZ使用曲线常量值或曲线间的随机值来控制粒子的运动。请参阅 MinMaxCurve。
空间 (Space)本地 (Local)/ 世界 (World):速度值是本地坐标系还是世界坐标系中的值?
 

存活时间的限制速度模块

技术分享

基本上用于模拟阻力。如果超过某些阈值,就会抑制或固定速率。可以按每个轴或每个向量长度配置。

  
分离轴 (Separate Axis)用于设置每个轴控制。
速度 (Speed)指定量级为常数或由限制所有轴速率的曲线指定量级。请参阅 MinMaxCurve。
阻尼 (Dampen)(0-1) 值,控制应减慢的超过速率的幅度。例如,值为 0.5,则将超过的速率减慢 50%。
 

存活时间的受力模块

技术分享
  
XYZ使用曲线常量值或曲线间的随机值来控制作用于粒子上的力。请参阅 MinMaxCurve。
空间 (Space)本地 (Local)/世界 (World):速度值是本地坐标系还是世界坐标系中的值
随机化 (Randomize)随机化每帧作用于粒子上的力。
 

存活时间的颜色模块

技术分享
  
颜色 (Color)控制每个粒子在其存活期间的颜色。如果有些粒子的存活时间短于其他粒子,它们将运动得更快。采用常量颜色、两色随机,使用渐变动画化颜色或使用两个渐变指定一个随机颜色(请参阅渐变)。请注意,该颜色将乘以初始颜色 (Start Color)属性中的值 ? 如果初始颜色为黑色,那么存活时间的颜色 (Color Over Lifetime) 不会影响粒子。
 

颜色速度模块

技术分享

根据粒子速度动画化粒子颜色。将定义范围内的速度重新映射到颜色上。

  
颜色 (Color)用于重新映射速度的颜色。使用渐变来改变颜色。请参阅 MinMaxGradient。
速度范围 (Speed Range)界定速度范围的最小值和最大值,该范围用于将速度重新映射到颜色上。
 

存活时间的大小模块

技术分享
  
大小 (Size)控制每个粒子在其存活期间的大小。采用固定大小,使用曲线将大小动画化或使用两条曲线指定随机大小。请参阅 MinMaxCurve。
 

大小速度模块

技术分享
  
大小 (Size)用于重新映射速度的大小。将曲线用于不同大小。请参阅 MinMaxCurve.
速度范围 (Speed Range)界定速度范围的最小值和最大值,该范围用于将速度重新映射到大小上。
 

存活时间的旋转模块

技术分享

以度为单位指定值。

  
角速度 (Angular Velocity)控制每个粒子在其存活期间的旋转速度。采用固定旋转速度,使用曲线将旋转速度动画化或使用两条曲线指定随机旋转速度。请参阅 MinMaxCurve。
 

旋转速度模块

技术分享
  
角速度 (Angular Velocity)用于重新映射粒子速度的旋转速度。使用曲线来改变旋转速度。请参阅 MinMaxCurve。
速度范围 (Speed Range)界定速度范围的最小值和最大值,该范围用于将速度重新映射到旋转速度上。
 

外力模块

技术分享
  
乘数 (Multiplier)确定粒子受风带影响程度的缩放比例(即风力向量乘以该值)。
 

碰撞模块

技术分享

为该粒子系统 (Particle System) 中的粒子设置碰撞。现在支持世界碰撞和平面碰撞。平面碰撞对简单碰撞检测而言非常有效。通过引用场景中的现有变换或为此创建新的空游戏对象 (GameObject) 来设置平面。平面碰撞的另一个优势是具有碰撞平面的粒子系统可设为预设。世界碰撞采用光线投射,所以必须小心使用,以确保良好性能。然而,在近似碰撞可接受的情况下,低 (Low) 或中等 (Medium) 质量的世界碰撞非常有效。

 

任何碰撞模块 (Collision Module) 的常见属性

  
平面/世界 (Planes/World)指定碰撞类型:平面 (Planes) 指平面碰撞,世界 (World) 指世界碰撞。
阻尼 (Dampen)(0-1) 粒子碰撞时,其将保持这一速度比例。除非设置为 1.0,否则粒子在碰撞后变慢。
反弹 (Bounce)(0-1) 粒子碰撞时,其会保持这一速度分量比例,该分量与碰撞平面垂直。
生命减弱 (Lifetime Loss)(0-1) 每次碰撞后初始生命周期 (Start Lifetime) 减弱比例。生命周期达到 0 后,粒子死亡。例如,如果粒子应该在第一次碰撞时死亡,则将该属性设为 1.0。
最小杀死速度 (Min Kill Speed)粒子在被杀死前的最小速度。
发送碰撞信息 (Send Collision Messages)确定是否要发送碰撞信息,从而确定是否触发游戏对象 (GameObjects) 和 ParticleSystems 上的 OnParticleCollision 回调。
 

只在平面模式 (Planes Mode) 中可用的属性

  
平面 (Planes)平面通过向变换分配引用来定义。该变换可为场景中的任何变换,且可动画化。可以使用多平面。注意:Y 轴用作平面法线。
可视化 (Visualization)仅用于将平面可视化:网格 (Grid) 或实体 (Solid)。
网格 (Grid)渲染为小图示,能快速指出在世界中的位置和方向。
实体 (Solid)在场景中渲染平面,用于精确定位平面。
缩放平面 (Scale Plane)调整可视化平面大小。
粒子半径 (Particle Radius)因碰撞目的假设的粒子半径。(因此,粒子视为球体。)
 

只在世界模式 (World Mode) 中可用的属性

  
碰撞对象 (Collides With)用于指定碰撞器的筛选器。选择所有东西 (Everything),来与整个世界碰撞。
碰撞质量 (Collision Quality)世界碰撞的质量。
高质量 (High)每帧的所有粒子进行场景光线投射。注意:这是 CPU 密集型应用,只能使用 1000 个(场景宽度)或更少的同步粒子。
中等质量 (Medium)在每帧中,粒子系统接收一部分全局设置粒子光线投射计划 (Particle Raycast Budget)(请参阅粒子光线投射计划)。粒子以循环方式更新,其中在给定帧中不接收光线投射的粒子将查找和使用高速缓存中存储的较旧碰撞物。注意:这类碰撞属于近似碰撞,会遗漏一些粒子,特别是在角落处。
低质量 (Low)除了粒子系统每四帧获得一部分粒子光线投射计划 (Particle Raycast Budget)之外,其他与中等质量 (Medium) 相同。
体素大小 (Voxel Size)用于缓存中等 (Medium) 和低 (Low) 质量设置中所用交集的体素密度。体素大小以场景单位为单位给出。通常会使用 0.5 ? 1.0(假设使用公制单位)。
 

子发射器模块

技术分享

这是一个强大的模块,可在出现下列粒子事件时生成其他粒子系统 (粒子系统(Particle Systems)):粒子产生、死亡或碰撞。

重要提示:需要使用碰撞模块 (Collision Module) 建立碰撞。请参阅碰撞模块 (Collision Module)。
产生 (Birth)该粒子系统 (Particle System) 中每个粒子产生时生成另一个粒子系统。
死亡 (Birth)该粒子系统 (Particle System) 中每个粒子死亡时生成另一个粒子系统。
碰撞 (Collision)该粒子系统 (Particle System) 中每个粒子碰撞时生成另一个粒子系统。 
 

纹理层动画模块

技术分享

在粒子存活期间动画化 UV 坐标。动画帧以网格形式显示,或者层中的每行都是单独的动画。帧可以用曲线动画化或者是两条曲线之间的随机帧。动画速度用“周期 (Cycles)” 定义。重要提示:用于动画的纹理是渲染器 (Renderer) 模块中所发现材质使用的纹理。

  
平铺 (Tiles)定义纹理的平铺。
动画 (Animation)指定动画类型:整层 (Whole Sheet) 或单行 (Single Row)。
整层 (Whole Sheet)将整层用于 uv 动画。
- 时间帧 (Frame over Time)在每个粒子存活期间,在整层上控制其 uv 动画帧。采用常量,使用曲线将帧动画化或使用两条曲线指定随机帧。请参阅 MinMaxCurve。
单行 (Single Row)将一行纹理层用于 uv 动画。
- 随机行 (Random Row)如果选中此项,起始行随机,如果取消选中,则可以指定行指数(第一行为 0)。
- 时间帧 (Frame over Time)在每个粒子存活期间,在指定行内控制其 uv 动画帧。采用常量,使用曲线将帧动画化或使用两条曲线指定随机帧。请参阅 MinMaxCurve。
- 周期 (Cycles)指定动画速度。

 

渲染器模块

技术分享

渲染器模块显示 ParticleSystemRenderer 组件属性。请注意,即使游戏对象 (GameObject) 拥有 ParticleSystemRenderer 组件,其属性也只能在此处显示。删除/添加此模块时,实际上是添加或删除 ParticleSystemRenderer 组件。

 
  
渲染模式 (Render Mode)选择下列粒子渲染模式之一。
广告牌 (Billboard)让粒子始终面向相机。
拉伸广告牌 (Stretched Billboard)使用下列参数拉伸粒子。
-  相机缩放 (Camera Scale)决定拉伸粒子时考虑进来的相机速度影响程度。
-  速度缩放 (Speed Scale)通过对比粒子速度来确定其长度。
-  长度缩放 (Length Scale)通过对比粒子宽度来确定其长度。
水平广告牌 (Horizontal Billboard)让粒子与 XZ 平面对齐。 
垂直广告牌 (Vertical Billboard)面向相机时,让粒子与 Y 轴对齐。
网格 (Mesh)使用网格而非四边形渲染粒子。
-  网格 (Mesh)渲染粒子所用的网格引用。
法线方向 (Normal Direction)值 0 至 1,确定法线与相机所成角度 (0) 及偏离视图中心的角度 (1)。
材质 (Material)广告牌或网格粒子所用的材质。
排序模式 (Sort Mode)粒子绘制顺序可通过距离、最先生成或最晚生成来排列。
排序校正 (Sorting Fudge)使用该项影响绘制顺序。具有较小排序校正数值的粒子系统更可能放在最后绘制,因此显示在其他透明对象(包括其他粒子)前面。
投射阴影 (Cast Shadows)粒子是否会投射阴影?这由材质决定。
接受阴影 (Receive Shadows)粒子是否会接受阴影?这由材质决定。
最大粒子大小 (Max Particle Size)相对于视窗大小,设置最大大小。有效值:0-1。
 

粒子系统模块(Particle System Modules40)