分類:Unity、C#、VS2015
創建日期:2016-04-05
一、簡介
音頻文件 (Audio File) 資源的選擇原則應該以無故障地流暢運行為宗旨。下面列出了常用的音頻文件。
.AIFF 在導入時轉換為未壓縮的音頻,最適合短音效。
.WAV 在導入時轉換為未壓縮的音頻,最適合短音效。
.MP3 在導入時轉換為 Ogg Vorbis,最適合較長的音樂曲目。
.OGG 壓縮的音頻格式,最適合較長的音樂曲目。
導入音頻文件到Unity中時,可以選擇其最終格式並將其推入立體聲道或單聲道。
要訪問導入設置 (Import Settings),請在工程視圖 (Project View) 中選擇音頻片段 (Audio Clip),然后在檢視器 (Inspector) 中查找音頻導入程序 (Audio Importer)。在此,您可將片段 (Clip) 壓縮為 Ogg Vorbis 格式,並將其推入單聲道或立體聲回放,然后微調其他選項,如進行非常重要的加載時解壓縮 (Decompress On Load) 設置。
導入音頻文件后,就可以將音頻文件添加至游戲對象 (GameObject)。將音頻文件拖入至游戲對象 (GameObject) 時,此音頻 (Audio) 文件將自動創建一個音頻源組件 (Audio Source Component)。
二、細節描述
使用音頻文件 (Audio Files) 時,需要注意以下細節。
1、原生 (Native) 和壓縮 (Compressed)
Unity中的音頻可以是原生 (Native) 或 壓縮 (Compressed) 音頻。Unity 支持大部分常見格式。默認模式為原生 (Native),即導入原始文件中的音頻數據時,不對其做任何更改。但是,Unity 也可在導入時只啟用導入程序中的壓縮 (Compressed) 選項壓縮音頻數據。
原生 (Native) 和壓縮 (Compressed) 模式的區別如下:
- 原生 (Native):原生(例如.wav文件、.aiff文件等)適用於短音效。這類音頻數據容量較大,但無需在運行時對聲音解碼。
- 壓縮 (Compressed): 音頻數據容量較小,但需要在運行時對數據進行解壓縮,這將產生處理開銷。Unity會將音頻編碼為 Ogg Vorbis(Mac/PC/控制台 (Consoles))或 MP3(移動平台),具體取決於定位。
如果希望獲得最佳音質,請提供 WAV 或 AIFF(包括 PCM 數據)等未壓縮格式的音頻,讓 Unity 為你進行編碼。如果你只定位 Mac 和 PC 平台(包括獨立式和網頁播放器兩種),則導入 Ogg Vorbis 文件不會降低質量。但是,在移動平台上導入時,將 Ogg Vorbis 和 MP3 文件重新編碼為 MP3 文件會對音質有輕微影響。
2、音頻源 (Audio Source)
Aud音頻源 (Audio Source) 在場景中播放音頻片段 (Audio Clip) 。如果音頻片段 (Audio Clip) 為三維片段,則源在給定位置進行播放並會隨着距離而衰減。音頻可以在揚聲器之間散播(散播 (Spread))並在三維與二維之間變形(平移級別 (PanLevel))。這可以使用衰減曲線 (falloff curve) 隨着距離進行控制。此外,如果偵聽器處於一個或多個混響區域 (Reverb Zone)內,則會對源應用混響。(僅限專業版)可以將各個過濾器應用於每個音頻源 (Audio Source),以獲得甚至更豐富的音頻體驗。
下面描述了與音頻源相關的屬性及功能。
- 音頻片段 (Audio Clip):對將播放的聲音片段文件的引用。
- 靜音 (Mute):如果啟用,聲音會進行播放,但會靜音。
- 繞過效果 (Bypass Effects):這是用於快速“繞過”應用於音頻源 (Audio Source) 的過濾器效果。關閉/打開所有效果的方便途徑。
- 喚醒時播放 (Play On Awake):如果啟用,聲音會在場景啟動時開始播放。如果禁用,需要在腳本中使用 Play() 命令啟動它。
- 循環 (Loop):啟用此項可使音頻片段 (Audio Clip) 在達到結尾時循環。
- 優先級 (Priority):確定此音頻源 (Audio Source) 在場景中共存的所有音頻源 (Audio Source) 間的優先級。(優先級 (Priority):0 = 最重要。256 = 最不重要。默認 = 128。)。將 0 用於音樂軌道可避免它偶爾換出。
- 音量 (Volume):與音頻偵聽器 (Audio Listener) 相距一個世界坐標單位(一米)處的聲音高低程度。
- 音調 (Pitch):由於音頻片段 (Audio Clip)減慢/加快而形成的音調變化量。值 1 為正常播放速度。
- 三維聲音設置 (3D Sound Settings):音頻片段 (Audio Clip) 為三維聲音時應用於音頻源 (Audio Source) 的設置。
- 平移級別 (Pan Level):設置三維引擎對音頻源 (Audio Source) 的影響程度。
- 散播 (Spread):設置在揚聲器空間中相對於三維立體聲或多聲道聲音的散播角度。
- 多普勒級別 (Doppler Level):確定對此音頻源 (Audio Source) 應用的多普勒效應量(如果設置為 0,則不應用任何效應)。
- 最小距離 (Min Distance):在最小距離 (MinDistance) 內,聲音會保持為可能的最高音量。在最小距離 (MinDistance) 外,它會開始衰減。增大聲音的最小距離 (MinDistance) 可使其在三維世界坐標中“更大聲”,減小它可使其在三維世界坐標中“更安靜”。
- 最大距離 (Max Distance):聲音停止衰減處的距離。超過此點,它會保持為與偵聽器相距最大距離 (MaxDistance) 處的音量,不會再衰減。
- 滾降模式 (Rolloff Mode):聲音的降低速度。值越高,在聽到聲音之前便必須越接近偵聽器。(這由一個圖形確定)。
- 對數滾降 (Logarithmic Rolloff):在接近音頻源 (Audio Source) 時,聲音較高,但是在遠離對象時,它會以極快速度降低。
- 線性滾降 (Linear Rolloff):離音頻源 (Audio Source) 越遠,可以聽到的聲音越少。
- 自定義滾降 (Custom Rolloff):來自音頻源 (Audio Source) 的聲音的行為取決於設置滾降圖的方式。
- 二維聲音設置 (2D Sound Settings):音頻片段 (Audio Clip) 為二維聲音時應用於音頻源 (Audio Source) 的設置。
- 二維平移 (Pan 2D):設置引擎對音頻源 (Audio Source) 的影響程度。
列出這些屬性的目的是為了弄明白英文單詞屬性的含義。
3、音頻偵聽器 (Audio Listener)
音頻偵聽器 (Audio Listener) 充當類似於麥克風的設備。它從場景中的任何給定音頻源 (Audio Source) 接收輸入,並通過計算機揚聲器播放聲音。對於大多數應用程序,最有意義的是將偵聽器附加到相機 (Camera)。如果音頻偵聽器 (Audio Listener) 處於混響區域 (Reverb Zone) 邊界內,則會對場景中的所有可聽見聲音應用混響。(僅限專業版)而且,音頻效果 (Audio Effect) 可以應用於偵聽器,並且將應用於場景中的所有可聽見聲音。
你的場景中只能有一個音頻監聽器 (Audio Listener),並且監聽器通常附屬於主相機 (Main Camera)。
4、音頻片段 (Audio Clip)
音頻片段 (Audio Clip) 包含音頻源 (Audio Source)。 Unity 支持單聲道、立體聲和多聲道音頻資源(最多八個聲道)。Unity 可以導入的音頻文件格式包括 .aif、.wav、.mp3 和 .ogg 。Unity 還可以導入 .xm、.mod、.it 和 .s3m 格式的 tracker modules(跟蹤器模塊)。跟蹤器模塊資源的行為方式與 Unity 中的任何其他音頻資源相同,不過資源導入檢視器中不提供波形預覽。
任何導入至 Unity 的音頻文件都可在腳本中找到其音頻片段 (Audio Clip) 的實例,它實際上是一個實用的音頻數據存儲工具。
- 音頻格式 (Audio Format):運行時用於聲音的特定格式。
- 原生 (Native):此選項以較大文件大小為代價提供較高質量,最適合於非常短的聲音效果。
- 壓縮 (Compressed):壓縮可生成較小文件,但是與原生音頻相比質量有所下降。此格式最適合於中等長度聲音效果和音樂。
- 三維聲音 (3D Sound):如果啟用,聲音會在三維空間中播放。單聲道和立體聲聲音都可以進行三維播放。
- 強制單聲道 (Force to mono):如果啟用,則音頻片段會降混為單聲道聲音。
- 加載類型 (Load Type) Unity:在運行時用於加載音頻資源的方法。
- 加載時解壓縮 (Decompress on load):音頻文件將在加載之后立即解壓縮。將此選項用於較小的壓縮聲音可避免動態解壓縮的性能開銷。請注意,加載時解壓縮聲音使用的內存比保持聲音處於壓縮狀態時大約多十倍,因此請勿將此選項用於大型文件。
- 在內存中保持壓縮狀態 (Compressed in memory):使聲音在內存中保持壓縮狀態並在播放時解壓縮。此選項具有少量性能開銷(尤其是對於 Ogg/Vorbis 壓縮文件),因此僅將其用於加載時解壓縮會使用過多內存量的較大文件。請注意,由於技術限制,在使用 FMOD 音頻的平台上,此選項對於 Ogg Vorbis 資源會無提示地切換為從光盤進行流式處理 (Stream From Disc)。
- 從光盤進行流式處理 (Stream from disc):直接從光盤對音頻數據進行流式處理。此選項使用的內存通常是文件大小的一小部分,因此對於音樂或其他很長的音軌十分有用。出於性能原因,通常建議一次僅從光盤對一個或兩個文件進行流式處理,不過可以從容處理的流數量取決於硬件。
- 壓縮 (Compression):應用於壓縮片段的壓縮量。 可以在滑塊下查看有關文件大小的統計信息。調整此值的一個好方法是將滑塊拖動到保持播放“足夠良好”、同時文件小到足以滿足分發要求的位置處。
- 硬件解碼 (Hardware Decoding):(僅限 iOS)在 iOS 設備上,可以使用 Apple 的硬件解碼器,從而在解壓縮過程中產生較小的 CPU 開銷。有關更多信息,請查看平台相關詳細信息。
- 無縫循環 (Gapless looping):(僅限Android/iOS)在壓縮無縫循環音頻源文件(采用非壓縮 PCM 格式)時使用此選項可確保在對接處保持完美的連續性。標准 MPEG 編碼器在循環點處引入了一個較短無聲期,這可作為短暫的“嘀嗒”或“嘭嘭”聲聽見。
音頻片段(Audio Clip)必須與音頻源 (Audio Sources) 和音頻偵聽器 (Audio Listener) 配合使用才可生成聲音。將片段添加至游戲中的對象時,會將音頻源 (Audio Source) 組件添加至含有音量 (Volume)、音高 (Pitch) 等許多其他屬性的對象。播放源 (Source) 時,音頻偵聽器 (Audio Listener) 可"聽到"范圍內的所有源,再將這些源組合起來,聲音即可通過揚聲器發出。
5、音軌模塊
音軌模塊 (Tracker Modules) 文件與 MIDI 文件有許多相似之處。音軌是包含何時彈奏樂器、音高和音量等信息的樂譜,然后以此創建原始曲調的旋律和節拍。
但是,MIDI有一個缺點,音質依賴於音頻硬件中的可用音色庫,因此,MIDI 音樂的音質會因使用的計算機不同而不同。
相比之下,音軌模塊既包括高質量的PCM示例,又不受所使用的音頻硬件的影響。
(1)支持的格式
Unity可支持四個最常見的模塊文件格式,即 Impulse Tracker (.it)、Scream Tracker (.s3m)、擴展模塊文件格式 (Extended Module File Format)(.xm) 和原始模塊文件格式 (original Module File Format) (.mod)。
(2)使用音軌模塊 (Tracker Modules) 的優勢
音軌模塊文件不同於主流的 PCM 格式(.aif、.wav、.mp3 和 .ogg),此文件可以非常小,但不會對音質造成影響。你可調節一個聲音樣本的音高和音量(並且可運用其他效果),所以,其本質上是一種可播放曲調的“樂器 (instrument)”,還可節省錄制完整曲調所需的開銷。因此,將音軌模塊應用於游戲,可幫助解決音樂和下載大文件等問題。