|
|
本帖最后由 鼓掌之间 于 2025-9-10 17:43 编辑
转自:https://www.nexusmods.com/skyrimspecialedition/mods/158207
这是一款SKSE插件,能让角色在水中、雨中或雪中时呈现湿润外观。灵感源自“浸湿效果——角色湿润表现”(Soaking Wet – Character Wetness Effect)MOD,但完全从零重新开发,新增了更多功能、可配置选项,且支持NPC使用。目前虽非完美,但功能可用且会持续优化。
·前置需求
- SKSE插件地址库(Address Library for SKSE Plugins):https://bbs.3dmgame.com/thread-6549645-1-1.html
- SKSE菜单框架(SKSE Menu Framework):https://bbs.3dmgame.com/thread-6617414-1-1.html
- SKSE64(《上古卷轴5》脚本扩展工具64位版本):https://skse.silverlock.org/
·MOD说明
本MOD为角色材质(皮肤、头发、护甲、武器)动态添加光泽度与高光,以模拟湿润效果。
角色在水中或雨雪天气下会变湿,随后会随时间推移、靠近热源和/或处于遮蔽处时逐渐变干。玩家与NPC均适用。
·与社区着色器(CS)的兼容性
本MOD效果可与社区着色器(CS)的效果叠加/融合。若你偏好,可在社区着色器菜单的“湿润效果”中关闭“皮肤湿润”选项。此时,本MOD将负责处理角色(玩家与NPC,包括遮蔽处/热源检测)的湿润效果,其余部分由社区着色器负责。
·与ENB的兼容性
本MOD完全兼容ENB的湿润效果。ENB负责处理世界表面(地面、物体等)的湿润效果,也可对角色施加湿润效果;而本MOD为角色(玩家与NPC,包括遮蔽处/热源检测、游泳状态)添加动态湿润效果。两套系统可互补且无冲突,你可在ENB菜单或本MOD菜单中微调,选择偏好的湿润效果。
(注:GIF动图画质欠佳,尽我所能了,哈哈)
·特性
- 玩家与NPC的湿润效果带有流畅过渡(浸湿/变干)
- 可配置浸湿与变干时间
- 接触水、雨雪会变湿,对降水天气会进行遮蔽处检测(判断是否处于遮蔽下)
- 自动遮蔽检测:自动识别遮蔽处,不再让角色在遮蔽处变湿
- 热源(壁炉、锻炉等)可加速变干,加速倍数可配置
- 皮肤与头发效果倍增器:在关键部位增强效果可见度
- NPC追踪模式:自动模式下追踪特定NPC(使其随环境变化做出反应),或设为手动模式直接调整湿润度;支持可选的加入列表与范围剔除功能
- 启发式眼部检测:防止眼睛在雨雪/水中呈现光泽/湿润效果
- PBR适配模式(启发式):为护甲/武器及可能的PBR材质提供更柔和的上限与表现。目前尚无单一“标准”方法检测PBR,因此该模式依赖启发式算法,后续将持续优化
- 可通过SKSE菜单框架(SKSEMenuFramework)进行全面配置(滑块调节、按键设置、保存/重置),并提供实用预设
·1.4.0版本更新内容
- 提升API稳定性,优化蒙版处理精度
- NPC追踪:支持为单个NPC设置自动/手动模式、加入列表、手动即时调整湿润度
- 为护甲/武器添加PBR支持(启发式),优化响应效果并增加额外限制
- 新增眼部启发式检测,避免眼睛呈现湿润效果
- 修复:修正位掩码逻辑,确保皮肤/护甲/头发/武器的湿润效果保持一致
·瀑布(实验性)
目前不建议启用瀑布水雾检测功能。许多特效缺乏可用体积数据,可能导致异常湿润效果(尤其在室内)。建议保持该功能关闭,直至找到更可靠的实现方法。
·使用方法
1. 安装所有组件(本MOD、SKSE菜单框架及其所有依赖项)
2. 启动游戏并加载存档(或开始新游戏)
3. 按下F1键
4. 操作完成 
·关于本MOD
MOD最初灵感源自“浸湿效果——角色湿润特效”(Soaking Wet – Character Wetness Effect)MOD。但该MOD从未公开源代码,而我在另一个项目中需要此功能,因此决定从零开始重新开发,加入更多特性与灵活配置。MOD目前尚未完善,但可正常使用且仍在持续开发中。
·BUG反馈与测试
请在反馈BUG时提供有效细节(问题描述、发生时间、所用MOD/配置)。缺乏背景信息将难以修复问题。若条件允许,建议测试边界场景——我无法逐一测试所有MOD组合。本MOD主要在《天际特别版》(Skyrim SE)、《天际周年纪念版》(Skyrim AE)与《背景天际》(LoreRim)中测试,但未进行全面测试,你的反馈将助力MOD优化!
·致MOD创作者
·API概述(蒙版、标志与获取器)
- 按类别划分的位掩码(皮肤/面部、头发、护甲/服装、武器),支持叠加/最大值混合模式及可选覆盖(光泽/高光上限、增强)
- 新增环境查询与状态获取器(如:是否在水中、附近是否有湿润天气、是否处于遮蔽下、是否靠近热源、是否在室外开阔处、淹没程度、最终湿润度)
- 启发式PBR处理为内部功能,无需特殊调用,但需注意并非在所有配置中都能100%检测到PBR
·示例(仅在皮肤上添加“汗液”效果)
你的MOD(如:基于速度控制器实现的“爬山出汗”效果)可仅增强皮肤光泽,同时让衣物/头发/武器在“动态湿润”MOD控制下继续变干。这样能呈现更动态、自然的效果:护甲/头发按配置变干,而当你的触发条件满足时,皮肤会额外增加光泽。
·C++代码示例
inline void SetSweat(RE::Actor* a, float v, float ttlSec, bool envIsWet) {
Init();
if (!pSetMask) return;
v = std::clamp(v, 0.0f, 1.0f);
if (envIsWet) {
if (pClearMask) {
pClearMask(a, kSweatID);
} else if (pClearLegacy) {
pClearLegacy(a, kSweatID);
}
return;
}
const unsigned skinMask = CAT_SKIN | FLAG_PT;
pSetMask(a, kSweatID, v, ttlSec, skinMask);
}
·源代码
https://github.com/DanjelPiDev/TES5-DynamicWetness
下载地址:
|
评分
-
1
查看全部评分
-
|