仁王2完美格挡

仁王2完美格挡

在命中前按下防御,可获得可配置的气/灵力奖励、敌人效果以及更早的后续行动。可自定义分数时机、启动延迟、视觉效果以及多个加权或乱序音效。支持旧版设置和实时配置更新。

描述

玩法演示(Bilibili):
https://www.bilibili.com/video/BV1aLhh6HEQQ/?p=2

在攻击命中前的瞬间按下格挡(Guard)即可触发完美格挡。可自定义奖励:恢复气(Ki)、降低格挡的气消耗、获得妖力(Anima)、对攻击者造成伤害并触发轻击或重击受击反应。成功完美格挡后还可更早地进行后续移动、攻击或闪避,音效与视觉效果均可自定义。

默认判定窗口为 250 毫秒。按住格挡不会刷新窗口:需松开后再次按下以开启新窗口。请使用游戏中分配的格挡控制键;支持键盘/鼠标以及重映射的手柄控制。

在随附的 1.2.0 配置下,完美格挡免除格挡的气消耗、恢复最大气的 1/6 并获得 0.4 妖力。它会对攻击者当前的气造成其最大气上限 1/6 的伤害,并将妖怪(Yokai)最大气上限降低其最大气上限的 1/12。治疗与敌人生命值伤害默认关闭。当格挡使敌人的相关气资源耗尽时,会请求触发轻击受击反应。默认音频仍为原有的单个 parry.wav,音高与音量变化关闭。

这些效果均可配置。气恢复与妖力获取可同时启用,敌人伤害或附加受击反应可分别独立禁用。

此机制独立于“残心(Backwave)”和“逆波(Haze)”等原生弹反技能。无需解锁任何技能。它不会使不可格挡的攻击变为可格挡,也不会自动激活原生弹反技能。

1.2.0 更新内容

• 可选 GuardDelayMs 启动延迟与小数 WindowMs,例如 83.33 毫秒。默认仍为零延迟与 250 毫秒活动窗口。
• 独立的音频文件 Nioh2PerfectGuard.Sound.ini,与玩法 INI 并存。当此独立文件不存在时,仍支持原有的主 INI 声音设置。
• 多种声音:加权随机选择,或不重复轮换(每段启用的音频每轮各播放一次)。
• 每段音频的基础权重与音量、可配置的近期播放抑制、自动或手动历史记录,以及可选的防止相邻重复。
• 可选的细微音高与音量变化,默认关闭。两个 INI 与 WAV 文件均支持实时更新,但修改 DiagnosticHotkey 需重启。

同时保留自 1.1.9 起的功能:免费格挡增益兼容性修复;可配置的气与生命值比例;带正负号的妖力增减;独立的治疗、敌人伤害、耗尽反应与更早的后续行动。

安装

1. 安装 Shambuwu 的 Nioh 2 DLL Loader:
https://www.nexusmods.com/nioh2/mods/671
2. 完全退出游戏。
3. 将此压缩包中的 Mods 文件夹复制到包含 nioh2.exe 的目录中。
4. 通过 Steam 正常启动游戏。无需 Cheat Engine 或外部注入器。

已安装的 DLL:Mods/PerfectGuardNative/Nioh2PerfectGuard.dll
玩法配置:Mods/PerfectGuardNative/Nioh2PerfectGuard.ini
音频配置:Mods/PerfectGuardNative/Nioh2PerfectGuard.Sound.ini
自定义音效:Mods/PerfectGuardNative/Sounds/

请将 PerfectGuardNative 直接放入游戏的 Mods 文件夹内。不要将解压出的整个发布文件夹放入 Mods,也不要在其中再添加一个 Mods 文件夹。加载器需单独下载,不包含在内。发布包中不包含安装器、更新器或还原脚本。

从旧版本升级

完全退出游戏并备份现有的 PerfectGuardNative 文件夹。替换 DLL,同时保留你的个人 INI 文件与自定义 Sounds。随附的默认值仅作为全新安装的示例;复制整个 Mods 文件夹可能会覆盖你的设置和同名 WAV。

