SSE Display Tweaks 封面

SSE Display Tweaks

上古卷轴5:天际特别版实用工具

一体化解决方案,带来流畅的解锁帧率游戏体验。包含物理修复、无边框全屏性能提升、刷新率控制、高度可配置的帧率限制、各种错误修复等。

前置 Mod

详情

概述

一组用于更流畅游戏体验的调整与修复。SKSE64 插件。

主要功能

  • 支持 'DXGI flip model',这是一项 DirectX 功能,可大幅提升无边框全屏模式性能,并启用此前仅在独占模式中可用的功能。
  • 一系列与帧率相关的错误修复,包括一个功能完整且性能优化的物理修复(在内战任务期间有效,与所有内容兼容)。
  • 可在无边框全屏模式下禁用垂直同步(启用 DXGI flip model 时)。
  • 为独占全屏模式解除刷新率上限。
  • 帧率限制,可为 UI、地图、日志、加载画面等提供单独选项。
  • 在无边框全屏模式下以任意分辨率运行(无边框升频)

重要

此插件会禁用 Skyrim 内置的帧率限制器,并用自己的限制器取而代之。限制可在 SSEDisplayTweaks.ini 的 FramerateLimit 选项中配置(默认 240 FPS)。你也可以使用外部工具或显卡驱动内置的限制器。

请注意,启动器中的全屏和无边框选项(SkyrimPrefs.ini 中的 bFull Screen 和 bBorderless)不会生效;如果你想更改显示模式,必须在 SSEDisplayTweaks.ini 中设置(Fullscreen 和 Borderless 选项)。 例如,如果你想切换到独占全屏,设置 Fullscreen=true;窗口模式则设置 Fullscreen=false 和 Borderless=false,等等。

从版本 0.4.11 开始,如果 SSEDisplayTweaks.ini 中的 'Fullscreen' 或 'Borderless' 被注释掉,则会使用 SkyrimPrefs.ini 的显示模式设置。目前默认配置仍会覆盖显示模式,默认使用无边框全屏。

自 0.4.12 起,'Fullscreen' 和 'Borderless' 选项已被注释掉。

性能

DXGI flip model 可以绕过桌面合成(DWM),直接将帧发送到屏幕,使窗口模式的性能与独占模式相当甚至更好,减少卡顿、降低输入延迟并提高帧率。另一个好处是能更好地与 HDR 和 G-Sync 等功能集成。插件会检测你的系统是否支持 flip,并自动选择最佳可用选项(如有必要,你可以手动配置,详见配置中的 SwapEffect 选项)。

自 Windows 8.1 起支持 flip;如果你运行的是更低版本,请使用独占全屏以获得更好性能。

降低帧延迟也可能减少卡顿(在某些情况下效果显著),配置中 MaxFrameLatency 选项上方有详细说明。

错误修复

Havok 修复会根据帧率调整计时数值,以防止高帧率下物理表现异常。还包含若干其他修复:

  • ThirdPersonMovementFix - 修复高帧率下无法在第三人称中移动的问题。
  • MapMoveKeyboardSpeedFix - 将地图键盘移动速度与帧率解耦。
  • SittingHorizontalLookSensitivityFix - 将坐下时第一人称水平视角灵敏度与帧率解耦。
  • AutoVanityCameraSpeedFix - 将自动欣赏镜头旋转速度与帧率解耦。
  • DialogueLookSpeedFix - 将对话视角速度与帧率解耦。
  • GamepadCursorSpeedFix - 将手柄光标速度与帧率解耦。
  • LockpickRotationSpeedFix - 将开锁鼠标旋转速度与帧率解耦。
  • FreeCameraVerticalSensitivityFix - 将自由相机垂直灵敏度与帧率解耦。
  • FreeCameraMovementSpeedFix - 将自由相机移动速度与帧率解耦。
  • SkipMissingPluginINI - 防止扫描不存在的插件 ini。可显著改善启动时间。
  • LockCursor - 将鼠标光标锁定到游戏窗口,防止在副显示器上滚动。
  • PhysicsDamagePatch - 根据帧时间调整被物理对象击中时造成的伤害量。
  • FreeCameraVerticalSensitivityFix - 将自由相机垂直灵敏度与帧率解耦(与 EngineFixes 中相同的补丁)
  • FreeCameraMovementSpeedFix - 将自由相机移动速度与帧率解耦(与 EngineFixes 中相同的补丁)

非可选:

  • (独占全屏)修复 Alt-Tab 切换时刷新率重置为桌面设置的问题。

关于人们在各种论坛上热衷于复读的所谓“高 FPS 脚本计时问题”——并不存在。恰恰相反,极低和/或极不稳定的帧率更有可能导致 VM 出现问题。如果 VM 在较高帧率下出现问题,那是底层问题的症状。理想情况下,它在 90-144 FPS 下应比锁定 60 FPS 表现好得多。内置的屏幕显示可以检测并警告你脚本引擎是否过载。

帧率限制器

允许为各个 UI 菜单配置单独的限制。你还可以为每个菜单强制开启/关闭垂直同步。主要用途是在日志/系统界面中解除帧率限制以加速 MCM,同时在游戏中保持合理限制。更多信息请参阅 Render 部分的 UIFramerateLimit* 选项。

屏幕显示(OSD)

OSD 可配置为显示当前 FPS、帧时间、帧计数器和基于系统分配预算的 VRAM 消耗(详情请阅读配置)。它也可以作为诊断脚本相关问题的第一步,因为当脚本引擎过载时它会显示警告。

脚本引擎短时间内过载是正常的,例如快速旅行后大量事件同时触发时,指示器可能会短暂出现,这无需担心。但是,如果它持续显示或伴随 FPS 急剧下降,那你就有问题了。通常应归咎于制作拙劣且脚本繁重的 mod。检查堆栈以了解发生了什么。

配置

配置文件对每个可用选项都有详细文档,你可以在下载前在此处查看。

为避免更新后丢失自定义配置,请在 Data\SKSE\Plugins 中创建 SSEDisplayTweaks_Custom.ini。该文件中的任何选项都将覆盖主配置。

其他

我强烈建议安装 Engine Fixes。它包含一个将垂直视角灵敏度与帧率解耦的修复,以及 form/tree lod 引用缓存,在某些区域可带来巨大的 FPS 提升。

兼容性

  • 与 Havok Fix 插件不兼容。
  • ENB:ForceVSync 与无边框垂直同步关闭功能(EnableTearing)不兼容;如果你启用了它,请在 enblocal.ini 中设置 ForceVSync=false,并改为在 SSEDisplayTweaks.ini 中配置垂直同步选项。请注意,除此之外,在哪里启用垂直同步没有区别,ENB 没有自己的实现——ForceVSync 只是为了方便。
  • 如果你想解锁帧率并使用 ENB,请确保 enblocal.ini 中 EnableFPSLimit=false,并检查你没有在其他地方受到限制(RTSS、驱动控制面板等)。此插件解除引擎中的帧率限制,它无法控制其他插件、驱动或外部应用程序。
  • 如果游戏无法正常启动(音乐播放但卡在主菜单),那是因为有其他东西覆盖了 Skyrim 的垂直同步设置;要么在插件配置中关闭它(EnableVSync=false 和 EnableTearing=false),要么禁用冲突软件。
  • 如果你使用无边框升频并遇到 ENB 效果问题,请在 Render 部分设置 DisableBufferResizing=true。

鸣谢

SKSE 团队和 Ryan(CommonLibSSE)的所有逆向工程工作。

源码位于 GitHub