關於XACT音樂音效檔案的釋疑

 

    1. XAP檔案並不包含音效資料

    本書第 六章,我們介紹了使用XACT音樂音效編輯器產生XAP檔案。要能在XNA中編輯與播放音效,你需要透過XACT建立一個XAP設定檔案。

    在教學的時候,我們發現很多學生都會誤以為XAP檔案中就包含了音效wave檔案。其實.XAP檔案只紀錄了我們在XACT編輯軟體中指定的各種設定與新增的變數資料,它本身是不包含我們載入wave bank與sound bank的音效檔案的。這也是為什麽你不能僅僅加入 .xap 檔案到XNA Game Studio 的方案總管就好,你還需要手動加入所有有用到的音效 wave 檔案。

    2. Sound bank 與 wave bank 的不同

    可能很多人覺得奇怪,為何在XACT中我們除了要建立所謂的 wave bank ,還要建立所謂的 sound bank?那 wave bank 與 sound bank 又有何不同呢?

    基本上wave bank 讓音效工程師指定這個遊戲總共會用到哪些實際的音效檔案 (wave檔案)。舉例來說像主角人物走路的「腳步聲」就是遊戲中常用到的wave音效。而wave bank 裡面會記載了這些音效資料。當你選擇編譯遊戲時,所有的實體音效檔案會建立成為 .xwb 二進位檔案,讓XNA遊戲可以快速載入音效資料。所以wave bank中放的都是實際的音效檔案。

    好,現在你有實際的音效檔案,但是在遊戲中,你可以定義「邏輯上」的音效,舉例來說,「主角走在水泥地上的腳步聲」與「主角走在地毯上的腳步聲」是不同的兩個邏輯音效,但實際上為了節省記憶體與製做的成本,這兩種邏輯上的音效其實使用的,就是同一個真實的「腳步聲」音效檔。不過為了區別走在水泥地與走在地毯上的聲音差別,當主角走在地毯上時,雖然使用同樣的「腳步聲」,但是播放聲音時只使用一半的音量。而這些邏輯上的音效,則是在sound bank中指定的。換句話說,同一個實際的音效檔案被當成多種不同的聲音,並且用各種不同的設定去播放時,就可以在 wave bank 中指定實體的 wave 檔案,並且用 sound bank 中指定這些邏輯上的音效與它們的播放方式。所以在 sound bank 中並不會包含任何實際的 wave 音源資料,而是會「參考」到 wave bank 中存放的實體音源。Sound bank中也不可以有 wave bank 中不存在的音效。

    3. 參考本書15章的進階說明

    所以善用XACT這些強大的編輯功能,你可以對遊戲的音效做各種功能強大的控制。在本書第15章中我們提到專業的大型遊戲公司裡,音樂音效都有專屬的音效工程師在負責。這些人雖然不會寫程式,但是他們可以透過XACT強大的編輯功能做到各種特殊的音響效果。而程式師只需要在程式中呼叫AudioEngine來設定控制的參數就可以。

    在本書第15章所附上的SuperCityRacer範例程式中讀者可以看到我們如何透過XACT的設定,讓賽車的引擎聲音配合實際車輪的轉速來變化高低聲。

   

 葉思義、李震宇