S.T.A.L.K.E.R. 2 明亮手电筒

S.T.A.L.K.E.R. 2 明亮手电筒

增强玩家手电筒:光束更亮、照射距离更长、锥形范围略宽。NPC手电筒保持不变

明亮手电筒

一个真正照亮区域的手电筒——还有一个旋钮,让你精确调节亮度。

▶ 观看模组实际效果

功能简介

原版头灯强度为27,照射距离为2000单位。本模组将其进一步提升,并允许你在游戏中,看着光束的同时实时调节强度——无需配置文件,无需重启,无需猜测。

  • 更亮的光束 — 最高可达默认强度的3倍,如果你愿意还可以更亮
  • 更远的照射距离 — 最高可达衰减半径的2倍
  • 稍宽的光锥 — 足以照到你的脚,又不会让光束变成泛光灯
  • 即时调节 — 两个按键,0.25步进,效果即时生效
  • 记忆你的设置 — 设置一次,下次启动自动恢复
  • 不影响NPC手电筒 — 潜行者们保留自己的灯光(如需改变,一个开关即可实现)

❤️ 支持项目

如果你喜欢这个模组并想支持其开发,你可以在以下链接找到我的所有链接和支持方式:

☕ 支持 / 链接 - Cuplink

快捷键

  • Ctrl + '+' — 增强(小键盘 + 同样可用)
  • Ctrl + '-' — 减弱
  • Ctrl+Alt+L — 切换增强开关
  • Ctrl+Alt+0 — 恢复默认强度
  • Ctrl+Alt+K — 立即重新应用并将所有数值输出到 UE4SS.log

强度

功率调整的是增益而不是数值本身,所以 0.00 完全等同于原版——而非“接近原版”。

  • 0.00 — 强度 x1,范围 x1 (游戏默认状态)
  • 0.50 — 强度 x2.0,范围 x1.5 (更亮,但仍然有手电筒的感觉)
  • 1.00 — 强度 x3.0,范围 x2.0 (默认)
  • 2.00 — 强度 x5.0,范围 x3.0
  • 4.00 — 最大值,如果你想要点不寻常的效果

从默认值开始,上下调节直到视觉上满意为止,然后就不用再管了。

运行需求

适用于潜行者2的UE4SS。 这是唯一的依赖项。

不是一个.pak模组。不会向Content/Paks安装任何文件,也不会通过游戏的ModKit模组系统注册。

安装方法

  1. 将压缩包解压到你的游戏根目录——即包含Stalker2.exe的文件夹
  2. 最终目录结构应为:
Stalker2\Binaries\Win64\ue4ss\Mods\BrightFlashlight\Scripts\main.lua
  1. 启动游戏。附带的enabled.txt会自动注册该模组。

如果你的UE4SS安装使用 Mods\mods.txt 而非 enabled.txt,请在 "; Built-in keybinds" 注释上方添加以下一行:

BrightFlashlight : 1

卸载: 删除 Mods\BrightFlashlight 文件夹即可。该模组从不写入你的存档。

配置

所有设置均位于 Scripts\main.lua 顶部的CFG表格中,每个条目都是游戏自身数值的乘数,而非硬编码数值。这意味着该模组会随GSC的参数调整而适配,并在补丁调整光照后依旧保持合理表现。

Intensity          = 3.0
AttenuationRadius  = 2.0
OuterConeAngle     = 1.15

乘数无法改变以零为起点的数值,而在默认安装中,VolumetricScatteringIntensity和InnerConeAngle均为0。这些数值存储在ABSOLUTE表中——如果你希望在雾气和灰尘中看到明显的光柱,请将 VolumetricScatteringIntensity 设置为约 1.0。

OPT.include_npc 设置为 true 即可同样增强所有NPC的手电筒。

工作原理

给好奇的人,以及所有尝试改造此功能却毫无进展的人。

手电筒并不是一个对象。HeadFlashlightComponent 继承自 FlashlightComponent,进而继承自 ElectricComponent——它是电池和逻辑部分,完全不携带任何光照属性。向其写入强度值不会有任何效果,且是静默忽略。

实际的光线是同一Actor上的一个独立的 SpotLightComponent。玩家角色(BP_Stalker2Character_C)拥有两个此类组件:SpotLight,主光束,以及 SpotLight1,一个柔和的近距补光。本模组仅调整这两个组件,不影响其他任何东西。

它还刻意避免使用 ExecuteInGameThreadLoopAsync。Update 2.0下可用的UE4SS配置要求将 HookEngineTick、HookBeginPlay、HookLoadMap 等全部关闭——如果开启,游戏会在启动时因UE4SS的detour路径而崩溃。ExecuteInGameThread通过引擎tick调度,因此在任何正确配置的安装上它根本不会触发,你排队的任何内容都会被无声丢弃。相反,该模组通过按键绑定、NotifyOnNewObject以及对 FlashlightComponent:ToggleFlashlight 的 RegisterHook 运行——因此每次你开灯时,你的数值都会被重新写入。

每个灯光首次被看到时,游戏原始数值会被缓存。所有调整始终基于缓存的原值重新计算,而绝不基于当前值,因此重复按键不会累积或漂移——关闭模组时会精确恢复游戏出厂设置。

兼容性

  • 针对游戏版本 2.0 构建并测试
  • 仅修改玩家Actor上的两盏聚光灯——不影响其他光源
  • 与天气、光照和 ReShade 类模组应能良好共存,因为它仅缩放现有光照数值
  • 会与其他改写相同玩家手电筒组件的模组冲突
  • 未来补丁可能更改属性名称;如果灯光停止响应,按 Ctrl+Alt+K 并检查 UE4SS.log

鸣谢

独立Lua实现。不包含任何其他模组的文件。

视频

https://www.youtube.com/watch?v=ud4WtuCs-Gg