网站设计师熟悉自适应设计的概念,即构建可跨不同设备(例如手机、平板电脑和计算机)以及不同的屏幕分辨率和像素宽高比的网站。WebVR 给自适应设计理念带来了新挑战。
我们可以根据两个指标(沉浸程度和输入级别)对 WebVR 体验进行分类。这些级别按“自由度”(DOF) 进行区分。6 DOF 是指同时跟踪位置和方向,3 DOF 只跟踪方向,0 DOF 则不跟踪位置和方向。
沉浸程度
- 非 VR - 显示器或移动设备显示屏。
- 静态 VR - 具有 3 自由度跟踪的设备。
- 坐着 VR - 6 自由度跟踪,但区域和角度范围有限。
- Room Scale VR - 在房间大小的环境中实现 6 个自由度跟踪。
输入级别
- 0 自由度 - 唯一可用的输入是点击或点按。这种输入法与用户面对的方向相关联。有时我们将其称为凝视控制器。
- 3 DOF - 跟踪其方向的控制器可以像激光指针一样使用,以指定方向或位置。控制器的位置是根据用户的视角估计的。其中包括 Daydream 控制器。
- 6 DOF - 一种用于跟踪其位置和方向的控制器。这可用于在 VR 中仔细模拟手部的动作。
因此,您可以看到,单个应用可以支持从非 VR 移动显示的任何内容,只需单击即可输入,一直到具有两个完全跟踪的手持控制器的全房间规模体验。
WebVR 实验室
在 PlayCanvas WebVR 实验室中,我们实现了您的应用中可能需要的一些核心交互,并针对不同体验水平进行了扩展。
互动的工作原理
WebVR 实验室中互动工作原理的基本机制是射线交集。地板、房间以及任何可交互的对象由以下三个形状基元之一定义:
- 轴对齐的边界框(或 AABB)- 不旋转的框。
- 定向边界框 - 可旋转的框。
- 球体 - 以空间中某点为中心的半径范围。
为了确定某个动作是否可行,我们会向现实世界中发射一条光线,并测试这条光线是否与现实世界中物体的形状相交。根据光线的来源(摄像头或控制器)和光线的长度(近距离操作或指向某个距离),可能会发生不同类型的交互。
简单操作
首先,我们定义一些简单的操作,并说明如何将这些操作用于不同的控制器。
突出显示
突出显示某个位置或对象的方法有两种:看向某个位置或对象(使用凝视控制器)或指向它(使用手控制器)。这可以在没有按下按钮的情况下或仅在按下按钮时发生。
点击
点击某个位置或对象的具体方法如下:首先突出显示,然后按下或释放某个按钮。使用凝视控制器时,您只需看一个对象,然后按下按钮或屏幕即可。使用手持控制器时,方法是指向某个对象,然后点击某个按钮。
核心互动
通过使用突出显示和点击功能,我们在 WebVR 实验室中实现了一些核心互动。
快速移位
在构建供用户探索的虚拟环境时,该环境可能会比用户在不移动的情况下看到的小区域更大。例如,WebVR 实验室包含三个部分。房间分为主房间、夹层楼和高保真音乐播放器的侧厅。
在用户视口中四处移动通常会导致不适。在 WebVR 实验室中,我们允许用户突出显示某个位置,然后点击即可立即瞬间移动。用户的视角从不移动,因此尽管瞬间移动有点不自然的感觉,用户仍然可以在大片空间中移动,而不会感到不适。
对于手控制器,我们要求用户按住按钮来激活瞬移目标。这样可以让用户在环视时保持整洁有序的视觉体验。
移动用户的视角
有时绝对有必要移动视角。例如,使用静止的 VR 或“坐着”的 VR 时,可能会出现面朝墙壁而无法在现实世界中旋转的情况。因此我们允许用户使用控制器来旋转摄像头在 WebVR 实验室中,使用 Daydream 控制器上的左侧或右侧垫片可旋转摄像头。
为了防止以这种方式移动摄像头时感到不适,我们会在摄像头上应用受限视图来减少外围视觉量。这基于 Ubisoft 的工作,并且我们发现,仅将视图对准屏幕中心可以减轻不适感。
激活
启用 VR 体验相当于点击网页上的某个按钮。在 WebVR 实验室中,我们照搬这个概念并提供了一个可以激活的简单按钮。
对于 0 DOF 和 3 DOF 控制器,系统会突出显示并执行点击操作。对于 6 自由度控制器,我们可以升级体验,允许您通过直接检查手控制器是否在按钮内来“按下”按钮。
Grab
WebVR 实验室包含许多“可抓取”的内容。通过此行为,当对象被激活时,可以选中和移动该对象。根据您希望支持的输入级别,存在两种明显不同的行为。
对于 6 个自由度控制器,按下输入按钮会将可抓取物品连接到控制器。以便进行移动和定位,实现精细控制。松开该按钮将激活与该项合并或放下操作。
对于操控性较低的控制器,点击操作会选择相应内容并将其附加到用户的视口。通常使项目的一部分在屏幕的“下三分之一”内可见。第二次点击即可放置或合并商品。
Combine
组合是当您将某个项目与其他项目“使用”时发生的操作。这包括各种使用场景。在 WebVR 实验室中,我们使用它在高保真设备上播放记录。获取某个项时,可以将获取的项与另一个项合并。对于所有类型的控制器,当抓取另一个项目然后释放抓取时,都会突出显示目标项目,那么这两个项目就会合并。
掉落 / 恢复
当您点击并按住某个获取的项时,系统会丢弃某个项,而不会突出显示其他项。
在 WebVR 实验室中,我们不对任何项目使用物理模拟,从而保持较低的性能要求。也就是说,我们只需让物品保持在被掉落的位置上,而不是将物品掉落到地面上。丢弃某个项后,如果在特定时间范围内未激活该项,它会将自身“恢复”到其原始位置。借助此恢复功能,输入程度较低(0 DOF 或 3 DOF)的用户可以操作许多内容,并保留可用的工作区。旧项会自动清除。
借助 6 个自由度输入,您可以更轻松地将物品移开。通过延迟恢复操作,6DOF 用户可以沉浸在移动物品中,但仍有助于该区域的自清洁。
摘要
WebVR 实验室是 PlayCanvas 团队推出的一个实时项目。这意味着,我们在开发 WebVR 时,也会对它进行持续开发,随着我们对 WebVR 应用的构建所做的更多研究,我们会添加和更新相关体验。
它可从“魔术窗口”风格的移动体验扩展到桌面互动式游乐场。我们已经开始定义一组核心交互,供用户在自己的项目中使用。我们希望 WebVR 实验室为希望使用 WebVR 构建 3D 世界的所有人提供良好的学习体验。
如果您有 PlayCanvas 帐号,可以直接进入 WebVR 实验项目了解详情。