Dreams Universe 音訊技術

Dreams Universe 音訊引擎

Dreams Universe 包含一些強而有力的工具,可幫助你了解創作的音訊效能。大多數創作者毋須費心,但對於那些想要從引擎中獲得額外動力的創作者來說,這些工具可能就會派上用場!你可以使用這些工具找出為何某些聲音可能會中斷、失真或播放延遲。

首先,讓我們深入了解 Dreams Universe 的音訊引擎技術。Dreams Universe 中的音效通常來自於場景中的音效零件。在邏輯觸發音效零件時,會產生一個音效自身的執行個體。一個零件可能會產生多個執行個體,例如在前一個執行個體播放完畢之前,零件又被觸發,便會產生其他執行個體。

每個音效執行個體可以建立多個聲音。一個音效通常會用一個聲音觸發一個執行個體,該聲音是實際播放音訊樣本資料的內容。一段樂器剪輯會產生一個音效執行個體,該執行個體會建立多個聲音,剪輯中的每個音符都會有一個聲音。以下為該流程的範例,以及這些單位中可能包含的內容。

圖表:說明音效單位的流動與內容。

圖表:說明音效單位的流動與內容。

更進一步地說,Dreams Universe 使用了顆粒引擎,每個聲音實際上都在單獨的塊中播放音檔,我們稱之為顆粒。有點像是 Dreams Universe 圖形中使用的粒子!

音訊分析器

這項工具讓你隨時可以查看創作使用了多少資源。你可在此觀看一個實用的 音訊分析器影片:

實際操作音訊分析工具的旁白解說影片

請執行分析音訊並播放你的創作,該工具會隨著時間蒐集資訊,在播放時向你顯示其中包含的數字。退出該工具後,則會獲得一份分析總覽 (請見下圖)。這是一份以圖表呈現遊戲過程資料的報告書,你可以查看創作中耗費資源的項目。你可以在圖表中任意瀏覽,圖表右側的圖像則顯示了當時發生的情況。

音效分析總覽畫面的影像。你一定在想:「這張圖表超酷!」對吧?

音效分析總覽畫面的影像。你一定在想:「這張圖表超酷!」對吧?

此處最重要的統計資料是音訊成本。這是聲音、執行個體、顆粒和所有效果 (如混響、延遲、壓縮器等) 的綜合成本。如果音訊成本接近最大值,引擎就會開始削減聲音,避免成本達到 100%。如果發生這種情況,你通常會收到警告。如果成本達到 100%,Dreams Universe 就無法正常輸出音訊,所以工具會盡一切努力避免此情形發生。

執行個體與聲音設有上限,如果達至此上限,新聲音可能無法播放,或可能導致已播放的聲音遭削減。執行個體的上限為 128。聲音有點複雜,但我們也將此圖表上限設定為 128。理論上,你可以執行更多聲音,但通常超過上限的聲音會對效能產生很大影響,實際情況則取決於你執行 Dreams Universe 的系統而定。

執行越多聲音及執行個體,音訊成本也會隨之增加。你可以查看圖表,找出需要最佳化的地方。

請注意,並非所有聲音都是一樣的。顆粒引擎表示某些聲音可能會使用比其他聲音更多的重疊顆粒,因此成本會更高。顆粒成本的統計資訊呈現場景中所有播放聲音的平均成本。大多數聲音的平均顆粒成本為 1 倍,但如果你在音效零件上使用顆粒合成顆粒隨機化微調,成本可能會增加很多。下圖說明了耗費與節省資源的顆粒成本設定範例。

圖表:呈現顆粒重疊微調的效果。

圖表:呈現顆粒重疊微調的效果。

你可以在聲音微調選單的顆粒合成頁面設定顆粒重疊。顆粒隨機化頁面上也可微調此設定,該頁面上的許多其他滑標也可能影響顆粒成本。

影像:顆粒合成頁面上的顆粒重疊微調設定。

影像:顆粒合成頁面上的顆粒重疊微調設定。

如果你啟動如震盪器、失真、動態壓縮器等聲音功能,聲音也會更耗費資源。最節省資源的聲音通常是簡單的聲音效果,沒有使用任何刺激的微調。

那麼,如何利用這些資訊來將創作最佳化呢?最常見的做法是降低音效的和弦限制。這是針對可建立的聲音數量所設定的上限。如果小心翼翼地完成,你說不定根本不會注意到差異。以下幾個範例說明減少和弦可能會派上用場的情況:

  • 一段播放許多長音,且長音之間互相重疊的音樂剪輯,例如鋼琴或帶有長釋放波封的合成器。
  • 透過快速連擊觸發而自行重疊播放的爆炸音或武器音。

