连通 Wwise 和 REAPER – 第 1 部分:WAAPI Transfer

音频编程 / 声音设计

也许大家对 WAAPI Transfer 并不陌生,但我还是觉得有必要详细地说一说。WAAPI Transfer 是一款开源的 REAPER 扩展插件,方便将音频素材直接从 REAPER 导出到 Wwise 工程。这款工具旨在为用户提供与 Nuendo 的 Game Audio Connect 插件相似的功能。不过它目前还在开发当中,用户体验方面仍有待改进。但是,这并不意味着它不值得一试。相反,我觉得对每位使用 REAPER Wwise 的声音设计师来说,它都是一款不可多得的工具。下面我们就来看看它具体有哪些功能。

声明:在撰写本文时,WAAPI Transfer 可以说是用来连通 REAPER Wwise 的最佳开源工具。当然,这并不意味着它不能或不会被更好的工具取代。REAPER 拥有庞大的社区,用户们也很活跃。很多人在不断尝试新的东西,编写自定义脚本和插件,包括我在内。讲明了这些,下面就来说说 Karl Davis 开发的 WAAPI Transfer(如有兴趣,可访问 KarlTechno)。

警告:遗憾的是,WAAPI Transfer 仅适用于 PC 端。

WAAPI Transfer 功能

  • 将大量音频素材直接导出到 Wwise

  • 导出 itemregionstem master mix

  • 导出 Sound SFXSound Voice Music Track

  •  同时从多个工程导出

  • 开源(免费)

限制

  • 不支持MIDI

  • 交互式音乐层次结构支持不佳

  • 小bug

  • 基础UI / UX

安装 WAAPI Transfer

注意:要想使用此插件,必须安装支持 WAAPI Wwise 版本 (2017.1+)

  • 打开 Wwise,然后依次转到 Project -> User Preferences...

  • 选中 Enable Wwise Authoring API 选项,然后单击 OK

Picture1
  • 关闭 Wwise

  • 转到 Waapi Transfer Github 页面,然后下载最新插件版本(当时为 v0.1.9-beta)以及与所装 REAPER 版本匹配的架构 (x86/x64)

  • 打开 REAPER

  • 依次转到 Options -> Show REAPER resources path

  • 打开 UserPlugins 文件夹

  • 将下载的 WAAPI Transfer.dll 文件放在此处

  • 重新启动 REAPER

  • 打开 Wwise


在安装好之后,便可开始使用该插件了。REAPER 内的 Extensions 菜单中应会新增两个选项:WAAPI Transfer 和 WAAPI Recall。

WAAPI Transfer 主要部分

 

Picture2

1.    About 信息 – 在此可查看当前安装的插件版本

2.    音频素材列表 – 列出要导入到 Wwise 的音频文件

3.    Wwise 对象列表 – 列出要添加音频文件的 Wwise 对象

4.    渲染设置 – 在此可自定义各项素材属性并开始渲染

5.    Wwise 对象管理器 – 允许在 Wwise 工程中添加和移除对象


准备素材

在使用 WAAPI Transfer 时,首先要在 Wwise 中创建各种容器对象,然后再导入来自 REAPER 的声音,最后将这些声音指派给对应的 Wwise 对象。在一切就绪之后,便可一键导出声音。WAAPI Transfer 会检测 REAPER 渲染队列中的所有条目。也就是说,我们可以导出 item、region、stem 或 master mix。“通过渲染队列来导出”这种方式既有优点也有缺点。这些缺点并非显而易见,所以在此有必要说明一下。

“通过渲染队列来导出的主要优点是可以加载多个工程,并在将素材添加到渲染队列列表后关闭这些工程。即便关闭并重新启动了 REAPER,也会保存渲染队列列表。也就是说,我们可以自由地浏览所有游戏音频工程,并选择具体要从每个工程导出哪些素材。在做好准备之后,便可一次性导出所有这些素材。

缺点是每次在 REAPER 内单击 Add to render queue 按钮时,都会创建一个新的渲染队列列表条目。要想搞明白为什么这是个问题,必须先了解渲染队列逻辑的基本原理。除了插件,渲染队列内添加的所有条目都要通过包含选定素材的临时工程副本来进行渲染。如果工程本身已经占用了大量处理资源,那么 REAPER 可能需要花费一些时间才能完成渲染。因为对于列表中的每个条目,REAPER 都会自动创建和加载临时副本,无论这些队列条目是否由同一工程创建。

 

Picture3

在上图中,我们可以看到有三个队列条目,分别用于 Gunshots、Footsteps 和 Explosions。虽然它们全都来自 MyProject.rpp,但是对于每个条目都会单独创建一个临时工程。因此,为了缩短渲染时间,最好同时选中来自同一工程的所有素材,然后将其一并添加到渲染队列。另外,还可使用子工程和冻结功能来避免工程内出现大量活跃的插件。对此一定要事先考虑清楚,因为若有大量占用 CPU/内存资源的插件和很多来自不同工程的队列条目,总计渲染时间可能会大大延长。

Sound SFX Sound Voice 素材导出到 Wwise

标准流程

