“Cascade粒子系统”中 “模块” 的角色将由Niagara Module Script扮演。但结构上存在区别:
- Niagara Module Script 不仅可以加入到“发射器”中,还可以加入到“系统”中。
- Niagara Module Script 将明确属于一个阶段。
例如,可以看到下面几个阶段:

系统
生成
阶段系统
更新
阶段发射器
生成
阶段发射器
更新
阶段粒子
生成
阶段粒子
更新
阶段粒子
事件
阶段
一个和“Cascade粒子系统”重要的区别是:
这里的Niagara Module Script实际是引用一种Asset


而打开这个Asset中,有一个类似蓝图的可视化编辑脚本:

例如这个Color
模块。它有三个输入:Color
、Scale Color
、Scale Alpha
。这些输入参数可以在“Niagara系统编辑器”中编辑。而在Color
模块的编辑器里,将可以看到它具体的行为:
它将Color
拆分为RGB
部分和alpha
部分。其中RGB
部分将乘算上Scale Color
;而Alpha
部分将乘算上Scale Alpha
和AlphaScale
(发射器的参数)。最终颜色的结果将被设置到Color
上(这里的Color是一个粒子的参数,不是模块的名字)
“Cascade粒子系统模块”是用C++写的,只能由程序员编辑并重新编译才可以使用。而Niagara Module Script则可以用上面这种方式直接用可视化脚本的方式来编辑。体现了Niagara一个重要的设计目标:“让美术师可以直接全权掌控效果而不必求助于程序员”。
此外,值得一提的是:Niagara Module Script的C++类是UNiagaraScript
,而有另外两种Asset也是这个C++类。
也就是说总共有三种Asset都是UNiagaraScript
类:

他们的区别是Usage(作用)
不一样,在UNiagaraScript
中:
UPROPERTY(AssetRegistrySearchable)
ENiagaraScriptUsage Usage;
如果打开Asset,可以看到他们的模块使用位掩码
不一样,例如Niagara Module Script将打开模块
这一项:

其余的Script的作用待后续观察。
刚才研究Color
模块时看到,它最后的行为其实就是为了设置一个参数:

需要注意的是,参数都有个“命名空间”。例如Color
的命名空间就是粒子
。
命名空间的层级从上至下依次是:
在处于相对下层的情境中可以使用相对上层的参数,但只能修改自己这个层级的参数。
例如:
MyTestVar
是一个系统
命名空间的参数。

如果尝试在“Niagara系统”中修改这个参数,是可以的:

但如果尝试在“Niagara发射器”修改这个参数,就会被禁止:

关于参数还有更多需要学习的东西,待后续研究。
目标在之前的博客中我观察了Cascade粒子系统中的基本概念,相较于前者,Niagara特效系统拥有更多的概念。但考虑到Niagara的主要目标就是:“让美术师可以直接全权掌控效果而不必求助于程序员”,因此复杂度更高是很自然的。本篇的目标是通过:参考《Niagara关键概念 | Unreal Engine Documentation》等官方文档、简单观察源代码、进行些简单的实践,来对Niagara特效系统中的以下概念有更深的了解:Niagara系统Niagara系统“Niagara系统” 是一
Niagara Framework ® 介绍
Tridium 是一家全球性的软件及技术服务公司,致力于开发通用软件框架来解决智能设备管理相关的各种问
题。软件框架是为用户更容易开发产品而提供的一种平台技术。Niagara Framework ®( 简称 Niagara) 是基
于 Java 为用户提供的一种极其开放式的软件架构,可以集成各种设备和系统形成统一平台,通过 Internet
使用标准 Web 浏览器进行实时控制和管理。
目前全球 70 亿世界人口,一半以上 (40 亿 ) 人拥有移动手机,未来可以智能联接的设备接近 600 亿。而
这些设备又是分布在不同垂直领域、网络和协议之间,这种繁杂程度实在超乎想象。如何将这些智能设备有
机连接起来,相互通信,并可以很好的与上层企业级管理系统和门户有机一体化融合,挑战性太大了。
而 Tridium 却让此变得可能。拥有专利的 Niagara Framework ® 是 Tridium 的核心技术,它提供一个完
整的智能的企业集成平台,用于开发、集成、连接和管理普遍存在的各种协议。此平台可以接入任何协议、
任何设备、任何网络,并轻松与企业管理系统进行一体化应用,为企业创造商业价值。
Tridium 的产品线设计基于 IT/IP 和企业服务平台基础架构之上,提供更大的灵活性、可扩展性和移植性,
并兼容其它创新技术的独特功能。Tridium 的开放式技术已经被系统集成商、OEM 设备制造商和经销商等
合作伙伴广泛应用,以构建自己的产品或纳入现有的产品平台中。这使得合作伙伴有更多的灵活性,满足最
终用户更独特个性化的需求。
总结一下就是照抄,参考链接来自:
Part1: SG
Niagara fire tutorial in Unreal Engine 4 (UE4 Fire niagara tutorial)
Part2: SG
Niagara Smoke tutorial in Unreal Engine 4 (UE4 smoke niagara tutorial)
Part3: SG
Niagara Explosion tutorial in Unreal
黏菌是一种真菌,可以智能地生长以收集尽可能多的食物。当使用基于代理的粒子模拟来模拟他们的运动时,它会生成有趣的动画。几位艺术家已经在不同的平台上实现了这个算法,但在这个教程里,我们将使用虚幻引擎 4的 Niagara 来实现黏菌的运动模拟。
黏菌模拟需要粒子本身的密度和食物来源。我希望有一种方法可以获取某些区域的粒子密度,但是 Niagara 目前不支持这一点。因此,我找到了通过在同一坐标系中捕获整个粒子来找到密度值的方法,因此它可以用作位置纹理。此捕获纹理的分辨率设置为低,以模仿原始论文中讨论的
2. 在Niagara系统编辑器中,单击左侧的“Content Library”选项卡。
3. 在“Content Library”中,选择“Niagara Examples”文件夹。
4. 在“Niagara Examples”文件夹中,选择“Ribbons”文件夹。
5. 在“Ribbons”文件夹中,选择“Ribbons_Smoke”文件夹。
6. 在“Ribbons_Smoke”文件夹中,选择“Ribbons_Smoke_01”Niagara系统。
7. 打开“Ribbons_Smoke_01”Niagara系统。
8. 在Niagara系统编辑器中,单击左侧的“Emitter”选项卡。
9. 在“Emitter”选项卡中,您将看到一个名为“Ribbon Emitter”的发射器。单击它以打开它。
10. 现在,您可以在发射器设置中更改ribbon的属性,例如ribbon的长度、宽度、颜色等。
11. 最后,您可以在Niagara系统编辑器中预览和测试ribbon发射器,并将其导入到您的虚幻4项目中。