在觀看完《賽博龐克:邊緣行者》之後,《I Really Want to Stay At Your House》一直縈繞於心中,無法散去。
可是在遊戲中想要通過電臺播放到該歌曲的隨機性太大。然而今日無意中在Github看到一個可以在
(封面圖鏈接:https://steamcommunity.com/sharedfiles/filedetails/?id=3049230855)
(B站專欄文章鏈接:https://www.bilibili.com/read/cv27067780)
項目地址:https://github.com/justarandomguyintheinternet/CP77_radioExt
項目下載地址:https://github.com/justarandomguyintheinternet/CP77_radioExt/releases
所需前置
CyberEngineTweaks:CyberEngineTweaks是一個框架,它可以為模組製作者提供了一種使用Lua腳本的方式,可以訪問所有內部腳本功能。
RED4ext:RED4ext是一個擴展REDengine 4的庫。它將允許模組製作者在自己的插件中添加新功能,修改遊戲行為,添加新的腳本功能或調用已存在的腳本功能。
CET模組下載地址:https://github.com/maximegmd/CyberEngineTweaks/releases
RED4ext模組下載地址:https://github.com/WopsS/RED4ext/releases
模組安裝
通過以上下載地址下載到最新版模組後,目前所有的最新版模組都已經支持2.01版本。
獲取到三個模組後將它們解壓到遊戲根目錄中,解壓成功後即安裝模組成功
遊戲根目錄相對路徑為:
SteamLibrary\steamapps\common\Cyberpunk 2077
模組使用
如果模組安裝成功,可直接來到CP77_radioExt的路徑。
具體相對路徑為:
Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\radioExt
該路徑下您將會看到這樣的文件夾結構:
文件夾結構
每個廣播電臺都是位於"radios"文件夾內的一個文件夾,包含一個"metadata.json"文件,其中包含有關該廣播電臺的信息。因此,要創建一個新的廣播電臺,首先在"radios"文件夾內創建一個新的文件夾,併為其取一個獨特的名稱(比如您的電臺的名稱)。
接下來,將模組根文件夾內的"metadata.json"模板文件複製並粘貼到您為電臺創建的文件夾內(即您在上一步中創建的文件夾)。
因此完整的文件夾結構應該為:
添加歌曲
要將歌曲添加到您的廣播電臺,只需將歌曲文件複製到您的電臺文件夾內。
支持的格式包括:.mp3、.wav、.ogg、.flac、.mp2、.wax、.wma。
遊戲中會使用歌曲文件名作為歌曲名稱
歌曲名稱請嚴格遵守以下格式並保證歌曲名使用英文,中文概率導致模組導入失敗
格式
數據文件
廣播電臺的metadata.json文件定義了其屬性,如名稱、圖標等。 使用任何支持JSON文件語法高亮顯示的文本編輯器打開它,千萬不要忽略這一步,因為與創建電臺有關的大多數問題都源於JSON文件的不正確編輯。(如果對JSON文件很熟悉的朋友用記事本編輯也無所謂。)
如果您的metadata.json文件缺少在模組更新中添加的任何屬性,只需在安裝了更新版本的模組的情況下運行遊戲一次,系統會自動添加缺少的字段。
對於使用字符串的屬性(比如displayName),需要正確轉義任何保留字符,任何稍微像樣的文本編輯器都會提醒您是否漏掉了任何字符。
基本屬性
displayName:控制在遊戲中顯示的電臺名稱。
fm:一個數字(不要加引號),用於將電臺放在電臺列表中的適當位置。如果displayName有一個FM數字,它應該是相同的。
volume:電臺的整體音量倍增器(也是一個數字),確保所有歌曲的音量相同,然後使用此值調整電臺的整體音量以與原始電臺相匹配。
icon:電臺的圖標,如果您不使用自定義圖標,它可以是任何UIIcon記錄。要查看所有記錄的列表,請打開CET控制檯的TweakDB Editor選項卡,並在搜索欄中輸入UIIcon。(確保您已將tweakdb.str文件放置在Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks文件夾中)。
tweakdb.str文件下載地址:https://cdn-l-cyberpunk.cdprojektred.com/metadata-1.5.2.zip
自定義圖標
所有與自定義圖標相關的設置都在電臺metadata.json文件的customIcon部分內。
useCustom:如果將其設置為false,將使用icon內指定的圖標。如果設置為true,將使用自定義圖標。
inkAtlasPath指向包含圖標紋理的.inkatlas文件,例如base\\gameplay\\gui\\world\\vending_machines\\atlas_roach_race.inkatlas(路徑需要雙反斜槓\)。
inkAtlasPart指定應使用圖標的.inkatlas的哪個部分,例如gryphon_5。
要創建自己的.inkatlas文件,請使用WolvenKit。WolvenKit地址:https://github.com/WolvenKit/WolvenKit
網絡流
您可以使用放置在電臺文件夾中的歌曲文件以外的任何網絡音頻流(以如.mp3結尾的URL,並在打開時顯示默認音頻播放器,例如https://radio.garden/api/ara/content/listen/TP8NDBv7/channel.mp3)。可以在此處找到一些示例,但也可以使用來自此處的大多數電臺。
isStream:必須設置為true,以便嘗試從指定的URL流式傳輸。
streamURL:流的URL。
歌曲排序
order字段可用於指定應播放歌曲的順序。 它不必包含電臺的所有歌曲,沒有在順序中指定的歌曲將在順序段之前/之後隨機播放。 只需將您想要按順序排列的所有歌曲文件名添加到字段中,每個都是其自己的字符串,並以逗號分隔。
歌曲快速轉換為英文
如果您的文件夾中的音樂已經整理為歌曲作者 - 歌曲名.文件後綴格式,只是缺乏轉換為英文,可調用網易翻譯的api完成自動翻譯。
API調用Python示例
(因小黑盒不支持代碼塊輸入,可進入開頭B站專欄文章鏈接查看。)
最終效果
周杰倫 - 彩虹