標題所提到背景音樂指的是載入完畢進入地圖後所播放的待機音樂,也就是我所謂的開場BGM。它們有的只會在安全屋內播放,有的在走出安全屋後仍會繼續播放。在mod作者修改背景音樂時,也往往會出現進入關卡後同時播放兩首曲子的情況,為了解決這個問題,通過實驗大概得到了各關卡BGM對應的檔名。本文章僅從實用的角度出發,或許並不能完全解決你的問題,而且由於沒去扒地圖程式碼,許多對於機制的解釋是從現象出發的,如果有錯誤還請諒解並指正。
讓我們在Left 4 Dead 2\left4dead2\sound\music目錄下找到兩個資料夾,其命名分別為“cp music”和“st music”,各關卡開場BGM的檔案就在這兩個資料夾中。由於L4D2在發售後推出了數次更新,分別包含了1代戰役、The Passing、The Sacrifice、Cold Stream以及The Last Stand的地圖,因此,在Left 4 Dead 2\left4dead2_dlc1\sound\music、Left 4 Dead 2\left4dead2_dlc2\sound\music、Left 4 Dead 2\left4dead2_dlc3\sound\music、Left 4 Dead 2\update\sound\music這四個目錄下也能找到cp music和st music資料夾(update資料夾為The Last Stand更新,它只有一個st music資料夾),它們包含了前述更新戰役地圖的開場BGM。
對於修改背景BGM的需求來說,個人認為只需要修改st music資料夾內的檔案即可,因此只在下圖中給出了st music內檔案與開場BGM的關係,下面將指出一些特殊之處。
各開場BGM對應的檔名及所在目錄對於二代戰役,每個章節第一張地圖(如C1M1、C2M1、C3M1等)有專門的開場BGM(為了方便,簡稱首圖BGM),但章節的其他地圖(如C1M2、C9M2、C3M4)開場均會播放youhadbetterpray.wav(這類簡稱非首圖BGM),前者僅在出生地點播放,離開後停止;後者將會持續播放完整首BGM。
消逝、犧牲、刺骨寒溪的非首圖BGM均使用了二代的youhadbetterpray.wav,而墜機險途偷懶用了死亡喪鐘的deathtollintro.wav,上次更新的背水一搏也使用了該檔案,我覺得多多少少也印證了該戰役屬於死亡喪鐘的一條平行時間線。
我想不通為什麼V社會把毫不留情的開場BGM單獨拎出來,而不是和其他一代戰役的放在一起。
接下里以Left 4 Dead 2\left4dead2_dlc3\sound\music\stmusic和cpmusic來說明一下這兩個資料夾的用途。st music中的bloodharvest.wav是c12m1_hilltop的開場BGM,cp music中的bloodharvestor.wav和bloodharvestor2.wav是血腥收穫後面四張圖,即c12m2_traintunnel、c12m3_bridge、c12m4_barn和c12m5_cornfield的BGM,而st music中的bloodharvestintro.wav僅是開場的一個氛圍音,長度僅9秒。因此我們在c12m2開場時會聽到bloodharvestor.wav和bloodharvestintro.wav同時播放,背景音樂搭配氛圍音播放並不會讓人產生違和的感覺。但若修改時這兩個檔案被替換成了不同的背景音樂,同時播放就會很嘈雜。要解決這個問題有很多方法,比如把cp music的檔案全刪掉並替換st music內的檔案,這樣在非首圖出了安全屋還能繼續聽BGM;又或者保留/刪除st music內的效果音,僅替換st music內其他檔案和cp music的檔案,這樣統一成出了安全屋就沒有開場BGM,怎麼做取決於你的想法。
上面只是簡單講述了一些基本的有規律的東西,實際上因為V社的特殊操作和偷懶,情況會有所變化,需要稍微琢磨一下。另外一代cp music的檔名都比較有指示性,所以就沒有一一給對照表了,和地圖程式碼對比排除一下基本上能確定位置。
最後還要談一個問題,L4D2作為2009年的遊戲,有時候爆改太多引擎確實遭不住。在音訊方面,L4D2普遍讀取的是取樣率44100Hz、位深度16位的wav檔案,當修改後的檔案過大時,多音軌同時播放將會導致音訊系統的故障,具體表現為BGM突然消失並且遊戲幀數暴跌,這種現象在犧牲救援關尤為明顯,當救援開始的BGM、tank的BGM以及你隊友在點播機上放音樂的BGM同時交織時,就很容易出問題。因此建議在修改BGM時時長儘量不要超過兩分鐘,當然你要放四分鐘的也沒問題,在檔案格式和遊戲系統上還有方法使用。
影響音訊系統工作的主要是檔案大小,除了44100Hz、16位wav檔案外,L4D2也能讀取44100Hz、8位wav檔案(44100Hz是必須要滿足的),並且也不挑立體聲(預設是雙聲道)和單聲道,如果用au將檔案由16位立體聲轉換為8位單聲道,可以將體積縮小為原檔案的1/4,可以大大減輕多聲軌播放時音訊系統的負擔,但這種“魔改”是有代價的。L4D2的mod在表面上的機理是存放原檔案的替換檔案,並且在啟動後優先讀取替換檔案,當替換檔案與原檔案格式不符時就會出現問題。就音訊方面來說,最常見的就是爆音,當你使用了不符合16位的音訊檔案後,如果還使用mod來替換音訊,就會產生爆音的問題,這是重構音訊快取也不能解決的;尤其是一些三方地圖,它們通過mod替換了遊戲內的原檔案,而這些原檔案已經被“魔改”過了,也會產生爆音問題,比如wild ride裡的tank bgm。不僅僅是BGM,槍聲和其他效果音也適用於這一點,up主月悠紅茶製作的第一版少前mod就使用了獨立的槍聲檔案(槍聲檔案既可以包含在槍械mod中,也可以單獨拿出來直接覆蓋替換原檔案),我記得是44100Hz、8位深度的,因此在訂閱創意工坊其他槍械模組後,開槍、換彈均會爆音(不過現在好像已經找不到那一版了,現在發出來的第一版都是2022年修改過的,也不提供音訊修改了好像,我倒覺得老版裡救援到了的BGM挺好聽的,不知道叫什麼名字)。
當然你也可以不管上面我說的這些,在音訊系統故障時開啟你的控制檯,在裡面輸入“record XXX”,只輸入引號內的record XXX,XXX替換成任意你想要的名字,通過這條指令開始錄demo。錄製demo會停掉所有正在播放的BGM,這樣自然也就不會卡頓了,問題解決後再在控制檯輸入“stop”停止錄製,並且記得去Left 4 Dead 2\left4dead2目錄下把錄的demo檔案刪掉,錄多了很佔儲存空間。
大概就是這些,有啥缺的錯的稍後再改,Part.2把其他BGM的位置也點一下,比開場BGM好找的多。









