当前位置: 首页 > news >正文

UE5.5 Niagara发射器更新属性

发射器属性

在 Niagara 里,Emitter 负责控制粒子生成的规则和行为。不同的 Emitter 属性决定了如何发射粒子、粒子如何模拟、计算方式等。

发射器

在这里插入图片描述

本地空间(Local Space)

控制粒子是否跟随发射器(Emitter)移动。
✅ 启用(True)→ 粒子位置跟随发射器移动(适用于喷火器🔥、火焰喷射等)
❌ 禁用(False)→ 粒子位置固定在世界空间(适用于烟雾💨、下雨🌧等)

确定性(Determinism)

让粒子模拟结果一致,即相同输入总是产生相同的粒子行为。
✅ 启用 → 粒子系统每次运行都会生成相同的效果
❌ 禁用 → 粒子系统每次运行可能会有随机变化

内插生成(Interpolated Spawning)

在低帧率时,平滑插值粒子生成,避免抖动。
✅ 启用 → 粒子会在两帧之间平滑生成(适用于高精度特效)
❌ 禁用 → 低帧率下,粒子可能会不均匀生成(会有断层)

模拟目标(Sim Target)

决定粒子在哪个处理单元上进行模拟计算。
CPU Sim → 在 CPU 上计算(适用于复杂逻辑粒子)
GPU Sim → 在 GPU 上计算(适用于超大规模粒子,如爆炸💥、烟雾💨)

计算边界模式(Fixed Bounds Mode)

设置粒子系统的边界(Bounds),用于剔除(Culling)优化。
动态Dynamic → 自动计算粒子边界(适用于大范围粒子)
固定Fixed → 手动设置固定边界(适用于小范围粒子)
可编程 → 从外部设置ID

需要固定 ID(Requires Persistent IDs)

为每个粒子分配一个唯一 ID,确保它们在生命周期内保持不变。
✅ 启用 → 适用于 粒子需要保持独特状态(如跟踪单个粒子的运动)
❌ 禁用 → 一般粒子不需要唯一 ID

分配模式(Allocation Mode)

控制粒子如何分配内存。
自动估算(Automatic Estimate) → 系统自动计算需要的最大粒子数,并动态调整。
手动估算(Manual Estimate) → 开发者手动设置 Niagara 估算的最大粒子数,Niagara 仍然会根据情况动态调整。粒子数在运行时变化极多(例如由于用户参数)且发生诸多重新分配现象时,此模式将十分有用。
固定数量(Fixed Allocation) → Niagara 预先分配一个固定的粒子数量,不允许动态调整。

发射器依赖(Emitter Dependencies)

用于指定某个发射器的执行顺序。

要保留的属性(Attributes to Preserve)

指定哪些粒子属性在 Emitter 被禁用时仍然保留。适用于:粒子残留效果(如烟雾慢慢消散),武器轨迹特效(如剑气在空气中残留)

模拟阶段循环(Sim Phase Loop)

允许 Emitter 在模拟阶段循环执行,而不是只运行一次。让粒子系统不断重复某个行为,多阶段粒子(如火焰先变成烟雾)

发射器更新

Emitter State 发射器状态

在这里插入图片描述

Life Cycle 生命周期

在这里插入图片描述

Life Cycle Mode(生命周期模式)
  • System(系统控制)发射器的生命周期由粒子系统(Niagara System)控制,通常在 蓝图(Blueprint)或C++ 里管理。
  • Self(自身控制) 发射器的生命周期由自身逻辑决定,如通过 Loop Behavior(循环模式) 和 Duration(持续时间) 设置。
Inactive Response(发射器停用响应)需要设置在生命周期模式为自身控制时才可以设置

决定 当发射器变为“无效”时如何处理(通常因 距离剔除(Culling)或优化策略 而无效)。

  • Complete(完成)发射器允许当前粒子运行完生命周期,但不会生成新粒子。
  • Kill(立即销毁)立刻清除 所有粒子,发射器也会被移除。
  • Disable Tick(禁用 Tick 计算)发射器不会更新(Tick 停止),但已有粒子仍然渲染。
Loop Behavior(循环模式)
  • Infinite(无限循环)发射器会无限循环,直到被手动停止。选择后可以设置Loop Duration 每过一定时间后,将进行一次粒子发射
  • Once(一次)运行一次,直到完成后停止,在Loop Duration Mode里设置执行一次的发射器持续时间。
  • Multiple (指定次数)比Infinite多了一个次数设置
Loop Duration Mode (循环持续时间模式)

当 Loop Behavior(循环模式) 设置为 Once(只运行一次) 时,会出现 Loop Duration Mode,它决定 发射器的持续时间如何计算。

  • Fixed(固定时长)选择Fixed后,会出现Loop Duration选项用来设置固定持续时间,发射器状态按固定的时间来运行。
  • Infinite(无限时长)发射器会一直运行,直到被手动销毁。
Loop Delay (循环延迟)

Loop Delay 控制 发射器在每次循环开始前的延迟时间,用于在循环播放时引入间隔,使特效不会立即重新开始,从而创造更自然的效果。适用于 Loop Behavior 设为 Count 或 Infinite 时,在 每次循环之间添加时间间隔。当 Loop Behavior 设为 Once 时,不会生效。如果有多个发射器,可以使用 Loop Delay 让它们错开时间播放。

