妙用Wwise Queries工具
什么是Queries工具?
Queries选项卡是Wwise的条件搜索和查询工具。
为什么推荐使用Queries工具?
- 以最省时间的方式使所有符合设计师所需条件的资源出现在List View(列表视图)中,支持多条件同时筛选,方便管理或编辑资源,并保存查询条件供今后使用。
- 用于平日版本/游戏封包时检出并批量删除多余废弃资源,节省包体容量大小。
- 对整体音频的特定参数/设置进行查漏补缺。
实用方案分享
Queries工具在Wwise官方帮助文档和101里都有讲,但介绍的篇幅较小,在此分享几个我觉得很实用的方法,在检查错漏音频资源时非常方便快捷,希望可以帮到有需要的朋友。由于游戏项目之间差异性很大,这些方法可能只适用于部分项目。
-
检查是否存在有效方法去筛选“同时满足Duration与Streaming属性条件的音频”?
- 这里有一个简单的方法:
- 先筛选出所有Duration条件“>6”的结果(视需求改数值)。
- 在下方“Result”结果窗口里Ctrl+A > 鼠标右键 > Show in Multi Editor。
- 在弹出的Multi Editor窗口中选择Edit > All parents,接着右键 > Show in List View在弹出的List View中观察“Is streaming Enabled”的勾选情况,可按属性标题进行排序。
-
检查工程是否存在没被任何SoundBank引用的Event
操作方法:
- 在Wwise选项卡Queries中新建一个Query并打开。
- 在左边Brower窗口中,选择SoundBank> SoundBank/Events Reference In。
- 在右边Criteria窗口的下拉菜单中选择No SoundBank。
- 点击Run Query(运行查询)。
筛选出来的Event即是未被SoundBank引用的,一种可能的情况是未给Event匹配SoundBank,另一种情况是未删除游戏废弃的Event,根据情况需求将结果批量处理即可。同理可选择筛选“是否有Event存在于2个或多个Soundbank内”,检查是否有冗余的Event。
-
检查工程是否存在被引用但没有勾选Inclusion(包含)的音频
操作方法:
- 在Wwise选项卡Queries中新建一个Query并打开。
- 在左边Brower窗口中,选择Property > Value。
- 在Criteria窗口中下拉菜单选择“Inclusion”。
- 点击Run Query(运行查询)。
筛选出来的即是未勾选Inclusion的音频,需利用Reference View(Shift+F3)观察是否被Event引用。一种可能的情况是音频未勾选Inclusion,另一种情况是未删除无用的Event, 可根据情况处理结果文件,避免游戏因触发了未勾选Inclusion音频的事件而产生“Selected Child Not Available”报错。
-
检查工程是否存在未自定义 Conversion Settings(转码设置)的音频
操作方法:
- 在Wwise选项卡Queries中新建一个Query并打开。
- 在左边Brower窗口中,选择Source > Audio Format。
- 在Criteria窗口中下拉菜单选择“PCM” (视需求定)点击Run Query。
筛选出来的即是PCM(无损)格式的音频,除了一些包体大小限制相对宽松的大作精品游戏,其他常见的手游和端游为了节省内存,基本不用巨大的PCM格式音频,如仍筛选出结果,可能是未自定义转码设置。同理可筛选被转成ADPCM/Vobis的音频,视游戏情况处理。
以上方案,都可按需加入“关键词”进行高级筛选,很多朋友会在文件命名中加入一些形容词,方便后期管理。比如我们需要筛选出没有勾选“流数据”(Stream)且命名里包含“Long”的音频对象;或筛选出被勾上“Inclusion”且命名里包含“Unuse”的音频对象等等。
例如,我们需要检查工程里是否存在 漏了勾选Loop(循环)且 命名带 “Loop” 的音频:
操作方法:
- 在Wwise选项卡Queries中新建一个Query并打开。
- 在左边Brower窗口中,选择Property > Value和General > Name。
- 在Criteria窗口中将属性下拉菜单选为“Is Looping Enabled”,在Name属性中填入*loop*(注意关键词要填在两个星号*中间才生效)。
- 点击Run Query(运行查询)。
筛选出来的结果即是没有勾选Loop且文件名带“Loop”字眼的音频。需检查是否为“漏网之鱼”,视情况而处理。
Queries结果批处理参数方法
- 在结果列表或在List View中,批量选择需同时改变参数的多个文件(选中的文件会变深色),为其中一个文件勾选属性复选框(比如Is Streaming),或拖动参数(比如Voice Pitch),其他所有选中的文件也会跟随勾选复选框,或变成一样的参数值。
- 结果列表中选中文件后,点击右键选择Show in List View,可将结果移至List View中。
- 在参数名称栏点右键后选择Configure Columns,可打开参数列表,可将隐藏的一些参数勾选,让它们显示在List View里。
其他检查和优化音频包的小方法 (非Queries工具操作)
-
检查是否存在未设置Output Bus的音频
未设置音频Bus时,系统默认输出到“Master Audio Bus”(如无更名)。选中该Bus并打开Reference View(Shift+F3),将显示默认输出为Master Audio Bus的所有音频,再根据需求处理,避免出现“游戏关了音效或音乐选项后仍有该类型声音”的Bug。
-
检查是否存在未被游戏引用的废弃资源
找出未引用资源,既可以删除多余资源节省容量,又可检查是否有资源漏绑或被覆盖。
UE4(虚幻4)编辑器:
方法1 – 在Content Browser中搜索AkAudioEvent,全部选中并点删除,会弹出警告窗口,将所有Event引用情况列出来,包括全局标签和配置表引用,询问是否确定删除,此时未被引用的事件会一目了然。
方法2 - 全选AkAudioEvent,在右键菜单中选择Reference Viewer,会以树状图结构列出所有引用。
Unity编辑器:
目前游戏引擎只支持查找当前场景引用,在这里给大家提供一个cs脚本,可以自行添加工具用来查找全局引用(支持多个搜索)。
(转载脚本:来自雨松MOMO 2016年06月29日 于 雨松MOMO程序研究院 发表)
使用方法:将脚本复制到工程目录下,然后在Project选项卡的右键菜单中,会增加一行“Find Reference All”(可自行对菜单选项进行重命名)。
改命名代码位置
很多游戏项目上线前,程序员也会开发相关的小工具,定期自动搜寻所有未被引用的资源(包含美术/音频/策划表与其他资源),并把log(日志)导出来。如果觉得上面的方式麻烦,也可以直接与项目程序员沟通,使用自研工具。
以上方法对代码直接引用的事件不适用,如有被代码控制的Event,注意不要误删。
结语
平时工作中,我们要尽量养成将初始工程结构、音频文件与参数设置等做好有条理规划的习惯,尽量减少后期的资源检查。但也会难免百密一疏,在日常版本或游戏上线前尤其需要系统性的对资源进行检查管理。以上内容分享了我觉得很实用的检查资源方法,在日后推陈出新的Wwise版本与集成版本的不断改进中,检查资源的方法应该还会越来越方便,能省更多时间,值得大家一起探究。
评论
誉宸 王
April 25, 2019 at 05:32 am
大佬!大佬!为您鼓掌!啪啪啪!