Choose your operating system:
Windows
macOS
Linux
当你希望在Niagara中播放音效时,例如一个颗粒与其他东西碰撞时的模拟声音,有多种方法可以直接在Niagara中达成此目的。
每种方法都有自己的优缺点。以下是每种方法的简要概述。
你可以在 内容示例项目 中找到这些方法的示例: Epic Games启动程序:虚幻引擎 > 学习 > 引擎功能示例 > 内容示例(Epic Games Launcher: Unreal Engine > Learn > Engine Feature Samples > Content Examples) 。
使用播放音频模块
对于 一次性音效(one-shot sound effect) , 播放音频(Play Audio) 模块是从Niagara播放音效的最简单方法。它适用于事件驱动型效果,例如对颗粒碰撞做出的反应。这也是成本最低的解决方案。
-
将 播放音频(Play Audio) 模块添加到你的发射器。
-
在 要播放的音效(Sound to Play) 中,从下拉列表选择一个音效。
-
设置 播放音频(PlayAudio) 条件。
这将使用为音高、音量等配置的值来触发一次性的即用即弃效果。音效一旦触发就无法更改或停止,并且即使颗粒模拟停止,音效也会继续播放。
播放音频模块 |
|
---|---|
优点(Pros) |
缺点(Cons) |
|
|
|
|
音频模块示例
-
下载 内容示例项目 ,然后将其打开。
-
在内容浏览器中,使用筛选器来搜索 播放音频(Play Audio) 。
-
双击 播放音频示例(PlayAudio Example) ,打开 Niagara系统(Niagara System) 示例。
使用播放永久性音频模块
此模块类似于播放音频模块,但保留了对每个已生成音效的引用,因此可以随着时间更新。
此模块还支持一些高级功能,例如淡入淡出或设置Sound Cue参数。但是,模块的设置比第一种方法复杂一些,因为若要此模块正常工作,需要使用两个模块: 播放永久性音频(Play Persistent Audio) 和 更新永久性音频(Update Persistent Audio) 。
这两个模块中使用相同的音频播放器引用!
你可以创建音频播放器数据接口,将其作为发射器属性并将其绑定到模块。 在上面的截图中, Emitter.CustomPlayer 引用同时存在于这两个模块中。
发射器(EMITTER) 左侧的锁链符号表示它们正在引用现有的属性。
默认情况下,每个模块都创建自己的对象,且无法与其他模块共享。 如果你希望模块使用相同的对象,则必须在发射器或系统生成脚本中创建该对象,然后在模块中引用它。
要查看播放永久性音频模块的工作方式,请在内容示例文件中使用 筛选器(Filters) 来搜索 播放音频(Play Audio) ,然后双击 播放音频示例(PlayAudio Example) 将其打开。
双击 播放永久性音频(Play Persistent Audio) 以打开 节点图表(Node Graph) 。
当需要声音属性在模拟期间变化时,此方法很有用,例如当声音需要随着颗粒的位置而变化时。
播放永久性音频模块(Play Persistent Audio Module) |
|
---|---|
优点(Pros) |
缺点(Cons) |
|
|
|
|
|
使用音频组件渲染器
音频组件渲染器目前还只是实验版本。如果你希望体验任何实验性功能,可以在虚幻引擎中使用此模块。
音频组件渲染器(Audio Component Renderer) 可以用于生成音频组件。
这是一种非常灵活的方法,因为它可以全面控制音频组件,但在颗粒模拟中,你可能需要从播放音频模块重新实施所有功能(例如淡入淡出或基于距离的筛选)。此外,它不支持在不创建自定义音频组件子类的情况下设置Sound Cue。
除了模块未提供足够功能按钮的特殊情况以外,不建议使用此组件渲染器。
音频组件渲染器(Audio Component Renderer) |
|
---|---|
优点(Pros) |
缺点(Cons) |
|
|
|
|
|
将颗粒数据导出到蓝图
如果其他方法都不够灵活,无法满足你的需求,则可将颗粒数据导出到蓝图或C++并在其中实施你的音频逻辑。
为实现此目的,请使用
导出颗粒数据(Export Particle Data)
接口。要在内容示例项目中查看示例,请在内容浏览器中搜索
导出颗粒(export particle)
。
双击 ExportParticleDataExample ,获得关于如何从颗粒模拟中导出数据的详细说明。
导出数据接口的一个优势在于,它还可以用于GPU发射器(有一些额外的延迟)。在蓝图中获得所需数据之后,您不但可以使用这些数据来播放音频,还可以驱动任意数量的组件,例如后期处理或用户界面(UI)控件。
虽然这是最灵活的音频播放方式,但其设置最耗时也最复杂。。可导出数据量方面也会有一些限制,需要由你自己在音频组件和颗粒数据之间进行任何映射。
将颗粒数据导出到蓝图(Export Particle Data to BP) |
|
---|---|
优点(Pros) |
缺点(Cons) |
*最灵活的方法 |
|
|
|
|