旧版玩法 INI 仍受支持。缺少 GuardDelayMs 表示零延迟,旧的整数 WindowMs 值仍然有效。如需使用新设置,请从随附的玩法 INI 中转移,而不是盲目替换你的偏好。

如果存在 Nioh2PerfectGuard.Sound.ini,它将控制本模组的全部音频,旧主 INI 中的 SoundEnabled/SoundVolume/SoundFile 键将被忽略。若要保留旧音频设置,可将其迁移到新的音频文件中,或不安装该文件。模组从不自动改写你的 INI。

旧版 RewardMode 与 AnimaGain 设置仍受支持。当两者同时存在时,AnimaChange 优先于 AnimaGain;它们不会叠加。缺少新的 HP 模式键时保留旧的固定值行为。显式配置的旧伤害值仍然生效;新包的默认值不会悄悄替换它们。游玩前请检查你的敌人伤害与冲击设置。

不要重命名并同时加载两个 Perfect Guard DLL。要回滚,请退出游戏并恢复备份。要卸载,仅移除 Mods/PerfectGuardNative;保留共享加载器和其他模组。

对于使用 3Dmigoto 的外观模组,请在游戏根目录 d3dx.ini 中现有的 [Include] 节下添加或保留以下行:

exclude_recursive = Nioh2PerfectGuard*.ini

此文件名模式涵盖两个模组 INI。不要在 Nioh2PerfectGuard 与 .ini 之间添加反斜杠。

敌人伤害与受击反应

敌人伤害作用于被格挡攻击的来源,而非你的锁定目标。每个伤害组独立支持 None、Balanced 或 Fixed。Balanced 使用敌人的完整最大气或生命值上限,而非剩余资源或降低后的妖怪上限;Fixed 使用游戏内部单位。这些效果不随武器攻击伤害缩放。生命值伤害默认关闭,启用后可致死。原生免疫与状态限制仍然生效。

EveryGuardImpact 控制每次成功完美格挡的基础反应。
EmptyKiImpact 控制当该完美格挡将相关资源从高于零降至零时的特殊反应。

两者均接受 None、Light 或 Heavy。Light 与 Heavy 选择原生受击反应类型,而非可调力度值。启用并触发时,EmptyKiImpact 优先于 EveryGuardImpact;两种反应不会在一次格挡上叠加。EmptyKiImpact=None 仅禁用耗尽覆盖。将两者都设为 None 可禁用所有附加冲击。

示例:
EveryGuardImpact=None 且 EmptyKiImpact=Light:仅在耗尽时触发轻击反应;这是随附的默认值。
EveryGuardImpact=Light 且 EmptyKiImpact=Heavy:通常触发轻击反应,耗尽时触发重击反应。
EveryGuardImpact=Light 且 EmptyKiImpact=None:每次完美格挡都触发轻击反应,无特殊耗尽覆盖。

对于人类敌人,耗尽指当前气降至零。对于妖怪,当前气与有效最大气分别检查。耗尽设置仅在降至零的瞬间触发,而非在资源保持为空期间反复触发。

这些反应允许敌人的原生耗尽行为发生。小型妖怪在当前气耗尽时可能暴露出抓取机会;大型妖怪通常还需要其最大气耗尽。模组在其附加反应期间支持共享的最大气击破条件,同时交由敌人自身行为决定结果。敌人的状态与 Boss 阶段限制仍然生效,因此并非每个敌人或每种情况都必定出现硬直或抓取。

配置

玩法:Mods/PerfectGuardNative/Nioh2PerfectGuard.ini
音频:Mods/PerfectGuardNative/Nioh2PerfectGuard.Sound.ini

两个文件均包含分组的中英文注释、范围与示例。以 UTF-8 保存,保留键名,避免重复键或在值后添加注释。玩法键属于 [PerfectGuard] 节;音频使用 [Audio] 和独立的 [Clip.name] 块。编辑参考 TXT 或重命名 INI 不会使其生效。

