当前课程知识点:虚幻引擎(UE4)技术基础 > 第十二章 音频系统 > 12.2 音频混成器 > 12.2 音频混成器
大家好
欢迎来到《虚幻引擎(UE4)技术基础》课堂
我是主讲教师晏茗
现在我们将针对
《虚幻引擎(UE4)技术基础》课程中
第十二章
音频系统的相关概念
进行讲解
第二小节音频混成器
在本课中
我们会来了解
虚幻引擎音频系统中混成器的声音要求及效果
虚幻引擎4中的音频系统中的
音频混成器是一款使用
自身模块的多平台音频渲染器
它支持跨所有平台的功能对等性
向后兼容大部分旧有音频引擎功能
并将UE4功能扩展至新的域
从以下三个点来体验音频混成器的概念及效果
第一点音频渲染
渲染流程
解码并混合声源
馈送至音频硬件终端
也称数模转换器或DAC
最终在一个或多个扬声器上播放
各种音频渲染器的架构和功能集彼此间差别很大
但对于重视交互性和实时性能特征的游戏来说
必须支持 实时解码
音效参数的动态消耗和处理 实时采样率转换
和各种其他音频渲染功能
如源数字信号处理效果 空间化
子混音 后期混合DSP效果 混响
而由于平台特定的音频渲染API的问题
编写新的音频渲染级功能
是需要逐个平台单独实现的
否则会增加平台差异问题
同样
凡涉及到优化或修复漏洞
要么需要复制
要么需单独针对特定平台
在新平台上实现平台特定的音频API
需要做大量工作
并且需要更长的开发周期
某些情况下
全新的平台甚至没有全功能的音频API
这种情况下
在平台投入资源编写自己的
音频渲染API之前
根本不可能在该平台上建立音频渲染
任何游戏引擎都有一条令人兴奋的出路
即第三方可向UE4添加新功能和扩展
由于平台API非常复杂
而且自身可能有多种方式支持插件扩展
创建普适性的通用API几乎毫无可能
当要支持的目标平台较少
且新平台交付期较长
则此模式很有效
但是
若使用支持大量平台的UE4
力图兼顾各平台特定的API之间的差异
猎取平台特定的漏洞
并努力实现平台功能的对等
这些会轻易占据音频引擎的大部分开发时间
其代价是要编写新的运行功能或开发工具
上述原因
于是音频混成器成为一种解决方案
解决所有这些问题的办法是
单个的多平台音频渲染API
即所谓的音频混成器
使用音频混音器时
由于所有平台都有一个通用的代码库
因此功能对等较容易实现
由于程序员可一次实现一个可适用于所有平台的功能
因此开发时间缩短了
测试 文档和音效
设计人员的实现及混合也简化了
除一些无法避免的特定情况外
所有平台上的东西听起来一样
做起来也一样
支持新平台很快
一般只需花几天时间写上几百行代码就行
为音频引擎插件编写接口不仅可行
还是主要的创新途径
此外
修复漏洞和优化代码可惠及所有平台
每个平台有不同的CPU和内存功能
或者不同的硬件支持选项
这仍是平台特有的挑战
但是
在CPU或内存不足的情况下
音频混频器可采用自动减轻CPU负载
或内存负载的功能
音效设计人员和音频程序员可调优音频混成器
达成针对给定平台设定的性能和内存目标
第二点音频混成器架构
架构从以下四部分来看
第一在音频混成器线程模式中
音频混成器会创建自己的线程
以执行实际的音频渲染
我们称之为音频渲染线程
此线程不同于音频线程
它会执行DSP源生成和混合的所有相关工作
音频线程的工作是确定要播放的音效以及相关参数
对于音频混成器和旧有的平台特定音频引擎
音频线程基本相同
音频线程目前在处理UObject
和垃圾回收方面较为复杂
所以在运行时我们不使用音频线程
基于回调的平台API中还有一个硬件线程
实际的平台硬件回调就是根据该线程执行的
此硬件拥有的线程回调
几乎总是使队列中的
已渲染缓冲区从音频渲染线程中脱离
并且很少做实际工作
最后
音频引擎利用UE4任务图中的
异步任务进行解码和生成过程音频
例如合成
第二部分生成声源
音频混成器渲染自身的第一阶段是生成源
为了生成源
音频混成器接收从游戏和音频线程发出的参数
这些参数定义要播放的声源及其参数
如音量 音调和位置
这里用的词是源
因为从该源生成的音频可能派生自压缩音频资源
通过程序生成
或其源派生自混合起来的其他源
不同情况下
生成源数据的方法也各有不同
第三部分是编码声源
如果是编码的声源
则使用异步任务将
音频解码到未压缩的32位浮点缓冲区中
然后
此32位浮点缓冲区执行采样率转换(SRC)
从源的采样率转换为音频混成器的采样率
此SRC流程考虑了所有
也可能已应用到声源的音调比例
并仅执行SRC一次
例如
若由于音效设计人员想要调高声源
因而在32千赫和1.2音调比例下对声源进行编码
或者若音频混成器正在以48千赫的频率渲染音频
则SRC将使用以下采样率
这两段代码意味着在音频解码后
它会将声源调高1.8
第四部分混合源
音频混成器还支持混合声源
以创建其他源
这些混合源称为源总线
源总线类似于任何其他源
支持例如空间化 距离衰减 音量混合和源效应处理
此功能有多种有用的应用
无线电广播 基于位置的混响处理
以及场景中特定对象回弹音频
这是音频混成器的相关概念及部分工作原理
随后我们来具体看下混音及混响效果的相关设置及效果
设置EQ settings(均衡器设置)
修改音效类的音量和音高属性
多个混音可以同时激活
且都可以对整体音效产生影响
可在蓝图中直接使用激活混音修改器
和禁用混音修改器来直接激活或禁用混音
或者可以在任何时候当在指定阈值内
播放属于特定音效类别的音效时被动地启用它们
在音效类别部分
可设置该混音影响具体的音效类别
对于每个音效类别
都可设置音量或音高调整器
设置是否将混音设置应用到子类上
或者修改声音中央声道音量
Reverb Effects(混响效果)是一种具有相关属性的可定义资源
可以轻松调整相关属性
并将其应用到关卡中放置的任何音效体积上
使用混响效应
调整设置
如下图所示
来控制像回声密度 总体混响增益 空气吸收量
等元素来帮助制作出想要的声音感觉
第三点混音效果
2020年4月虚幻4官方
给出了425音频的相关知识讨论
其中关于混音效果中有一项Demo
卷积混响
通过距离结合混音效果达到声场的氛围
我们可以来看下相关视频了解
以上就是音频系统基础知识中音频混成器的讲解
最后的思考与练习
声场是根据距离的不同产生不同的声效
那么
如果是感官影响呢
好
本节课内容就讲解到这
希望分享的视频可以给你们带来一定的启发
再见
-1.1 虚幻4引擎简介
--1.1 小节习题
-1.2 虚幻4引擎的安装及环境部署
--1.2 小节习题
-1.3 创建项目及试玩
--1.3 小节习题
-第一章 章节测试
-2.1 虚幻4编辑界面介绍01
--2.1 小节习题
-2.2 虚幻4编辑界面介绍02
--2.2 小节习题
-2.3 视口导航及基本操作
--2.3 小节习题
-2.4 导入资源、项目迁移和管理
--2.4 小节习题
-第二章 章节测试
-3.1 地形工具
--3.1 地形工具
--3.1 小节习题
-3.2 新建地形
--3.2 新建地形
--3.2 小节习题
-3.3 塑造地形
--3.3 塑造地形
--3.3 小节习题
-3.4 使用植被工具
--3.4 小节习题
-第三章 章节测试
-4.1 初识材质
--4.1 初识材质
--4.1 小节习题
-4.2 编辑基于物理材质
--4.2 小节习题
-4.3 使用贴图纹理创建材质
--4.3 小节习题
-第四章 章节测试
-5.1 大气照明和定向照明
--5.1 小节习题
-5.2 添加点光源
--5.2 小节习题
-5.3 添加聚光源
--5.3 小节习题
-5.4 光源质量和反射
--5.4 小节习题
-第五章 章节测试
-6.1 几何体及纹理贴导入
--6.1 小节习题
-6.2 素材整理和项目准备
--6.2 小节习题
-6.3 搭建流程
--6.3 搭建流程
--6.3 小节习题
-第六章 章节测试
-7.1 动画资源与编辑器
--7.1 小节习题
-7.2 混合空间
--7.2 混合空间
--7.2 小节习题
-7.3 动画窗口及编辑动画
--7.3 小节习题
-7.4 创建自定义角色
--7.4 小节习题
-第七章 章节测试
-8.1 创建粒子系统
--8.1 小节习题
-8.2 虚幻粒子基础功能介绍01
--8.2 小节习题
-8.3 虚幻粒子基础功能介绍02
--8.3 小节习题
-8.4 粒子特效的综合运用
--8.4 小节习题
-第八章 章节测试
-9.1 初识蓝图
--9.1 初识蓝图
--9.1 小节习题
-9.2 蓝图类型
--9.2 蓝图类型
--9.2 小节习题
-9.3 蓝图通信
--9.3 蓝图通信
--9.3 小节习题
-9.4 创建蓝图
--9.4 创建蓝图
--9.4 小节习题
-第九章 章节测试
-10.1 击中事件
--10.1 小节习题
-10.2 实现物体来回移动
--10.2 小节习题
-10.3 Input输入与玩家快捷键交互
--10.3 小节习题
-10.4 用户界面和HUD
--10.4 小节习题
-10.5 创建游戏约束
--10.5 小节习题
-10.6 游戏结束与重玩功能
--10.6 小节习题
-第十章 章节测试
-11.1 行为决策的AI
--11.1 小节习题
-11.2 AI监听玩家行为
--11.2 小节习题
-11.3 AI与玩家的攻击伤害
--11.3 小节习题
-11.4 AI生成点与随机巡逻
--11.4 小节习题
-11.5 优化游戏体验
--11.5 小节习题
-11.6 渲染及代码优化
--11.6 小节习题
-第十一章 章节测试
-12.1 音频基础
--12.1 小节习题
-12.2 音频混成器
--12.2 小节习题
-12.3 声音特效
--12.3 小节习题
-第十二章 章节测试