预览
前置 Mod
详情

使用这款原生 Redscript 模组实时切换 LUT。具备基于 TweakDB 的 LUT 包、可折叠分类组、收藏夹、针对拍照模式和菜单的情境感知 LUT,以及用于切换和循环的 CET 热键。支持 SDR 和 HDR LUT(仅当包含在包中时)。
活动 LUT 会在存档之间保留,并在重新加载时自动生效。
LUT Switcher 3 是一次完全重写。版本 2 使用 .effect 文件和 JSON 包格式,而版本 3 通过 Redscript 直接作用于游戏的色彩分级管线。LUT 在简单的 YAML 文件中定义为 TweakDB 记录,引擎在渲染器层面交换它们,没有中间效果层。结果是更干净的切换、没有 z-fighting、与其他模组更好的兼容性,以及更简单的包创建工作流。

常见问题:
- 我需要先卸载我的 LUT 模组吗? 不需要。
- 为什么我在 GUI 中看不到任何列出的 LUT? 你需要从可选文件标签页下载 LUT 包。
- 为什么有些任务和事件会禁用 LUT? 某些游戏内效果会覆盖色彩分级管线。请附带存档文件报告该问题,我会研究修复。
- 我在哪里可以找到模组作者 ____ 的 ___ LUT? 如果你在此页面或其他 LUT 页面没有看到列出的 LUT Switcher 包,请向模组作者请求 LUT Switcher 支持,或使用下方的 YAML 教程创建自己的包。
- 我如何访问 LUT Switcher? 安装 CET 并使用 CET 键位绑定打开覆盖层。LUT Switcher 会显示为自己的窗口。
- 我仍然看不到菜单! 你没有将所有文件安装到正确位置,或缺少必需文件。
- 我可以在 LS3 中使用 LS2 包吗? 不可以。格式完全不同。LS3 包是基于 YAML 的 TweakDB 记录。LS2 JSON 包和 .effect 文件不兼容。
安装:
使用 Vortex(推荐)或手动安装,将 zip 的内容拖放到 Cyberpunk 2077 根文件夹。
- 对于 GOG,应该类似于 "*C:\Games\Cyberpunk 2077*[放在这里]"
- 对于 Steam,应该类似于 "*C:\Games\Steam\steamapps\common\Cyberpunk 2077*[放在这里]"
要求:
- Window Utils
- Cyber Engine Tweaks (CET)
- https://www.nexusmods.com/cyberpunk2077/mods/2573redscript
- https://www.nexusmods.com/cyberpunk2077/mods/2718ArchiveXL
- https://www.nexusmods.com/cyberpunk2077/mods/4198TweakXL
版本 3 的新内容:
- 原生管线切换: LUT 直接在游戏的 ColorGradingAreaSettings 上交换。不再有 .effect 文件层。
- TweakDB YAML 包: 包是简单的 YAML 文件,用于注册 TweakDB 记录。创建包无需 WolvenKit 项目。
- 持久化服务: 活动 LUT 存储在具有持久性的 ScriptableService 中,因此它能在区域转换和重新加载后保留,无需 CET 重新应用。
- 情境感知 LUT: 为拍照模式和游戏菜单分配单独的 LUT。它们会根据游戏状态自动激活和停用。
- 分类组: 包可以声明组名,以便多版本包(如 Nova LUT 1-4)折叠在单个侧边栏条目下。
- 输入/输出重映射: 在任何 LUT 上预览不同的色彩空间映射(LogC、sRGB、Linear),而无需修改包。
- HDR 资源验证: 缺少适用于你的显示模式(SDR 或 HDR)所需纹理的 LUT 会被标记,并可选隐藏。
- 带拖拽排序的收藏夹: 可将任何包中的任何 LUT 加星标,通过拖拽重新排序列表,使用热键在收藏夹中循环。
- 自定义侧边栏图标: 右键单击任何包或组,从字形浏览器中分配自定义图标。
- WindowUtils 集成: 通过 WindowUtils 完全支持网格吸附、分割面板、搜索、通知和教程。
CET 热键:
所有热键都在 CET 绑定菜单中配置:
- 切换活动 LUT - 在你的活动 LUT 和基础游戏 LUT 之间切换。
- 切换次要 LUT - 在你的主 LUT 和次要 LUT 之间交换。
- 下一个 LUT - 在当前包中向前循环。
- 上一个 LUT - 在当前包中向后循环。
- 下一个收藏 - 在收藏列表中向前循环。
- 上一个收藏 - 在收藏列表中向后循环。
- 随机 LUT - 从收藏夹或所有包中应用随机 LUT(可配置)。
制作 LUT 包:
LUT Switcher 3 使用 TweakDB YAML 文件进行包定义。无需 WolvenKit 项目,无需 .effect 文件,无需 JSON。你只需要将 LUT 纹理作为 .xbm 文件和一个 YAML 文件。
包 YAML 模板:
# Register your pack with LUT Switcher LUTSwitcher.Settings.packs: - !append t"LUTSwitcher.MyCustomPack" # Pack definition LUTSwitcher.MyCustomPack: "My Custom Pack" LUTSwitcher.MyCustomPack.tooltip: "Optional tooltip shown on hover" LUTSwitcher.MyCustomPack.group: "" # Optional: group multiple packs under one sidebar entry LUTSwitcher.MyCustomPack.luts: - t"LUTSwitcher.MyLut1" - t"LUTSwitcher.MyLut2" # LUT definitions LUTSwitcher.MyLut1: "My First LUT" LUTSwitcher.MyLut1.tooltip: "Optional tooltip for the LUT button" LUTSwitcher.MyLut1.inputMapping: n"CMF_ArriLogC" LUTSwitcher.MyLut1.outputMapping: n"CMF_Linear" LUTSwitcher.MyLut1.LUT: r"base\\weather\\24h_basic\\luts\\my_pack\\my_lut_sdr.xbm" LUTSwitcher.MyLut1.LUThdr: r"base\\weather\\24h_basic\\luts\\my_pack\\my_lut_hdr.xbm" LUTSwitcher.MyLut2: "My Second LUT" LUTSwitcher.MyLut2.inputMapping: n"CMF_sRGB" LUTSwitcher.MyLut2.outputMapping: n"CMF_sRGB" LUTSwitcher.MyLut2.LUT: r"base\\weather\\24h_basic\\luts\\my_pack\\my_lut2_sdr.xbm" LUTSwitcher.MyLut2.LUThdr: null
工作原理:
- 创建你的 LUT .xbm 纹理,并将它们放在存档中 *base\weather\24h_basic\luts* 下的某个位置。
- 在你的模组的 *r6\tweaks* 文件夹中创建一个 .yaml 文件。
- 使用 !append 将你的包注册到 LUTSwitcher.Settings.packs,以便模组在加载时发现它。
- 为每个 LUT 定义唯一的 TweakDB ID、显示名称、色彩空间映射,以及指向 SDR 和 HDR 纹理的路径。
- 如果你没有 HDR 变体,请设置 LUThdr: null(该 LUT 将被标记为仅 SDR)。
色彩空间映射:
- n"CMF_ArriLogC" - 用于游戏的大多数内部 LUT 以及使用 log 工作流制作的自定义包。
- n"CMF_sRGB" - 标准 sRGB。常用于拍照模式 LUT 和简单色彩分级。
- n"CMF_Linear" - 线性光。基础游戏主 LUT 的输出映射。
大多数自定义 LUT 包使用 inputMapping: CMF_ArriLogC 和 outputMapping: CMF_Linear 来匹配游戏的原生色彩管线。
逐槽位 HDR 覆盖:
如果你的 HDR LUT 需要与 SDR 版本不同的色彩空间设置,可以指定覆盖:
LUTSwitcher.MyLut1.inputMappingHdr: n"CMF_sRGB" LUTSwitcher.MyLut1.outputMappingHdr: n"CMF_Linear"
如果省略,HDR 槽位将使用与 SDR 槽位相同的 inputMapping 和 outputMapping。
包分组:
如果你的 LUT 系列有多个版本(如 Nova LUT 1、2、3、4),可以将它们分组到单个侧边栏条目下:
LUTSwitcher.MyPack1.group: "My LUT Series" LUTSwitcher.MyPack2.group: "My LUT Series"
共享相同组字符串的包将出现在一个可折叠的侧边栏项目下。
其他包:
兼容性:
- 与任何不直接覆盖相同环境定义色彩分级设置的模组兼容。
- 由于 LS3 在资源层面修补渲染器的区域设置,它避免了困扰 LS2 中基于效果方法的 z-fighting 问题。
- LUT Switcher 3 包 不 向后兼容 LS2。格式和机制完全不同。
已知问题:
- 某些脚本化序列和任务事件可能会临时覆盖活动 LUT。一旦覆盖结束,LUT 就会恢复。
致谢:
非常感谢 Val 引领我走上这条道路并启发了 LUT Switcher!感谢 null、sosuine 和 Val 进行测试,还要感谢 TheManualEnhancer 添加了 CET 热键功能。感谢 Robber、VanStorm、Creepy、Sevenence 和 Stormie 进行 beta 测试!最后但同样重要的是,感谢 Becky York 为本版本的原生 LUT 切换提供了核心见解。
未来计划:
- 盲比较模式(从 LS2 延续,为新引擎重建)。
- 天气和一天中时间关联的 LUT 配置文件。
- LUT 队列循环(轮换超过两个 LUT)。





