Reshade Bridge for RedScript

Reshade Bridge for RedScript

一个Red4ext插件,将ReShade的附加组件API与Redscript桥接,使任何REDscript模组能够在运行时动态切换当前ReShade预设、切换效果或启用/禁用单个技术。

描述

一个 Red4ext 插件,用于桥接 ReShade 的附加组件 API 与 REDscript,使任何 REDscript 模组都能在运行时动态切换当前使用的 ReShade 预设、开关效果或启用/禁用单个技术。

应用场景包括在白天和夜晚的 ReShade 配置文件之间切换、基于天气的配置文件、夜视效果、光学迷彩内部视角等。任君挑选!

这是一个模组制作者资源,本身不会单独产生任何效果。 它将成为未来设计用于动态 ReShade 配置文件的模组的必要前置条件。

致所有希望使用此资源构建模组的各位——目前仍处于早期测试阶段。 预设之间的切换功能有效。我正在编写一个模组来使用它。 其他功能虽已实现,但尚未经过测试。

安装说明

手动安装或使用 Vortex 安装。

<赛博朋克 2077 根目录>/
└── red4ext/
    └── plugins/
        └── ReshadeBridge/
            └── ReshadeBridge.dll   ← 复制到此

主要功能

该插件是一个单独的 DLL,它同时充当 Red4ext 插件ReShade 附加组件

更多详情请查看我的 GitHub 仓库: https://github.com/SkyrimLL/Cyberpunk2077/tree/main/ReshadeBridgeSource

以下是暴露给 REDScript 的方法概要。

✅ 运行时就绪、预设控制和单技术切换功能已通过测试。 ⚠️ 效果列表切换功能尚未测试。

// ── 运行时就绪 ───────────────────────────────────────────────────────
// 当 ReShade 效果运行时已被捕获且所有 RB_* 调用将成功时,返回 true。
// 如果你不确定 ReShade 是否已完成初始化,请在发起其他调用前轮询此函数。

 ✅ native func RB_IsRuntimeReady() -> Bool

// 如果在 DLL 加载时初始尝试附加组件注册失败(例如 ReShade 尚未
// 被加载到进程中),则重试注册。
// 一旦运行时被捕获并准备好,也返回 true。
// 可安全重复调用——一旦注册则无操作。

 ✅ native func RB_RefreshRuntime() -> Bool

// ── 预设控制 ──────────────────────────────────────────────────────────
// 切换当前预设(绝对路径或相对于游戏可执行文件的路径)。

 ✅ native func RB_SetPreset(path: String) -> Bool

// 获取当前加载的预设路径。

 ✅ native func RB_GetPreset() -> String

// ── 全局效果开关 ───────────────────────────────────────────────────
// 一次启用或禁用所有 ReShade 效果。

 ⚠️ native func RB_SetEffectsEnabled(enabled: Bool) -> Void

// 查询效果当前是否已启用。

 ⚠️ native func RB_GetEffectsEnabled() -> Bool

// ── 单技术切换 ────────────────────────────────────────────────────
// 通过 ReShade 界面中显示的名称启用或禁用特定技术。

 ✅ native func RB_SetTechniqueEnabled(name: String, enabled: Bool) -> Bool

// 查询特定技术当前是否已启用。

 ✅ native func RB_GetTechniqueEnabled(name: String) -> Bool

前置要求

  • Red4ext。
  • REDScript。
  • 当前版本仅在支持完整附加组件功能的 Reshade 6.7.3 上测试过。

致谢

  • Red4ext 和 ReShade API 团队提供的代码示例和参考文档。