概述
音频调制(Audio Modulation)系统允许对蓝图(Blueprint)和组件(Component)系统中的一些常见音频参数(浮点类型)进行控制。 与老版本虚幻引擎相比,该系统包含更优秀、更直观且动态的功能集,用于混合音频源以及动态控制和参数化音频属性。
在本指南中,你将学习如何为游戏音频构建基于音量的基本控制总线(Control Bus)结构。
目标
使用音频调制插件(Audio Modulation Plugin)为游戏音频构建基于音量的基本控制总线结构。
目的
创建控制总线和控制总线混合对象(Mix objects)以将音量混合应用于声音资产。
将控制总线分配给MetaSound源(MetaSound Sources)和音效类(Sound Classes)。
使用混合矩阵调试器(Mix Matrix Debugger)可查看控制总线的当前值。
从蓝图调制控制总线。
1 - 必要设置
创建新项目并选择游戏(Games)类别和第三人称(Third Person)模板。 输入项目的位置和名称。 点击创建(Create)。
点击设置(Settings) > 插件(Plugins)打开插件(Plugins)窗口。
搜索并启用音频调制(Audio Modulation)和MetaSound插件。 重启虚幻引擎。
阶段成果
在本分段中,你创建了新项目并启用了音频调制和MetaSound插件。 现在你可以开始创建控制总线。
2 - 创建控制总线
在内容浏览器(Content Browser)中,右键点击并选择音频(Audio) > 调制(Modulation) > 控制总线(Control Bus)。 将资产命名为
CB_Main。打开
CB_Main并点击参数(Parameter)下拉菜单。 点击齿轮图标并启用显示插件内容(Show Plugin Content)复选框 你可能必须选择显示引擎内容(Show Engine Content),因为调制插件是引擎插件。搜索并选择音量(Volume)参数(其他参数也可用, 例如频率、声相、音高等)。
在内容浏览器(Content Browser)中创建两个文件夹,分别供设计师和用户存放多个控制总线。 在下面的示例中,这两个文件夹名为
Buses_Designer和Buses_User。右键点击
CB_Main并选择复制(Duplicate)。 将新资产命名为CB_Ambience。再重复此过程两次,创建
CB_Foley和CB_Footsteps。 选择所有三个资产并将其移至Buses_Designer文件夹。重复上一步,创建
CB_Dialogue、CB_Music和CB_SFX。 将其移至Buses_User文件夹。
最佳做法:不要将控制总线直接放在声音上,而是给这些声音一个适当的音效类(例如 “SFX”音效类、“Music”音效类等),并将控制总线放在类上。
阶段成果
在本分段中,你创建了主控制总线,用于调制项目中所有分配的音频的音量。 此外,你创建了供用户和设计师使用的多个控制总线。 你现在可以开始将主控制总线分配给项目中的主音效类。
3 - 将控制总线分配给声音资产
点击设置(Settings) > 项目设置(Project Settings),打开项目设置(Project Settings) 。
向下滚动到引擎(Engine)分段并选择音频(Audio)类别。 转至音频(Audio)分段并双击主默认音效类(Master Default Sound Class)将其打开。
在细节(Details)面板中,转至调制(Modulation)分段并启用音量(Volume)旁边的调制(Modulate)复选框。
点击音量调制器(Volume Modulators)旁边的+号并将
CB_Main添加到Index[0]。
将
CB_Main控制总线添加到项目中的其他音效类,以便所有声音都使用相同的控制总线进行混合。 调制和混合结构不遵循音效类引用层级。 每个音效类必须列出要应用于引用前述音效类的声音资产的所有控制总线。
阶段成果
在本分段中,你将CB_Main控制总线分配给了主音效类。 你现在可以创建示例MetaSound,以在Gameplay期间测试混音。
4 - 创建示例MetaSound
在内容浏览器(Content Browser)中,右键点击并选择音频(Audio) > MetaSound源(MetaSound Source)。 将资产命名为
MS_Sample。在内容浏览器(Content Browser)中双击打开
MS_Sample。转至左侧的接口(Interfaces)面板并点击UE.Source.OneShot旁边的删除图标将其删除。
在事件图表(Event Graph)中右键点击,然后搜索并选择Wave Player (Mono)。
将Input节点连接到Wave Player节点的Play引脚。
将Wave Player节点的Out Mono引脚连接到Output节点。
点击声波资产(Wave Asset)下拉菜单并选择声音资产。 该示例选择了EndPlayInEditor。
启用循环(Loop)复选框。
点击工具栏上的Source并向下滚动到细节(Details)面板。
展开调制(Modulation)类别。
点击音量路由(Volume Routing)下拉菜单并选择并集(Union)。
启用音量(Volume)旁边的调制(Modulate)复选框。
点击音量调制器(Volume Modulators)旁边的+号并将
CB_SFX添加到Index[0]。
将
MS_Sample拖入你的关卡中。
阶段成果
在本分段中,你创建了一个简单的MetaSound,它将持续播放一个声音资产。 你现在可以将控制总线混合应用于控制总线。
5 - 应用混音
在本分段中,你将创建控制总线混合(Control Bus Mix)并将其应用于Buses_User文件夹中的所有控制总线(Control Buses)。 你还可以执行这些步骤,为Buses_Designer文件夹中的所有控制总线创建控制总线混合。 此外,关于混合中可以包含的内容,并没有严格的规定。
你可以激活多个混音并应用于单个或一组控制总线。 但是,特定混音一次只能有一个实例可以处于活动状态。
在内容浏览器(Content Browser)中,右键点击并选择音频(Audio) > 调制(Modulation) > 控制总线混合(Control Bus Mix)。 将资产命名为
CM_User。打开CM_User并转至"混音级(Mix Stages)"分段。
点击混音级(Mix Stages)旁边的+号添加新混音。
点击总线(Bus)下拉菜单并选择
CB_Dialogue。
重复上一步,将
CB_Music和CB_SFX添加到混音级(Mix Stages)。按播放(Play)进入运行时。
按Shift-F1重新获得鼠标控制权。
转至
CM_User并点击激活混音(Activate Mix)。更改
CB_SFX的值,查看实时应用的更改。
阶段成果
在本分段中,你创建了CM_User控制混音(Control Mix)并将其应用于项目中的控制总线。 你还使用CB_SFX控制总线在Gameplay期间激活了混音并更改了声音的音量。
6 - 调试混音
在Gameplay期间,按~打开控制台(console)窗口。
输入以下命令:
au.Debug.SoundModulators.Enable.Matrix 1启用声音调制调试。
你可以输入以下命令来筛选显示的控制总线和控制混音的列表:
au.Debug.SoundModulators.Filter.Buses \substring和au.Debug.SoundModulators.Filter.Mixes \substring。
阶段成果
在本分段中,你激活了声音调制调试器,并筛选了矩阵以仅显示CB_SFX控制总线。
7 - 从蓝图调整控制总线
在本分段中,你将在运行时从蓝图激活控制混音。
在关卡编辑器(Level Editor)工具栏中点击蓝图(Blueprint)按钮并选择打开关卡蓝图(Open Level Blueprint)。
在事件图表(Event Graph)中右键点击,然后搜索并选择Event Begin Play。
从Event Begin Play节点拖移,然后搜索并选择Activate Control Bus Mix。
点击混音(Mix)下拉菜单并选择
CM_User。
从Activate Control Bus Mix节点拖移,然后搜索并选择Delay。
将时长(Duration)设置为3.0。
从Delay节点拖移,然后搜索并选择Set Control Bus Mix By Filter。
点击混音(Mix)下拉菜单并选择
CM_User。将
CB_SFX添加到地址过滤器(Address Filter)。输入值 0.25。
按播放(Play)并在3秒后验证
CM_User控制总线(Control Bus)是否已激活,以及MS_Sample的音量是否降低。
阶段成果
在本分段中,你使用CB_SFX控制总线激活了CM_User控制总线并更改了音频的音量。