PhysFix - 布娃娃与物理系统全面革新及帧率修复( Fox 物理)

PhysFix - 布娃娃与物理系统全面革新及帧率修复( Fox 物理)

尸体在死亡瞬间会变得瘫软,并沿着中弹方向被击飞。Snake 有死亡布娃娃效果,物理以 120 Hz 运行,在任何帧率下都很顺滑。无需修改配置即可解锁帧率,头盔/武器物理更新更多,额外血液,还有更多内容;全部可在 IH 菜单中配置。

[b][size=6]PhysFix / Fox Physics[/size][/b]

[right][size=4][i]"我还能感觉到我的腿,我的手臂……甚至我的手指。"[/i] - Kaz,大概吧。[/size][/right]

[center][b][size=4]布娃娃与物理大修 + FPS 修复 + 更多内容。[/size][/b][/center]

[img]https://files.catbox.moe/aiyqim.gif[/img]

[size=5][b]概述[/b][/size]

[size=4]MGSV 只有在士兵完成预设死亡动画后才会让其进入布娃娃状态。FoxPhysics 去掉了这一限制。士兵在死亡瞬间就会变得瘫软,击杀他们的子弹会真正推动尸体。腿部中弹会打垮腿部,从背后爆头会让士兵向前折叠,而不是向后朝你仰倒,爆炸和载具会正确地将其抛飞。

击中肢体可以把武器从士兵手中打掉,头盔只会被爆头打落,并沿着子弹飞行的方向飞出。

物理以固定 120 Hz 运行,所有物理世界同步步进,因此布娃娃、布料和头发在任何帧率和慢动作下都能保持平滑。帧率也已解锁,无需编辑配置文件,高刷新率能正确同步。

全部使用游戏自带的物理引擎和布娃娃数据实现,没有替换任何内容,几乎所有选项都可以通过 Infinite Heaven 菜单实时更改。[/size]

[size=5][b]安装[/b][/size]

[size=4]需要 MGSV Steam 1.0.15.4(英文 exe)以及带有 IHHook 的 Infinite Heaven(在 r266 上测试)。用 SnakeBite 安装 .mgsv 即可完成,默认设置就是我使用的配置。[/size]

[line]

[size=5][b]功能说明[/b][/size]

[b]物理。[/b]固定步长 120 Hz(60 到 240),独立于帧率。世界、布娃娃、布料、头发等全部共享同一个时钟,因此在异常帧率、Reflex 或慢动作下都不会出现抖动。游戏中部分物理此前以低至 30 Hz 步进。现在所有内容都以完整速率运行,因此头巾、围巾和其他布料移动更平滑,穿透身体的情况更少。瘫软的布娃娃获得 1.5 倍的求解器迭代次数,布料和头发从 3 次提升到 6 次,因此拉伸的肢体和冻结的尸体更少。

[b]同时处理更多物理。[/b]模拟工作内存翻倍,因此当同一区域加载大量模拟模型时,布料和头发不会进入休眠,包括模拟密集的服装模组。lua 中还有一个可选的尸体上限。默认关闭,使用游戏自带的上限。设为 9 可保留 8 具尸体,但有些基地只填充 6 个槽位,因此在这些地方每次任务加载最多可能损失 3 具尸体。

[b]死亡与击倒。[/b]尸体在致命一击后 34 毫秒变得瘫软,并沿子弹方向被击飞,命中力度越大击飞越强。爆炸和载具会将其沿地面和向上抛飞,不会出现踢腿动作。爆炸和载具击倒会先瘫软,然后混合回动画。被击倒受伤的士兵会保持瘫软,直到你将其拾起、气球回收或补刀,补刀会让尸体留在原地。在他瘫软时再次击中他,他仍会被击打,之后仍可被拾起。受击反应会平滑转向,而不是猛地转向面对你,Snake 步行时也会获得正确的死亡布娃娃。

[b]装备与血液。[/b]手臂中弹可以将武器从士兵手中打掉(默认 50%,每颗子弹掷一次),每次命中的血液量从 x1 提升到 x5(默认 x2)。

[b]帧率。[/b]接管游戏的帧率限制器,提供从 30 到 240 的预设,可安全地在游戏中途切换,还有 vsync 开关和针对 CPU 瓶颈配置的作业线程修复。120 是最佳选择。游戏自身的帧时间上限大约就在这个水平,因此 144 及以上的测试较少。

