Meta 最近在其 Quest 设备上的 Horizon OS 浏览器 v39 版本中,引入了一项重要的实验性功能:自动共位(Colocated)WebXR 支持。这意味着多个佩戴 VR 头显的用户现在可以在同一个物理空间中,通过网页浏览器建立共享的虚拟坐标系,从而实现协同交互。
此前,在 WebXR 中实现共位体验通常需要用户手动使用控制器或手势去“触碰”一个共享参考点来对齐坐标。而现在,这项新功能可以让设备在进入 WebXR 会话时自动创建一个共享的空间坐标系统,大大简化了开发流程和用户体验。
Meta 浏览器团队工程师 Rik Cabanier 分享了一段简短视频演示该功能的实际运行效果,并在 GitHub 上提供了示例代码供开发者参考。
这个演示项目使用了 PeerJS 来实现在不同头显之间的本地网络连接。你也可以亲自在自己的 Quest 设备上访问 sharedshooter.arvr.social 进行测试。
以下是 Cabanier 从开发者角度对这一“共享空间(Shared Spaces)”功能的详细说明:
共享空间与房间大小绑定
每个共享空间的范围受限于房间的大小。距离较远的头显将不会加入当前空间,但如果它们靠近后,就有可能自动加入该空间。
站点隔离原则
共享空间只对特定网站可见。例如,bar.com/a.html
和 bar.com/b.html
虽然属于同一域名,但会被视为两个不同的页面,因此各自获得独立的共享空间和唯一标识符(UUID)。
初始化过程可能有延迟
当 WebXR 会话启动时,可能需要几秒钟时间才能正确识别并加入对应的共享空间。在这期间,浏览器会返回一个默认的共享空间。一旦正确的空间被识别,就会触发一个“reset”事件,并建立新的坐标系统和 UUID。如果当前设备是第一个进入沉浸式模式的,则不会触发 reset 事件。
参与者可以自由进出
用户可以随时加入或退出共享空间。当重新启动 WebXR 会话时,他们仍能重新建立相同的共享坐标系统。(设计上规定:第一个创建共享空间的设备将成为整个共享坐标的原点。)
退出 WebXR 会丢失共享空间
当某个参与者退出 WebXR 会话后,它将失去对该共享空间的访问权限。再次进入时,需要重新建立共享空间。
最后一个离开者决定空间是否保留
所有参与者都可以自由地加入或离开共享空间,但一旦最后一个参与者离开,该共享空间将被销毁。未来可能会支持恢复功能,但目前还在收集开发者反馈以确定合适的 API 设计。
需要注意的是,目前这项功能仅支持 Meta 的 Quest 系列头显,因为它底层依赖的是 Meta 自有的 Shared Spatial Anchors(共享空间锚点)技术,而目前还没有面向 OpenXR 的通用厂商中立扩展标准。
这种限制不仅存在于 WebXR 中,对于本地应用也同样适用。举例来说:
Apple Vision Pro 目前尚未支持共享锚点;
pico 则使用自己独立的一套共享锚点系统。
如果你希望在你的 Quest 浏览器中尝试这一功能,请按以下步骤操作:
在浏览器地址栏输入:chrome://flags
搜索关键词:“WebXR experiments”
将该选项设为“Enabled”
重启浏览器即可生效
这项功能的推出标志着 WebXR 在多用户协作体验方面迈出了重要一步。虽然目前还存在平台兼容性的限制,但它为未来的共享虚拟空间开发提供了宝贵的实践基础。
如果你是 WebXR 开发者,不妨前往官方提供的示例地址进行测试,探索如何利用“共享空间”打造更具沉浸感的多人在线体验。
VR52网成立于2015年,平台提供VR头显、AR眼镜、配件外设、厂商、测评、行业资讯、游戏与应用、展会活动等。