在Wwise中进行大批量音频管理的思路分享

游戏音频 / Wwise 技巧和工具

在我的日常音频工作中,经常会遇到需要做大批量语音文件导入、配置的情况,由此产生的批量化处理需求大致可分为三种:

  • 第一种,大批量的多性别语音文件的导入及配置需求,例如:游戏中已存在男、女和少女三种性别,需要在Wwise中使用Switch Container来做切换管理,包括新增Switch Container,分配Switch GroupAssign Objects,简单讲:为已有性别进行批量资源导入与Switch配置;
  • 第二种,在现有的Switch Container里面重新批量插入一种新增性别的语音文件,简单讲:增添新的性别类别后资源的批量导入与Switch配置;
  • 第三种,由于项目语音文件数量庞大,我们采用动态分包加载Soundbank的方式,经常会需要按照地图位面IDMapID)来批量重新调整音频事件与Soundbank之间的归属。

由于项目的DAU非常高,出于“稳定优先“的考虑,我们让Wwise版本停留在了2016。然而由于此版本的Wwise中还没有WAAPI功能(2017.1才加入),因此当发现每两个月就有两三千句左右的语音需要进行上述三种批量处理的时候,声音设计师心态简直要炸裂了,所以必须要找到办法解决这个问题。以下便是我的处理思路的分享,仅供参考。

注:”位面”在游戏《天涯明月刀》指剧情分支得以展开的地图副本。

需求一的解决思路

针对需求一,可以使用Wwise自带的Template模板功能,将每一句台词三种性别版本的语音文件放到一个文件夹里,再用这个文件夹来新建Switch Container,从而可以批量套用现有的Switch Container的模板。这样做还可以套用模板的Switch Container里的Bus通道设置、流媒体wem设置、Switch GroupSwitchAssign Objects情况等设置,非常实用。如图,两千句语音文件几秒钟便可导入、配置完毕。Template的功能帮我们解决了很多配置的套用,很赞。

1封装好的文件夹全选后,选择要套用的模版
2开始批量套用模版来新增Switch Containers

然而有一个问题不能忽视:面对两三千的语音文件,将不同性别的语音文件移动到一个文件夹并使文件夹命名与其子项中相同的字段一致,也是个不小的工作量,这时候便需要程序同事帮忙开发一个小工具——AudioGenerateFolder.exe(这里要给同事+鸡腿1)。这个小工具可以批量将不同后缀标记的源文件封装在同一个文件夹,并且新增同名文件夹。

注:

  • 小工具的做法很多种,本文只是聊下思路;
  • 若使用具备WAAPI的Wwise版本,Bernard Rodrigue提供了用于解决此类需求的Python工具:https://github.com/decasteljau/waapi-python-tools-1/tree/master/auto-rename-container;
  • Hou Chenzhong提供了带GUI的该工具的二进制版本,可直接在这里下载使用。
3批量新建封装文件夹的小工具 
4不同后缀文件封装前后的示意图

需求二的解决思路

针对需求二——将新增文件插入到已有Switch Container里,我们可以通过修改Wwise工程中与语音相关的WorkUnit xml文件(下文中统一以项目中采用的Voice.wwu指代)的内容来实现。

5已有Switch Container

单个或多个文件的拖拽添加是很容易,但当你有大量的新增的Switch选项需要插入到已有的Switch Container里,数量多到几千个的时候,查找到原有的Switch Container就要耗费大量时间(尽管可以用List View,后来的版本也可以直接在Container Editor里搜索),就更别提一个一个拖拽插入后再做Switch分配设置了。这时候你需要程序同事帮忙开发一个小工具,AudioMoveSwitch.exe(为同事+鸡腿2)。

注:小工具的做法很多种,本文只是聊下思路。

6批量修改移动Switch归属的小工具

原理其实就是通过批量修改了Actor-Mixer Hierarchy下的Voice.wwu文件来实现的。

7Wwise里面SwitchContainer和待添加的语音

比方说我们现在要把0331_L移动到同名的Switch Container里面,先打开Voice.wwu,搜索关键词0331就会看到SwitchContainer Name="0331",和他的两个“孩子”躺在ChildrenList里。

8Voice.wwu里已有的SwitchContainer结构图

 这时候新生儿”0331_L躺在外面,如图:

9新增语音文件在Voice.wwu里的结构图

然后我们打开工具里文档,写下新生儿”0331_L的名字

10批处理工具的文档截图

然后再打开Voice.wwu文件就会发现新生儿”0331_L回到了“妈妈”的怀抱了。

11Voice.wwu中三个“孩子”的样子
12Wwise工程中三个“孩子”的样子

给几个新生儿找妈妈或许还算容易,给几千个新生儿找到妈妈让他们乖乖躺在摇篮里,通过手动的方式就不容易了。通过截图,大家应该也能明白,把新增语音先导入Wwise中,在Voice.wwu表格中获得ID等信息,然后就是顺着名字做归类,放到同名的SwitchContainer下的ChildrenList里面就好了。

