星空电台(以及自定义电台)- Carbon UI

星空电台(以及自定义电台)- Carbon UI

星空广播 (https://starfieldradio.com/) 碳界面化。

STAR RADIO 来自定居星系的广播。

社区喜爱的 Starfield Radio —— 现在可以在你的游戏里播放了。六个电台,包含符合设定的音乐和 DJ 节目,从该网站自己的服务器实时串流,完全独立于游戏音频。当你搜刮、飞行、停留在菜单中或盯着加载界面时,电台会继续播放。

我还添加了一个小型网络服务器(本地),你可以在游戏中打开它(游戏 UI 中的按钮),让你可以放入 MP3 和封面图,并作为你自己的电台进行随机播放。不包含任何本地音乐。

电台

  • Radio Active —— 定居星系中最响亮的信号
  • The Black Box,由 Willy Kino 主持(2 期广播)
  • Nocturna —— 古人之乐
  • The Dust,由 Sloane Kaelin 主持
  • Sol Train —— 来自第三块岩石的音乐
  • Solar Flares

功能

  • F6 打开电台——一个完整的电台菜单,包含每个电台的卡片、剧集选择器、音量和播放/暂停。菜单中每个按键都可重新绑定。
  • CLEAN / EXPLICIT 切换(网站每期广播的两种剪辑版本)——原地切换,不会丢失你的播放位置。
  • 电台快捷键 —— 绑定一个按键即可从任何地方快速开关电台,无需菜单。你的键盘媒体键也可用(播放/暂停、下一个电台)。
  • 旋转唱片小部件 —— 音乐播放时,HUD 上会显示一个小型正在播放唱片。可将其拖到任意位置(位置会保存)、锁定或关闭。
  • 广播结束后会自动继续播放下一期——电台永远不会陷入沉默。
  • 可选的启动时自动播放:你的上一个电台会随游戏启动。

前置要求

  • SFSE (Starfield Script Extender)
  • Address Library for SFSE Plugins
  • Carbon UI —— 本模组绘制所依赖的 UI 框架
  • 互联网连接(音乐为实时串流;没有捆绑任何内容)

安装

像安装其他模组一样用你的模组管理器安装(该压缩包已适配 MO2)。配置会写入 DLL 旁边的 StarRadio.json。

鸣谢

所有音乐、混音和 DJ 内容均归 Starfield Radio 所有——本模组只是他们公开串流的播放器。请去支持他们。

安全性: 不触碰任何游戏状态——没有 Papyrus,没有控制台命令,不会写入存档。串流中断时会显示真实的错误信息,而不是静默无声。

CARBON UI 像构建网页一样构建 Starfield 菜单。

Carbon UI 是面向 SFSE 模组作者的 UI 框架。它内嵌了一个 HTML/CSS/JS 引擎(Ultralight/WebKit),并每帧将你的页面合成到游戏的 D3D12 后备缓冲区之上——因此模组的菜单只是一个网页,拥有真正的布局、动画和排版,而不是手绘的 ImGui。

面向玩家

你安装它是因为另一个模组需要它。它本身除了一个小的设置覆盖层(F8)之外不执行任何操作。没有插件,不会写入存档。

面向模组作者

  • 一个 C 头文件(CarbonUI_API.h,无依赖)——通过 SFSE 消息请求 API 后即可开始绘制。
  • 从你发布的 HTML 创建视图,显示/隐藏/聚焦它们,将它们移动到后备缓冲区之上。
  • 完整的输入路由:当你的菜单获得焦点时,键盘/鼠标/滚轮会发送到你的页面并从游戏中吞掉——包括原始输入静默回退,使菜单在主菜单中也能工作,而不仅仅是在游戏过程中。
  • 双向 JS 桥接:从 C++ 执行 JS,注册可由你的页面通过 window.carbonui.call() 调用的 C++ 回调。
  • 稳定、带版本、仅追加的 ABI。关于引擎怪癖的页面编写说明随头文件一并提供。

前置要求

  • SFSE (Starfield Script Extender)
  • Address Library for SFSE Plugins

基于 Carbon UI 构建的模组

  • Star Radio —— 将 starfieldradio.com 作为游戏内电台