粒子系统概略

From Valve Developer Community
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

粒子系统 是一些创造3D视觉特效的小对象的集合,例如浮云, 光线, 和全屏幕 后处理(?) 的特效。

一个粒子系统通常包括一些嵌套的子效果,每一种都是由插件,来控制系统的行为。这允许每个粒子特效是根据需要而变的简单或是复杂的。

剖析

基础属性

在基础状态,一个粒子系统没有任何组件,只有一些基本属性。这些是每个系统都具备的通用属性。它们包括影响整个系统的对象,但它们并不会被一个独立粒子改变,并且不适用于构成系统的其他端口。对于少数的底层引擎设置,最好是保留默认值。
你可能最常需要修改的基础属性:
initial_particles(初始粒子)
bounding_box_min and bounding_box_max(界限范围的最大值和最小值)
fallback replacement definition(回退的替代定义)
screen space effect(屏幕空间效果)
max_particles(最大粒子)
此外,有些属性可以提供一个简单的机制来定义系统的基本属性,这些属性可以在必要的时候通过操作器覆盖。这些属性包括:
color(颜色)
radius(半径)
rotation(旋转)
rotation_speed(旋转速度)
lifetime(寿命)
sequence_number(序号)
sequence_number 1(序号一)

请看粒子系统属性(en)获得更多信息。

功能

除了基本属性,粒子系统是由组件构成的。在一般情况下,你可以任意增加任何个目录下的组件,在合理情况下甚至可多次增加同一组件。这些设置或修改会因应每个粒子的属性领域进行。

渲染器(en)

渲染会决定如何绘制你的粒子。这些包括灵体,绳索,条痕等。每个粒子可以以多种方式被多次渲染(如果你想这么做的话)。请注意,在最新版本的粒子引擎中,大部分渲染都会参考"vtex"文档,但投影和缆索粒子渲染是例外的,它们会参考"vmat"文档。 (Vmat文档可以在Workshop Tools的材质编辑器(en)中创建)).

发射器(en)

发射器定义有多少粒子在哪一个时间内被创建。一个系统可以有多个不同类型的发射器,从而形成的粒子的总体图案。

初始化器(en)

初始化器设置每个粒子的初始状态,以及每个粒子的属性领域。例如,一个粒子的初始位置,颜色,大小及透明度。初始化器只在每个粒子创建时对其进行初始化,之后他们对每个粒子再没有影响。

操作器(en)

一旦一个粒子经初始化后,操作器便会接管每个粒子在每一帧的执行和功能。

Forces(en)

力操作器是操作器的变种,可以影响粒子的动作。

约束器(en)

约束器定义粒子运动的限制,例如一个控制点的碰撞或最大距离。

子系统(en)

子系统是被连接到当前系统的其他粒子系统。一些数据比如控制点,可以传给子系统,并可以建筑起多个层级。

挂点(en)

挂点(CP)是一个粒子系统的基本外部输入机制,每个粒子系统最多可以有64个。挂点有其位置,方向,和一个可供参考的实体。默认情况下,挂点"0"是粒子系统的起源和方向定位。
如果一个CP联系着一个实体,这个CP与此实体或连接点形成父子关系。在这同时,每一个额外的挂点在一个系统中可以分配他自己的空间位置,方向,和一个实体。这允许如《军团要塞》中的治疗光束穿梭在玩家角色和医疗兵的武器之间。
这可以令系统在必要的情况下从多个点或模型发射粒子,例如一个不断燃烧的火。
系统的各要素可以访问CP数据,这可以允许多个动态因素影响系统。挂点除了作为默认的空间位置也可以存储其他数据,这允许外部代码或实体传送通用数据到系统,然后被映射到系统的属性。

另见