Enabled=1 — 主模组开关。
GuardDelayMs=0 — 新格挡输入后的延迟,0–1000 毫秒;支持小数。
WindowMs=250 — 该延迟后的活动持续时间,1–1000 毫秒;支持小数。
CancelRecovery=1 — 允许完美格挡后更早进行后续行动。

示例:GuardDelayMs=50 且 WindowMs=83.33 时,完美格挡在新格挡按下后 50–133.33 毫秒内生效(含边界)。更早的命中仍为普通格挡,不消耗 MOD 妖力、无奖励、无音效/视觉反馈,也不会消耗后续窗口。按住格挡不会刷新窗口。

计时使用从格挡输入开始的真实流逝时间,包括在攻击恢复期间缓冲的输入;它不从格挡动画开始。小数阈值在游戏处理格挡事件时检查,而非创建小数动画帧。这不会使模组与原生及时格挡装备效果同步。

KiRecoveryMode=Balanced — None:关闭;Balanced:玩家最大气乘以 KiRecoveryRatio;Fixed:FixedRecovery。
KiRecoveryRatio=1/6 — 可自定义比例,0–1;1/4 与 0.25 均表示 25%,而非 25 或 25%。
FixedRecovery=200 — 固定恢复量,0–1000000 内部气单位;允许小数。
KiDamageReductionPercent=100 — 格挡气消耗降低,0–100%,独立于恢复。
AnimaChange=0.4 — 每次完美格挡的妖力,-100 到 100,步长 0.1。正值=获取,零=无,负值=消耗。

负值 AnimaChange 必须为每次被格挡的命中支付。妖力不足则变为普通格挡,无 MOD 奖励、伤害、后续行动许可或反馈。原生免费格挡效果仍受支持。不提供魂核箱(Soul Core Box)透支;妖力变化仅在人类形态下生效,获取时保留原生过滤与上限。

HpRecoveryMode=None — None:关闭;Balanced:玩家最大生命值乘以 HpRecoveryRatio;Fixed:HpRecovery。
HpRecoveryRatio=1/6 — Balanced 治疗比例,0–1。
HpRecovery=0 — 固定基础治疗,整数 0–100000。

EnemyKiDamageMode=Balanced / EnemyKiDamageRatio=1/6 / EnemyKiDamage=200
EnemyMaxKiDamageMode=Balanced / EnemyMaxKiDamageRatio=1/12 / EnemyMaxKiDamage=100
EnemyHpDamageMode=None / EnemyHpDamageRatio=1/12 / EnemyHpDamage=0

上述每行包含三个独立的 INI 键:模式、比例与固定值。比例接受 0 到 1 的分数或小数;固定气/上限值接受 0–100000,含小数;固定生命值伤害接受整数 0–100000。仅所选模式使用的值会生效。生命值效果使用原生处理、限制与上限。

EveryGuardImpact=None — 基础受击反应:None、Light 或 Heavy。
EmptyKiImpact=Light — 耗尽反应覆盖:None、Light 或 Heavy。
VfxMode=0 — 0:完整效果;1:无环绕光环的简洁效果;3:关闭视觉。
VfxColor=#FFBF00 — 主视觉颜色,六位 #RRGGBB。
DiagnosticHotkey=1 — Ctrl+Shift+F10 诊断文本导出;修改此键需重启。

要保留玩家奖励但不伤害或硬直敌人,请将三个 Enemy
DamageMode 键全部设为 None,并将两个冲击键设为 None。完整默认值与更多注释见随附的 INI。

实时设置

玩法、声音与视觉设置均支持游玩中更新。保存相关 INI 或 WAV 并等待约一秒;无需热键。玩法更改后,请松开并再次按下格挡。已应用的奖励不会被撤销。仅更改声音或视觉设置不会重置格挡窗口。

