目录
Scratch pad modules使用可视化脚本图表来编写,可在Niagara发射器和Niagara系统资产里创建,不会在内容浏览器中作为独立资产出现;
Scratch pad modules可导出为Niagara module script资产,是内容浏览器里完全独立的资源;

创建自定义模块
创建新的Scratch pad module后,在发射器堆栈内和Local Modules均会显现新的模块,且在System Overview的右侧出现新模块的Tab;

类似UE其他图表,模块数据也是从左向右流动;数据从红色 Input Map 开始,流经白色 Niagara Parameter Map 线,最终到达绿色 Output Module 节点;

参数名中彩色部分指定的是数据命名空间,如Particles.Position、INPUT.Vector;默认Add节点的引脚是深蓝色,表明其是Niagara Numeric通配类型,可接收positions, vectors, floats, and integers,颜色会根据连接的类型而变化;


Module Usage Bitmask可设置模块只在特定的发射器环境中可见和使用;位于Particle Spawn组内的模块仅在粒子生成时执行,位于Particle Update组内的模块会在粒子每帧执行;

Parameters

Parameters标签内列出所有系统内的参数及输入:
- User Exposed,默认为空,暴露给用户的只读参数,可外部关卡、蓝图、c++修改;与User Parameters标签内相同;无法编辑;
- System Attributes,被写入到系统内的持久属性,可被任何地方读取;
- Emitter Attributes,被写入到发射器内的持久属性,可被发射器和粒子读取;
- Particle Attributes,被写入到粒子内的持久属性,可被粒子读取;
- Module Outputs,可对阶段中其他模块有用的瞬态值,不会在帧与帧之间或阶段之间持续存在;
- Engine Provided,引擎提供的只读值;
- Stack Context Sensitive,默认为空,栈上下文敏感,可被任何模块读写,在帧间或阶段间持久存在;
- Stage Transients,可被任何模块读写的瞬态值,在帧间或阶段间不持久存在;
-
Niagara Parameter Collection,从Niagara Parameter Collection资产读取的只读值;可引用Material Parameter Collection里的参数;
每个参数或输入的右侧显示了该参数的读写次数;即使在模块中删除,参数仍会保留在参数列表,如不需要可手动删除;

User Parameters
User parameters可在无需反复打开和编辑Niagara系统或模块图表的情况下调整设置,以加速工作流程;当将Niagara系统放置在关卡内时,即可在Detail面板显示;每当用户参数被调整时,参数会被推送到对应的执行上下文,且同一上下文内的所有参数都会被更新,会增加成本;
由于性能考虑,通常不建议将Data Interface作为用户参数;引擎会为每个实例复制Data Interface,因为它们是 UObject,所以会被垃圾回收;Data Interface的主要成本是在创建实例时,创建后,它的开销和堆栈中其他地方的开销是一样的;

User Parameters标签列出所有系统内用户参数,与Parameters标签内User Exposed选项内相同;在进入模块图表内时,Parameters标签会被过滤为当前模块内输入的参数,可对输入参数重命名;

可将Module Input提升为User parameters;

Edit Hierarchy
在Edit Hierarchy窗口中,可对输入参数排序、添加提示和管理依赖关系;



Local Parameters
在制作复杂模块时,可利用局部参数来保持模块的有序且易读;局部参数仅存在于模块中,且不会在帧间持久存在;通常用于临时值存储;利用多个 Map Gets 和 Map Sets 分离图表是一种常见且普遍推荐的方法;



添加注释

注,Alt+左键 断开节点连接;Ctrl+左键 移动节点连接;
Transformation Space
三种类型的变换空间:
- Simulation,依据发射器Properties选项设置的 local 或 world 空间计算;
- World,在 world 空间计算;
- Local,在 Local 空间计算;

Module Outputs
Module Outputs可为用户提供额外的数据,由于数据是从上向下计算的,Module Outputs数据仅对下面模块有效;

Set Parameter Directly


Dynamic Module Inputs



Module Notes
每个模块都可有一个Note,在模块Detail面板的顶部会显示 Module Usage Notes,可在标注该模块的工作原理,即各种怪癖及依赖;

在模块的编辑图表内,点击背景空白处, Details面板会显示模块的整体信息,在Note Message处设置该模块的Note;

可隐藏Notes或其他Issues/Warning,如直接点击Dismiss,此外通过Undismiss All Stack Issues还可重新显示;


Data Interfaces
一些特殊数据类型会从编辑器中获取并传递给Niagara,以引导或影响模拟;


Hide Fields
勾选 Advanced Display,可隐藏不希望用户更改的字段;


Static Switches
Static Switches控制脚本的流动方向,默认是Boolean类型,还有其他许多类型;



Share Scratch Modules
可将scratch module导出为脚本资产,以分享给其他Niagara系统或团队成员;

Library Exposure
Niagara module script资产
- 默认是 Unexposed,在菜单和搜索中都不会出现,仅当不勾选Library Only时才显现;
-
Exposed,会在默认勾选Library Only时显现;
-
Hidden,对用户不可见,无论是否勾选Library Only;


自定义模块注意事项
直接使用原变量计算,显示的结果是Velocity和Pre_Velocity一样;借助一个局部变量后,Velocity和Pre_Velocity会正确显示相差1;经测试只是显示问题;




6789

被折叠的 条评论
为什么被折叠?