需求三的解决思路

针对需求三,前面也已说到,在我们项目中,语音Soundbank是根据不同的地图位面信息(MapID)进行动态加载的,这要求我们根据MapID来命名Soundbank,从而方便负责程序同事对Soundbank进行查找比对与调用。因此一旦MapID有变更,音频也要做相应调整才能保证正确的调用(反之事件移动到了不同Soundbank亦然)。这种问题若是偶然出现的话还好,但当涉及的事件数量大到一定程度,搜索找到这些音频事件并且移动到正确的Soundbank就变得非常耗时。

为此,我们会首先监测拉取最近的分包比对表格,SoundbanksInfo.xml这时就显得特别有用了。

13音频事件在声音引擎和语音配置表格里的Soundbank差异对比

注: 我们的客户端,制定了位面场景ID编号和Soundbank 的命名关键词的一一对应关系,例如:进入一个ID为1000的位面场景,就会自动调用命名中含有关键词1000的Soundbank,例如DIALOG_1000便是依据这样的命名规则设置的。

在我们获取到哪些音频事件需要处理以及它们应该放置的Soundbank归属信息之后,这时候就需要程序同事帮忙开发一个小工具——AudioMoveBank.exe(给同事+鸡腿3)。

注:小工具的做法很多种,本文只是聊下思路。

14批量修改移动Soundbank的小工具和读取的信息表格

原理其实就是通过修改了Events路径下的Voice.wwu文件来实现,因为我的操作习惯是每一个Soundbank都会在Events页签下有一个对应的打包放置音频事件的文件夹。

15Soundbank的文件夹管理和打开Voice.wwu可以看到的文件夹结构

所以移动音频事件的Soundbank分包,只要在Voice.wwu里面批量修改Folder的归属就好了。

以上就是当我在大批量语音文件管理的思路,感谢Wwise,感谢程序大佬们的技术支持。

 

葛鑫

音频策划

北极光工作室

葛鑫

音频策划

北极光工作室

评论

黄 耀沛

October 31, 2020 at 12:30 pm

感谢经验!

黄 耀沛

October 31, 2020 at 12:30 pm

感谢经验!

留下回复

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

更多文章

推陈出新:Wwise 2018.1 改进了 Positioning 选项卡

Wwise 2018.1.0 在原有基础上做了一些功能更新,其中包括对 Positioning(定位)选项卡的改进。经过重新设计,我们进一步明确了相应术语,更好地利用了屏幕空间,并为 Wwise...

14.3.2019 - 作者:纪尧姆·雷诺 (GUILLAUME RENAUD)

在Mac环境下使用Wwise为VikingVillage 进行声音设计

背景 近日在完成了 Wwise 301 认证课程的学习之后,我以 Unity 商店中提供的 Viking Village 免费 Project 为基础,对其进行了全面的声音设计,并在 Mac...

16.3.2020 - 作者:孙宇轩

《双生视界》的音频设计

大家好,我是19年上线的TPS少女射击游戏《双生视界》的音频设计师杨刚,负责游戏的音效制作、音乐制作的沟通以及Wwise的接入与管理,今天为大家带来本款游戏的音频设计分享。...

27.4.2020 - 作者:杨刚

将 Spatial Audio 整合到 Unity 中

展示如何把 Spatial Audio 整合到 Unity 演示游戏《WAG》中的直播视频回放已上线!地址:https://www.youtube.com/watch?v=UFCZ9t4DwGQ...

13.10.2020 - 作者:麦斯·麦雷蒂·桑德鲁普 (Mads Maretty Sønderup)

游戏音乐不应仅仅局限于音乐本身 – 第 2 部分

什么是游戏音乐?什么是互动音乐?这些问题的答案并不像看起来那么简单。对此,奥利维尔·德里维耶 (Olivier Derivière)...

20.4.2021 - 作者:奥利维尔·德里维耶 (OLIVIER DERIVIÈRE)

《刺客信条:英灵殿》— 沙盒音乐系统

9.6.2022 - 作者:亚历山大•波里耶(Alexandre Poirier)

更多文章

推陈出新:Wwise 2018.1 改进了 Positioning 选项卡

Wwise 2018.1.0 在原有基础上做了一些功能更新,其中包括对 Positioning(定位)选项卡的改进。经过重新设计,我们进一步明确了相应术语,更好地利用了屏幕空间,并为 Wwise...

在Mac环境下使用Wwise为VikingVillage 进行声音设计

背景 近日在完成了 Wwise 301 认证课程的学习之后,我以 Unity 商店中提供的 Viking Village 免费 Project 为基础,对其进行了全面的声音设计,并在 Mac...

《双生视界》的音频设计

大家好,我是19年上线的TPS少女射击游戏《双生视界》的音频设计师杨刚,负责游戏的音效制作、音乐制作的沟通以及Wwise的接入与管理,今天为大家带来本款游戏的音频设计分享。...