什麼是Audio Toolkit?
簡而言之,ClockStone Audio Toolkit是一套Unity工具,可以幫助您:
- 輕鬆管理項目的所有音頻資產。讓您的音頻藝術家配置音頻屬性,如音量,隨機音高,漸變等 - 所有這些都來自Unity檢查器。
- 以最簡單的方式播放腳本代碼中的音頻 - 通過調用具有唯一音頻ID的靜態函數:AudioController.Play(“MySoundEffect1”);
- 或者,您可以使用ExampleBehaviour目錄中提供的組件來觸發音頻而無需任何腳本(例如PlayAudio組件)
- 根據檢查器中音頻藝術家設置的音頻配置,MySFX可以是簡單的聲音文件,也可以是更復雜的音頻行爲。請注意,Unity所需的所有必要音頻對象與AudioSource組件將自動創建。
它不是什麼
Audio Toolkit不是一個單獨的音頻引擎。它是使用Unity內部音頻引擎(FMOD)播放和管理音頻的一組非常方便的工具。它支持Unity提供的所有功能,但也受到相同的限制。
爲什麼你不應該直接使用Unity的AudioSource來播放音頻
通過使用AudioSource設置預製件,您有很多理由不應播放音頻:
- 如果他/她必須在項目的資產層次結構的許多不同位置瀏覽數百個對象,只是爲了調整基本參數(如音量或隨機變量),您的音頻藝術家就會發瘋。
- 您不希望程序員關心音頻應該如何發聲 - 他們只需要觸發某個音頻ID,而音頻藝術家就會定義實際播放的內容
- 如果經常觸發很多聲音,那麼對於性能尤其如此,尤其是在移動平臺上。Audio Toolkit使用一種稱爲“池”的方法來快速創建和銷燬音頻對象,同時避免了內存問題。
Audio Toolkit是一個完整的解決方案
該工具包旨在解決與播放聲音和音樂相關的所有問題(在Unity基礎聲音引擎的限制範圍內)。不再需要使用具有AudioSource組件的對象。Audio Toolkit是舊系統的完全替代品,並不會以任何方式限制您的聲音設計。它只是幫助您更快更輕鬆地到達那裏!
Toolkit支持所有官方Unity平臺(包括PC,Mac,iOS,Android等)。它可以與C#或Java腳本一起使用。
音頻工具包功能
音頻類別
- 按類別定義音頻資產
- 設置屬性,例如整個類別的音量,可在運行時調整並影響所有播放的音頻
- 類別可以是構成子類別樹的其他類別的父級
- 設置特殊屬性,例如每個類別的音量滾降或多普勒效果
- 將Unity 5音頻混音器分配到類別以實現例如音頻閃避
音頻設置(按音頻項目)
- 指定音量,音高,延遲,平移,起始偏移等。
- 限制同時播放相同類型音效的數量
- 定義兩個幾乎同時播放的聲音只播放一次的時間間隔。這可以防止在這種情況下產生不必要的聲音僞影
- 設置3D聲音的最小/最大距離
- 自動淡入和淡出
- 隨機音高或音量
- 在子項級別上也可以指定音量,音高等參數,並可以在音頻項級別批量更改它們
- 將設置從一個項目複製/粘貼到另一個項目
音頻播放
- 播放環境音頻效果(沒有特定位置)
- 在指定的3D位置播放音頻
- 播放音頻,用於移動物體
- 使用可選的淡入/淡出暫停/取消暫停
- 播放多個自定義音效的無間隙鏈
- 預定的聲音效果停止(可選淡出)
- 安排播放無間隙音頻效果鏈
音頻行爲
- 將多個音頻文件分配給一個音頻項目,並在幾個模式之間進行選擇
- 隨機
- 隨機但兩次不一樣
- 序列
- 兩個或所有聲音效果同時發生
- 使用可選的交叉淡入淡出循環一系列音效
- 循環序列可以是隨機的
- 簡介/循環序列
- Intro / Loop / Outro序列
- 播放具有可選重疊,隨機延遲或無間隙的音頻文件序列
音樂
- 用於播放在不同音軌之間自動交叉淡入淡出的音樂的特殊功能
- 音樂曲目播放列表管理與隨機播放,循環播放等。
氛圍聲音
- 具有類似於音樂功能的自動交叉漸變的獨立環境聲道
管理
- 音頻事件日誌,用於跟蹤在哪個時間點觸發的音頻項目
- 音頻概覽窗口,包含所有可用音頻項目的列表,帶有搜索功能(對於大型項目非常有用)
- 在一個場景中使用多個AudioController將特定場景與全局使用的資源分開
- 內存管理:自動從內存中卸載場景特定的音頻
腳本界面
- 播放功能返回播放相應聲音效果的(poolable)AudioObject的參考。此參考可用於操縱特定音頻效果。(例如停止或淡出)
- 代表在聲音播放完畢後收到通知
- 在運行時動態添加或刪除新的音頻項目或類別
- 支持流式傳輸音頻和從資產包中加載
性能
- 優化的性能,尤其適用於移動平臺
- 對象池以避免內存開銷
- 使用特定於場景的AudioControllers來控制要爲每個場景加載的音頻資源的數量。
誰使用Audio Toolkit?
該工具包被認爲是無數商業產品中使用的專業標準解決方案,包括着名遊戲工作室的着名AAA遊戲(遺憾的是,由於法律原因,這些遊戲未被命名)
以下是Codemasters的聲明:
“Codemasters在我們的移動遊戲開發中使用Clockstone的Audio Toolkit,因爲它在我們的AAA控制檯遊戲如DiRT,F1和RaceDriver:GRID中增加了Unity3D的許多高級功能。諸如色度控制,動態語音管理,混合類別與組屬性,音高,音量和樣本隨機化,自動淡入淡出,無間隙鏈接和事件記錄等功能與Unity3D的快速週轉相結合,使小型團隊能夠與巨人保持同步; Clockstone的迅速和專業支持使Audio Toolkit更具便宜價值。
- Simon N Goodwin,首席程序員,Codemasters“
如何使用:
- 創建一個名爲“AudioController”的唯一GameObject,並添加了AudioController腳本組件
- 創建一個包含以下組件的AudioObject預製件:Unity的AudioSource,AudioObject腳本和PoolableObject腳本(如果需要池化)。
- 然後在此預製件中設置自定義AudioSource參數。接下來,在AudioController中將自定義預製件指定爲“音頻對象”。
- 使用Inspector在AudioController中創建音頻類別,例如“Music”,“SFX”等。
- 對於腳本要播放的每個音頻,創建一個在相應類別中具有唯一名稱的“音頻項目”。
您還可以在Unity項目視圖中選擇音頻剪輯列表,然後按“添加所選音頻剪輯”按鈕。這將爲每個剪輯創建一個音頻項目。 - 根據需要爲每個音頻項創建儘可能多的音頻子項。子項代表實際的音頻文件(Unity AudioClip)。如果指定了多個子項,Audo Toolkit將按隨機或按特定順序選擇音頻剪輯,具體取決於音頻項設置。
您還可以在Unity項目視圖中選擇音頻剪輯列表,然後按“添加所選音頻剪輯”按鈕。這將爲每個剪輯創建一個子項。
要播放音頻項目,請調用靜態功能
AudioController.Play(“MyUniqueAudioItemName”)
使用
AudioController.PlayMusic(“MusicAudioItemName”)
演奏音樂。此功能可確保一次只播放一個音樂文件,並根據AudioController實例中的配置自動處理交叉淡入淡出。
更多例子:
AudioController.Play(“MySoundEffect1”);
AudioController.Play(“MySoundEffect2”,新的Vector3(posX,posY,posZ));
AudioController.PlayMusic(“MusicTrack1”);
AudioController.SetCategoryVolume(“Music”,0.5f);
AudioController.PauseMusic();