【異星工廠】星期五報道 #396 - 改進2.0 版本中的聲音


3樓貓 發佈時間:2024-02-10 16:31:28 作者:Wube Software Language

大家好,今天我們將解釋(並聆聽!)2.0 版本中的聲音改進。

工作聲音

實體在活動時發出的聲音通常是單個循環的主聲音,某些實體可能會在它們變得活躍或停止工作並閒置時播放聲音。此外,還有一些屬性和修改器可用於更多地控制工作聲音。但是,一個循環聲音的作用很有限。

將機器的聲音與其動畫同步非常重要。我想到了重音的概念。在特定動畫的特定幀播放的較短聲音。最初,我預計一臺機器會獲得兩到三個重音來補充其主要聲音,僅此而已。但伊恩有其他想法。

從鑄造廠開始,除了主要聲音之外,還有十二種重音來強調動畫的各個組件和部分。他並沒有就此止步,現在有些機器具有更復雜聲音設置。我們可能會在晚些時候展示它們,但現在讓我們回到鑄造廠。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻01

右側是可視化工作聲音,較大的方框代表主要聲音,較小的方框代表各個重音。

嘗試加快或減慢機器的聲音以匹配其動畫速度(模塊、信號、低功率)效果不佳(尤其是減慢速度)。這就是為什麼在 1.1 中很少使用它,我們只是加快了聲音速度,例如蒸汽機聲音就是這樣工作的。但是,將許多較短的聲音直接與特定的動畫幀相關聯可以自然地解決這個問題。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻02

左側是快速鑄造廠,右側是非常慢的鑄造廠。


多種主要工作聲音

既然我們已經以重音的形式為一臺機器提供了多種聲音,那麼我們是否也可以通過擁有多種主要聲音來做一些有趣的事情呢?如果我們將它與我們的其他一些技巧結合起來是可以的。主要是行為匹配,即將聲音的音量或播放速度與機器的活躍速率相匹配。活躍速率是機器報告其正在做的事情的速度,它可以很簡單,例如在工作時報告 1.0,否則報告 0.0。

它可以是車輛的速度,或者更有創意的東西。讓我們看幾個關於車輛的示例,看看我們可以在 2.0 中用它做什麼。

在 1.1 中,汽車有一個主要聲音,汽車行駛得越快,播放的速度就越快。這是有效果的,但我們可以做得更好。現在讓我們使用兩種聲音,怠速聲音和行駛聲音,隨著車速的增加,怠速聲音的音量迅速減小直至完全靜音,同時行駛聲音的音量從靜音增大到最大音量。在某些時候,駕駛聲音的音調也開始增加,儘管按照比例,但不會變得太高。

坦克也使用了同樣的處理,併為其履帶添加了單獨的聲音。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻03

當然,火車也不可能被忽視,火車在高架鐵軌上的聲音不同。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻04


機器的新增聲音

您是否注意到車在經過不同的圖塊或資源時發出的聲不同音,或者之前視頻中車廂門發出的聲音?它們不像工作聲音那樣很好聽,因此需要採用一種不同的方法。

我們可以給每個實體添加特殊的邏輯來處理額外的聲音,我們過去已經在某些事情上這樣做過,例如炮塔在更新的版本中具有旋轉聲音。但這僅當具有附加聲音的實體數量非常小時才可以,當你嘗試向大量實體(例如採礦鑽機和機器人)添加聲音時,這會變得低效且浪費。

我們真的很想要實現這個功能,所以一個新系統誕生了,命名為“附加聲音”。一堆新舊實體已經使用了這個系統,例如,大型採礦鑽機(上次顯示它只有佔位符聲音)。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻05


環境聲音

我們對 1.0 版本有很多改進想法,但當時無法實現。一是希望可以設計更身臨其境的環境系統,而不僅僅是一種風聲。我設計了一種風系統,當你放大畫面時,它會播放不同的風軌,一個是非常基本的,然後是一個更有趣的風軌,當你縮小時(兩者之間有交叉淡入淡出)。會演變成具有半持續氛圍的想法,例如在烏爾肯星上,您可以聽到遠處火山傳來的低壓聲,並有不同長度的停頓。

但是如何根據玩家的位置添加更具體的環境聲音呢?為此,我們無法使用環境觸發框或預繪製區域這類遊戲行業常用方法,因為我們的地圖是生成的,而不是手工製作的。因此我們提出了根據特定條件向圖塊和實體添加聲音的想法。

