【转载】Niagara 条带(Ribbon)粒子实现拖尾&流星

1,534 阅读3分钟

原文链接:《Niagara 条带粒子 Part1 拖尾&流星》 | 作者:帆起

效果图

juejuejue.gif

第一部分:分析

Niagara 部分我们需要使用 Ribbon(条带),Render 中修改为 Ribbon 类型即可。

移动位置这里由 Spline(样条线)提供。

Ribbon 是粒子按照顺序排列连接实现的。

有个关键词:顺序,英文:Order,划重点。

Ribbon 的效果更新和实现都跟这个变量相关。

举个例子:生成 10 个Particle,默认的,Ribbon 会根据粒子的生成先后设置 Order 值,然后连接起来。

第二部分:属性详解

属性:RibbonLinkOrder

  • 官方备注:Explicit order for linking particles within a ribbon Particle of the same ribbon id will be connected into a ribbon in incrementing order of this attribute value。

  • 翻译:明确粒子在 Ribbon 中的连接顺序。所有具有相同 RibbonID 的粒子会按照这个值递增连成Ribbon。

属性: RibbonLinkID

  • 官方备注: Sets the ribbon id for a particle, Particles with the same ribbon id will be connected into a ribbon

  • 翻译:给单个粒子设置 条带 ID ,具有相同 条带 ID 的粒子会连成一个条带.( 默认的 条带ID 在 Emmitter 里面是 0, 这里不需要分出很多条 Ribbon 所以就保持默认值即可)

第三部分:实现

这个效果实现起来究极简单,

  1. 设置 Ribbon 渲染

材质, 直接给个颜色也行, 要想有一点渐变透明就做个灰度图.

  1. 把默认模板有关速度的都删除

最后在 Update 中添加 RibbonLinkOrder. 然后将 Age 值给 Order , 这样粒子链接顺序就取决于粒子的年龄, 实际表现就是粒子系统本身在移动的时候后发出的粒子会接到 Ribbon 上.这样就能产生拖尾效果.

  1. 修改发射效果, 这里我们把发射周期改小, 生命值改成固定的值(同等移动速度下决定拖尾长度), 发射方式改成 burst

  1. Spline 控制 Niagara 移动. 蓝图是这样, TimeLinefloat 0~1.然后 Map 给样条线获得样条线的长度.根据长度获得位置设置给 Niagara , 这样就能沿着样条线移动了.

image.png

---------------------分隔符----------------------

接下来实现流星效果, 粒子+拖尾.

这里需要用到的是 Event, 事件生成和接收. 和老粒子系统用法基本一样,一个 Emitter 发出事件, 另一个接收.还是两类事件 Collision 以及 Spawn 事件

步骤

新建一个粒子发射器, 保持默认. 新建一个 Niagara 系统, 然后将之前做的拖尾和新的粒子发射器一起添加到系统中

新粒子部分: 这里新建的粒子发射器将负责提供位置, Update 下面添加 GenerateLocationEvent, 发射频率改高点, 决定条带平滑度.

同时需要勾选

保持固定 ID , 这样在生成 Location 事件的时候, 会把自生的 ID 给发送过去, 成为 RibbonID. 表现来看就是每个粒子后面都跟着一条 Ribbon

条带部分: 自然是接收位置消息了, 点击加号添加事件处理, 然后将 Source 改成 LocationEvent(如果之前的粒子没有生成事件模块, 这里是没有选项的)

执行模式改成 Spawned Particles, SpawnNumber 改成 1

然后添加 ReceiveLocation 模块,和 Generate 对应.

现在你应该获得这样的情况

接下来要做的事情很简单, 调整粒子的发射情况即可. 比如将 Spawn 的 Velocity 去掉增大生成范围

再继续调整颜色, Ribbon 宽度等属性, 简单的流星效果就完成了.

END