3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 159|回复: 10
打印 上一主题 下一主题

[工具插件] 动态风框架——SKSE插件

[复制链接]

4239

主题

1万

帖子

11万

积分

创意工坊

Rank: 11Rank: 11Rank: 11Rank: 11

贡献度
20359
金元
372743
积分
118710
精华
0
注册时间
2017-8-17
跳转到指定楼层
主题
发表于 2026-4-19 16:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

转自:https://www.nexusmods.com/skyrimspecialedition/mods/177023

动态风框架是一款SKSE插件,可将《上古卷轴5》中原版的静态风系统,升级为一套动态、全响应式的风效系统。该插件会修改原版风效,并将其转化为可影响动画、物理、物体与视觉特效的风源,让MOD作者能以极低的性能损耗,打造出极具沉浸感的风驱互动效果。

MOD说明
动态风框架是一款SKSE插件,可将《上古卷轴5》中原版的静态风系统,升级为一套动态、全响应式的风效系统。该插件会修改原版风效,并将其转化为可影响动画、物理、物体与视觉特效的风源,让MOD作者能以极低的性能损耗,打造出极具沉浸感的风驱互动效果。

如果你是因为其他MOD需要本框架才能正常运行而来,只需下载安装即可直接使用。

原版的风效是完全静态的:风向始终固定为东或东南,风力仅随天气变化,无任何动态波动、无阵风效果,毫无沉浸感!
本MOD的设计思路非常简单:让风动起来,让整个世界能对风做出反馈。这款MOD现已迭代为完整的开发框架,包含以下多个功能模块:

1.  风管理器——MOD的核心模块,负责控制:
    - 全局风向:该模块会随机化风向,并随时间为风向添加轻微的自然抖动。
    - 全局风速/风力:该模块为风力添加极具沉浸感的阵风效果。
    - 修复了室内与洞穴场景中依然存在风效的原版BUG。
2.  动画控制器——基于风力状态控制动画播放速度的模块。
3.  树木控制器——控制原版树木动画的模块。可根据风力与风向,增减树干、树枝、树叶晃动的柔韧度、振幅与频率。同时启用了原版中未被使用的树木风向适配功能,让树木会顺着风向自然弯曲(对白杨类树木效果尤为显著)。
4.  旋转控制器——可根据风向旋转物体,或将物体锁定到预设的允许角度(对双面可飘动的旗帜非常实用)。
5.  推力控制器——可顺着风向推动Havok物理引擎物体,可完美替代《Blow in the Wind》MOD。
6.  可见性控制器——基于风力与风向控制物体可见度的模块。
7.  基础物体替换控制器——根据风的状态切换物体,让物体呈现对应风效的状态(示例:将静止的旗帜切换为飘动的旗帜)。
8.  模型替换器——仅切换物体的模型文件,不改变其基础物体或其他任何属性。
    实验性功能,功能逻辑与基础物体替换控制器几乎一致,但受限于自身缺陷(如无法正常播放动画),整体效果不如基础物体替换,在部分特定场景下仍有实用价值。

本框架与粒子风(Particle Wind)、SMP风(SMP Wind)以及野火(Wildfire)MOD搭配使用效果极佳——野火MOD目前仍在开发中,可在QTR的Discord服务器获取免费公开测试版!

兼容性
本MOD为SKSE插件,兼容以下游戏版本:
- 1.6.1170 - 完全兼容
- 1.6.640 - 大概率兼容 - 欢迎玩家测试反馈确认
- 1.5.97 - 大概率兼容 - 欢迎玩家测试反馈确认
- VR版 - 大概率兼容 - 欢迎玩家测试反馈确认

️技术细节
- 以SKSE插件形式实现
- 无Papyrus脚本、无模型文件、无ESP/ESL文件
- 性能损耗极低
- 可随时安全安装与卸载

