在一些游戏中经常会出现根据模型顶点位置发射粒子的情况,这次就来实现一下该效果:
1.基础创建操作
首先从空粒子发射器开始创建,右键NiagaraSystem->Create empty system,打开粒子系统后再右键Add empty emitter:
加入发射器必须的模块,注意发射器使用Spawn Burst Instantaneous,因为是只发射一次:
2.粒子设置(上)
上一篇讲过粒子属性:https://blog.csdn.net/grayrail/article/details/130846152的一些逻辑,可以看一下。
我们使用自定义Module和自定义属性配合,实现顶点发射效果。
首先在Particle Attributes中给粒子加一个Index int类型字段,点击+号,Make New然后选择int32即可:
该操作相当于每个粒子对象都多了这个参数。
随后对Index参数进行初始化,在Particle Spawn处点击+号,查找Set相关操作,选择Set new or existing parameter directly:
将参数Index拖入Set操作模块:
点击右侧下拉箭头,选择Random Range Int,这样可以给用于顶点发射的粒子初始索引设置一个随机值,后续就可以在随机顶点发射了:
最大值设置10000即可,也可根据模型顶点数进行设置:
继续点击Particle Spawn右侧+号,搜索关键子Module,添加自定义模块:
点进自定义模块后,在输入处新增int形变量以便传入索引,新增SkeletalMesh变量以便采样,在输出处新增Position变量以更改粒子位置:
添加节点Get Skinned Vertex Data WS,采样蒙皮顶点位置,并连接相应引脚:
模块操作完成后,点击Apply: