怎样控制声部 - 优化CPU(PART 1)
对于任何项目,在开发过程中遇到性能问题都是很常见的。问题原因可能多种多样,但大部分情况下都和同时播放的声音数目直接相关。虚声部(Virtual Voice)只计算音量,而实声部(Physical Voice)则是完全进行处理的(包括流播放,解码,滤波等等)。比较理想的情况是能确保每个实声部都能听见并在整个声场中发挥作用。Wwise自身是不能做决定的,因为它不知道每个声音的意义。幸运的是,在声音设计过程中,你有很多工具可以进行这方面的管理。
实声部数量应该定为多少?
当然这是一个没有标准答案的问题,要看游戏所支持平台的最低配置,还有你的团队为声音分配的CPU预算是多少。尽管如此,还是可以列出一个大概的数字范围:
- PS4、Xbox One、PC、Mac:声道总数小于80
- Nintendo WiiU、Switch,以及高端Android和iOS:声道总数小于60
- 低端Android、iOS和PC(XP时代):声道总数小于40
很明显,这些数量不是Wwise的极限,而且有些游戏能够支持更多声道。请注意我这里说的是“声道”而不是“声音”,因为一般来说,CPU占用会随着声道数的升高而增加(例如立体声的CPU占用是单声道的两倍)。但是以上参考数量可以作为一个大致起点,如果游戏设计允许的话就再增加。这些数字很大程度上取决于编解码类型,以及游戏同时处理的其它运算。大部分游戏的平均数量是比参考数量低的。数量越少越好,因为超过一定数量后,多个声音听起来就会变成杂音,声音整体质量就降低了。当然,有时声部数的峰值会超过这个数量,但只要不持续太久,声音引擎会迅速恢复,数量也会回复正常。应通过Playback Limits(回放限制)控制峰值数量,等会我们会说到这一点。
规划和原型设计
如果规划得当,从流程伊始就可以减少声部数量。应当评估特定游戏组件需要多少声部。别忘了乘上要使用该“组件”的游戏对象数。比如,一辆跑车9个声部没问题,但如果比赛时有20辆车,声部数会达到180个!
设计时,别忘了你不需要游戏也可以使用Profiler(性能分析器)。在屏幕顶端点击“Start Capture(开始采集)”即可。
VPN 用户请注意:点击全文链接后如果看到的是英文页面,请手动将网站语言切换为中文。