风效MOD系列兼容情况
- 粒子风(Particle Wind)- 100%兼容
- SMP风(SMP Wind)- 100%兼容
- 风中青草(Windy Grass)- 100%兼容
- 风中飘动(Blowing in the Wind)- 推力模块无需修改模型即可完全替代该MOD
- 天际多风(Skyrim Is Windy)- 树木与动画模块无需修改ESP即可完全替代该MOD

运行需求
- SKSE:https://bbs.3dmgame.com/thread-6550387-1-1.html

- 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

---

面向MOD作者
若你希望为自制MOD内容添加风效反馈,可通过SKSE菜单框架调用所有游戏内工具(例如游戏内补丁工具)。
每个模块都有其专属的属性集,你需要按需配置对应的参数。
你可在此处找到每个模块的完整配置示例:Dynamic Wind - Skyrim

所有配置文件均采用.json格式,文件名可自定义,仅需放置在以下正确的文件夹路径下:
Data\SKSE\Plugins\DynamicWind\

通用参数:headingRotation 与 angleFactor
这两个参数会在多个模块中出现,其作用逻辑在所有模块中完全一致。

headingRotation(朝向旋转值)
定义物体“正向”(自身朝向)的偏移量,用于让物体与风向实现正确对齐。

示例:
许多旗帜的默认朝向是反向的,需要设置π的偏移量进行校正;若不进行校正,它们对风的反馈方向会完全错误。
(详见图片获取更直观的视觉说明)

angleFactor(风向影响系数)
定义物体朝向(相对风向)对最终效果的影响程度。

系统内部会计算物体朝向与风向的对齐度:
- 1.0 = 与风向完全对齐
- 0.0 = 与风向垂直
- -1.0 = 与风向完全相反

对齐度会通过angleFactor进行混合计算:
- 0.0 = 完全忽略朝向,效果仅受风力影响
- 1.0 = 效果完全由朝向与风向的对齐度决定
- 0.5 = 效果部分受朝向影响

对效果的影响
在大多数模块中,最终生效的风力会按以下公式计算:
最终风力 = 基础风力 × 最终系数
其中最终系数由朝向对齐度与angleFactor共同决定。
当angleFactor数值高于0.5时,若物体朝向与风向相反,最终风力可能会出现负值。

这意味着:
- 物体正对风向 = 风效更强
- 物体侧对风向 = 风效更弱
- 物体背对风向 = 风效极弱,甚至出现反向效果(取决于具体模块)

模块差异
- 动画/基础物体替换/模型替换:采用完整的对齐度逻辑,风力可出现负值(朝向会直接影响风力大小)
- 可见性:采用完整的对齐度逻辑,风力不会出现负值(朝向会直接影响风力大小)
- 旋转控制器:headingRotation仅用于定义物体的基础朝向,物体会直接旋转至与风向匹配的角度

简而言之:
headingRotation = 修正物体的基础朝向
angleFactor = 控制风向对最终效果的影响程度

---

推力控制器
该模块逻辑非常简洁。MOD会自动计算风向与风力,你只需定义需要被风吹动的物体,以及它们对风力的响应强度即可。
仅拥有物理属性的物体(例如悬挂的招牌、瓶子等)可被风力推动。
配置文件夹:Push

可配置参数
- formID:基础物体ID或引用ID
- windSensitivity:物体对风力的敏感程度

配置示例

{
    "FormID": "0x038B0F~Skyrim.esm",
    "windSensitivity": 1.0
}

该配置会让所有基础ID为0x038B0F~Skyrim.esm(悬挂的兔子装饰01)的物体,顺着风向被推动,风力倍率为1。

---

动画控制器
该模块基于风力状态控制动画播放速度,可让物体通过加快或减慢动画播放,对风力与风向做出动态反馈。
配置文件夹:Animation

可配置参数
- formID:基础物体ID或引用ID
- speedMin:最小动画速度(对应风力为0.0时)
- speedMax:最大动画速度(对应风力为1.0时)
- headingRotation:物体自身朝向,单位为弧度(取值范围:-π 至 π)
- angleFactor:风向对动画的影响程度(取值范围:0 至 1)