基本原理是首先确定所有相关的 Wwise 对象,然后为其指派要从 REAPER 导出的各项素材。为此,请执行以下步骤:

  • 将声音添加到 REAPER 渲染队列列表

  • 依次单击 Extensions -> WAAPI Transfer,来打开 WAAPI Transfer(可为此设置键盘快捷方式)

  • 确保可看到 Connected on port 8080... 信息文本,否则请单击 WAAPI Re-connect

    • 注意:您可以在 Wwise 内的 User Preferences 中更改端口值,但我觉得还是慎重一点比较好。因为若已将该端口 (8080) 用于 REAPER 中的其他 OSC,则有可能会出现连接问题。

  •  在 Wwise 工程中选择要添加素材的对象 

 

Picture4
  •  在 WAAPI Transfer 中单击 Add Selected Wwise Objects 

 

Picture5
  •  如果一切正常,应会看到新建的列表

 

Picture6
  • 从列表中选择一个 Wwise 对象(如 Gunshot

  • 选中所有要放在此对象内的音频素材(如 Gunshot 001Gunshot 002Gunshot 003

  • 单击 Set Wwise Import Location

  • 重复这些步骤,直至将列表中的所有声音指派给 Wwise 对象

最终窗口应如下图所示。

Picture7

注意:目前暂时无法依据特定条件(如文件名、Wwise 父对象)来按字母顺序排列列表对象。记住,在插件内无法更改渲染队列的文件添加顺序。


属性设置

列表中的每个声音素材都有几个属性:Filename, Wwise Parent, Import Type, Language, Import Operation, Originals Subpath。 您可以分别自定义每个声音素材的设置,也可以一次更改多个素材的属性。 让我们浏览所有属性以便更好地了解它们:

  • File – 在导出素材时创建的音频文件名称

  • Wwise Parent – 要添加素材的 Wwise 对象

支持的Wwise Parent 对象:

    • Actor-Mixer Hierarchy

    • Actor-Mixer Workunit

    • Virtual folder (Actor-Mixer Hierarchy)

    • Random container

    • Switch container

    • Sequence container

    • Blend container

    • Music Segment

不支持的 Wwise Parent 对象:

    • Music Playlist container

    • Music Switch container

  • Import Type

    • SFX – 针对 Sound SFX 对象设置此项

    • Dialog – 针对 Sound Voice 对象设置此项

  • Language

    • 决定 Sound Voice 对象所用的语言(不适用于 Sound SFX 对象)

  • Import Operation

    • createNew – 创建新的声音文件和 Wwise 声音对象

    • useExisting – 替换现有声音文件,但保留各项 Wwise 对象属性(如音量、衰减、效果器等)

    • replaceExisting – 彻底替换现有 Wwise 对象,包括音频文件和所有设置(个人认为此选项多余,根本不会用到)

  • Originals SubPath – 允许定义 Wwise Originals 路径下的特定子文件夹。必要时可更改,不过我没改过。

更改属性

所有属性都可通过单击 Import Settings 按钮并从对话窗口中选择相关选项来进行更改。

 

Picture8

Language 和 Import Operation 设有下拉菜单。注意,首先要从列表中选择属性,然后单击下方的 Set... 按钮。界面不太直观,慢慢就习惯了。新的属性值只会应用于选定列表条目,所以请务必恰当地执行选择。

若要快速更改 Import Operation 和 Import Type 属性,请右键单击选定列表条目,并从上下文菜单中选择所需选项。 

 

Picture9

 

渲染

在素材列表中完成所有设置之后,还有几点需要考虑。

假设工程渲染路径为 D:\BouncedSounds。我们可以选择在将文件导入到 Wwise 之后,对其执行怎样的操作。在默认情况下,WAAPI Transfer 会将文件从上述位置复制到 Wwise Originals 文件夹。不过对我来说,游戏的原始音频文件可以全部存在 Wwise Project 中,所以我都是选择移动文件而不是进行复制。在这种情况下,要取消选中 Copy Files to Wwise Originals 选项。

 

Picture10

在 Wwise Profiler 处于活跃状态时,无法在 Wwise 中导入新的素材。为此,请确保将其禁用。

接下来只需单击 Render and Import All 按钮,系统便会自动执行相关操作。在完成渲染后,Wwise 工程中会显示新的对象。这样多操作几次,慢慢地就熟练了。说白了也挺简单的。 

注意:若在 Wwise 工程中启用了 Source Control,会有一个非常恼人的小问题。在尝试一次性导出大量音频文件时,每十个要导入的文件就会跳出一次对话框。它会询问是否要将这些新的文件导入到版本控制库中。

 

Picture11

据我所知,除非彻底禁用版本控制,否则该对话框会一直出现。所以,如果一定要使用 Wwise 版本控制系统,就只能反复单击这里的 Yes 按钮。

Music 素材导出到 Wwise 

WAAPI Transfer 对 Interactive Music Hierarchy 对象的支持比较有限。因为该插件主要面向声音设计师,它并不是专门为作曲家设计的。尽管如此,我们仍可执行一些简单的音乐导出操作。

我们可以将声音导出到 Music Segment 对象。对于每个声音文件,都会为所述对象添加一个 Music Track。

Picture12

无论手动选择了什么选项,WAAPI Transfer 都会自动检测 Import Type 是否为 Music。

Picture13

但是,如果你将声音导出到Interactive Music Hierarchy里的Virtual Folder,WAAPI Transfer是检测不出Import Type。

Picture14

在将声音导出到 Virtual Folder 后,系统会显示错误窗口。

Picture15

有意思的是,此操作仍会成功。同时会创建多个 Music Segment,并为每个 Music Segment 添加一个 Music Track。

Picture16

问题是 REAPER 渲染队列列表会保持原有填充状态,就跟操作失败了一样,而且不会删除工程渲染路径中的原始文件。若打算使用 WAAPI Transfer 执行这种操作,一定要特别注意。

警告:Music Playlist Container Music Switch Container 对象不受支持,甚至无法添加到 WAAPI Transfer 对象列表。

Project recall

Project Recall 选项允许打开选定 Wwise 对象的原始 .RPP 工程文件。这一点跟 Open in Nuendo 命令一样,不过目前的实现效果不是太好。为了阐明其工作原理,我专门创建了一个 ReaOpen 脚本。这样解释起来会更加直观一些。对于这个话题,我会另外写篇博文。敬请期待!

其他警告

CTRL+A 问题

在插件内按下 CTRL+A 可选中所有列表条目。这是此类操作最常用的快捷方式。不过,这里有个问题:在插件窗口打开的情况下,WAAPI Transfer 会劫持该按键操作,无论该窗口是否处于活跃状态。这个时候除非关闭插件窗口,否则在其他程序中无法执行选择操作。

ESC 键问题

按下 Esc 键并不会关闭 WAAPI Transfer 窗口。这一点有点让人失望。

结语

目前的 WAAPI Transfer 肯定有很多地方可以改进。可能只有很少的人真正在使用它,估计给作者提供反馈的就更少了。很多人并不知道有这么一款插件,大家对它也不怎么了解。我认为应当改变这一现状。为此,希望各位 REAPER 用户都来试用一下这款插件。即便不是 REAPER 用户,也可免费下载演示版本,来体验一下相关工作流程。这款软件对游戏音频社区来说非常难得。大家至少应该测试一下,给作者提供一些反馈。无论对这款还是其他类似工具的开发,我觉得这都是一种非常好的互动方式。最后,我希望大家通过本文对如何使用这款插件多少有了一些了解。有兴趣的话,不妨试用一下。

尼古拉·卢基奇 (Nikola Lukić)

技术音频设计师

Mad Head Games

尼古拉·卢基奇 (Nikola Lukić)

技术音频设计师

Mad Head Games

尼古拉·卢基奇 (Nikola Lukić) 目前在 Mad Head Games 担任技术音频设计师。他虽然拥有声音设计硕士学位,但最初涉足游戏开发时做的却是游戏程序员。在做了一年的编程工作之后,他转到了公司的音频部门。经过对 REAPER 以及编程语言(如 Python 和 Lua)的一番摸索,他很快便开始构建工具和流程,来设法提升部门的工作效率。现在,他希望能将自己的经验和想法分享给所有人。

lkctools.com/

 @lkctools

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

《Aporia: Beyond the Valley》——制作幽灵的声音

14.8.2018 - 作者:特罗尔斯.尼加德(TROELS NYGAARD)

《Murderous Pursuits》的对白和对话设计 – 第 1 部分

大家好,我是杰米·克罗斯,目前在 Blazing Griffin 的游戏团队担任音频设计师。2018年,我们发布了《Murderous...

26.8.2019 - 作者:杰米·克罗斯 (Jaime Cross)

使用Wwise+Unity+Intel Realsense实现人体动作与音频的互动

大家好,今天我为大家介绍的是利用Wwise、Unity和3D深度相机——Intel...

20.4.2020 - 作者:朱墨丹青

Unity中Wwise音频可视化及游戏内录屏方案的思路探索

一、前言: 希望本篇分享能抛砖引玉,激发大家更多的开发灵感。

14.7.2021 - 作者:张成功

Wwise Authoring Query Language 简介

“Wwise 不过是张电子表格”。作为用户体验团队成员,我们经常会听到有人这样说。事实上,Wwise 不仅是款声音设计工具,Wwise...

20.7.2021 - 作者:伯纳德 罗德里格 (Bernard Rodrigue)

以REV2为基础制作赛车引擎声

前言 汽车引擎声一直是游戏声音设计工作中难度比较大的部分,难度主要来自以下几个方面:...

13.10.2021 - 作者:徐巍

更多文章

《Aporia: Beyond the Valley》——制作幽灵的声音

《Murderous Pursuits》的对白和对话设计 – 第 1 部分

大家好,我是杰米·克罗斯,目前在 Blazing Griffin 的游戏团队担任音频设计师。2018年,我们发布了《Murderous...

使用Wwise+Unity+Intel Realsense实现人体动作与音频的互动

大家好,今天我为大家介绍的是利用Wwise、Unity和3D深度相机——Intel...