RadioXL - 本地电台

RadioXL - 本地电台

你自己的电台,作为游戏本身电台里的真实电台:在每辆车里、在Radioport上以及夜之城各处的收音机上。带上你自己的音乐。(☞ ゚ヮ゚)☞ ♪

[color=#ffff00][size=6][b]- 简介 -[/b][/size][/color]

RadioXL 将广播电台作为游戏自身广播系统的电台添加到《赛博朋克 2077》中。没有外部播放器,也没有第三方音频引擎:基于它构建的电台是游戏广播中真正的电台,其歌曲通过游戏自身的音频在游戏自身的混音器上播放,并且它以自己的频率出现在调谐盘上,无论是在车内、Radioport 上还是世界中的收音机上。原版电台能的一切它都能:广播弹窗、仪表盘读数、均衡器图标、广播快捷键,以及游戏让广播静音的时刻。调离一个电台再调回来,它会从该电台已经播放到的位置继续播放这首歌,就像游戏自带的电台一样。

一个电台模组就是一个 station.json 加一个音频文件夹。RadioXL 从文件中读取其余内容。没有 yaml,没有脚本,没有声音库。

[i]简而言之——你的音乐,在游戏中的每一台收音机上,通过游戏自身的广播播放。(ノ◕ヮ◕)ノ[/i]


[color=#ffff00][size=6][b]- 面向玩家 -[/b][/size][/color]

RadioXL 是一个框架。安装它,然后安装基于它构建的电台,或者自己构建一个:下面的电台构建器可以在几分钟内从一个歌曲文件夹生成一个电台,图标也包含在内。

[b]前置要求[/b]
[list]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/2380]RED4ext[/url][/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/1511]redscript[/url][/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/7780]Codeware[/url][/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/4197]TweakXL[/url][/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/33442]AudioXL[/url] 0.4.3 或更高版本[/]
[]游戏版本 2.31。[/]
[/list]可选:
[list]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/30726]Redscript Configuration Framework[/url]——设置面板和下面的按键。[/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/13378]RedFileSystem[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/mods/14139]RedData[/url]——在多次启动之间保留“我的电台”和两个静音设置。[/]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/31920]RedLogger[/url]——在 r6\logs\mods\ 中记录已注册内容的日志。[/]
[/list][b]安装[/b]
将压缩包拖入你的模组管理器。插件和脚本始终一起使用:分开安装,脚本将无法编译。

[b]卸载[/b]
移除 RadioXL 以及基于它构建的每一个电台。RadioXL 不会在你的存档中保留任何内容。

