介绍
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 的其他作品
查看全部 →
Replay FPS
Replay Mod 的附属模组,改进第一人称视角的处理方式。
Loading Window
A dead-simple mod that adds an AWT loading window before Minecraft's main window opens.
Igrium’s Replay Exporter
An addon to the Replay Mod that allows it to export into Blender and other 3D software.
VideoLib
A library enabling video playback in Minecraft
评论
登录后评论和评分