思路:
先求出单个的段数,然后用单个的段数去乘上粒子的ID从而得出每个粒子的偏移值
模块思路计算原理如图:
模块制作步骤
需要的参数以及属性:
粒子ID (UniqueID)
发射方向 (创建参数Vector→名字改为Dir)
方向:无论需要粒子需要往那个方向偏移,最后都是需要方向与最终的结果进行相乘
发射距离 (创建参数Float→名字修改为Distance)
距离:
发射数量 (创建参数Float→名字修改为Count)
模块编写连接:
1.在Particle Spawn模块下创建Module并打开
生成粒子位置的编写以及计算方法
2.粒子的数量乘以单段的距离就等于总距离,目前总距离和粒子数量是我们自己设置的,是已知的,所以单段的距离就是用一个除法,用总距离除以段数,刚才我们曾讲过段数的数量就是总的点数减去1,然后得到单段的距离之后,再乘上粒子的ID。
3.将计算出来的结果输出为Position属性
设置Emitter层级相关生成粒子的参数
4.创建用户参数将参数关联起来
5.但目前粒子是一次性全部出来的,而不是连续出现的,所以我们不能使用burst进行一次性发射粒子,而是需要使用rate进行持续发射粒子
(持续发射Rate的发射数量应该是多少可以简单的计算下)
①:首先将生命改为1
②:然后给发射器一个rate节点,发射数量改为1
③:把Emitter State节点的发射循环模式改为一次性发射,然后观察粒子会发射多少个
现在可以看到,现在是一秒钟发射一个,循环时长为1。这种情况下并没有粒子发射出来,所以我们把粒子Rate发射量改为2,再进行查看时;
当我们把发射率改为2后,会发现粒子系统会发射1个粒子
所以,当我们需要把发射率最低改为2,才能满足粒子发射器时长循环为1的情况下发射出1个粒子
但是现在不管我们把发射率设置为10还是5,最终视图中出现的粒子永远会比我们设置的发射率少一个粒子
6.现在需要把发射率与数量距离以及时间三个同时进行关联
首先我们需要先使用我们的数量除以时间,因为目前已知发射出的粒子数量会比发射率少一个粒子生成,所以我们还需要在结果上进行+1,从而来达到发射数量与生成的数量相同,计算如图:
7.到目前为止,发射方面的操作已经完成设置,接下来需要设置粒子的尺寸大小
粒子尺寸大小设置:
8.首先让我们将渲染类型改为Mesh以方便观察模型大小变化,然后继续进入我们的模块
9.首先使用ID除以我们设置的粒子数量,从而得到一个从小到大的大小变化。再对得到的结果乘以一个整体的缩放,最后将我们最终得到的结果加到发射器原本的Scale属性中并输出。
结果如图:
10.接下来我们还需要加两个小参数,一个是加一个单独的对每个轴向不同的缩放操作空间,同时还需要添加一个粒子的位置的偏移,完成后进行输出
至此我们需要的整个Module都已经制作完成了!!!
最终效果预览:
我们最后可以将渲染模式替换为Component模式
渲染模式修改方式如图
效果预览:
Thanks!~