注:angleFactor = 0 代表完全不考虑风向;angleFactor > 0.5 可能导致动画速度出现负值(反向播放)。

配置示例

{
    "FormID": "0x0FC611~Skyrim.esm",   
    "angleFactor": 0.0,
    "headingRotation": 0.0,
    "speedMax": 5.0,
    "speedMin": 0.0
}

该配置会让所有基础ID为0x0FC611~Skyrim.esm(农舍风车扇叶)的物体,动画速度在0.0(无风力时静止无动画)至5.0(满风力时播放速度为原版的5倍)之间变化,该配置完全不考虑风向影响。


{
    "FormID": "0x0FC611~Skyrim.esm",   
    "angleFactor": 1.0,
    "headingRotation": 3.14,
    "speedMax": 5.0,
    "speedMin": 0.0
}

该配置会让所有基础ID为0x0FC611~Skyrim.esm(农舍风车扇叶)的物体,动画速度根据风力与风向,在-5.0(反向5倍速播放)至5.0(正向5倍速播放)之间变化。该配置会受风向影响,当风向与headingRotation设定的朝向相反时,会得到负向系数。

---

旋转控制器
该模块基于风向控制物体的旋转。
若未定义allowedAngles,物体会随着风向持续平滑旋转;
若已定义allowedAngles,物体会在加载时,根据风向从预设角度中选择最接近的角度进行锁定。
配置文件夹:Rotation

可配置参数
- formID:基础物体ID或引用ID
- headingRotation:物体自身朝向,单位为弧度(取值范围:-π 至 π)
- allowedAngles:可选参数,预设的允许旋转角度列表(单位为角度)

应用场景示例
- 无allowedAngles:吹雪特效会随着风向平滑旋转
- 有allowedAngles:水平杆上的旗帜,会根据风向锁定到左侧或右侧

配置示例

{
    "FormID": "0x0197C7~Skyrim.esm",
    "headingRotation": -2.09439510239
}

基础ID为0x0197C7~Skyrim.esm(环境吹雪特效平面)的物体,会以-2.09439510239的偏移量与风向对齐。


{
    "FormID": "0x0C6CDA~Skyrim.esm",
    "allowedAngles": [
        110.0,
        290.0
    ],
    "headingRotation": 3.1419997215270996
}

引用ID为0x0C6CDA~Skyrim.esm(杜尔城堡入口上方的旗帜)的物体,会根据风向锁定到110.0度或290.0度。该配置可让旗帜与风向对齐,配合基础物体替换模块,可实现旗帜根据风向向左或向右飘动的效果。

---

可见性控制器
该模块基于风力与风向控制物体的可见度,可见度会根据风力在最小值与最大值之间进行线性插值。
配置文件夹:Visibility

可配置参数
- formID:基础物体ID或引用ID
- minVisibility:最小可见度数值
- maxVisibility:最大可见度数值
- minWindStrength:达到最小可见度的风力阈值(风力低于该值时均保持最小可见度)
- maxWindStrength:达到最大可见度的风力阈值(风力高于该值时均保持最大可见度)

注:在minWindStrength与maxWindStrength之间,可见度会随风力线性变化。
- headingRotation:物体自身朝向,单位为弧度(取值范围:-π 至 π)
- angleFactor:风向对可见度的影响程度(取值范围:0 至 1)

配置示例

{
    "FormID": "0x0197C7~Skyrim.esm",
    "maxVisibility": 1.0,
    "maxWindStrength": 0.5,
    "minVisibility": 0.5,
    "minWindStrength": 0.0
}

基础ID为0x0197C7~Skyrim.esm(环境吹雪特效平面)的物体,在风力为0.0时可见度为50%,风力达到0.5及以上时可见度为100%。该配置完全不考虑风向影响。

---

基础物体替换控制器
该模块根据风力状态切换物体的基础ID,让物体呈现与风效匹配的不同状态。
配置文件夹:BaseObjSwap