[b]源码和文档[/b]
在 Github 上查看源码:[url=https://github.com/spuddeh/cp2077-radio-xl]github.com/spuddeh/cp2077-radio-xl[/url]。清单参考是 [url=https://github.com/spuddeh/cp2077-radio-xl/blob/main/red4ext/plugins/RadioXL/stations/README.md]stations/README.md[/url],[url=https://github.com/spuddeh/cp2077-radio-xl/tree/main/docs]docs/[/url] 中有关于游戏广播底层工作原理的说明。

[b]从 RadioXL 0.1.0 升级[/b]
为 0.1.0 编写的电台(一个 yaml、一个脚本和一个 AudioXL 的 sounds.json)在此版本上无法播放。它的脚本仍能编译,日志会显示该电台已被识别。电台作者改为编写下面的 station.json;歌曲和图标按原样重用。如果你安装了 Simple Radio Control,请将其移除:它的按键和设置现在是 RadioXL 的一部分。


[color=#ffff00][size=6][b]- 电台构建器 -[/b][/size][/color]

[center][img]https://staticdelivery.nexusmods.com/mods/3333/images/33983/33983-1789561703-1692415273.gif[/img][/center]

[url=https://spuddeh.github.io/cp2077-radio-xl/]电台构建器[/url]是一个网页,通过表单制作一个电台模组。无需安装任何东西:它在浏览器中运行,它写出的内容就是下一节所述的同一个 station.json 和音频文件夹,打包成 zip 并准备好供你的模组管理器使用。

[list]
[][b]新电台。[/b]给它一个名称和一个频率,拖入歌曲,将其中任意一首标记为台标,然后下载 zip。页面会随着你的操作在 Radioport 和世界收音机上显示该电台,因此你在游戏看到之前就能看到标签和图标。[/]
[][b]从图片生成图标。[/b]选择一张图片,页面会自行写出纹理、图集和归档。或者选择游戏自带的电台图标之一,或保留 RadioXL 字形。[/]
[][b]流媒体电台。[/b]粘贴流媒体 URL,页面会告诉你播放器需要在 AudioXL 的设置中允许哪个主机。[/]
[][b]从 RadioExt 转换。[/b]将某个 RadioExt 电台的 zip、rar 或 7z 拖到页面上,它就会作为一个 RadioXL 电台转换过来:它的名称、频率、歌曲和图标,归档也包含在内。[/]
[][b]打开你制作过的电台。[/b]将它的 zip 拖回页面即可修改它。[/]
[/list]页面会在允许你构建之前检查 RadioXL 会拒绝的一切,并说明需要修复什么。


[color=#ffff00][size=6][b]- 添加电台 -[/b][/size][/color]

一个电台是
[code]red4ext\plugins\RadioXL\stations\<YourMod>\[/code] 下的一个文件夹,其中包含一个 [b]station.json[/b] 和它指定的音频文件。

[b]从模板开始。[/b]可选下载中的 [i]RadioXL Example Station[/i] 是一个可用的电台:安装它,“102.7 Example Radio”就会出现在调谐盘上,播放两首短曲目,曲目之间有一个台标。修改它的 station.json 中的四处内容并替换音频,它就是你的了。本节剩余内容就是该文件在做什么。

[quote][code]{
"name": "radio_station_example",
"frequency": 102.7,
"displayName": "Example Radio",
"tracks": [
{ "file": "audio/track_01.mp3", "title": "Example Radio - First Song" },
{ "file": "audio/track_02.mp3", "title": "Example Radio - Second Song" },
{ "file": "audio/ident.mp3", "ident": true }
]
}[/code][/quote]
[list]
[][b]name[/b] 是电台的身份标识:字母、数字和下划线,在已安装的电台中唯一。[/]
[][b]frequency[/b] 是电台在调谐盘上的位置,为一个数字。调谐盘按它排序,就像游戏自带电台一样,所以 104.9 会落在 103.5 Radio PEBKAC 和 106.9 30 PRINCIPALES 之间。选一个游戏尚未使用的频率:已被占用的是 88.9、89.3、89.7、91.9、92.9、95.2、96.1、98.7、99.9、101.9、103.5、106.9、107.3 和 107.5。[/]
[][b]displayName[/b] 是电台的名称,不含频率。游戏会将两者一起显示:[b]104.9 Your Station[/b]。以数字开头或结尾,或包含该频率的名称会被拒绝。[/]
[][b]icon[/b] 和 [b]atlas[/b] 是可选的:一个 inkatlas 部件以及包含它的图集,打包在你自己的归档中;构建器页面可以从一张图片生成两者。[b]icon[/b] 也可以改为指定游戏已有的图标记录,例如 [b]UIIcon.RadioHipHop[/b],无需图集和归档。两者都省略,电台将显示 RadioXL 字形。[/]
[][b]tracks[/b] 以随机顺序播放,每首歌在重复之前各播放一次,就像原版电台一样。支持 WAV、MP3、OGG 和 FLAC。曲目可以用 [b]url[/b] 代替 [b]file[/b]:一个实时 MP3 流,作为该电台唯一的曲目。[/]
[][b]title[/b] 在曲目上是可选的。它是广播弹窗中的歌曲名;无标题的歌曲在有标题歌曲出现的所有地方都会播放,其名称显示为空。世界收音机和汽车仪表盘对任何电台都不显示歌曲名。[/]
[][b]ident[/b] 在曲目上是可选的。true 标记一个电台台标、台呼或广告:每三首歌之后播放一个,不显示标题,与游戏自带电台的台标完全一样。[/]
[][b]news[/b] 是可选的。true 允许新闻到达该电台——Stanley 的公告和问候,以及 N54 新闻——与到达游戏自带电台的方式相同。[/]
[/list]没有时长、事件名称、索引、记录、yaml 或脚本。RadioXL 从文件读取每首曲目的长度,并在加载时构建其余一切。有错误的清单会被跳过,日志会指明文件和行号。


[color=#ffff00][size=6][b]- 流媒体电台 -[/b][/size][/color]

电台可以播放实时互联网广播流而不是音乐文件。在你允许之前,AudioXL 不会从互联网获取任何内容,在 [b]red4ext\plugins\AudioXL\AudioXL.ini[/b] 中:
[quote][code][Network]
allowHttpConnections = true
allowedHost = ice1.somafm.com[/code][/quote]使用该电台自己的页面所列出的主机;每个主机一行 [b]allowedHost[/b]。保持静默的电台通常还需要再添加一个主机:AudioXL 的日志会指明它拒绝了哪一个。

[b]AudioXL 会在首次启动时创建 AudioXL.ini[/b],所有内容默认关闭,更新不会改动它。在 Mod Organizer 2 下,该文件位于 Overwrite 中。

流媒体电台在你调入时实时加入广播,缓冲一两秒后开始,并显示电台自己的标题而不是正在播放的歌曲。


[color=#ffff00][size=6][b]- 设置 -[/b][/size][/color]

Redscript Configuration Framework 面板中有四个选项卡。其中的每个电台和每首歌曲都会在存档加载时从游戏中读取,因此任何广播模组添加的歌曲都会被列出,无需额外安装任何内容。

[b]控制[/b]
[list]
[][b]下一首 / 上一首。[/b]下一首会像电台本身那样抽取一首歌,每首歌在重复之前各播放一次,你跳过的歌曲会离开电台自己的轮换并计入其下一个台标,与电台自己挑选的歌曲相同。上一首会回溯已播放的内容,之后再按下一首会先按相同顺序向前,然后才抽取新歌。两个广播共用一组按键:在车辆中它们作用于车载收音机,步行时作用于 Radioport,包括地铁。默认为 F3 和 F2。按下键盘按键或手柄按钮即可绑定;Escape 清除绑定。在游戏自身设置中绑定的按键仍会执行游戏所定义的功能,因此请选择游戏未使用的按键。[/]
[][b]下一个电台 / 上一个电台。[/b]按广播相同的顺序沿调谐盘移动,跳过在“电台”选项卡中搁置的电台。默认未绑定。[/]
[][b]显示正在播放的内容。[/b]将广播弹窗显示在屏幕上,显示当前播放的歌曲。默认未绑定。[/]
[][b]不再播放此歌曲。[/b]将正在播放的歌曲关闭并继续,同时在屏幕上说明。默认未绑定。[/]
[][b]跳转到我的电台。[/b]直接调至“我的电台”选项卡中设置的电台,无论自动调谐是否开启。默认未绑定。[/]
[][b]为按键按住修饰键。[/b]为每个按键提供第二行:必须与它一起按住的键。带有修饰键按住的按键优先于单独绑定的相同按键,因此 F3 可以是下一首歌,Shift+F3 是下一个电台。[/]
[][b]Radioport 按键。[/b]关闭时,上述按键也服务于 Radioport。开启时,Radioport 在步行时使用自己的一组按键。[/]
[][b]在 Radioport 上显示歌曲。[/b]车载收音机的歌曲弹窗也显示在 Radioport 上:当歌曲变化时,以及 Radioport 打开的那一刻。[/]
[][b]将歌曲显示为屏幕消息。[/b]当歌曲变化时,在屏幕左侧显示电台和歌曲。默认关闭。[/]
[/list][b]我的电台[/b]
[list]
[][b]调至我的电台。[/b]此选项卡的开关。[/]
[][b]电台。[/b]要调至的电台。它按名称记忆,因此在你添加或移除电台模组后仍是同一个电台。如果该电台未安装,则不会调谐。[/]
[][b]上车时 / 车载收音机打开时 / Radioport 打开时。[/b]广播被调谐的三个时刻。[/]
[][b]即使 Radioport 已开启。[/b]即使 Radioport 已经在播放另一个电台,也调谐车载收音机。关闭则不影响 Radioport 的电台。[/]
[/list]当游戏阻止广播输入时不会进行任何调谐:在警用车辆中、在脚本化驾驶期间、扮演 Johnny 时,以及车载收音机解锁之前。

[b]电台[/b]
每个电台一节,按调谐盘顺序,游戏自带的也包括在内。
[list]
[][b]按键跳过此电台。[/b]下一个和上一个电台按键会跳过它。它仍可从广播本身选择。[/]
[][b]它的歌曲。[/b]每首一行,有三个设置:[b]开[/b]正常播放;[b]关[/b]在出现时被跳过,改播该电台的下一首歌;[b]流媒体时关闭[/b]正常播放,但在游戏的 Streamer Mode 设置开启时被跳过。游戏标记为不适合直播的歌曲默认从此开始。电台模组添加的歌曲不带此类标记,默认为开,因此你可以在这里设置。[/]
[/list]选项卡顶部显示 Streamer Mode 当前是否开启,当它开启时,每一首因此被跳过的歌曲都会在其所在行中标记。如果某个电台的所有歌曲都设为关,该电台会正常播放,下一个和上一个按键会在它们之间切换。

[b]静音[/b]
[list]
[][b]静音电台台标。[/b]电台在歌曲之间自己的插播:它的名称、频率以及主持人所说的内容。每个电台各自保留,因此这是让 Pacific Dreams 的主持人静音的方式。从下一首歌起生效。[/]
[][b]静音 DJ 播报。[/b]所有占用你歌曲之间时段的内容:Stanley 的新闻公告、Maximum Mike 的歌曲介绍和 Growl FM 的 Ash。Kurt Hansen 不受影响:他是在 Dogtown 上空广播,而不是通过你的收音机。电台自己的插播是上面的设置,不是这一项,歌曲永远不会受影响。[/]
[][b]在以下情况静音广播……[/b]十二个开关,默认全部开启,它们适用于 Radioport 上的每个电台,包括游戏自带的。每一个都是游戏让广播静音的一种情况:一个场景、一通电话、一个夜店、快速旅行等等。开启时,Radioport 在这些情况下像游戏一样安静。关闭时,它会在这些情况下继续播放。一个开关代表一种情况:关闭全息通话开关也会解除通话随之带来的锁定,场景和车辆场景同理。[/]
[/list]两个静音默认关闭,立即生效,将任一开关切回都会将声音完全恢复原状。此处还计划有更多内容。


[color=#ffff00][size=6][b]- 按键没有作用 -[/b][/size][/color]

按键在菜单和拍照模式中会被忽略,歌曲和电台按键仅在广播打开时有效。检查按键是否在“控制”选项卡中绑定,而不仅仅是在游戏自身设置中,并且如果使用修饰键,则是否按住。当广播通过另一个模组自己的播放器而不是游戏播放时,电台按键不起作用,RadioExt 电台就是这样工作的:从广播本身选择一个电台,按键就会重新生效。如果“电台”选项卡显示电台列表尚未读取,请加载一个存档并再次打开面板;列表是在游戏加载时读取的,而不是在主菜单。


[color=#ffff00][size=6][b]- 电台没有显示 -[/b][/size][/color]

安装 RedLogger 并在启动后读取 r6\logs\mods\RadioXL.log。每个清单错误都会报告为 [i]YourMod/station.json:<line>: 有什么问题[/i],有错误的电台会整个被跳过。日志中完全没有行的电台未被找到:检查上面的文件夹路径。

如果某个电台出现了但相对于另一个排序异常,请检查它的频率:两个电台在同一数字上会相邻排列,游戏自带的在前,日志会说明是哪两个。


[color=#ffff00][size=6][b]- 已知限制 -[/b][/size][/color]

[list]
[]在新闻电台上,Stanley 的问候会到达你正在收听的电台。新闻公告会在歌曲之间一次传到一个电台,由游戏从所有附近有收音机的新闻电台中挑选,无论是否打开:在城市中,附近游戏自带的电台常常会接收到它,因此新闻只有在远离其他收音机时才可靠。游戏自带的电台遵循相同的规则。[/]
[]目前总共限制为 127 个电台,包括游戏自带的。这是游戏内部对广播电台处理的限制。我们正在研究解除该限制的最佳方法。[/]
[]RadioXL 替换了游戏的电台轮换,因此不能与 RadioExt 或其他同样修改电台行为的 Radio Mod 一起安装。[/]
[/list]
[color=#ffff00][size=6][b]- 更新 -[/b][/size][/color]

[i][u]0.3.0[/u][/i] - 重做:真正的引擎电台、station.json、流媒体、台标、新闻、按键和设置面板、构建器页面。
[i][u]0.2.0[/u][/i] - Spuddeh 首次尝试的原生广播框架,从未发布,也是 0.3.0 演变而来的基础。
[i][u]0.1.0[/u][/i] - 首次发布,一个脚本播放器,在之前的 RadioXL 页面上。


[color=#ffff00][size=6][b]- 致谢 -[/b][/size][/color]

[url=https://www.nexusmods.com/profile/DigitalVixen]DigitalVixen[/url],感谢 RadioXL 0.1.0,本次重做所立足的基础,以及 [url=https://www.nexusmods.com/cyberpunk2077/mods/33442]AudioXL[/url],它播放每一首歌并承担了所有繁重工作!

[url=https://www.nexusmods.com/cyberpunk2077/users/25354714]CozmiNU[/url] 的 [url=https://www.nexusmods.com/cyberpunk2077/mods/16767]Always My Radio Station[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/users/129937823]infinitY0369[/url] 的 [url=https://www.nexusmods.com/cyberpunk2077/mods/8864]Better Vehicle Radio[/url]:“我的电台”、按键和每首歌曲的开关都源于这两个模组所做的工作。

[url=https://www.nexusmods.com/cyberpunk2077/users/77476393]keanuWheeze[/url] 的 [url=https://www.nexusmods.com/cyberpunk2077/mods/4591]RadioExt[/url]:他先做到了,并向我们所有人展示了人们想要自己的电台。

[url=https://www.nexusmods.com/profile/psiberx]psiberx[/url] 的 [url=https://www.nexusmods.com/cyberpunk2077/mods/7780]Codeware[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/mods/4197]TweakXL[/url],以及 [url=https://www.nexusmods.com/profile/WopsS]WopsS[/url] 的 [url=https://www.nexusmods.com/cyberpunk2077/mods/2380]RED4ext[/url],没有它们这一整套都不复存在。

感谢所有出色的模组作者,他们持续为我们所有人免费创作内容供我们享受!

[center][size=2]DigitalVixen 模组套件的一部分。带着一点 Spuddeh 的爱。<3[/size][/center]
[center][size=2]你现在可以在 Discord 上找到我们 [url=https://discord.gg/TRuuDSrGWJ]这里![/url][/size][/center]