目录
从生成混响效果方面来说,RoomVerb 和 Matrix Reverb 采用的是参数化算法,而 AK Convolution Reverb 采用的则是预录的房间 Impulse Response(冲激响应)。
冲激响应 (IR):双手鼓掌(冲激),声音在房间中回响(响应)。 |
Convolution Reverb 既可实现对空间的真实模拟,又提供有各种设置,方便修改 IR 以使其完美契合游戏空间的声学环境。
假如您在打开 Wwise 工程时或在 Profiler(性能分析器)的 Capture Log(捕获日志)中收到“... uses the audio Effect plugin 'AK Convolution Reverb', which is not installed(...使用音频效果器插件 AK Convolution Reverb,但目前尚未安装)”消息,则表示目前所装 Wwise 尚未安装 AK Convolution Reverb。为了添加该插件,需要先关闭 Wwise 工程。接着,打开 Launcher,并转到 Wwise 页面。然后,从当前所用 Wwise 版本对应的 Settings 列表(显示为“扳手”)中选择 Modify...(修改...)。接着,点击 Next(下一步)转到 CHOOSE PLUG-INS(选择插件)页面。最后,选中 AK Convolution Reverb 插件,然后点击 Modify(修改)将其添加到 Wwise 中。 |
接下来,我们将 AK Convolution Reverb 添加到 Desert(沙漠)辅助总线。
-
在 Project Explorer(工程资源管理器)中,依次展开 Master-Mixer Hierarchy > Master Audio Bus > World > AUX > Region_Desert,然后选中 Desert Auxiliary Bus(辅助总线)。
-
在 Effects(效果器)选项卡中,单击 Add Effect (+),然后依次选择 Wwise Convolution Reverb > Reverbs > WAG_Desert。
假如没有获得 AK Convolution Reverb 授权,此时将显示提示消息。不过,不用担心。您可以继续执行下面的课程步骤,并不会有什么影响。接下来,我们使用 Player_Pickup Switch Container(切换开关容器)的 Auxiliary Bus(辅助总线)来测试 Wwise Convolution Reverb。
-
在 Project Explorer(工程资源管理器)中,依次展开 Actor-Mixer Hierarchy > Default Work Unit > World > Player > Player,然后选中 Player_Pickup Switch Container。
-
将 Desert Auxiliary Bus 从 Master-Mixer Hierarchy(Master-Mixer 层级结构)拖入第一行,替换之前指派的 Auxiliary Bus。
确保只指派了一个 Auxiliary Bus。
-
单击 Play(播放)按钮,并试听将 Wwise Convolution Reverb 应用于 Player_Pickup 后的效果。
接下来,我们返回 Desert Auxiliary Bus 并加以优化。
-
在与 Desert 辅助总线对应的 Object Tab 中,打开 Effects(效果器)选项卡,并选中 AK Convolution Reverb 效果器。这时会在 Object Tab 底部的 Secondary Editor 中显示 Effect 设置。
在 Effect Editor 中,可以看到各项 Wwise Convolution Reverb 设置。在此,主要看下用于优化的 Impulse Response(冲激响应)设置。
在 Information and statistics(信息和统计数据)窗口中,直接显示有内存估值。其中,Lower engine memory(底层引擎内存)表示运行时内存用量(如混响尾音的临时存储);SoundBank memory(音频包内存)表示加载到内存中的冲激响应文件的大小。
在实施优化前,一定要定义 Stretch(拉伸)。此属性会拉伸冲激响应:Stretch 值越大,房间听起来显得越大。
接下来,我们对 Wwise Convolution Reverb 进行一些必要的优化。首先,应用随着时间变化的低通滤波器 (LPF),以此来大幅降低 Impulse Response 的内存用量。
-
在 Properties(属性)分组框中,选中 IRLPF,然后选中 Automate(自动化)。
此时,Time(时间)窗口中将显示一条蓝线。这条线是一条时变曲线,用来定义 Impulse Response 的频率成分随着时间被自动化低通处理的程度。在 Impulse Response 末尾,通常低频成分更多些。为此,我们将最右侧控制点设为截止频率的最低值。如此一来,随着时间变化便会逐渐滤掉高频成分。
我们把设计随着时间变化的曲线的操作称为“自动化”。
-
选中最右侧控制点,并将 Y 设为 20。
接下来,我们将 LPF 的截止频率提前设置到最低值,方法是在这条时变曲线上新添加一个控制点。
-
双击曲线,然后将控制点设为 1.5 (X) 和 20 (Y)。
另外,您也可以设置特定的曲线类型,以此来完善曲线点之间的过渡。
-
右键单击最左侧曲线,然后选择 Logarithmic (Base 1.41)(对数(底数 1.41))。
我们可以看到,只有 SoundBank memory(SoundBank 中 IR 的大小)用量降了很多,而 Lower engine memory(IR 处理所需运行时内存)并没有变化。这是因为我们只是随着时间变化减少了低频成分,但没有改变 IR 的长度。
为了缩短 IR 的长度,我们可以调整 End(结束)光标。在 Information and statistics 窗口中,可以看到 RT60 值。该值指示信号何时衰减到 -60 dB 以下。因此,您可以用它来设置 End 光标。
-
将 End 光标拖到 1.0(如 RT60 字段中所示)。
假如调整 IR 设置,RT60 值可能会再次变化。在设计完相应的冲激响应后,可使用 IR Threshold(IR 阈值)和 Smooth(平滑)属性来优化其频率响应。
除了这里所说的 IR Threshold 和 Smooth 属性,还提供有以下属性:
-
HW Acceleration(硬件加速):有些平台可利用硬件资源加快卷积处理,所以可通过启用此选项来降低 CPU 用量。不过,在继续操作之前,请确保自己清楚硬件加速可能会给选定平台带来怎样的影响以及对其都有哪些附加的要求。
-
Input Threshold(输入阈值):若低于此阈值,则弃用高频输入声音。跟其他因素相比,性能方面的差异相对较小,所以在大部分情况下并不需要对此进行更改。
-
Block Size(块大小):决定处理卷积效果器时的数据块大小。该值越大,CPU 用量越低,延迟越高。
有关这些功能的详细信息,请参阅 AK Convolution Reverb。
一般情况下,频域中的 IR 随着时间变化会损失一部分能量。在下图中,可以看到频域中 IR 的频谱。
利用 IR Threshold 属性,可以定义要将 IR 中的多少黑色区域进行编码。正如上例所示,在 -70 dB 左右所有能量将损失殆尽。
为此,我们一般可以安全地大幅降低 IR Threshold,然后只保留编码后 IR 中的相关信号。假如 IR Threshold 造成混叠(起伏不平的阶梯曲线),则可使用 Smooth 属性把曲线变得更加平滑。不过,平滑处理幅度越大,获得的优化效果会越不明显。接下来,我们将 IRThreshold 降到 -73 dB,并稍加平滑处理。
-
-
将 Threshold(阈值)设为 -73。
-
将 Smooth(平滑)设为 18。
所有音频源都通过引用的 Event(事件)打包到了 SoundBank 中,只有 IR 没有。因此,所有 IR 都需要手动添加到 SoundBank 中。接下来,我们将 IR 添加到 All_In_One SoundBank 中。
-
在 Layouts(布局)菜单中,选择 SoundBank(音频包)。
-
在 Project Explorer(工程资源管理器)的 ShareSets(共享集)选项卡中,依次展开 Effects > Default Work Unit > Reverbs,然后选中 WAG_Desert。
-
接着,将 WAG_Desert ShareSet 拖入 All_In_One SoundBank。
最后,还要取消选中前面为 Player_Pickup 应用的 User-Defined Auxiliary Sends 设置。
-
在 Layouts(布局)菜单中,选择 Designer(设计师)。
-
在 Project Explorer(工程资源管理器)中,依次展开 Actor-Mixer Hierarchy > Default Work Unit > World > Player > Player,然后选中 Player_Pickup Switch Container。
-
在 User-Defined Auxiliary Sends(用户定义的辅助发送)分组框中,取消选中 Override parent(不沿用父级)。
现在,我们学会了如何启用和优化 Wwise Convolution Reverb。接下来,您可以检查其余 Auxiliary Bus,看看它们在《WAG》中的应用设置。