粒子效果
场景中只有一个粒子,其材质呈现出以模拟位置为中心的颜色渐变效果。
Niagara蓝图
本例的粒子源是发射器,所以可以看到存在操作的阶段主要是EmitterSpawn和EmitterUpdate。其内部的操作主要是对几个参数进行配置。
本例设置的目的是展现从Niagara系统传递曲线到材质(Sprite Material)中,这里也指出了目前该特性只支持Sprite Renderer,因为本质上还是传递参数到材质中,对于其他几个渲染器应该是存在一些优化方面的问题。
效果实现分析
先从配置的几个参数入手:Position和SpriteSize都是常规设置,SpriteSize的设置在本例中放在Spawn或者是Update里效果是相同的。CurveToExport是一个新添加的参数属性,其类型是Curve for Colors,其中我们可以自定义一个颜色曲线。
勾选Expose Curve to Material来允许曲线的传递。
既然涉及到参数传递,我们需要到渲染器中的参数绑定去检查一下。这里将CurveToExport作为一个Niagara变量与材质中名字为“NiagaraCurve”的参数进行了绑定。
在材质中,我们找到NiagaraCurve,是一个Texture Parameter。通过TextureSample进行采样输出。
我们把上图简化一下。
得到的输出是:
可见,这个和什么相像呢?这中间的转换,其实就是时间轴0到1对应了UV中的U。
至于旋转的效果,则是通过将UV进行旋转,是通过下面的节点实现的。
总结
因为我的思维惯性,让我认为曲线总是跟时间挂钩,所以在前期思考的时候,无法建立起曲线和纹理的对应转换关系。但是其实曲线的本质还是两个维度上的唯一的值,这两个维度的使用是依据使用者来制定的,很多默认情况下我们会将横坐标与时间绑定,来实现一些动态的效果。但是不应该因为这个而局限我们对于曲线本质的掌握和使用。