屏幕、区域与队列
区域
区域定义玩家能够看到、管理和同步屏幕状态的空间边界。创建区域需要 videoplayer.action.create_area,删除区域需要 videoplayer.action.remove_area。Residence 存在时,领地所有者和 padd 仍会参与授权。
屏幕
屏幕保存顶点、UV、缩放和显示元数据。常用权限:
- 创建:
videoplayer.action.create_screen - 删除:
videoplayer.action.remove_screen - 更新:
videoplayer.action.update_screen - UV:
videoplayer.action.set_uv - 缩放:
videoplayer.action.set_scale - 元数据:
videoplayer.action.set_metadata
自由顶点与曲面约定
曲面屏继续使用现有 FLAT 类型,不新增 CURVED 枚举或数据包字段。按闭合条带提交顶点:
- 上边沿弧线从左到右。
- 下边沿弧线从右到左返回。
顶点总数最多 64,建议弧角小于 180 度。兼容客户端按弧长展开 UV、三角化并参与射线命中。
队列与播放
videoplayer.action.play 控制加入视频。队列按服务器状态持久化和广播;新玩家进入区域后取得当前状态,而不是自行猜测本地播放列表。
IdlePlay 使用 videoplayer.action.set_idle_play 管理。当正常队列为空时才进入空闲播放策略,恢复队列后按当前服务器状态切回。
同步和跳过
videoplayer.action.sync:主动同步播放进度。videoplayer.action.auto_sync:请求自动同步。videoplayer.action.seek:拖动进度;默认仅 OP。videoplayer.action.vote_skip:参与跳过投票。videoplayer.action.force_skip:强制跳过。videoplayer.action.set_skip_percent:设置投票阈值。
多人同步以服务器状态为准,但网络抖动、解码启动时间和后端差异仍可能产生短暂偏差。先确认客户端版本和后端正常,再使用同步功能。