编辑时请保留完整配置。无效的实时编辑会保留受影响组的上一有效设置。音频与玩法独立更新;糟糕的音频不会阻止有效的玩法更改。无效或不完整的 WAV 会拒绝整个替换音频池,保留上一可用池。首次启动时,不可用的音频可能保持静音而不禁用玩法。替换 DLL 本身及修改 DiagnosticHotkey 需要完全退出并重启游戏。

自定义视觉效果

使用 VfxMode=0 选择完整效果,VfxMode=1 选择无环绕光环的简洁版本,或 VfxMode=3 关闭视觉。两种可见模式均包含快速扩张与更早出现的水平光晕。效果不会触发技能或气脉(Ki Pulse)动画。禁用视觉后其他已配置效果仍保持激活。

VfxColor 使用 # 后跟恰好六位十六进制数字:RR 为红,GG 为绿,BB 为蓝。从取色器复制六位 HEX 值,必要时添加 #。不支持带 Alpha 的八位代码。

示例:
#FFBF00 — 默认饱和金色。
#FFB000 — 更暖的金色。
#FFA000 — 琥珀黄。
#D4A017 — 更深的金色。
#4080FF — 蓝色。
#FF4040 — 红色。

这会更改主色,同时保留层间变化、独立的白色高光与透明扭曲。较暗的代码会使彩色层变暗。纹理、辉光与环境会影响最终外观。#000000 不会隐藏所有层;请使用 VfxMode=3 关闭视觉。

模式与颜色可在游玩中更改。现有效果正常结束;下一次完美格挡使用新设置。无效的实时编辑会保留上一有效的视觉设置。若从 VFX 测试版本升级,请将其旧的 VfxEnabled、VfxEffectId、VfxExperiment 与 VfxNode 键替换为 VfxMode 与 VfxColor。

自定义音效

默认设置:一个原有的 parry.wav。额外音效为可选项,由玩家提供。将 WAV 放入 Mods/PerfectGuardNative/Sounds/ 并编辑 Nioh2PerfectGuard.Sound.ini。每段音频将其文件名、基础权重与音量保持在一起;节名称必须唯一,数字无需连续。

要使用名为 A.wav 和 B.wav 的两个文件,在将两个文件放入 Sounds 后,用以下完整示例替换音频 INI:

[Audio]
Enabled=1
Volume=1
SelectionMode=0
AllowImmediateRepeat=1
RepeatHistory=0
RepeatWeight=0.35
PitchRandomSemitones=0
VolumeRandomPercent=0

[Clip.1]
File=A.wav
Weight=3
VolumePercent=100

[Clip.2]
File=B.wav
Weight=1
VolumePercent=80

SelectionMode=0:加权随机。权重是相对值,而非百分比。在近期抑制关闭时,权重 3 与 1 表示约 75% 概率 A 与 25% 概率 B。B 的 VolumePercent=80 改变其振幅,而非概率。

SelectionMode=1:每轮洗牌中每段启用的音频各播放一次,然后重新洗牌。权重仅影响顺序,不影响每轮中音频出现的次数。这会在每次完美格挡时选择音效;它不会播放连续背景循环。

AllowImmediateRepeat=1 允许相邻重复,同时近期历史抑制会降低其概率。设为 0 则在存在替代项时禁止相邻重复,包括跨洗牌轮次。仅有两个音频时这会强制交替;单个音频仍正常重播。

RepeatHistory=0 自动回溯 min(启用的音频数减 1, 8) 次成功播放。设为 1–64 为手动窗口。零表示 AUTO,而非关闭抑制。
RepeatWeight=0.35 会将该历史中每次出现该音频的其基础权重乘以 0.35。若 A 出现一次而 B 未出现,权重 3 与 1 变为 1.05 与 1:该次抽取约为 51% 与 49%。抑制也会改变长期比例;它不保证维持 3:1 的比率。
设 RepeatWeight=1 可关闭抑制。零会尽量完全避开近期音频;若所有可用权重都变为零,该次抽取回退到基础权重,同时保留可行的相邻重复避免。

