平滑阴影循环

平滑阴影循环

使阴影更新时的“步进”变得平滑(见视频)

Smooth Shadow Cycle - 适用于《合金装备5》的平滑太阳与阴影移动

概述

随着游戏内时钟的推移,太阳的光照方向会以小步进的方式移动,因此阴影每隔一段时间就会跳到新位置。此模组将这种移动平滑化,使阴影在整个昼夜循环中平滑地划过地面。

它不会改变白天或夜晚持续的时间。时钟不受影响,仅改变光照方向的绘制方式。

游戏仅在时钟更新时才重新计算太阳方向,而其平行光具有一种步进移动模式,该模式会保持光照不动,然后以跳跃的方式移动它。此模组在更新时关闭步进模式,并让光照方向在到达光源之前通过一个短的低通滤波器。此模组作为原生 Infinite Heaven 插件构建,挂钩了平行光更新和光照 SetDirection 函数。

已知限制

  • 测试版。仅支持游戏版本 1.0.15.4(英文版)。其他版本将无法挂钩,模组不会生效
  • 在地平线附近从太阳切换到月亮仍然可能是一个突然的变化,因为那是方向上的巨大跳跃

前置需求

  • Infinite Heaven
  • MGSV 版本 1.0.15.4
  • 使用 SnakeBite 安装

安装

使用 SnakeBite 安装

配置与移除

设置位于 plugins\SmoothTimeCycle.lua 中:

  • enable = true 或 false,开启或关闭模组(默认 true)
  • disableStepped = true 或 false,关闭游戏的步进光照移动(默认 true)
  • smoothSeconds = 光照追上所需的时间,以秒为单位。数值越高越慢且越平滑,0 表示关闭平滑(默认 1.5)
  • snapDegrees = 超过此角度数的变化将直接跳变而非平滑过渡(默认 10)

错误报告

请附上 SmoothTimeCycle.log 以及你的游戏版本。

致谢

  • Yazed0071 提供的 MGSV_HookSample 挂钩模板,本模组基于此构建
  • Infinite Heaven Discord 及社区
  • TsudaKageyu 开发的 MinHook,用于函数挂钩