跳到正文

Replay FPS

作者:Igrium

一个 Replay Mod 附属模组,可改进第一人称视角的处理方式。

收藏

介绍

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

Replay FPS

实际上应该叫“Replay FPV”,但我当时想到的是第一人称射击游戏

关于

Replay Mod 是 Minecraft: Java 版中一个流行的模组,允许你录制游戏过程以供后续回放。虽然 Replay Mod 非常强大,但在第一人称游戏画面方面存在严重不足。

默认情况下,当你从玩家的第一人称视角渲染回放时,画面会显得极其卡顿。这是因为 Minecraft 每秒只正确更新玩家位置 10 次,因此游戏必须对缺失的数据进行插值。

本附加模组旨在解决这个问题。

通过将客户端摄像机数据与主回放数据一起存储,可以更精细地捕捉本地客户端的移动,从而带来更好的第一人称回放体验。

使用方法

本附加模组除了 Replay Mod 的常规功能外,没有其他面向用户的用法。只需将其与 Replay Mod 一起安装并正常使用即可。但请注意,本附加模组提供的增强功能仅对录制回放的玩家生效,且仅当该玩家在录制时安装了本附加模组。

注意:在当前版本(0.2.0)中,必须安装 Mod Menu 才能访问配置菜单。

技术细节

客户端捕捉

第一人称移动通常看起来很差的原因是 Replay Mod 只记录服务器与客户端之间通信的游戏数据包。在大多数情况下,这与实时观察游戏的效果相同。然而,对于第一人称视角,服务器发送的数据不足以准确重建原始移动。事实上,这就是为什么在原版中旁观其他玩家时也会出现同样类型的卡顿。

解决方案是在数据包流之外存储一个额外的数据流。该数据流由一系列通道组成,每个通道以恒定的采样率保存一个连续值。这些通道在捕捉时由客户端直接写入,完全绕过服务器-客户端数据包系统。这不仅允许以比数据包更高的速率捕捉样本,还能捕捉到通常根本不会与服务器同步的数据。

为了以现实的方式存储这些庞大的数据,开发了一种自定义二进制格式。当使用本附加模组捕捉回放时,一个“客户端捕捉”(ccap)文件会与数据包数据一起被插入到回放存档中。该文件的规范可以在本仓库中找到。

数据包

然而,有些数据不适合存储在连续流中。离散形式的数据,例如快捷栏内容的变更,会作为自定义数据包注入到回放数据包流中。这些所谓的“假数据包”在录制时被序列化为 PacketByteBuf,但不是发送到服务器,而是本地保存到回放文件中。在回放期间,Replay Mod 会将这些假数据包作为普通数据包返回给 Minecraft,由自定义处理器解析并应用到世界中。

除了假数据包之外,还可以注册“数据包重定向器”来覆盖原版数据包在回放期间的应用方式。这使得许多在回放期间通常无法使用的数据包能够被解析并应用,以重建原始客户端体验。

构建

与大多数模组一样,要构建此项目,只需在根目录打开控制台并输入 ./gradlew build。不过,由于缺少名为“CraftFX”的依赖项,构建可能会失败。该依赖项属于 ccap_viewer 子项目,目前该子项目会与主项目一同构建。要解决此问题,请克隆并构建 CraftFX,然后将其发布到 Maven Local。

常见问题

Replay FPS 支持哪些 Minecraft 版本?

Replay FPS 支持 Minecraft Java 版 1.20.1–1.20.2,共 2 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

Replay FPS 怎么安装?

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

评论

登录后评论和评分

Igrium 的其他作品

查看全部 →