Unity之音頻詳解

Audio Clip

AudioClip概述

1. Audio Clip包含了被Audio Sources使用的Audio Data。

2. Unity支持Mono(單聲道),Stereo(立體聲),多聲道音頻資源(多達8個通道)

3. Unity可以導入的音頻文件格式有:.aif、.wav、.mp3和.ogg。Unity還可以導入.xm、.mod、.it和.s3m格式的跟蹤器模塊(Tracker Module),儘管在資源導入檢查器中沒有可用的波形預覽,跟蹤器模塊資源的行爲與Unity中任何其他音頻資源相同,

Audio Clip Inspector選項和屬性

1. Force To Mono:

  • 當這個選項開啓時,在包裝之前,多通道音頻將會被混合到單通道音軌。
  • 在向下混合後信號是峯值歸一化的,因爲向下混合過程通常會導致信號比初始的信號更安靜(Quiet),因此峯值歸一化信號給稍後的通過AudioSource音量屬性來進行調整提供了更好的淨空(Headroom)。

2. Normalize:

  • 單位化,當ForceToMono開啓後,此選項可使用。
  • 當此選項被啓用時,音頻將在“Force To Mono”的混合過程中被單位化/規範化。

3. Load In Background

  • 後臺加載。
  • 當啓用此選項時,這個Clip將在一個單獨的線程中延遲加載,而不會阻塞主線程。
  • 默認是關閉的,以確保標準的當場景開始播放時所有的AudioClips已經被加載的Unity標準行爲。
  • 加載狀態可以通過使用AudioClip.loadState屬性進行查詢。

4. Ambisonic

  • Ambisonic 音頻資源可以根據聽着的方向旋轉聲場的形式形式存儲音頻。
  • 對於360度視頻和XR應用程序非常有用。
  • 如果AudioFile包含三維編碼音頻,則開啓此項。

5. Audio Clip的LoadType

(1) Decompress On Load:

  • 音頻文件將在加載後立即解壓縮

  • 將此選項用於較小的壓縮聲音,以避免動態解壓縮的性能開銷

  • 將vorbis編碼的聲音解壓到負載上要比壓縮它們多佔用大約10倍的內存(對於ADPCM編碼,大約是3.5倍),因此不要將此選項用於大型文件

(2) Compressed In Memory:

  • 保持聲音壓縮在內存中,當播放時才解壓

  • 這個選項有輕微的性能開銷(特別是對於Ogg/Vorbis壓縮文件),所以只在較大的文件中使用它,因爲在加載時解壓縮會佔用大量的內存

  • 解壓是發生在mixer線程,可以在“DSP CPU”部分的音頻窗格的剖析器窗口中監視

(3) Streaming:

  • 動態解碼聲音。該方法使用最少的內存來緩衝從磁盤中增量讀取並動態解碼的壓縮數據
  • 注意:解壓發生在單獨的流線程上,可以在profiler窗口的音頻窗格的“ Steaming CPU”部分監視它的CPU使用情況。
  • Streaming clips即使沒有加載音頻數據也有一個大約200KB的重載。

6. Preload Audio Data:

  • 如果啓用,AudioClip將會在場景加載時被預加載
  • 這個在默認情況下是打開的用來反映標準的Unity的行爲,即當場景開始播放時,所有的AudioClips已經完成了加載
  • 如果這個標誌沒有被設置,音頻數據也會在第一次AudioSource.Play()、AudioSource.PlayOneShot()執行時被加載,或者也可以通過AudioSource.LoadAudioData()和通過AudioSource.UnloadAudioData()再次加載時被加載。

7. Compression Format:

  • 聲音在運行時將會被使用的指定的格式
  • 注意:可用選項取決於當前選擇的構建目標。

(1) PCM:

  • 這個選項提供了以更大的文件大小的代價提供了更高的質量。
  • 這個選項對於非常短的聲音效果是非常好的

(2) Vorbis/MP3:

  • 壓縮導致了更小的文件但是與PCM Audio相比質量有所下降
  • 可以通過Quality滑塊配置壓縮量。
  • 這種格式最適合中等長度的音效和音樂
  • Quality有關

(3) ADPCM:

  • 這種格式對於包含相當多的噪音並且需要大量播放的聲音非常有用,比如腳步聲、撞擊聲、武器聲

  • 壓縮比是PCM的3.5倍,但CPU使用率比MP3/Vorbis格式低得多,這使它成爲上述聲音類別的首選。

9. Sample Rate Setting:

  • PCM和ADPCM壓縮格式允許自動優化或者手動降低採樣率

(1) Preserve Sample Rate:此設置保持採樣率不被修改(默認)

(2) Optimize Sample Rate:該設置根據分析的最高的頻率內容自動優化採樣率。

(3) Override Sample Rate:此設置允許手動覆蓋採樣率,因此可以有效地使用此設置來丟棄頻率內容

 

注意:

1. 修改AudioClip屬性選項之後記得點擊Apply應用。

2. 如果這個一個MP3文件和壓縮格式設置爲PCM(即未壓縮),由此產生的Ratio比例將超過100%,因爲文件現在存儲未壓縮的空間比它來自於的源MP3佔據更多空間。

AudioSource

Audio Source概述

1. AudioSource在場景中回放AudioClip。

2. AudioClip可以播放給AudioListener或者通過AudioMaxer

3. AudioSource可以播放任意類型的AudioClip並且能夠配置爲2D, 3D或者作爲一個Mixture(Spatial Blend空間混合)播放。音頻可以在揚聲器(Speakers)之間播放(立體聲到7.1)並且也可以在3D和2D之間變形(Spatial Blend)。

