Niagara—— 自定义Module

目录

创建自定义模块

Parameters

User Parameters

Edit Hierarchy

Local Parameters

Transformation Space

Module Outputs

Set Parameter Directly

Dynamic Module Inputs

Module Notes

Data Interfaces

Hide Fields

Static Switches

Share Scratch Modules 

Library Exposure

自定义模块注意事项


        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.PositionINPUT.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;经测试只是显示问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值