Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

匯入音訊樣本

支援的圖片格式

Godot 提供三種音訊匯入格式:WAV、Ogg Vorbis 以及 MP3。

各有優點。

  • WAV 檔案可使用原始資料或輕量壓縮(IMA ADPCM 或 Quite OK Audio)。目前匯入時只能以原始格式導入,但 Godot 可在匯入後進行壓縮。此格式在 CPU 上播放負擔很輕(同時播放上百個聲軌也沒問題),缺點是非常佔用磁碟空間。

  • Ogg Vorbis 檔使用強力壓縮,因此檔案大小較小,但需要更多的效能才能播放。

  • MP3 的壓縮效率優於使用 IMA ADPCM 或 QOA 的 WAV,但不如 Ogg Vorbis。也就是說,要達到與 Ogg Vorbis 大致相同的音質,MP3 的檔案會顯著更大。好處是,相較於 Ogg Vorbis,MP3 播放時的 CPU 佔用更低。

備註

若使用自行從原始碼編譯的 Godot 編輯器時禁用了特定模組,可能會無法使用某些格式。

以下是每種格式 1 秒音訊檔案大小的比較圖表:

格式

1 秒的音訊

WAV 24 位元, 96 kHz, 立體聲

576 KB

WAV 16 位元, 44 kHz, 單聲道

88 KB

WAV IMA ADPCM,44 kHz,單聲道

22 KB

Quite OK Audio,44 kHz,單聲道

17 KB

MP3 192 Kb/秒, 立體聲

24 KB

Ogg Vorbis 128 Kb/秒, 立體聲

16 KB

Ogg Vorbis 96Kb/秒, 立體聲

12 KB

請注意,MP3 和 Ogg Vorbis 的數字可能會因編碼型別而異。為簡單起見,上圖使用 CBR 編碼,但您可以在網路上找到的大多數 Ogg Vorbis 和 MP3 檔案都使用 VBR 編碼,效率更高。 VBR 編碼使有效音訊檔案大小取決於來源音訊的「複雜程度」。

小訣竅

短、重複播放的音效建議用 WAV,音樂、語音或長音效建議用 Ogg Vorbis。若是手機或網頁遊戲,CPU 資源有限且會同時播放多個壓縮音檔時(如長迴圈環境聲),MP3 會較適合。

匯入音訊樣本

在檔案系統擴充座中選擇 WAV 檔案後,匯入擴充座中會提供多個選項:

在檔案系統擴充座中選擇 WAV 檔案後,匯入擴充座中的匯入選項

在檔案系統擴充座中選擇 WAV 檔案後,匯入擴充座中的匯入選項

選擇 Ogg Vorbis 或 MP3 檔案時,顯示的匯入選項會有所不同:

在檔案系統面板選取 MP3 檔後,匯入面板所顯示的匯入選項

在檔案系統面板選取 MP3 檔後,匯入面板所顯示的匯入選項。Ogg Vorbis 檔案會有相同的選項。

匯入聲音後,您可以使用 AudioStreamPlayer、AudioStreamPlayer2D 或 AudioStreamPlayer3D 節點進行播放。請參閱 音訊流 以了解更多資訊。

匯入選項

強制 > 8 位

如果啟用,如果來源檔案為 16 位元或更高,則強制匯入的音訊使用 8 位元量化。

通常不建議啟用此功能,因為 8 位元量化會顯著降低音訊品質。如果您需要較小的檔案大小,請考慮使用 Ogg Vorbis 或 MP3 音訊。

強制 > 單聲道

如果啟用,如果來源檔案是立體聲,則強制匯入的音訊為單聲道。透過將兩個通道合併為一個,檔案大小可減少 50%。

強制 > 最大取樣率

如果設定為大於「0」的值,則強制音訊的取樣率會降低到低於或等於此處指定的值。

這可以顯著減小某些聲音的檔案大小,而不會影響質量,具體取決於實際聲音的內容。請參閱 最佳實務 以了解更多資訊。

編輯 > 自動裁切無聲

音訊檔前後有很長一段無聲音的時間也是其中一種常見問題。這段無聲的時間通常是由 DAWs 在保存波形時插入的,這會導致檔案大小沒必要地增加,並讓播放時產生延遲。

啟用 自動裁切無聲 後,經標準化處理(見下方**編輯 > 標準化**)後,若音訊開頭或結尾區段小於 -50 dB,會自動裁切掉。為避免爆音,裁切時會自動加入 500 個採樣點的淡入/淡出效果。

編輯器使用手冊

啟用後,會將音訊做 標準化,也就是將最大音量調整至 0 dB。啟用後,音檔會根據其原始最大音量而變得更響亮。

編輯 > 迴圈模式

與 Ogg Vorbis 和 MP3 不同,WAV 檔案可以包含元資料來指示它們是否正在循環(除了循環點之外)。預設情況下,Godot 將遵循此元資料,但您可以選擇套用特定的循環模式:

  • 從 WAV 偵測: 使用 WAV 中的中繼資料來取得循環資訊。

  • 停用: 不要循環音頻,即使元資料指示檔案應該循環播放。

  • Forward: 標準音訊循環。從開頭正向播放至循環結束點,然後回到循環起點重複。

  • Ping-Pong: 先正向播放至循環尾,再反向播放回循環頭,持續來回循環。

  • Backward: 從循環結束點反向播放至循環起點,然後重複。

