粒子效果
粒子箭头(Mesh)在以随机的初始方向在球面上运动,同时还有粒子圆片(Sprite)随之运动,但是位置却和箭头模型有一定的偏差。
Niagara蓝图部分
文本部分对渲染器的绑定配置界面(Binding)进行了进一步的说明。主要意思是这些参数的绑定虽然有默认值,但是并不是不能修改和配置的。我们可以根据需要对不同的渲染器、不同的参数使用不同的配置,比如说本例中使用了自己设定的属性参数来作为Position Binding。
效果实现分析
球面上的运动——以球面为例子生成位置,再加一个涡流速度。速度里,大小旋转的轴都赋予了一定的随机性。
在Sprite Renderer里的绑定里,Position Binding使用了自定的参数RenderOffset。让我们去看一下新的参数是如何来定义位置的。
RenderOffset计算公式提取:
P
a
r
t
i
c
l
e
s
.
P
o
s
i
t
i
o
n
+
r
o
t
a
t
e
(
′
′
R
a
n
d
o
m
V
e
c
t
o
r
′
′
,
111
,
131
,
100
)
Particles.Position+rotate(''Random Vector'',111,131,100)
Particles.Position+rotate(′′RandomVector′′,111,131,100)
相当于在原有粒子位置的基础上做一个随机的偏移。最后再把这个位置通过上面的绑定定义到sprite粒子位置属性里,实现了sprite粒子和mesh粒子的偏移。
总结
在有了前面的基础后,理解这篇的粒子效果并不是很难,其实简单来说就还是要明确属性数据的流动情况,Particle.Position之所以能够控制粒子位置,并不是在代码底层写死了,而是将数据流动的绑定暴露出来,让用户能够自己去进行绑定。自然而然,我们想在控制粒子位置的位置绑定上其他的属性参数的话,就能通过通过修改这个引用来实现。