在我們掌握了這項技術後,我開始添加聲音,例如水體的輕柔拍打聲和樹木樹葉的沙沙聲。然後我意識到我們可以利用聲音營造出有隱形生物的感覺,例如樹上的小型物體是否是敵對外星鳥類,只有當玩家位於樹的一定半徑內且數量高於指定閾值時,它們才會發揮作用。每個聲音之間還有一個隨機停頓。進一步考慮這個想法,我們可以指定它們是否根據一天中的時間或相機的縮放等級進行播放。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻06

下次當你放火燒森林時,請記住這可能是某人的家。


其他聲音改進

物品聲音

當我們發佈 1.0 版本時,Kovarex 告訴我,他希望在遊戲中添加將特定於物品放入庫存的聲音。當時我們只有一種移動物品的聲音,雖然還可以,但可能有點無聊,而且沒有任何特殊的反饋。他解釋說,它們需要有點像電線連接和斷開的聲音,我理解他的意思。

通過反覆試驗,我弄清楚了哪些聲音可以組合在一起(例如小型和大型金屬物品)以及哪些聲音應該是獨特的。有些聲音比其他聲音需要更多的迭代,因為有時很難弄清楚聲音應該是怎麼樣的。比方說,速度模塊的聲音是什麼樣的?在這種情況下,我最終使用了合成聲音,因為它聽起來比較抽象。

星期五報道 #396 - 改進2.0 版本中的聲音_視頻07

先進的音量控制

團隊中有人提到環境聲音對其音量有著更多的控制,Ian 詢問是否將其用於其他聲音。我找不到任何不這樣做的理由,所以我將所有這些參數放到高級音量控制屬性中。因此我們可以做一些巧妙的事情。

玩家可以隨距離的衰減從默認的線性更改為聽起來更自然的指數曲線。如果您想做一些不同的事情,還可以選擇對數、餘弦或 S 曲線或根本不衰減。我們可以以類似的方式改變聲音隨縮放程度的衰減方式。可以指定天黑閾值,以便僅在夜間播放某些聲音。該工具箱中的最後一個工具是動態聲音修改器。這些使我們能夠僅針對特定的遊戲環境更改聲音的大小。動態音量調節器僅在菜單中或提示和技巧中、駕駛車輛時或火車在高架鐵軌上時應用。

聲音聚合

在某些情況下可能需要同時播放很多聲音。與許多撕咬者的戰鬥是一個典型的場景,撕咬者和炮塔的攻擊會產生很多聲音。如果對給定時間內可以播放的聲音數量沒有硬性限制,那麼它可能很快就會變成噪音牆。

聲音聚合是解決這個問題的一種方法,當一個聲音多次播放時,超過一定限制後將被剔除或降低其音量。該系統已經在 1.1 中出現,但它只能用於特定場景中的少數聲音。 2.0 系統得到了極大的改進,可以用於大多數聲音,並且添加了對調整哪些聲音的更多控制。通過這些更改,那些有問題的場景的音景現在已得到控制。

聲音優先級

與聲音過多問題相關的是,有時沒有足夠的資源來處理更重要的聲音,例如 GUI 交互效果或某些玩家操作。顯而易見的解決方案是引入聲音優先級系統,這正是我們所做的。首先,玩家的一些行為(例如建造)被賦予了更高的優先級,並且一些刺耳的聲音被取消了優先級。

測試套件

在我開始研究各種與聲音相關的問題和功能後不久,我也開始構建我們的音頻測試套件。我們首先創建了一個簡單的框架,以便能夠測試至少基本的音頻功能,例如檢查聲音是否在合適的時間播放。該套件隨著時間的推移而不斷發展,現在涵蓋了對現有功能和各種錯誤的修復,以及全新的功能(以及全新的錯誤修復)。

事實證明,擁有這樣的測試套件在對遊戲重新設計或擴展音頻系統的不同部分時非常有幫助,並且對於確保那些討厭的錯誤不會再次出現非常有幫助。

音樂

我相信你們都想聽聽《異星工廠:太空時代》中的新音樂,但我們會將其留到未來的《異星工廠:太空時代》中,敬請期待!

所有這些新的或改進的功能,除了附加聲音的自定義邏輯之外,都可以在遊戲原型中使用,模組製作者將能夠以與我們內部相同的方式使用它們。


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com