Niagara内容示例 4.1 Play Audio Per Paticle

在这里插入图片描述

粒子效果

中间的圆环粒子旋转,同时伴有音效,音效和旋转速度有着一定的关联。同时会不时得发射出一些sprite粒子,有红蓝两种颜色。红色粒子不受重力,但是受到明显的阻力影响,当期运动速度小到一定程度后(或者和速度没有关系而是一段时间后),会爆裂成更多更细小的粒子,并伴有爆裂的音效(参考烟花);蓝色粒子受重力,并且会与其他模型产生碰撞,碰撞后碎裂成功更多更细小的粒子,并伴有碎裂的音效。

Niagara蓝图部分

这是我们至今为止遇到的发射器(Emitter)最多的一个Niagara系统,但是无须担心,在我们的拆解下,一切都会清晰明了起来。

在总览蓝图的时候,我们需要知道从粒子播放音频现在是只支持CPU粒子(当然,其实对应到GPU粒子上我们也会有响应的应对解决办法,但是目前为止这不重要)。

蓝图中有总共5个Emitter,其中每一竖列可以看作是服务于同一系粒子的发射器:最左侧的竖列负责红色粒子及其碎裂后的粒子;中间的竖列负责蓝色粒子及其碎裂后的粒子;最右侧的负责旋转的圆环。有了这些的概念后,我们进入下面的实现分析。(这里需要吐槽一句UE5中Niagara所有脚本模块都大写,看得我人有点晕)
在这里插入图片描述

效果实现分析

红色Sprite粒子——初速度,阻力,减速,爆裂,音效,红色子Sprite粒子。

Particle Spawn中的Add Velocity in Cone赋予初速度,Particle Update里的Drag赋予阻力。

Play Audio负责播放音效:Audio Player负责拿到待播放的音频,然后通过PlayAudio这个布尔量来控制播放。这里传了一个参数Data Instance.Alive,即粒子是否还“活着”,我们希望粒子消亡时候播放爆裂的音频,所以需要做一个取反操作(加一个负号)。此外Pitch和Volume是两个比较重要调控音频播放属性的参数,分别控制音调和大小(关于声音我并不是非常专业,大概知道他们分别控制波的频率和振幅,从而影响声音的外在表现)。

在这里插入图片描述

然后,红色粒子爆裂成子粒子是由事件系统完成——Generate Death Event。然后由接受到这个事件的Emitter(接收到的还有位置location等信息),其负责爆裂效果的子粒子的生成。

在这里插入图片描述

蓝色Sprite粒子——初速度,重力,碰撞,爆裂,蓝色子Sprite粒子。

与红色粒子类似,所需要注意的不同点,就是蓝色粒子中的碰撞这一要素,很容易想到我们之前用过的Collision。这里PlayAudio里采用了CollisionValid参数,这个参数是在Collsion模块被写入,所以最好Play Audio模块要放在Collision模块的下方,否则的话会有落后一帧的误差。

这里依旧采用了Generate Death Event,但是粒子的碰撞并不会把粒子撞死,怎么办?当然我们可以用Generate Collision Event来传输事件,但是此时我们就是希望粒子在碰撞后就死亡,这里在Collision里,有Age Colliding Particles,即编辑碰撞的粒子的年龄,通过Advanced Aging Rate来调控粒子需要“加速多长的事件”,这里填了1000,就是粒子瞬间老去了1000岁,可不就立马原地去世嘛。

在这里插入图片描述

圆环Mesh粒子——旋转,音效速度和旋转速度

首先在Spawn阶段拿到播放的音频。

在这里插入图片描述

圆环旋转的实现,主要是使用了Mesh Rotation Force以及相应的解算器Solve Rotational Forces and Velocity。

在这里插入图片描述

此时实现了运动,但是还没有声音。只是想把音频播放出来很容易,Play Persistent Audio即是。并且后面的Update Persistent Audio Volume和Update Persistent Audio Pitch就是用来分别调控音频的两项属性的。可以注意到,他们都使用了一个名为Remapped Total Energy,这是前面Find Kinetic and Potential Energy写入的一个0到1之间的值,目的是描述动能,然后通过这个动能来动态改变音频的属性,如此便实现了音频和动能(速度)的关联。
在这里插入图片描述

总结

音频的这部分功能都还属于实验阶段,并且仅限于CPU粒子,但是其玩法还是比较多样的。同时,在这个例子中已经有一点迹象,即随着学习到的知识和技术点的增加,实现同一个功能或者效果其实可以有多种的方案,随着系统越来越复杂,评价实现方案的性能将是一个越来越重要的问题。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Claude的羽毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值