前置 Mod
详情
Skyrim Special Edition 的 Engine Fixes
一个用于修复 bug 和修补问题的 Skyrim Special Edition 开发中 skse64 插件。
当前此插件(5.0+)的大部分工作由 Ryan 完成,他值得比你想象中更多的赞誉 :^)
安装
-
像安装任何 SKSE 插件一样安装第 1 部分压缩包,无论是通过模组管理器还是直接安装到 Data 文件夹。
如果你想使用内存管理器补丁,则目录中必须包含 "_preload.txt" 文件,因此如果你的模组管理器对此发出警告,请确保它被添加。
-
将第 2 部分压缩包解压到你的 Skyrim SE 文件夹来安装(三个 dll 应与 SkyrimSE.exe 等文件放在一起)
有关配置,请参阅下方的 INI 设置。默认值应对所有用户稳定。
如果你更喜欢 SSE Fixes 的同类修复版本,可以将它们一起安装,Engine Fixes 会自动禁用其冲突的补丁 :)
INI 设置/配置
EngineFixes
- VerboseLogging(默认:false) - 在日志文件中启用更详细的日志记录。
- CleanSKSECosaves(默认:true) - 启动时删除没有匹配存档的 SKSE cosave 文件。
补丁
- DisableChargenPrecache(默认:false) - "Precache Killer" 功能,复制自 RaceMenu。
- EnableAchievementsWIthMods(默认:true) - 当你安装模组时启用成就。
- FormCaching(默认:true) - 缓存最近访问的 form。类似于 SSE Fixes。
- MaxStdio(默认:true) - 将最大文件句柄限制从 512 提高到 2048,这应在大多数情况下修复 "False Save Corruption" 错误。
- RegularQuicksaves(默认:false) - 使快速保存使用常规保存处理器。
- SaveAddedSoundCategories(默认:true) - 将模组添加的声音类别的音量设置保存到单独的 ini 文件。此功能与 Audio Overhaul for Skyrim SE 的 dll 相同,但它们不会冲突。
- ScrollingDoesntSwitchPOV(默认:false) - 使使用滚轮不会在第一/第三人称之间切换。参见 LE 模组此处
- SleepWaitTime(默认:false) - 让你更改睡觉或等待所需的时间。参见 LE 模组此处
- SleepWaitTimeModifier(默认:0.3) - 游戏内默认时间为 1.0;较小的值加快睡眠/等待时间,较大的值减慢它
- TreeLODReferenceCaching(默认:true) - 需要 FormCaching。修复极慢的树木 LOD 函数,该函数会导致帧率下降,在裂谷城(Riften)最明显。类似于 SSE Fixes。
- WaterflowAnimation(默认:true) - 将水流动画与游戏内时间尺度解耦,这样减少/增加时间尺度不会影响水流动画速度。
- WaterflowSpeed(默认:20.0) - 设置动画补丁的水流速度。默认值 20 等于默认时间尺度,可能没问题,除非你出于某种原因希望水看起来更慢/更快。
修复
- ArcheryDownwardAiming(默认:true) - 修复当你向下瞄准时投射物有时无法正常发射的 bug。移植自 Cobb 的 LE 修复(参见此处)
- AnimationLoadSignedCrash(默认:true) - 修复不正确的无符号/有符号转换。应允许在 CTD 之前加载更多动画。如果你使用 Animation Limit Crash Fix SSE,我建议禁用此项,改用该模组的修复。
- BethesdaNetCrash(默认:true) - 修复由于 Bethesda.net HTTP 响应头中非 ASCII 字符处理不当而导致的启动崩溃。
- BSLightingAmbientSpecular(默认:true) - 修复光照模板的方向环境高光(Directional Ambient Specular)和菲涅尔强度(Fresnel Power)损坏的 bug
- BSLightingShaderForceAlphaTest(默认:true) - 在光照着色器中强制进行 alpha 测试。修复水面上的物体 LOD 反射。
- BSLightingShaderParallaxBug(默认:true) - 修复视差光照着色器的 bug
- CalendarSkipping(默认:true) - 修复此页面的 Notes 下列出的 bug。
- DoublePerkApply(默认:true) - 修复玩家所在 cell 中的 NPC 在游戏加载时其 perk 效果被应用两次的 bug
- EquipShoutEventSpam(默认:true) - 修复 'Equip Shout' 脚本即使装备失败也会触发 shout equipped 事件的 bug。
- GetKeywordItemCount(默认:false) - 修复条件函数 "GetKeywordItemCount" 在某些情况下返回不正确值的 bug。
- GHeapLeakDetectionCrash(默认:true) - 修复当 Scaleform 尝试报告内存泄漏但 Skyrim 中不存在该代码时的崩溃
- LipSync(默认:true) - 修复唇形同步 bug,与 LE 错误修复相同。
- MemoryAccessErrors(默认:true) - 修复一些越界或释放后使用(use-after-free)的 bug。实验性内存补丁需要此项。
- MO5STypo(默认:true) - 修复 ARMA(护甲附加件,Armor Addon)form 加载器中的一个拼写错误,该错误导致第一人称女性替换纹理集无法加载。
- PerkFragmentIsRunning(默认:true) - 详情请参阅 Misc Fixes SSE 的 readme。
- RemovedSpellBook(默认:true) - 详情请参阅 Misc Fixes SSE 的 readme。
- SaveScreenshots(默认:true) - 修复禁用 TAA 时存档游戏截图空白的问题。
- SlowTimeCameraMovement(默认:true) - 修复在缓时效果期间相机移动缓慢的问题。
- TreeReflections(默认:true) - 修复树木 LOD 反射。与 ENB 无冲突。
- UnequipAllCrash(默认:true) - 修复在没有 AI 进程的 actor 上调用 "Actor.UnequipAll" 时的崩溃。
- VerticalLookSensitivity(默认:true) - 使垂直视角灵敏度不再与帧率绑定。
- WeaponBlockScaling(默认:true) - 修复武器格挡,使其正确依据格挡角色的武器进行缩放。
警告
- DupeAddonNodes(默认:true)
ADDN(附加节点,Addon Node)form 有一个节点索引,必须在你的整个加载顺序中唯一。如果你的加载顺序中存在冲突,会弹出一个警告框,冲突的模组将被记录到你的 Engine Fixes 日志文件中。要解决此问题,你需要联系模组有冲突的模组作者,其中一位必须更改他们使用的节点索引。请保持礼貌 :)
- RefHandleLimit(默认:true)
- RefrMainMenuLimit(默认:800000)
- RefrLoadGameLimit(默认:1000000)
有关此引擎限制的详细信息,请参阅我的 reddit 帖子。
如果你在主菜单以及每次加载存档游戏时,引用句柄限制高于配置的警告级别,这将弹出一个警告框。
在 100 多小时的游戏过程中,存档游戏中很容易积累大量引用计数,因此主菜单限制默认配置为 800k,比实际限制低约 250k。如果你不打算玩长期存档,可能可以安全地提高此警告限制。
加载游戏限制设置为 100 万(比限制低 48k)。如果你的存档游戏危险地接近限制,可以使用 ReSaver 减少其中存储的引用,但请记住,根据你的选择,这可能导致游戏世界中的事物消失/重生。
目前,此问题的唯一解决方案是从加载顺序中移除具有大量引用计数的非主插件,或将它们转换为主插件。
实验性
- CellInit(默认:true) - 修复 form 未从 id 转换为指针的罕见崩溃。
- MemoryManager(默认:false) - 禁用游戏最大堆的内置内存管理器。这是著名的 "Use OS Allocators" 补丁 来自 LE。
- UseTBBMalloc(默认:true) - 如果你启用了内存管理器补丁,这还会用 tbbmalloc 替换标准 malloc。如果内存管理器补丁被禁用,则此选项无效。
- SaveGameMaxSize(默认:false) - 将最大存档游戏大小从 64 MB(未压缩)扩展到 128 MB。如果你进行长时间游戏,并且游戏在尝试保存时开始崩溃,这可能修复它。标记为实验性是因为我无法亲自测试,但很可能是安全的。
鸣谢
Nukem - 比我所能提及的更多东西
Sniffleman/Ryan - Misc Fixes + CommonLibSSE
meh321 - 研究树木 LOD 函数(SSE fixes)、LE 错误修复及移植许可
sheson - 与 meh 一起为 LE 制作 skse 插件预加载器
himika - 来自 libskyrim(LE)的 scatter table 实现,以及大量研究函数/变量名称
kassent - 来自各种 skse 插件源代码的有用信息
Kole6738 - cosave 清理器的想法+代码
LStewieAL - 从此处移植的内容
源代码与贡献
源代码可在 Github 上获取。虽然我打算研究一些其他已知 bug,但不做承诺。如果你愿意追踪 bug 并构思修复方案,甚至自己实现一个,欢迎贡献;我愿意为未来的游戏更新维护它。
预加载器可在此处找到。
tbb.dll 和 tbbmalloc.dll 是 Intel 的 Threaded Building Blocks 库。


