这一篇文章是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左右。
- 好的音效系统在游戏体验上有着极大的区别。