跳到正文

[Immersive Vehicle/IV/MTS] Better Collisions

作者:arginou57

为 Immersive Vehicles(MTS)添加实体墙壁碰撞。载具不再穿墙,而是会沿表面真实滑行。还能修复寻路问题和载具卡住的情况。仅需服务端安装、无需配置,装上即用。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

IV Better Collisions

  问题

  如果你用过 Immersive Vehicles (MTS),就知道这有多让人头疼:车辆会穿墙、卡在方块里,导致寻路失效。车辆一旦卡进墙里,往往只能切换到创造模式或使用命令才能把它弄出来。

  MTS 有自己的碰撞系统,但在某些边缘情况下可能会失效——例如高速行驶、狭窄角度,
   或特定方块形状。发生这种情况时,车辆就会直接穿过实心方块。

  解决方案

  IV Better Collisions 充当每刻更新后的安全保障。MTS 在每个游戏刻完成自身碰撞检测后,这个附加模组会检查每辆车的碰撞箱是否与世界中的实心方块重叠。
  如果检测到重叠,就会使用最小平移向量(MTV)算法将车辆推出去。

  效果是:车辆会沿墙滑行,而不是直接穿过去,就像真实车辆以一定角度撞上表面时那样。

  工作原理

  – 沿墙滑行:车辆以一定角度撞上墙壁时,只会取消朝向墙壁的运动分量。切向运动会保留,从而沿表面自然滑行。
  – 分轴修正:此附加模组会分别计算 X 轴和 Z 轴上的穿透深度,并沿重叠最小的轴将车辆推出去,从而产生逼真的偏转效果。
  – 兼容地面设备:Y 轴(垂直方向)的碰撞特意交由 MTS 的地面设备系统处理。此附加模组只处理水平方向的墙壁碰撞,不会干扰车轮、悬挂或地形跟随。
  – 安全阈值:修正距离上限为 0.9 个方块,以免将原本就合法地放置在地形内的车辆传送出去。新生成的车辆也会获得一段宽限时间(2 秒),以免影响 MTS 自身的放置逻辑。

  功能

  – 无需配置——将 jar 文件放入 mods 文件夹即可使用
  – 仅服务端运行——客户端无需安装(两端都安装也能正常工作)
  – 轻量——只处理具有活动方块碰撞箱的车辆
  – 非破坏性——不修改 MTS 代码;使用反射读取车辆状态
  – 兼容性好——适用于所有 MTS/IV 车辆包(汽车、卡车、地面上的飞机等)

  安装

  1. 需要 Forge 1.20.1 (47.x)
  2. 需要 Immersive Vehicles (MTS) 22.0.0+
  3. 将 IVBetterCollisions-1.0.0.jar 放入 mods/ 文件夹
  4. 完成。无需配置文件,也无需额外设置。

  技术细节

  此附加模组在 Forge 的 LevelTickEvent 的 END 阶段挂钩,此时所有实体(包括 MTS 车辆)都已完成每刻更新。针对每辆车,它会:

  1. 读取车辆的方块碰撞箱(MTS 中的红色调试框)
  2. 使用 Minecraft 的 VoxelShape 系统检查每个碰撞箱与周围实心方块的碰撞情况
  3. 计算水平轴上的 MTV(最小推出方向)
  4. 修正位置,并将受阻的运动分量归零
  5. 更新碰撞箱位置以保持一致

  所有 MTS 内部数据都通过缓存的反射机制访问——无需编译时依赖、无需 mixin,也无需访问转换器。

  常见问题

  问:这个模组兼容 [vehicle pack name] 吗?
  答:兼容。它适用于所有车辆包,因为它使用 MTS 自带的碰撞箱定义(即车辆 JSON 中标记为 BLOCK 碰撞类型的碰撞箱)。

  问:这会影响性能吗?
  答:影响极小。此附属模组只会遍历每个碰撞箱范围内的方块——通常
  每辆载具只需检查几个方块。反射字段会在启动时缓存。

  问:这能解决载具卡在现有墙壁里的问题吗?
  答:如果嵌入深度小于 0.9 个方块,就会将载具推出。为避免意外传送,深深陷入
   地形中的载具(例如因修改地图而导致的情况)不会受到影响。

  问:仅限服务端?
  答:碰撞逻辑在服务端运行。位置修正会通过 MTS 现有的橡皮筋回弹系统
 同步到客户端。两端都安装也没有问题。

  —

常见问题

[Immersive Vehicle/IV/MTS] Better Collisions 支持哪些 Minecraft 版本?

[Immersive Vehicle/IV/MTS] Better Collisions 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

[Immersive Vehicle/IV/MTS] Better Collisions 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

arginou57 的其他作品

查看全部 →