2010-09-24 50 views
1

我正在使用XNA開發一款需要音效和音樂的遊戲。我試圖弄清楚如何實現聲音引擎。 Microsoft提供使用Content Pipeline加載和播放音頻的功能。不過,我也看到有人用Xact來做同樣的事情。我的問題是,有什麼區別,什麼是更好的方法來建立一個良好的引擎?Xact與AudioContent

+0

這真的取決於你在建什麼。你不是(或者至少不應該)建立一個「聲音引擎」,因爲這就是XACT和Content Pipeline的音頻內容。我個人建議使用更簡單的內容管道,如果您以後發現需要它,則切換到XACT。 – 2010-09-25 04:26:53

+0

我在一個團隊,我的責任是引擎編程。我只是寫封裝類,以便我可以A)提供易用性和B)有能力擁有多個聲音引擎。我只是想知道優點/缺點,並找出MS是否打算讓我使用Content Pipeline,或者是否可以在Xact中完成所有工作。 – Dave 2010-09-25 09:14:06

回答

4

Xact功能豐富但使用起來非常複雜。它最初是播放聲音的唯一方式,但人們想要更簡單一些,所以微軟添加了內容管道方法。

使用內容管道,如果你想:

  • 播放聲音(2D或3D)
  • 爲了不必投入大量的時間 學習的音頻框架

如果你想使用Xact:

    01聲音可以是個
  • 分類 相互依賴控制,像 靜音遊戲的聲音,但沒有菜單聲音在聲音 音調,音量
  • 實時先進控制。對於像 炮塔旋轉起來,汽車 加速等
  • 有多個品種,像七個 不同的疼痛聲音的 單一的聲音效果,並有XACT的 選擇打哪一個。
  • 要在每次播放時播放不同的音高,音量,濾波器或3d 聲音。這是 非常適合子彈和 這樣的重複性事情。有 是沒有說虛假的電腦 模擬像一個重複的聲音 沒有方差。
  • 允許遊戲設計師或聲音 設計師完全控制編輯和 改變聲音而不觸及 代碼。
  • 要讓聲音銀行(的 聲音集合),可以加載或卸載作爲 一個基團,其可以使用不同的 壓縮設置,並且可以是 存儲器或流式傳輸。
  • 在編輯器中混合聲音的音量,音高和優先級 。
  • 對聲音應用濾波。
  • 控制聲音是否爲 循環與否。
  • 要使用DSP效果

我最喜歡的事情有關XACT的是編輯和主編的聲音功能預覽。例如,一個音量在一個炮塔過熱聲音上消失。使用XACT,即使他不是技術人員,也可以和音響設計師一起坐下來,編輯控制曲線,直到他對聲音滿意爲止。一旦你設置好了,以後很容易進行更改。在這個示例圖像中,轉塔過熱。在過熱循環結束時,嘶嘶聲的蒸汽噪音量會減少,但由於這是一條曲線,因此我對聲音的消音方式有很大的控制。我也使用過這種武器,在彈藥用完時根據曲線降低頻率。