通常和弦上限為 20,表示大多數聲音可以在非必要的情況下播放 20 個自身執行個體,例如快速地反覆觸發。

影像:音效微調選單選項頁面的和弦上限滑標。

影像:音效微調選單選項頁面的和弦上限滑標。

另一個選項是查看具有大顆粒重疊的聲音並減少其數量,但請記住,這通常會影響這些聲音使用顆粒選項製作出的酷炫效果。

你也可以前往音效 FX 頁面關閉上述部分或全部相關功能,這麼做應該也可讓大多數聲音更節省資源。

當然,最後如果所有方式都試過了,也許可以環顧一下你的場景,乾脆直接刪除一些聲音。

音訊溫度計和音效就緒狀態

來談談音訊溫度計吧!但首先讓我們再看看引擎的部分。

Dreams Universe 音訊以樣本形式提供,並剪輯為片段。樣本由你的麥克風錄製所建立,而片段則可在音效的切片製圖中看到。

獨特樣本的總數有上限 (參照溫度計中的「不重覆音效」),並且我們對這些樣本使用的記憶體也設有上限。

例如,你可能會因為進行大量非常小型的錄製,而用完了樣本,或者進行幾個大型長錄製而用完記憶體。另一個限制是對自訂匯入或錄製音效的數量限制。此處有一項實用的資訊,這一點也正是整個 Dreams Universe 音訊系統的基礎與動力所在:

所有 Media Molecule 音訊內容,如收藏中的樂器或特效,下載成本皆為 0。

音訊資料的儲存及下載時間通常非常耗費資源,因此若在 Dreams Universe 中包含標準樣本集,是使社群創作載入速度極快的部分原因。每當你使用自己或他人上傳的音訊內容時,它都會影響創作的載入時間,像是使關卡轉換時間更長且不那麼流暢。如果匯入很長的音訊樣本,例如整首歌曲,就會花上更多時間。

因此,使用在 Dreams Universe 中以 Media Molecule 樂器或其衍生工具建立的音樂勢必更為理想,而在許多情況下,Media Molecule 樣本庫內容便足夠豐富,可提供內建效果來製作出各種音效。如果想讓創作極快速載入,你至少應該盡可能地精簡和重新利用音訊匯入。

請務必了解,在聲音的切片製圖中裁剪樣本,並不會減少任何成本。樣本在錄製後便無法更改,因此你應該盡可能以預計使用的方式匯入樣本。如果將檔案匯入 Dreams Universe 後,打算將檔案裁剪為聲音,那麼為了盡可能去除靜音部分或不需要的音訊,請務必先編輯。如果達到任何上限,就無法發布或儲存創作。

以下為兩個聲音及其成本的範例。左側聲音使用來自兩個不同樣本的兩個片段。右側聲音則使用來自單個樣本的兩個片段。右側較節省資源,但如果在匯入前先裁剪掉未使用的部分,還可節省更多成本。左側範例則太浪費了!在 Media Molecule,為了盡可能降低總體成本,我們更喜歡從單個樣本中剪出片段,來建立特效和樂器。

圖表:說明一組已匯入音效的成本差異。

圖表:說明一組已匯入音效的成本差異。

其實,還有一個我們很少提到、也很少說明,卻始終存在的重要限制:音訊就緒狀態

若要在觸發時播放聲音,就必須「載入」其音訊資料。如果音訊資料沒有準備好,觸發聲音時便會延遲,在音樂或錄製等需要與動畫同步的情況下,這可說是相當不妙。

儘管我們非常喜歡音訊,但如果我們提前載入每個聲音中的每個片段,就會導致記憶體耗盡,無法再使用記憶體儲存遊戲中其他酷炫的部分,因此引擎會不斷妥協。我們將此系統稱為釘選,也就是每個聲音都會確保自身至少有一個片段可以隨時播放。這很有幫助,但如果你的創作中有過多聲音試圖載入不同的音訊單位,那也會耗盡記憶體,導致延遲啟動的問題會三不五時發生。

過往在 Dreams Universe 中,這類問題往往默默發生,但現在你會收到警告,還可使用特殊工具,找出哪些聲音是罪魁禍首。

