前言
当前成果:
主要分析:
- 外部精灵渲染器,内部网格渲染器。
- 主要力量有,涡力,和一个点吸引力,还有个涡速度。
事件
不同系统之间的交互通过事件进行交互,A系统添加事件,B系统侦听事件进行触发。
在Unreal Engine的Niagara系统中,不同的粒子系统可以通过事件进行交互。这些事件可以用来触发或影响其他系统的行为。例如,当一个粒子死亡时,可以触发另一个粒子系统的行为。
一般来说,当你需要在粒子系统之间创建复杂的交互或反应链时,你可能会用到这种交互。例如,你可能想要在一个粒子爆炸时触发另一个粒子系统,或者你可能想要在一个粒子移动到特定位置时触发另一个粒子系统。
Unreal Engine自带的事件包括但不限于以下几种:
- Spawn:当一个新的粒子生成时触发。
- Death:当一个粒子死亡时触发。
- Collision:当一个粒子与另一个物体碰撞时触发。
你可以在Niagara模块中创建和配置这些事件,以实现你需要的粒子系统交互。
使用此必须得是在CPU的情况之下进行。
数据
将数据从Niagara写入材质,还能利用蓝图写入Niagara或者材质,反之则不可以。
如何进行控制写入呢?在材质中通过这个叫做动态参数的一个节点,这个节点可以用来进行将材质中的参数替换为动态更改,然后在Niagara系统中的粒子更新阶段添加动态参数。
蓝图中的函数和事件
函数:
-
函数适合在需要返回值或者需要执行一系列操作并且不需要等待的情况下使用。例如,你可能有一个函数用于计算并返回角色的健康值。
-
函数是同步的,也就是说,当你调用一个函数时,它会立即执行并返回结果。函数不能被延迟或者中断。
-
函数可以被其他函数或事件调用,并且可以有返回值
事件:
-
事件适合在需要响应某个特定情况或者需要在一段时间后执行某个操作的情况下使用。例如,你可能有一个事件在角色的健康值降到0时被触发。
-
事件是异步的,也就是说,当你触发一个事件时,它可能不会立即执行。事件可以被延迟或者中断。
-
事件不能被其他函数调用,也不能有返回值。但是,事件可以触发其他事件或函数。
niagara自定义模块
在使用自定义模块的时候,首先应在确定在哪个阶段创建对应的暂存模块。当创建完毕对应的自定义模块的时候,此处的映射一般是在这个参数栏目对应的这些参数的映射。
根据相应的命名空间进行划分分为:
- system
- emitter
- particles
- input
- output
- stackcontext
- transient
PS.为啥要分这些命名空间呢?说白了就是不同命名空间可能有相同的变量名,类似于一个函数的局部变量。