OSF UI - Web界面框架与模组设置菜单(MCM)

OSF UI - Web界面框架与模组设置菜单(MCM)

OSF UI是一个SFSE框架,能在游戏中渲染现代Web界面,并内置了统一的Mod设置菜单(MCM)和Mod按键管理器。按F10,即可在一个地方配置所有支持的Mod。无需编辑INI文件,无需控制台命令。

[center]Starfield Web Interface Framework[/center]

[center]### Starfield Web Interface Framework[/center]

[center]一个开源的、基于 SFSE 的框架,用于使用 HTML、CSS 和 JavaScript 构建模组界面——它提供了星空一直以来缺失的工具:统一的模组设置菜单(MCM)和模组按键管理器。[/center]


[center]OSF UI 概览[/center]

OSF UI 是一个 SFSE 插件,允许模组使用 HTML、CSS 和 JavaScript 构建其界面,并将其绘制在游戏之上——由 WebView2 渲染,并在星空自身的 Direct3D 12 设备上合成。其设计深受天际的 Prisma UI 框架启发。

开箱即用:

  • 模组管理界面 - 按下 F10(或暂停菜单中的 模组菜单 条目):打开一个界面,在一个地方管理所有支持的模组。无需编辑 INI 文件、无需控制台命令、无需切换窗口。
  • 设置 (MCM) - 每个支持的模组都有自己独立的实时控制页面:开关、滑块、下拉菜单、文本和按键字段,支持实时搜索、逐项重置和预设。更改会立即进行验证、限制并保存。
  • 按键绑定 - 一个可视化的键盘映射图,显示每个已注册模组的快捷键。点击一个键,按下新键,即可完成——当两个模组(或游戏本身)想要使用同一个按键时,会显示冲突标记。

模组管理界面仅仅是构建在该框架上的第一个功能——任何模组都可以通过它提供自己的视图、设置和快捷键。现在就可以看到它为一个完整模组提供支持:OSF Animation 的场景浏览器、表情轮盘、设置和快捷键都在 OSF UI 上运行。

  • 状态:早期 Alpha 版本。 1.0.0 是首个公开版本——已在星空 1.16.244 版本上通过游戏内验证,但可能存在不完善之处。非常欢迎在此处或 GitHub 提交错误报告。*

[center]OSF UI 特性[/center]

  • 游戏内丰富的网页界面 - 由 WebView2 渲染的 HTML/CSS/JS 视图,合成在游戏自身的 D3D12 设备上。
  • 完全交互 - 当视图打开时,模组可以获得完整的输入控制权。并且可以选择注册热键来回调自身。
  • 支持手柄导航 - 方向键/摇杆移动焦点,A 键确认,B 键关闭,右摇杆滚动。(取决于模组支持)
  • 模式驱动的设置 - 模组只需提供一个小的 JSON 模式文件,便可获得一个完整的设置页面,包含持久化、迁移和热键传递功能——完全无需编写 UI 代码。
  • 实时热键服务 - 每个按键设置都是一个真实的、可重新绑定的热键,并传递给相应的模组,且会被限制,确保按键永远不会误触控制台或文本字段。
  • 内置本地化 - 模组设置页面、自定义视图以及 OSF UI 自身的界面都可以通过简单的即插即用 JSON 目录进行翻译。语言跟随游戏设置(或在 OSF UI 的设置中选择一种),并支持实时切换,部分翻译会逐字回退到英文。
  • 多视图合成 - 多个视图可以互相叠加,并支持可配置的 Z 序优先级和循环切换。
  • 结构安全 - 页面 JS 是不可信的:每个视图的文件系统都被限制在自己的文件夹内,并且网络访问被禁用。

[center]安装与开始使用[/center]

前置需求

安装

使用模组管理器(Mod Organizer 2 / Vortex)安装并启用它。通过 SFSE 启动游戏。

尝试使用

加载存档并按 F10 键。模组管理界面将在游戏上打开,OSF UI 自身的设置和按键绑定映射已经在那里。再次按 F10 键(或 Esc 键)关闭。然后安装一个支持它的模组——比如 OSF Animation——并观看它的卡片出现。


[center]模组开发者信息[/center]

  • 设置 + 热键: 提供一个 settings/<id>.json 模式文件,您的模组将获得一个完整的设置页面和可重新绑定的热键。
  • 完整界面: 提供一个 views/<id>/ 文件夹(包含 manifest 和 index.html / style.css / main.js),它将以您模组自己的终端形式出现在模组管理界面上。
  • 原生路径: 一个单独的 SFSE 插件可以注册桥接命令,并通过导出的 OSFUI_RequestBridge API 驱动视图。
  • 翻译: 使用纯英文编写——无需字符串键,无需维护目录。翻译者(您或社区,作为一个独立的数据模组)为每种语言提供一个扁平的 JSON 文件(l10n/<id>_<locale>.json);部分翻译文件也可以,每个缺失的字符串都会回退到您的英文原文。

注意:这是一个年轻的框架——window.osfui Web 桥接仍在变化中;原生 ABI 是稳定的。 完整文档——包括如何创建视图、桥接协议和设置模式——在 GitHub 上。


[center]兼容性与致谢[/center]

兼容性

  • 与 ReShade / 帧生成的共存性尚未测试;HDR / 10位后备缓冲会被检测并跳过。如有任何问题请报告,以便我进行调查。

源代码、权限与许可证

OSF UI 是 开源 的(GPL-3.0,带有模组/链接例外)。完整源代码、构建说明和问题跟踪器:github.com/ozooma10/osf-ui。 欢迎提交错误报告和拉取请求。

致谢

  • Microsoft Edge WebView2 - OSF UI 使用的渲染器
  • CommonLibSF / SFSE - 构建基础
  • Prisma UI by StarkMP - webview 的灵感来源

完整的署名和许可证信息位于仓库中的 CREDITS.md 和 THIRD_PARTY 文件中。