XMLIVE 是一款为 Paper 1.21+ 服务器设计的专业第三人称运镜插件。它允许指定玩家(录制者)以平滑、无延迟的方式跟随其他玩家(目标),并提供多种镜头模式与丰富的自定义参数,是制作游戏直播、视频录制、服务器宣传片的理想工具。
- 双镜头模式:
- 速度模式 (
velocity):利用setVelocity驱动录制者平滑移动,无需额外依赖。 - 数据包模式 (
packet):基于 PacketEvents 直接控制客户端镜头,实现零延迟、无惯性的专业级运镜(需安装 PacketEvents 前置)。
- 速度模式 (
- 实时无延迟跟随:目标移动、传送、乘坐载具(矿车、船等)时镜头均能实时响应。
- 个人化镜头参数:每位录制者可独立设置镜头距离 (
/xl camera distance) 和俯角 (/xl camera pitch)。 - 自动模式:可设定时间间隔,自动随机切换跟随目标,实现无人值守的直播运镜。
- 录制者状态保护:自动将录制者设为旁观模式、隐身、无敌,并禁止打开背包、丢弃物品等干扰操作。
- 视觉反馈:目标玩家发光高亮,ActionBar 实时显示当前状态,可选粒子效果指示镜头位置。
- 权限与认证:支持基于令牌的录制者登录验证,管理员命令独立权限控制。
- 服务端:Paper 1.21 或更高版本
- Java:21 或更高版本
- 前置插件(可选):
- PacketEvents (仅当需要使用“数据包模式”时必须安装)
- 从 Releases 页面下载最新版
XMLIVE-x.x.x.jar。 - 将 JAR 文件放入服务器的
plugins/文件夹。 - 如需使用数据包模式,请一并下载
packetevents-spigot-2.11.2.jar并放入plugins/文件夹。 - 启动服务器,插件将自动生成配置文件
plugins/XMLIVE/config.yml。 - 关闭服务器(或执行
/xl reload),编辑config.yml添加授权玩家及其令牌。 - 重新启动服务器(或重载插件),完成部署。
# 授权设置
auth:
enabled: true
players:
- "cameraman1:your-secret-token-123" # 格式:玩家名:专属令牌
- "cameraman2:another-secret-token-456"
# 镜头默认参数(可被个人设置覆盖)
camera:
distance: 4.0 # 镜头与目标的距离(格)
pitch: 220.0 # 镜头俯角(度),220 度可实现背后上方视角
smooth-factor: 0.3 # 数据包模式下的位置平滑系数(0~1,越小越平滑)
rotation-smooth-factor: 0.5 # 数据包模式下的视角旋转平滑系数
# 自动模式
auto:
default-interval: 30 # 默认切换间隔(秒)
# 更新设置
update:
frequency: 1 # 每游戏刻更新次数(1=每秒20次,最流畅)
# 速度跟随模式参数
velocity:
strength: 0.9 # 速度力度系数(0.6~1.2,越高跟随越紧致)
# 视觉反馈
visual:
glowing: true # 目标玩家发光
particles: false # 镜头位置粒子效果| 命令 | 说明 |
|---|---|
/xl login <令牌> |
使用配置文件中预设的令牌登录系统 |
/xl camera distance <数值> |
设置个人镜头距离 |
/xl camera pitch <数值> |
设置个人镜头俯角 |
/xl toggle |
切换录制状态(旁观/隐身/无敌) |
/xl mode <velocity|packet> |
切换镜头跟随模式 |
| 命令 | 说明 |
|---|---|
/xl bind <录制者> <目标> |
手动将录制者绑定到指定目标 |
/xl unbind <录制者> |
解除录制者的绑定 |
/xl auto <录制者> [间隔秒] |
为录制者开启自动切换目标模式 |
/xl reset |
重置所有自动模式计时器,立即切换目标 |
/xl list |
查看当前所有录制者状态 |
/xl reload |
重载配置文件 |
permissions:
xmlive.use:
description: 允许登录并使用个人镜头调整和状态切换
default: true # 所有玩家默认拥有
xmlive.admin:
description: 管理员命令权限
default: op # 仅 OP 默认拥有- 管理员配置:在
config.yml中添加录制者cameraman1:abc123。 - 录制者登录:录制者
cameraman1进入游戏,输入/xl login abc123。 - 管理员绑定:管理员输入
/xl bind cameraman1 Steve让录制者跟随Steve。 - 录制者调整:
cameraman1输入/xl toggle进入录制状态,输入/xl mode packet切换到极致平滑的数据包模式,并用/xl camera distance 5拉远镜头。 - 自动切换:管理员输入
/xl auto cameraman1 60,录制者将每隔 60 秒自动换一个在线玩家跟随。
Q:为什么数据包模式提示不可用?
A:请确保服务器已安装 packetevents-spigot-2.11.2.jar 且名称完全匹配(全小写 packetevents)。插件会自动回退到速度模式以保证可用性。
Q:镜头移动时感觉有“弹簧感”或延迟?
A:尝试将 config.yml 中的 update.frequency 设为 1,并将 velocity.strength 调高至 1.0 或 1.2。对于数据包模式,可将 smooth-factor 调高(如 0.8)以降低延迟感。
Q:录制者无法打开背包怎么办?
A:这是插件对录制者的主动保护,防止录制画面被 GUI 遮挡。如需临时打开,请先使用 /xl toggle 退出录制状态。
Q:支持跨世界跟随吗?
A:完全支持。当目标玩家切换世界时,录制者会瞬间传送至目标所在世界的对应镜头位置。
- 构建工具:Gradle 9.x (Kotlin DSL)
- API:Paper API 1.21.x
- 可选依赖:PacketEvents 2.11.2 (Spigot Module)
- 自动构建:GitHub Actions 自动编译并上传 JAR 产物
如需自行构建,请执行:
git clone https://github.com/XMJjs/XMLive.git
cd XMLive
./gradlew build构建产物位于 build/libs/XMLIVE-1.0.0.jar。
本项目基于 GPL-3.0 License 开源,欢迎贡献代码或提出建议。
Enjoy your professional live streaming with XMLIVE!