DSP

Unity中音效插件

2019-07-13 20:51发布

这一篇文章是3月初开始写的初稿的,在听了公司邀请Wwise的人来演讲后,继续完善这篇文章。首发于(http:zhutaorun.win)

一.为什么使用第三的插件

  • 因为unity本身做的音效系统做的不够好,对于了很多的声音效果确实没办法满足,需要更多复杂的效果原生满足不了
  • 因为第三插件,让程序与音效师之间的配合更方便多了,原来的合作方式是程序需要很多的工作,而音效师能够发挥的空间有限,准确的说,Wwise提供了一套音效师与程序配合的流程
  • 方案成熟,以Wwise为例,从事音效这块很多年,2000年公司成立,到2015年王者荣耀使用,很多项目选择使用,端游守望先锋

简要

Unity3d随着版本进度更新,关于音效部分。还是原来的2D音效,以及3D音效。Unity提供的音效播放,还有第三方提供的解决方案,FMode和Wwise.
如何在Unity中使用Fmode Studio
Unity中FMOD音插件使用
Wwise
音频引擎为什么会推荐使用Wwise

二.实践部分

个人是把Wwise官网的课程上101课程完成了。大学时候上过数字音频的,看到拉杆有点熟悉的感觉。重新把官方的Cube加入游戏音效的过程,确实很好。
对于程序只要约定对应的音效的事件名称。
对于音效资源文件的优化,因个人版本限制,并没有完成

三.课程内容

主讲人是程序出生,做音频程序开发的。2006年加入Wwise,目前负责大中华地区的推广和培训,内容概况

1.工作上分工合作

设计师
  • 装包 指定事件装入指定包SoundBank
  • 分包 按照玩法、内存和IO需要合并或拆分包
  • 流播放 设定音乐等长文件从磁盘串流播放
  • 增量更新 按项目发布计划合理加包或复用
程序员
  • 设定加载路径,加载包
    • SetBasePath(),AddBasePath()
    • LoadBank()【阻塞vs.异步】
  • 拆分媒体后的加载
    • PrepareEvent()
    • PrepareBank()
  • 可选 自定义底层IO

2.Wwise优化

基于音效的优化需要音效设计师和程序配合
a.包体优化
音效师部分
* 设尺寸超标预警
* 设计编解码方案,Vorbis编码格式可让音效包体缩小20倍
* 按平台太取舍内容
* 采用合成和MIDI
b.内存
音效师部分
* 设计分包
* 设计流播放
程序部分
* 设计内存池和阀值,(超出的时候,根据音效优先级,低级卸载)
* 加载/卸载包
* 可选定制管理器
CPU
音效师部分
* 设音量下限
* 设计发声数上限
* 设计优先级
* 设计虚声部行为
* 优化效果器
程序部分
* 解码缓存
* 线程优化
I/O
程序部分
* 可选定制平台底层I/O
* 可选定制流管理器
监测与调试
音效师部分
* 联机到游戏中监测
* 分析Profiler数据
程序部分
* 联机到游戏中监测
* 录制Profiler数据
* 录制音效
* 性能回调
* 可选自定义日志

小结

  • 只要在同一局域网络下,移动设备可以联机测试,这点很好
  • Profiler记录文件,交由音效师来查找问题,在官方计时支持时也是需要提供记录文件
  • 对于分包设计,则需要音效师对于游戏项目有足够的了解
  • 注意Debug包和release包,在cup占用上debug包大概有20左右,release包大概0.5左右。
  • 好的音效系统在游戏体验上有着极大的区别。