可配置参数
- formID:基础物体ID或引用ID
- headingRotation:物体自身朝向,单位为弧度(取值范围:-π 至 π)
- angleFactor:风向对替换逻辑的影响程度(取值范围:0 至 1)
- swaps:替换条目列表(仅支持基础物体)
  - formID:目标替换的基础物体ID
  - strength:该替换条目的风力阈值

注:当应用angleFactor后的风力小于等于该条目的strength阈值时,就会启用该条目的替换。列表顺序至关重要,条目需按风力阈值从弱到强排序。
若要实现完整的循环替换,需要为循环中的每个基础物体都单独编写配置文件。

配置示例

{
    "FormID": "0x0B343A~Skyrim.esm",
    "angleFactor": 0.5,
    "headingRotation": 3.140000104904175,
    "swaps": [
        {
            "FormID": "0x0B3439~Skyrim.esm",
            "strength": 0.25
        },
        {
            "FormID": "0x0B343C~Skyrim.esm",
            "strength": 0.5
        },
        {
            "FormID": "0x0B343A~Skyrim.esm",
            "strength": 0.75
        },
        {
            "FormID": "0x0B343B~Skyrim.esm",
            "strength": 1.0
        }
    ]
}

所有基础ID为0x0B343A~Skyrim.esm(黑暗兄弟会旗帜动画03)的物体,会根据风力切换为对应形态:
- 风力≤0.25:切换为0x0B3439(黑暗兄弟会旗帜动画01)
- 风力≤0.5:切换为0x0B343C(黑暗兄弟会旗帜动画02)
- 风力≤0.75:切换为0x0B343A(黑暗兄弟会旗帜动画03)
- 风力≤1.0:切换为0x0B343B(黑暗兄弟会旗帜动画04)

列表顺序至关重要,若要实现完整的循环替换,需要为循环中的每个基础物体都单独编写配置文件。该配置会受风向影响,旗帜的最终生效风力取决于它在世界中的朝向。

---

模型替换器
该模块的工作逻辑与基础物体替换几乎完全一致,区别在于它不会替换物体的基础ID,仅替换物体的模型文件。
配置文件夹:ModelSwap

可配置参数
- formID:基础物体ID或引用ID
- headingRotation:物体自身朝向,单位为弧度(取值范围:-π 至 π)
- angleFactor:风向对替换逻辑的影响程度(取值范围:0 至 1)
- swaps:替换条目列表
  - modelPath:模型文件的完整路径(无需添加Data\Meshes\前缀)
  - strength:该替换条目的风力阈值

局限性
- 替换后的物体可能无法正常播放动画,或出现预期外的异常。
- 模型会使用自身默认的贴图,不会继承原基础物体/引用物体的贴图。

受上述局限性影响,该模块的适用场景比基础物体替换更受限,但在部分特定情况下仍有实用价值。

配置示例

{
    "FormID": "0x0386AA~Dragonborn.esm",
    "angleFactor": 0.5,
    "headingRotation": 3.140000104904175,
    "swaps": [
        {
            "model": "DLC02\\Dungeons\\Apocrypha\\Animated\\Banners\\ApoBanner01.nif",
            "strength": 0.25
        },
        {
            "model": "DLC02\\Dungeons\\Apocrypha\\Animated\\Banners\\ApoBanner02.nif",
            "strength": 0.5
        },
        {
            "model": "DLC02\\Dungeons\\Apocrypha\\Animated\\Banners\\ApoBanner03.nif",
            "strength": 0.75
        },
        {
            "model": "DLC02\\Dungeons\\Apocrypha\\Animated\\Banners\\ApoBanner04.nif",
            "strength": 1.0
        }
    ]
}

所有基础ID为0x0386AA~Dragonborn.esm(异典旗帜01)的物体,会根据风力切换为列表中对应的模型,逻辑与基础物体替换完全一致。
该配置能正常生效,大概率是因为异典旗帜的动画被硬编码在了模型文件中(其他旗帜模型可能需要动画控制器才能正常播放,具体机制暂不明确)。
列表顺序至关重要,若要实现完整的循环替换,需要为循环中的每个基础物体都单独编写配置文件。该配置会受风向影响,旗帜的最终生效风力取决于它在世界中的朝向。