選擇 ForwardPing-PongBackward 其中一種模式時,可以指定迴圈區段起止點。Loop Begin 以「從音檔開頭起算的樣本數」設定。Loop End 也同理,若設為 -1 則會以音檔結尾作為終點。

警告

在 AudioStreamPlayer 中,當循環音訊到達音訊檔案末尾時,不會發出「finished」訊號,因為音訊將無限期地繼續播放。

壓縮模式

WAV 可選三種壓縮模式: PCM (未壓縮)IMA ADPCM ,或 Quite OK Audio (預設) 。 IMA ADPCM 能稍微減少檔案大小與記憶體用量,但音質下降可被明顯聽出。 Quite OK AudioIMA ADPCM 更省空間,音質劣化也不那麼明顯,但 CPU 使用率略高一些 (仍遠低於 MP3) 。

Ogg Vorbis 和 MP3 不會降低品質那麼多,可以更大程度地減少檔案大小,但代價是播放期間 CPU 使用率更高。這種較高的 CPU 使用率通常不是問題(尤其是 MP3),除非在行動/網路平台上同時播放數十個壓縮聲音。

匯入選項(Ogg Vorbis 和 MP3)

迴圈

啟用後,音訊播放到結束會直接從頭再播。

警告

在 AudioStreamPlayer 中,當循環音訊到達音訊檔案末尾時,不會發出「finished」訊號,因為音訊將無限期地繼續播放。

迴圈起始位置

迴圈起始位置決定音訊播放到尾時,要從哪個時間點重頭開始。這可以讓你只迴圈音檔裡的某一段,適合環境音或音樂。單位是秒,0 就是整段都重複。

僅當啟用 Loop 時才有效。

Advanced import settings 對話方塊中提供了更方便的 循環偏移 編輯器,因為它可以讓您預覽更改,而無需重新匯入音訊。

BPM

音樂軌的 BPM(每分鐘幾拍),應該與原始編曲設定相同。這僅跟互動式音樂功能(尚未支援)相關,對一般音效沒影響。

Advanced import settings 對話方塊中提供了更方便的 BPM 編輯器,因為它可以讓您預覽更改,而無需重新匯入音訊。

節拍計數

音樂軌的節拍數。只用於互動式音樂(尚未支援),對一般音效沒影響。

Advanced import settings 對話方塊中提供了更方便的 Beat Count 編輯器,因為它可以讓您預覽更改,而無需重新匯入音訊。

節拍

每一拍中的小節數。僅和互動式音樂功能有關(尚未支援),與音效無關。

Advanced import settings 對話方塊中提供了更方便的 Bar Beats 編輯器,因為它可以讓您預覽更改,而無需重新匯入音訊。

進階匯入設定(Ogg Vorbis、MP3)

按兩下檔案系統面板中的 Ogg Vorbis 或 MP3 檔(或者在匯入面板中選擇**高級...**),就會出現一個對話方塊:

在檔案系統面板中雙擊 Ogg Vorbis 或 MP3 檔案時出現的進階對話框

在檔案系統面板中雙擊 Ogg Vorbis 或 MP3 檔案時出現的進階對話框

這個對話框讓您可以編輯音訊的循環點,具有即時預覽功能,除此之外還有 BPM 、節拍數和每小節節拍數。這 3 個設定目前未使用,但未來會用於互動式音樂支援 (這讓您可以在不同音樂軌道之間流暢地切換)。

備註

與 WAV 檔不同,Ogg Vorbis 與 MP3 只能設定「迴圈起點」,無法指定迴圈結束點。也只支援標準的正向循環,不支援 ping-pong 或反向循環。

最佳實務

使用合適的音質設定

若你還要後製,保留無損高音質原始檔很重要,但專案包出去時沒必要用同樣等級的音質。對 WAV 檔,Godot 提供多種匯入選項,可減少專案檔案大小又不會改動原始音檔。

若要減少記憶體使用量和檔案大小,請為音訊選擇適當的量化、取樣率和頻道數:

  • 遊戲裡同時會放很多聲音,沒有人會聽得出 24 位音檔的差別。用 24 位元音訊在遊戲中沒實質好處。

  • 除非你在遊戲執行時需要大幅降速回放(像慢動作),否則用超過 48 kHz 的取樣率沒聽覺差別。若要保留高取樣率原檔做後製,可用「強制 > 最大取樣率」匯入選項(僅支援 WAV)限制專案內實際用到的取樣率。

  • 大多數音效都可以轉成單聲道。若你原始檔要保留立體聲方便後製,專案匯入時可用「強制 > 單聲道」讓專案內用單聲道(只限 WAV)。

  • 人聲大多可用單聲道,而且取樣率降到 22 kHz 也聽不出損失(除非是很高音的聲音)。因為大部分人類聲音頻率不超過 11 kHz。

使用即時音訊效果降低檔大小

Godot 中有自帶許多特效的 豐富匯流排系統 。得益於該系統,SFX 藝術家便無需在音效檔中處理殘響,可有效降低檔案大小並能確保剪輯正確。再也不需要烘焙殘響 SFX 了。

../../_images/reverb.png

如上例,若聲音檔已經包含殘響,檔案會大得多。

也參考

音訊樣本可在執行時用 執行時檔案讀取與儲存 載入與儲存(包含匯出後的專案)。