[size=5][b]设置与 Bug 报告[/b][/size]

所有内容都在 IH 菜单的 [b]FoxPhysics[/b] 下,可实时更改。每个选项都有一个 FILE 设置,使用 [b]plugins\FoxPhysics.lua[/b],因此文件是你的默认值,菜单用于临时调整。尸体上限、模拟内存、步进、精细死亡调整和日志记录仅限 lua,需要重启(尸体上限从下次任务加载起生效)。

不同的游戏版本只会记录一条警告。它不会拒绝加载,每个钩子都会先检查游戏代码,如果不匹配则跳过自身。首次击杀后 plugins 中出现 FoxPhysics_RagdollParam.bin 是正常的。SnakeBite 卸载时会留下它,需要手动删除。

与 tpp-mod 兼容。如果同时使用两者时出现异常的 CPU 占用或卡顿,将 Job thread wait 设为 GAME。

如果出现问题,请将 mgsvtpp.exe 旁边的 FoxPhysics.log 发给我(上一次运行的日志为 FoxPhysics.prev.log),并说明发生了什么以及大概的时间。

[size=5][b]已知限制[/b][/size]
[list]
[]睡眠和镇静状态的士兵、踢击和起身使用游戏自带动画。[/]
[]Snake 的布娃娃仅在步行时生效。载具、马匹、步行机甲和直升机死亡为原版。[/]
[]被大力抛飞的尸体有时会穿入载具、箱子或其他尸体。地形和建筑没有问题。[/]
[]提高尸体上限在某些基地仍可能丢失尸体。[/]
[]在线和 FOB 未测试。[/]
[/list]
[size=5][b]致谢[/b][/size]
[list]
[]tinmantex 制作了 Infinite Heaven,它加载了本模组并运行菜单,还有 Caplag 等人对其的工作[/]
[]Yazed0071 制作了 MGSV_HookSample,即项目基础[/]
[]TsudaKageyu 制作了 MinHook[/]
[]blazer31 和 guyFox 提供了来自 Hidden Palace 的 2015 年开发版符号[/]
[]alicealys 制作了 tpp-mod,帮助设计了线程修复[/]
[]Obscurityislife 提供了宝贵的帮助和调试[/]
[]Red Jane 以及 Modders' Heaven Discord 中的其他人进行了测试[/]
[]Evan/SC louis_233 提出了模拟工作大小的想法,并使用模拟密集模组进行了测试[/]
[/list]
[size=5][b]版本历史[/b][/size]

[b]1.11[/b](当前)
[list]
[]瘫软状态下再次被击中的士兵仍可被拾起和气球回收。[/]
[]每颗子弹只掷一次武器掉落判定,而不是多次。[/]
[]尸体上限现在默认关闭(使用游戏自带上限)。如需更多尸体请在 lua 中提高。[/]
[]任务开始会清除残留的击倒和玩家状态,vsync 从启动起遵循你的设置,无效的设置值会被忽略。[/]
[/list]
[b]0.98[/b]
[list]
[]作业线程等待默认开启,并且不会影响 tpp-mod 的版本。[/]
[]模拟工作内存设置,默认 1 MB。[/]
[/list]
[spoiler][b]0.96[/b],自 0.68 以来的更改
[list]
[]每帧拆分为相等的物理步进,不再出现 144 fps 等帧率下的先冻结后跳跃。[/]
[]所有物理世界在同一时钟上同步步进。慢动作和 Reflex 平滑。[/]
[]布料和头发使用 6 次求解器迭代(游戏使用 3 次)。[/]
[]尸体保持移动更久,中途弹跳和斜坡冻结更少。[/]
[]尸体在 34 毫秒内瘫软(此前为 100),子弹击杀时在髋部向前折叠。[/]
[]从背后爆头会向前倒下,爆炸和载具会抛飞尸体而不是让其掉落。[/]
[]不再有尸体从受击动画中朝你弹回。[/]
[]尸体不再因第二次爆炸而冻结。[/]
[]受击反应平滑转向,受伤士兵保持瘫软,Snake 死亡布娃娃。[/]
[]8 具尸体而不是 5 具,血液 x1 到 x5。[/]
[]帧率预设 144、165 和 240,作业线程等待选项。[/]
[]修复了多线程物理世界跟踪的崩溃。移除了麻木手臂、肌肉张力、睡眠布娃娃和苏醒进入疼痛。[/]
[/list][/spoiler]