---

树木控制器
该模块控制原版树木的动画,让树木能对风做出动态反馈。
配置文件夹:Tree

可配置参数
- formID:仅支持基础物体ID,不支持单个引用ID
- backAmplitude:反向振幅
- backFrequency:反向频率
- branchFlexibility:树枝柔韧度
- frontAmplitude:正向振幅
- frontFrequency:正向频率
- leafAmplitude:树叶振幅
- leafFlexibility:树叶柔韧度
- leafFrequency:树叶频率
- sideAmplitude:侧向振幅
- sideFrequency:侧向频率
- trunkAmplitude:树干振幅
- trunkFlexibility:树干柔韧度

注意事项
该模块无法针对单个树木引用进行配置,仅能按树木的基础物体ID进行统一配置。
参数调试的最佳方式是在游戏内进行:选中目标树木,通过SKSE菜单实时测试不同参数,直观观察树木的晃动效果。

下载地址:

游客,如果您要查看本帖隐藏内容请回复




评分

1

查看全部评分

回复

使用道具 举报

40

主题

4395

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
103
金元
112017
积分
11614
精华
0
注册时间
2024-2-14

滑稽

舒服的沙发
发表于 2026-4-19 17:16 | 只看该作者
感谢分享~
回复 支持 反对

使用道具 举报

0

主题

228

帖子

322

积分

高级玩家

Rank: 4

贡献度
0
金元
3220
积分
322
精华
0
注册时间
2015-7-31
硬硬的板凳
发表于 2026-4-19 22:20 | 只看该作者

回复 支持 反对

使用道具 举报

1

主题

949

帖子

1555

积分

游戏狂人

Rank: 6Rank: 6

贡献度
50
金元
13548
积分
1555
精华
0
注册时间
2019-11-26
冰凉的地板
发表于 2026-4-20 16:57 | 只看该作者
6666666666666
回复 支持 反对

使用道具 举报

0

主题

371

帖子

675

积分

超级玩家

Rank: 5Rank: 5

贡献度
1
金元
6712
积分
675
精华
0
注册时间
2009-12-20
5#
发表于 2026-4-21 09:11 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

1

主题

1685

帖子

1984

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
19841
积分
1984
精华
0
注册时间
2018-3-3
6#
发表于 2026-4-22 09:28 | 只看该作者
这个可以有
回复 支持 反对

使用道具 举报

11

主题

1886

帖子

1725

积分

游戏狂人

无形装逼,最为致命。装逼如风,常伴吾身。

Rank: 6Rank: 6

贡献度
9
金元
16887
积分
1725
精华
0
注册时间
2013-5-15
7#
发表于 2026-4-22 11:40 | 只看该作者

回复 支持 反对

使用道具 举报

14

主题

515

帖子

955

积分

超级玩家

Rank: 5Rank: 5

贡献度
5
金元
9354
积分
955
精华
0
注册时间
2013-7-10
8#
发表于 2026-4-23 01:10 | 只看该作者
66666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

65

主题

1567

帖子

1559

积分

游戏狂人

Rank: 6Rank: 6

贡献度
56
金元
13347
积分
1559
精华
0
注册时间
2011-3-1
9#
发表于 2026-4-23 02:59 | 只看该作者
nvbbbbbbbbbbbbbbbbbbbbbbbbb
回复 支持 反对

使用道具 举报

0

主题

1180

帖子

1421

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
14209
积分
1421
精华
0
注册时间
2020-2-25
10#
发表于 2026-4-23 15:51 | 只看该作者
666666666666666666666666666666666
回复 支持 反对

使用道具 举报

0

主题

165

帖子

285

积分

高级玩家

Rank: 4

贡献度
0
金元
2850
积分
285
精华
0
注册时间
2016-11-8
11#
发表于 2026-4-23 18:05 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-23 23:15 , Processed in 0.495808 second(s), 20 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表