這一篇文章是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左右。
- 好的音效系統在遊戲體驗上有着極大的區別。