黎明行者超宽屏修复 - 移除黑边

黎明行者超宽屏修复 - 移除黑边

移除《血族行者》中支持的过场摄影机的宽高比限制,使对话场景和游戏内过场动画填满超宽显示器。在水平拓宽视野的同时保留垂直视场角。包含优化的摄影机追踪,避免游戏过程中反复进行全对象搜索。要求 - A w

移除超宽显示器上游戏过场动画中的黑边。

游戏的对白场景和过场动画通过锁定为 16:9 画幅的摄像机运行,因此在 21:9 或 32:9 屏幕上会出现黑边,而非全宽画面。本模组会在每一个过场摄像机创建时解除此锁定。

同时,它还能在过场动画期间保持 横向+(Hor+)视角。游戏在过场动画中会切换至 “保持横向视场角(MaintainXFOV)” 模式,这会裁剪宽屏画面并使其看起来被放大——如果仅移除黑边而不修正此问题,宽画面上显示的内容依然过少。

此模组不更改帧率。


前置要求

支持虚幻引擎 5.5 的 UE4SS。 这需要实验版,而非稳定版。

首先,将 UE4SS 安装到包含 Dawnwalker.exe 的文件夹中:

...\The Blood of Dawnwalker\Dawnwalker\Binaries\Win64\

安装说明

手动安装 — 下载 手动安装 压缩包并解压,确保最终文件结构如下:

Dawnwalker\Binaries\Win64\ue4ss\Mods\UltrawideCutscenes\
    enabled.txt
    Scripts\main.lua

Vortex — 下载 FOMOD 压缩包并使用 “从文件安装(Install From File)”。它会询问一个问题(正常或详细日志记录);选择正常即可。

请勿同时使用两种方式。如果你之前手动安装过,在通过 Vortex 安装前请删除旧的 UltrawideCutscenes 文件夹,否则将出现两份副本。

要确认模组已加载,打开 ue4ss\UE4SS.log 并查找:

[UltrawideCutscenes] 2.1.2 loaded

热键

F9 — 切换 横向+(Hor+)修正。无论是否开启,黑边都会保持移除状态,因此你可以在过场动画中直接对比效果。 F10 — 立即清除当前世界中所有摄像机的限制。如果黑边在某个特定场景中重新出现,请使用此功能。 F11 — 将状态写入 UE4SS 日志。在提交错误报告时请附上此日志。


兼容性——请务必阅读

此模组无法与 [i]解除过场动画和菜单帧率限制(Uncapped Cutscene and Menu FPS)[/i] 同时运行。

UE4SS 和该模组都会将其加载器安装为游戏可执行文件旁的 dwmapi.dll,且文件名只能有一个。无论你后安装哪一个,都会覆盖另一个,被覆盖的加载器将完全无法加载。重命名文件也无济于事——我检查了两者的导出表,它们都只导出了 Dwm* 系列函数,因此使用任何其他文件名,游戏都将无法解析其导入。

目前,你只能二选一。单独依靠任何一个模组都无法解决此问题;需要其中一个模组提供一个使用不同文件名构建的加载器。

如果安装后黑边仍然存在,请首先检查 ue4ss\UE4SS.log。如果其时间戳不是最新的,则说明 UE4SS 未加载,而代理冲突几乎可以肯定是原因所在。


已知问题

  • [b]某些剪辑切换处可能仍存在轻微的画面位移。 游戏在过场动画期间大约每两秒重置一次视场角轴,而本模组会在大约一帧内将其恢复。这种方法无法将此时间窗口变为零,只能使其非常短暂。
  • [b]某些镜头是按 16:9 构图拍摄的。 显示全宽时,偶尔会显示比原构图意图更多的场景内容。
  • [b]预渲染视频不受影响。 位于 Content\Movies 中的 Bink 影片其宽高比是固定的,任何模组都无法将其拓宽。
  • [b]仅在 Steam 版本上测试,构建版本为 CL-256181。由于未使用硬编码地址,其他商店版本理论上应该可以运行,但我无法对此进行验证。

更新日志

2.1.2

  • [b]修复了每次摄像机切换后约一秒出现的画面抖动问题。 2.1.1 版本每秒检查一次视场角轴。游戏会在每次剪辑时重置该轴,因此修正总是延迟一整个秒才生效,且清晰可见。现在检查频率约为每帧一次,这将延迟窗口缩短到大约一帧。
  • 修复了 F11 转储功能中的一个错误,该错误会在按键时引发异常。

2.1.1

  • [b]修复了过场动画看起来被放大的问题。 2.1.0 版本在从正在运行的游戏读取视场角轴并发现其已正确后,移除了 横向+(Hor+)修正——但该读取是在常规游戏过程中进行的,而游戏在过场动画中使用的是不同的值。

2.1.0

  • [b]重写为单一事件回调,不再在调用之间保留任何对象引用。此前有两种崩溃具有相同的特征——读取 0xffffffffffffffff 时发生访问冲突——两者都是由在引擎释放摄像机后向其写入过时的摄像机引用引起的。
  • 移除了周期性摄像机扫描。通过插桩计数器显示,游戏会清除每个摄像机一次且不会重新启用,因此无需持续干预。

2.0.3

  • [b]修复了剪辑时摄像机跳动的问题。 摄像机现在会在其构建的瞬间被清除,而不是最迟 50 毫秒后。游戏会为每一句对白和每一个镜头创建一个新的摄像机——单个序章场景中就有 379 个——以前每个摄像机渲染的前几帧都会带有黑边。

2.0.1

  • [b]修复了脚本加载失败的问题,错误提示为 unexpected symbol near '<\239>'。打包的 main.lua 文件带有 UTF-8 BOM,而 Lua 会拒绝该标记,因此所有通过下载安装此模组的用户都无法运行它。现在构建过程会生成无 BOM 的 UTF-8 文件,并拒绝打包带有 BOM 的文件。
  • [b]修复了过场动画结束时崩溃的问题,该问题由向引擎已释放的摄像机对象写入数据引起。

致谢

感谢在评论区中进行实际诊断的人们:

  • [b]exelonpt[/b] — 发现了 BOM 问题并提供了针对过场动画结束崩溃的修复方法
  • [b]xenox127[/b] — 发布了识别出 BOM 的日志行
  • [b]liberte[/b] — 独立地将崩溃追溯到过时的摄像机引用
  • [b]Tadian[/b] — 确认了编码问题
  • [b]TheWolfeus[/b][b]RobinModz[/b] — 报告了摄像机跳动问题,这促成了 2.0.3 和 2.1.2 版本的修复

提交错误报告时,附上 ue4ss\UE4SS.log、您的分辨率、游戏商店平台以及您安装的其他任何 UE4SS 模组,将大大提高排查效率。