”音频篇“系列文章记录了我在平时工作中遇到的音频相关的问题。
Wwise,是一种音频中间件。关于音频中间件的可以看这篇文章:什么是音频中间件?。本文内容不是介绍wwise,也不是教大家怎么用它,因为这些东西,上网搜都能搜到。本文内容是水鸡我在游戏中使用wwise时遇到的问题以及解决方案。所以如果没有用过wwise的,这篇文章可以先收藏以后再看。
没有声音
1. 报错信息:Wwise: Event ID not found: xxxxxx
xxxxxx是一段数字,出现这个报错,说明在bank还没有被加载,就调用了PostEvent播放声音,自然声音是播不出来的。
2. 报错信息:Wwise Bank Load Failed
这个原因是因为没有找到bank,所以加载失败了。首先打开wwise,检查对应平台和对应语言下是否有生成banks。

讯享网
然后打开wwiseLauncher,检查对应平台的选项是否有选上。注意Switch和PS4选项需要许可证,一般账户选不了。

3. 没有报错
3.1 配置不正确
首先需要检查WwsieEvent有没有被正确配置,图中是正确配置的情况,如果不正确会显示一行红字。

通常,当有人跟你反馈没有声音的时候,配置肯定是配了的。如果依然显示不正确,请找到unity菜单的windows/wwise picker,点击Refresh Project。点完了还是显示不正确,说明配置丢了,这是wwise和unity傻逼,目前无解,请找音频师或者策划重新配置。

3.2 配置正确
在确认配置正确的情况下依然没有声音,这个时候请尝试使用wwise的调试功能。打开wwise,点击Remote进行调试。


选择Profiler打开调试面板。

左侧是游戏里都播了哪些Event,在wwise里是哪个音频单元,在哪个GameObject上进行播放,播放的时间。为什么我称之为音频单元?因为wwise里面音频事件处理的并不一定是单一音频文件,它也可以是一组文件。右侧是声音经过了哪些混音处理。

如果在调试面板没有找到要播的声音,请检查是否代码里根本没有执行PostEvent。
如果在调试面板找到了要播的声音,但是没有听到声音,有以下几种原因:
- 音量被设置为0
- 播放声音的位置离listener位置太远
- 硬件设备问题,比如手机是静音模式,电脑声卡坏了之类的。
如何切换不同语音
为了满足玩家需求,很多游戏都有日语、国语两种语音,提供给玩家切换。这里说一下切换语言的方法:
- 调用AkBankManager.UnloadBank(bankName) 把相关bank全部卸载
- 调用AkSoundEngine.SetCurrentLanguage(newLangName) 切换语言
- 调用AkBankManager.LoadBank(bankName) 重新加载bank
注意切换语言后不能在当前帧立刻加载bank,否则无效。
wwise论坛上这篇文章说的是0.25秒。How do I change a sound-bank at run time ?
我没有进行实际测量,不过不在同一帧进行调用这个还是挺好避免的。我之前项目的切换语言功能是这样设计的:玩家只能在主菜单界面的场景进行切换语言,然后在玩家进入主菜单场景时进行卸载bank,当玩家离开主菜单场景时加载bank。
如果切换语言没有成功,请检查是不是SetCurrentLanguage 里传入的变量和wwise工程里的语言的名称对不上。
暂时先写这么多了,以后想到再更新。
既然都看到这里了,不如关注一下吧
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/28055.html