尼加拉系统
尼加拉发射器
尼加拉发射器是单个发射器,可以发射一种粒子的粒子。多个尼加拉发射器可以组合起来创建一个好的VFX效果。
- 尼加拉发射器可以有自己的时间或全局时间,例如尼加拉系统所拥有的时间。
- 尼加拉发射器可以作为一个独立的资产,如果您想重用它,可以直接坐在尼加拉系统上。
发射器堆栈
- Sim目标:这是模拟目标,CPU或GPU应该解决粒子。使用CPU时,“需要粒子给出输出,如它们打击的位置”,“只有几千粒子”。使用GPU时,“不需要粒子计算它们的打击位置,笨粒子”,“可以解决百万粒子”。
- GPU模拟粒子仍然可以从蓝图接收信息,但无法输出信息。
- 计算边界模式:边界应该如何计算,如果您看到粒子在稍微看起来时消失,那么这是罪魁祸首。固定边界性能较好。
- 本地/世界空间:本地空间粒子与发射器一起移动,不会留下尾迹,而世界空间粒子会这样做。
- 确定性:粒子是否应该是真正随机的还是基于提供的种子数。
- 插值生成:在粒子移动速度快时生成粒子,例如子弹尾迹可以留下点。
- 事件处理程序:见下文...
1. 发射器阶段
- Spawn:在发射器启动其循环时运行一次。
- Update:每个帧执行一次,发射器处于活动状态。
- 示例模块:
- Spawn Rate:“每秒吐出50个粒子。”
- Spawn Burst Instantaneous:“在启动时立即吐出10个粒子。”
- Emitter State:决定这个特定的发射器是否循环或只运行一次。
2. 粒子阶段
- Spawn:在粒子生成时运行一次。
- Update:每个帧执行一次,针对每个粒子。
- 示例生成模块:
- Initialize Particle:设置粒子的初始颜色、大小和寿命
- Add Velocity:设置粒子的速度和方向
- 示例更新模块:
- Gravity Force:应用重力力
- Solve Forces and Velocity:实际上是根据应用的力来移动粒子
事件处理程序
可以从属性面板添加多个事件处理程序,它们不在默认情况下存在。
例如,如果火箭在天空中升起,死了,我们需要告诉另一个发射器在天空中生成一道烟花。所以我们在火箭的更新粒子阶段中添加了“Generate Death”事件。然后我们点击“+阶段”在属性面板的末尾,添加一个事件处理程序阶段,在此阶段中我们选择火箭→死亡事件。这个阶段现在像一个执行阶段一样,当粒子在火箭发射器中死亡时会执行。然后我们在此阶段中添加一个模块“Receive Death Event”。
- 死亡事件:生成当粒子死亡时的事件
- 位置事件:返回每个粒子的位置
- 冲突事件:生成当粒子碰撞时的事件
1. Sprite 渲染器
- Sprite 的材质可以在此处更改。
- 粒子颜色节点在材质图中用于使用粒子颜色,因此更改颜色参数会影响自定义材质。
- Sprite 的旋转中心可以在此处更改,这有助于在旋转时保持旋转中心。
- SubUV:SubUV 是一种将材质裁切为部分的方法,选择 10x10 将材质裁切为 100 个 UV 框架。可以在粒子更新阶段添加 Animate SubUV 模块来动画 SubUV 框架。
- CutOut:这与 Sprite 的裁切框类似,可以根据 Sprite 的大小裁切框。例如,圆形 Sprite 的默认裁切框是矩形,但如果您传入其纹理并选择 Alpha,则可以将其裁切为圆形。
- 绑定:可以更改 Sprite 的颜色通过颜色参数(粒子命名空间),但如果您想通过其他参数影响它,则可以直接将该变量绑定到 Sprite 的颜色上。
- 排序:排序越高,Sprite 渲染器使用的 z 顺序越高,显示在低排序的 Sprite 渲染器上。
1. Mesh 渲染器
- 可以在此处更改 Mesh。
- 可以在此处更改 Mesh 的材质。
- 有关 Mesh 的更多属性在 Initialize Particles 模块的 Mesh 属性部分中。
1. Ribbon 渲染器
- Ribbon 是线条,连接粒子在它们生成的顺序中。
- 可以在此处更改 Ribbon 的材质。
- Ribbon 可以具有不同形状,如平面、双平面或管状。
1. 光源渲染器
- 可以将光源附加到每个粒子,强度和其他属性可以编辑。
1. 组件渲染器
- 可以渲染其他粒子系统、骨骼网格等。
1. 发射器状态模块
- 位于发射器更新阶段,帮助配置发射器的生命周期和可扩展性。可扩展性类似于裁切。
- 可以在此处更改发射器的生命周期和可扩展性。
1. 初始化粒子模块
- 位于粒子生成阶段,帮助给粒子设置大小、颜色、寿命等属性。
- Sprite UV 模式:此设置更改 Sprite 在屏幕上的外观,可以在 x 或 y 方向翻转 Sprite。
- 例如,一个写着“p”的 Sprite 在 x 方向翻转时看起来像“q”,在 y 方向翻转时看起来像“b”,在两个方向都翻转时看起来像“d”。
1. 粒子状态模块
- 当粒子年龄超过寿命时,告诉引擎杀死粒子以节省性能。
1. Sprite 渲染器
- 默认渲染器
尼加拉系统
- 尼加拉系统包含多个发射器,可以在世界中放置,变量可以在蓝图中编辑。
系统堆栈
-
- 预热时间:以秒为单位,系统计算发射器的 2 秒,然后开始。
- 例如,一个已经燃烧的火焰在游戏开始时为 0 秒。
-
- 系统固定边界:强制所有发射器使用固定边界。
1. 系统阶段
- Spawn:在系统首次创建时运行一次。
- Update:每个帧执行一次,针对整个系统。
- 示例模块:
- System State:设置尼加拉系统时间和循环持续时间。
- User Parameters:设置用户参数
参数
- 在每个模块的详细面板中,有一些属性。每个属性后面有一个下箭头,可以:
-
- 平滑:使属性值平滑变化。
-
- 设置随机范围:使属性值在随机范围内变化。
-
- 从曲线中取值:从曲线中取属性值。
-
- 创建新系统、发射器、粒子或用户参数:创建新系统、发射器、粒子或用户参数。
-
- 使用用户参数值:使用用户参数值。
1. 系统参数
- 可以从任何发射器中访问。
- 示例:如果我们想让两个发射器具有相同的生成速率,可以将其设置为系统参数。
1. 读取/获取值
- 系统参数可以从所有阶段、粒子、发射器和系统中读取。
2. 写入/设置值
- 系统参数可以从系统更新或系统生成阶段中设置。
1. 发射器参数
- 可以从粒子、发射器阶段中读取。
- 示例:如果我们想让两个发射器具有相同的生成速率,可以将其设置为发射器参数。
2. 读取/获取值
- 发射器参数可以从粒子、发射器阶段中读取。
3. 写入/设置值
- 发射器参数只能从发射器更新或发射器生成阶段中设置。
1. 临时参数
- 在计算期间使用,引擎会销毁它们。
- 不需要关心。
1. 读取/获取值
- 临时参数可以从粒子阶段中读取。
2. 写入/设置值
- 临时参数只能从粒子更新或粒子生成阶段中设置。
时钟
-
- 时钟持续时间:仅用于可视化,持续时间可以通过拖动时间条来更改。
-
- 粒子寿命:粒子寿命告诉粒子在生成后多长时间存活。
-
- 系统时间:系统时间告诉尼加拉系统多长时间运行。
- 例如,一个 5 秒的循环系统将在每 5 秒重置所有发射器。
-
- 发射器时间:每个发射器都有自己的时间,发射器可以选择使用系统时间。
尼加拉模块
- 大多数生成模块属于发射器更新阶段中的尼加拉模块。生成爆发可以放在发射器生成阶段中。
1. 生成爆发
- 立即生成指定数量的粒子。
1. 生成速率
- 每秒生成指定数量的粒子。
1. 生成每单位
- 根据距离生成粒子,每单位(厘米)。
1. 生成每帧
- 自然生成粒子。
1. 速度模块
- 添加速度:设置粒子速度和方向。
- 例如,粒子在 x 轴上移动 10 个单位,y 轴上移动 5 个单位。
- 速度模块的旋转坐标空间可以设置为世界/全局,以防止旋转方向影响速度。
1. 力模块
- 重力:应用重力力。
- 阻力:应用阻力力。
- 涡流力:应用涡流力。
- 缩涡力:应用缩涡力。
1. 冲突模块
- 启用冲突。
- 粒子 HasCollided 布尔值在冲突发生时返回 true。
1. 形状位置模块
- 在几何形状(球体、盒子、圆柱体、环、扭环、锥)上生成粒子。
- 可以调整许多参数:仅在表面生成、轴约束、半径分布、自定义曲线图等。
1. 静态网格位置模块
- 在静态网格上直接生成粒子。
- 粒子可以生成在网格表面、顶点或面上。
时钟
-
- 时钟持续时间:仅用于可视化,持续时间可以通过拖动时间条来更改。
-
- 粒子寿命:粒子寿命告诉粒子在生成后多长时间存活。
-
- 系统时间:系统时间告诉尼加拉系统多长时间运行。
- 例如,一个 5 秒的循环系统将在每 5 秒重置所有发射器。
-
- 发射器时间:每个发射器都有自己的时间,发射器可以选择使用系统时间。
评论 (0)