跳到主要内容

屏幕、区域与队列

区域

区域定义玩家能够看到、管理和同步屏幕状态的空间边界。创建区域需要 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 枚举或数据包字段。按闭合条带提交顶点:

  1. 上边沿弧线从左到右。
  2. 下边沿弧线从右到左返回。

顶点总数最多 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:设置投票阈值。

多人同步以服务器状态为准,但网络抖动、解码启动时间和后端差异仍可能产生短暂偏差。先确认客户端版本和后端正常,再使用同步功能。