4. 可以通過衰減曲線控制距離。

5. 如果監聽器在一個或多個混響區域(Reverb Zones),混響將應用到源。

6. 單獨的過濾器可以應用到每個Andio Source來獲得更豐富的音頻體驗。

AudioSource屬性

1. Audio Clip:將被播放的聲音Clip的引用

2. Output:

  • 默認情況下,Clip直接輸出到場景中的AudioListener。
  • 使用這個屬性可以輸出Clip到Audio Mixer

3. Mute:如果啓用,聲音將會被播放但是會靜音。

4. BypassEffects:

5. BypassListenerEffects:

6. BypassReverbZones:

7. PlayOnAwake:

  • 如果啓用,聲音將在場景啓動時開始播放。
  • 如果禁用,則需要使用腳本中的Play()命令來啓動它

8. Loop:當AudioClip播放結束時使其循環播放。

9. Priority:

  • 確定該Audio Source在場景中所有共存的AndioSource中的優先級。
  • 優先級爲0時最重要,爲256時最不重要,默認值爲128。

10. Volume:

  • 距離Audio Listener一個世界單位(1米)的聲音有多大

11. Pitch:

  • 由於AudioClip加速或者監督二導致音高(Pitch)的變化。
  • 1表示是正常的播放速度。

12. Stereo Pan:

  • 立體聲平移。
  • 設置2D聲音的立體聲場的位置。

13. Spatial Blend:

  • 設置AudioSource被看作3D源的成都。

14. Reverb Zone Mix

  • 混響區混合,Mix設置路由到混響區的輸出信號的量。
  • 該量在0-1之間是線性變化的(比如音量)。
  • 在[1,1.1]將會進行10分貝的放大,這對於實現近場和遠處聲音的效果很有用。

3D聲音設置

1. DopplerLevel:如何設置爲0,則音量將不會受到AudioListener和AudioSource之間的速度影響。

2. Spread:設置3D聲音在揚聲器空間傳播的角度。

3. MinDistance:

  • 在最小的距離內,聲音會盡可能的大。
  • 在MinDistance之外,它將開始衰減。
  • 增加聲音的最小距離,讓它在3d世界裏“更響”,在3d世界裏降低MinDistance,讓它“更安靜”。

4. MaxDistance:

  • 聲音停止衰減的距離。
  • 超過這個點,音量將會保持在MaxDistance的音量不變,並且將不會再衰減

5. Volume Rolloff:

  • 音量滾降模式。表示聲音消失得有多快。
  • 值越高,聽着在聽到聲音之前就必須離得越近。

(1) Logarithmic Rolloff:

  • 當靠近聲源時聲音很大,當原理聲源時,音量會迅速衰減。

(2) Linearithmic Rolloff:

  • 線性衰減,離聲源越遠,能聽到的越少。

(3) Custom Rolloff:

  • 自定義衰減聲音。
  • 在曲線上點擊鼠標右鍵,添加關鍵點即可繪製曲線。

DistanceFunction

創建AudioSource

1. 通過創建空的GameObject附加AudioSource組件建立。

2. 直接將AudioClip拖入Scen視圖或者Hierarchy視圖中建立。

AudioListener

AudioListener概述

1. AudioListener充當類似麥克風的設備。

2. 它接收場景中來自任何給定的AudioSource的輸入並且通過電腦揚聲器播放聲音

3. 對於大多數應用程序來說,將AudioListener附加到主攝像機時最合理的

4. 如果一個AudioListener在混響區範圍內,則混響將作用於場景中所有可聽到的聲音。

5. AudioEffects可以應用到AudioListener並且將會在應用到場景中所有可聽到的聲音中

6. AudioListener沒有屬性,知識必須添加到工作中。默認情況下,總是被添加到主攝像頭。

7. AudioListener與AudioSource一起工作。當Audio Listener連接到場景中的GameObject(遊戲物體)上時,任何與Listener足夠近的AudioSource都會被接收並輸出到計算機的揚聲器上

8. 每個場景只能有一個AudioListener正常工作。

9. 如果聲源是3D的(AudioClip中的導入設置),則AudioListener將模擬聲音在3D世界中的位置、速度和方向(可以在音頻源中非常詳細地調整衰減和3D/2D行爲),2D將忽略任何3D處理。

10.可以通過Edit->ProjectSettings->Audio設置音頻選項:

Audio Mixer混音器

1. Unity Audio Mixer允許混合各種音頻資源,應用效果,執行mastering(母版)。

Audio Mixer Window

1. 打開Audio Mixer Window:

2. 窗口顯示的Audio Mexer基本上就是一個Audio Mixer樹組。一個AudioMixer組本質上是Audio的混合,一個允許你應用音量衰減和音高校正的信號鏈;它允許你插入處理音頻信號的效果,並改變效果的參數。還有一個發送和返回機制來將結果從一個總線傳遞到另一個總線。

3. 音頻混頻器是一個Asset。可以創建一個或多個音頻混頻器,並在任何時候有一個以上的活動。音頻混頻器總是包含一個主組。然後可以添加其他組來定義混合器的結構。

4. 將Audio Source的輸出路由到音頻混頻器中的組,這些Effct將被應用到那個信號上。一個音頻混頻器的輸出可以路由到任何其他組在任何其他音頻混頻器的場景,因此可以鏈接在一個場景中的多個音頻混頻器,以產生複雜的路由,效果處理和快照應用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章