Scalability(扩展)

在这里插入图片描述

Scalability Mode(可扩展性模式)

决定 发射器如何响应 Niagara System 的 LOD(Level of Detail)优化

  • System 受 Niagara System 级别 LOD 控制(推荐用于大多数环境特效)。
  • Self 独立管理自己的 LOD,不受 Niagara System 影响(适用于关键视觉特效,如魔法、火焰),在设置为Self后,将开启自定义设置的相关属性,以下属性会在设置为Self后出现。
  • Enable Distance Culling(启用距离剔除)控制发射器是否会在超出指定距离后自动关闭,从而减少不必要的计算,提高性能。当发射器的距离超过“Max Distance”时,该发射器会被禁用(不再更新 & 渲染)。开启此选项后,可以设置MinDistance(最小距离)和MaxDistance(最大距离)。
  • Spawn Count Scale(生成数量缩放)主要用于 动态调整粒子发射器的生成数量,以适应不同的性能需求或游戏场景,可以通过Spawn Count Scale 来整体调整粒子生成数量,并通过Spawn Count Scale By Distance实现通过和相机的距离调整粒子生成数量。
  • Enable Visibility Culling(启用可见性剔除)Enable Visibility Culling 主要用于 优化 Niagara 粒子在屏幕外的计算,可以有效减少不必要的 GPU 和 CPU 负担,提高游戏性能。
  • Visibility Cull Response(可见性剔除响应)Visibility Cull Response 控制当 Niagara 发射器被可见性剔除时(即屏幕外不可见),发射器如何响应。它的参数有:
选项行为适用场景
Awaken发射器保持激活状态,不受剔除影响,粒子继续运行需要在屏幕外仍持续播放的效果(如烟雾、火焰)
Sleep and Let Particles Finish发射器进入休眠,但粒子继续自然消亡需要自然衰减的粒子(如持续燃烧的火焰、烟雾)
Sleep and Clear Particles发射器进入休眠,所有粒子立即消失,但不会销毁发射器适用于屏幕外不需要存在的短时粒子(如 UI 特效)
Kill Immediately发射器和粒子立即销毁,离开屏幕后不会恢复适用于一次性粒子,如爆炸、子弹轨迹
Kill After Particles Finish发射器不再生成新粒子,但已有粒子会继续运行直到生命周期结束,然后销毁适用于需要“自然结束”的效果,如火焰、能量残留
  • Reset Age On Awaken(在唤醒时重置存在时间)控制发射器从休眠状态恢复时,是否重置生命周期。只有在开启Enable Visibility Culling才会显示此属性。如果你开启后,发射器从屏幕外重新进入到屏幕内时,将会重置生命周期,适用于爆炸,不适用于长时间显示的特效,比如燃烧的火焰,天气特效。

Spawn Burst Instantaneous(瞬时爆发生成)

当启用 Spawn Burst Instantaneous 时,Emitter 会在特定时间点一次性生成一批粒子,而不是逐渐生成。

  • Spawn Count 控制 一次性生成多少粒子,数值越大,粒子密度越高。
  • Spawn Time(生成时间)用于控制粒子在 Emitter 生命周期内的生成时间点。
  • Spawn Probability(生成概率)0 - 1 之间,控制每次爆发时粒子是否一定会生成。
  • Loop Count Limit(循环次数限制)设置多次生成粒子。

相关文章:

  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-UART应用开发-UART驱动API接口介绍
  • 四层协议攻防手册:从SYN Flood到UDP反射的深度防御
  • 从前端视角理解消息队列:核心问题与实战指南
  • cesium1.126显示等高线
  • 深度学习基础:线性代数本质2——线性组合、张成的空间与基
  • Linux进程管理15 - CFS调度器2 - 数据结构关系
  • CAMEL 学习笔记一
  • 深入解析 RAG:检索增强生成的原理与应用
  • 【NLP 34、实践 ⑧ 基于faq知识库和文本匹配算法进行意图识别】
  • 如何进行项目风险评估
  • 游戏引擎学习第151天
  • 罗德与施瓦茨SMCV100B,不同技术的多种应用矢量信号发生器
  • AI智能眼镜主控芯片:技术演进与产业生态的深度解析
  • ubuntu20不同版本的cudnn切换
  • golang 静态库 Undefined symbol: __mingw_vfprintf
  • C++蓝桥杯基础篇(十一)
  • 【从零开始学习计算机科学】操作系统(八)IO管理
  • 搜广推校招面经四十五
  • Spring (十)事务
  • Spring Boot中利用Redis解决接口幂等性问题
  • 阿坝州委书记徐芝文已任四川省政府党组成员
  • Manus向全球用户开放注册
  • 伊美第四轮核问题谈判开始
  • 中拉论坛第四届部长级会议将举行,外交部介绍情况
  • 时代中国控股:前4个月销售额18.1亿元,境外债重组协议押后聆讯至5月底
  • 韩德洙成为韩国执政党总统大选候选人