Weight 接受整数 0–100000。VolumePercent 接受整数 0–100。Weight=0 或音频音量为 0 会排除该音频。启用且未静音的池必须包含可用音频。
Volume 是主增益,0–1,独立于游戏音量。最终振幅为主增益乘以音频增益乘以随机衰减;Volume=0.8 与 VolumePercent=50 产生原始振幅的 40%,不一定是 40% 的感知响度。

PitchRandomSemitones=0 与 VolumeRandomPercent=0 默认关闭变化。单音效用户可尝试 0.3 与 5:音高在 ±0.3 半音内变化,而音量在其配置增益的 95% 到 100% 之间变化。音高也会略微改变播放速度/时长。支持范围为 0–2 半音与 0–20% 衰减;随机音量从不增强音频。

支持的文件:普通 WAV、16 位整数 PCM、44100 或 48000 Hz、单声道或立体声。最多 64 段音频,总计 32 MiB;每个文件最多 8 MiB 且 10 秒。无前导静音的短音频效果最佳。
不支持 MP3、OGG、FLAC、24 位/浮点 WAV 与 WAVE_FORMAT_EXTENSIBLE。请转换音频;重命名扩展名不会转换它。

File 仅接受 Sounds 内的文件名,包括 Unicode 名称与空格,例如 File=精防.wav。不要使用完整路径,也不要把同一文件名分配给多段音频。未知键、重复的节/键/文件以及缺失或不支持的启用文件会拒绝新的音频配置;请查看 Nioh2PerfectGuard.log 了解位置。

音频 INI 与 WAV 均支持实时更新;保存不会预览声音。新声音会中断上一个。密集事件可能合并,过期事件会被丢弃。只有成功开始的播放才会推进历史或洗牌轮次;被中断的音频计入,静音/失败/跳过的事件不计入。
仅音量编辑与替换同名 WAV 会保留轮次;列表、权重或选择规则的更改会开始新一轮,同时尽可能保留上一音频身份。若音频设备失败,请修复并保存音频设置以重试。

更多通用示例见压缩包中的 AUDIO_EXAMPLES_CN_EN.txt 与 Sounds/README_CN_EN.txt。

需求与兼容性

Windows Steam 版《仁王 2 完全版》,版本 1.28.8,需兼容的 DLL 加载器。其他版本不保证可用。

Shambuwu 的 Nioh 2 DLL Loader:
https://www.nexusmods.com/nioh2/mods/671

模组使用代码签名检测来定位兼容的可执行文件布局。所需签名与目标必须通过验证;这不保证与所有未来游戏更新兼容。更改格挡处理、气或行动系统的模组可能冲突。

完美格挡为事件驱动,无持续的气轮询循环。实时配置更新使用文件更改通知,代码签名扫描在启动期间运行。

问题反馈

在本模组的 Bugs 或 Posts 区,请包含你的武器、架势、敌人类型、相关设置以及所发生情况的简短描述。对于冲击或抓取问题,请说明是当前气还是最大气被耗尽,以及普通后续攻击是否产生不同结果。

相关时请包含 Nioh2PerfectGuard.log 与两个启用的 INI。游戏处于前台时按 Ctrl+Shift+F10 保存附加诊断文本。日志通常出现在 DLL 旁;若该文件夹不可写,则保存在 %LOCALAPPDATA%/Nioh2PerfectGuard 下。不会启动外部程序,也不会自动上传任何内容。请手动分享文本日志。

对于声音问题,请包含音频格式、采样率与声道数。对于视觉问题,请包含 Nioh2PerfectGuard.vfx.log、你的 VfxMode/VfxColor 值,以及尽可能的截图或短视频。正常游玩无需诊断快捷键。若未创建启动日志,请先检查 DLL 位置与加载器。

致谢

Shambuwu — Nioh 2 DLL Loader。