以你的創作來說,尤其是為了提供其他人使用,在他們的關卡中壓印的創作,你應盡量減少音訊溫度計成本。畢竟,沒有人想在壓印你的元素後,發現元素會導致聲音播放延遲!若發生此情形,可以透過裁剪其他部分來最佳化。讓我們來看看如何進行。

首先,在音效模式下,音效就緒成本上升時,會出現一個溫度計條。我們在音效模式中新增了顯示/隱藏選單,讓溫度計一律為可見。不過,通常只有達到音效就緒狀態上限時,才需要擔心這個。如果按一下此溫度計條,就會進入音效就緒狀態溫度計,你可以在其中選取更多詳細資訊,來查看場景中哪 20 個音效最耗費資源。請記住,這裡的資訊只呈現音效就緒成本!

兩張影像,呈現音效就緒狀態溫度計條,與音效就緒狀態溫度計本身。兩張影像,呈現音效就緒狀態溫度計條,與音效就緒狀態溫度計本身。

兩張影像,呈現音效就緒狀態溫度計條,與音效就緒狀態溫度計本身。

另一個部分是每個音效頻道的詳細資訊。你可以選擇清單中的任何作品,之後系統會將你導覽至場景中該聲音的位置 (可能需要從微晶片或時間軸中翻找)。你還會看到一個藍色的閃爍指標,顯示聲音在一段時間內的位置。

影像:呈現選取「音效就緒狀態詳細資訊」後,系統會帶你前往音效在場景中的位置。

影像:呈現選取「音效就緒狀態詳細資訊」後,系統會帶你前往音效在場景中的位置。

你可能會注意到,清單中有部分音效是重複的。由於音效會消耗記憶體,因此若想釋放音效就緒的可使用量,就必須處理重複項目。

接下來,你可以刪除最耗費資源的音效,或在切片製圖中裁剪該片段。裁剪無法降低音訊成本,但確實有助於調整音效就緒成本,因為你只需負擔一個片段的成本,不必耗費整個樣本的成本。在以下範例中,我們使用了一個較長樣本中不同部分的兩種音效,加以比較。

圖表:說明如何藉由裁剪調整就緒狀態成本。

圖表:說明如何藉由裁剪調整就緒狀態成本。

這是兩個片段使用相同樣本後,各自的成本,並不會重複計算!

通常,音效就緒問題是由不必要的長音效引起,如下圖所示。此處使用了一個環境背景音「森林白日」,佔用了 5.24% 的使用量預算,幾乎等同於此場景中使用的一首歌曲所消耗的成本!在此,目前使用量仍遠低於預算上限,但如有需要,也可在切片製圖中裁剪「森林白日」音效,來降低消耗的成本。

兩張影像:呈現音效就緒狀態溫度計中,耗費資源的環境背景音效之成本,以及可進行裁剪的切片編輯器。兩張影像:呈現音效就緒狀態溫度計中,耗費資源的環境背景音效之成本,以及可進行裁剪的切片編輯器。

兩張影像:呈現音效就緒狀態溫度計中,耗費資源的環境背景音效之成本,以及可進行裁剪的切片編輯器。

現在來看看另一個訣竅:匯入的音訊 (如長段預錄音樂) 會以快速且低效率的方式消耗音效就緒使用量。因此若改用 Dreams Universe 製作的音樂,總是能更順利地維持音訊運作順暢。

這樣說差不多就很清楚了,希望你會發現這些功能多實用。但請記得,有很多邊緣案例、注意事項及棘手部分需注意,例如……

  • 每個音效只為自身的其中一個片段準備就緒 (但是!請注意以下說明!),所以若有多個片段,可能必須先翻找一下,才能找出哪一個片段已準備就緒。
  • 除了開啟列對應的樂器之外,凡是在自動鋼琴演奏中由音符佔據的每一列,便會有一個片段準備就緒。這表示,這些音效可能非常耗費資源!
  • 若音效使用樣本中幾乎相同,但仍不完全相同的部分,即使是共享的部分,也會將其成本記錄為音效個別使用的樣本。因此,可見這些所使用的部分需要個別準備多少使用量。但如上所述,共享音訊單位的總成本並不會增加為兩倍。基本上,即便使用幾乎相同的音訊資料,清單中的聲音以不同方式裁剪時,仍會計算為個別作品。
  • 目前還無法選擇哪個片段應該列入音效就緒狀態,不過將來就很難說了!

Dreams Universe 使用者指南目前仍在持續開發。請持續關注後續更新,我們會隨時間新增更多學習資源。