跟风还是革新?苹果 visionOS 深度解析

爱心 01 写在前面

千呼万唤始出来,苹果的第一款头戴式设备 Vision Pro 终于在 WWDC2023 亮相。相比 Vision Pro 的硬件设计,笔者更为关注的,是苹果为其打造的新一代空间操作系统 visionOS。

40 年前,苹果通过 Apple Lisa 与 LisaOS 首次将图形用户界面带入个人电脑,鼠标、键盘、显示器的黄金组合从此走向世界。40 年后的今天,Vision Pro 与 visionOS 是否能再现从命令行到键鼠的人机交互革新?本文归纳了 WWDC2023 中有关 visionOS 的演讲,相信各位家友可从本文了解到一些新东西。

WWDC23 Lecture

在谈操作系统前,我们必须对 Vision Pro 的工作原理有基本认识。苹果目前仍对 Vision Pro 的技术规格保密,且世界范围内只有少数几位身在 Apple Park 的嘉宾获得了 Vision Pro 的实机体验机会(如钟文泽、爱否科技等)。基于这些信源,我总结了 Vision Pro 的主要特点:

1. Vision Pro 本质是一个 VR 设备,用户无法用肉眼看到外界;

2. 通过遍布机身的十余枚镜头,Vision Pro 可将外界画面透传给用户;

3. 视频透传对于 Vision Pro 而言是用户体验的基础,而非锦上添花的玩物;

4. 换言之,Vision Pro 的产品定位就是 Hololens 这样的 AR 设备,只不过 Hololens 使用了透镜方案,而 Vision Pro 使用了透传方案。

主流 VR 设备的视频透传效果展示

对头显市场比较熟悉的家友应该会发现,Vision Pro 的工作原理和 Meta 的 Quest、字节跳动的 Pico 是类似的。但因为 Vision Pro 把视频透传做到了“以假乱真”的水平(所有体验者均有提到),它与 Quest、Pico 等 VR 一体机就有了本质区别:用户主要在现实世界中使用 visionOS,基于 visionOS 打造的 App 始终与现实世界有交互,用户在现实世界中操作手机、电脑无需摘下 Vision Pro。这种极致的真实感,离不开苹果强大的硬件功底:

1. Vision Pro 的像素数量高达 2300 万,换算为单眼分辨率已超过 4K 电视;

2. 其视场角大约为 110°,刷新率大约为 120Hz,图像延迟大约为 12ms;

3. 入眼亮度极高,媲美肉眼观看 iPhone 杜比视界视频的效果;

4. 拥有类似 macOS 的 HiDPI 功能,多个物理像素渲染一个逻辑像素,因此每个字符都清晰锐利。

Vision Pro 的硬件设计

综上,我们无需担心 Vision Pro 的显示效果,开发者天马行空的想法都能无损地传递给用户。因此,决定 Vision Pro 成败与否的关键就在于“实用性”。只有 visionOS 和基于 visionOS 设计的 App 足够好用、有用,Vision Pro 才有可能走进我们的生活。

爱心 02 visionOS 的交互方式:基于目光的读心术

当下主流的 VR 设备都借助手柄来操作软件,而 Vision Pro 无需外设,仅根据用户的眼动、手势实现人机交互。有人可能会挑刺:Quest、Pico 也有眼动追踪和手势识别啊,Vision Pro 有什么特别的?实则不然,因为 Vision Pro 完全脱离了手柄,眼动与手势的组合更甚于手柄。

所有体验过 Vision Pro 的博主,无论对产品本身的褒贬,都无一例外地感叹 visionOS 的眼动导航“像读心术一样”。

油管著名博主 @MKBHD

现有 VR 设备的眼动追踪与 visionOS 的区别就好比“摇杆”和“鼠标”的区别。以 Pico 4 Pro 为例,用户注视的地方会显示一个亮点,用户移动眼球时,亮点也随之移动,仿佛用户在用眼睛控制光标。

但是,用眼睛控制光标是非常低效的操作。我们用鼠标控制光标时,其实是把虚拟屏幕映射到实体桌面上,手到哪里,光标就到哪里,符合直觉。然而,人的眼球可没法平移,它只能以转动的方式将“旋转的轨迹”投射到屏幕上,好比用摇杆控制鼠标。

这不仅效率不如鼠标高,还非常累眼睛,因为人的眼球运动实际上是“跳动”,想控制光标画出一个圆形都非常困难。

Pico 4 Pro 眼动追踪 Demo

苹果的做法则不同:visionOS 只会将用户正在“看哪里”的信息作为软件交互的依据。在 GUI 层面,光标的概念被消除了。你看着哪个按钮,这个按钮就进入备选状态;你看着哪个窗口,这个窗口就进入活跃状态。

这套交互逻辑让 visionOS 的导航效率有了超越鼠标的可能:在传统电脑上,用户先看到一个元素,再将鼠标移过去与这个元素交互;在 visionOS 中,用户从看到这个元素的那刻起,他就已经能用手势与其交互。

visionOS 的眼动追踪

除了“看”,visionOS 也会判断用户是否在“凝视”某个控件。比如,当用户的目光停留在 App 的侧边栏一段时间,它就会进入展开视图,显示更多内容。

动图:侧边栏的弹出

这种基于眼动的导航模式精度如何?多位体验者均表示:即使是单个英文字母,用户也能仅凭“看着”就轻松选中它,并且 30 分钟的体验中几乎没有误触。

爱否科技彭总评价 Vision Pro

当用户用目光选中按钮后,visionOS 将进一步根据用户的手势判断应当触发何种事件。比如,当用户单手捏合拇指和食指时,按钮就会触发“点击”事件,而当用户保持捏合并移动手部时,按钮就会触发“拖动”事件。

动图:visionOS 的手势识别

相比用鼠标、手柄等外设来与软件交互,完全基于手势的交互有以下特点:

1. 直观:使用外设,用户首先要学习外设上每个按钮的功能是什么,而使用手势,“点击”是真的点一下,“拖动”是真的拖一下;

2. 省力:用户不用握持任何东西,甚至不用将手举起,只要自然地将手放在腿上,略微移动,就能被 visionOS 识别;

3. 高效:手势的多样性高于物理按键,用户不需要二级菜单就能触发多种操作。

动图:放大照片中正在注视的位置

尽管隔空操作远处的 App 是一件很酷的事,但毕竟 Vision Pro 主打的是“空间计算”,而以上操作只对二维平面有效,visionOS 难道就没有更“立体”一些的交互方式吗?答案是肯定的。

首先,visionOS 支持用户直接与虚拟物体交互,比如抓住一个模型,移动它的位置,改变它的大小。需要注意的是,此时用户不再是隔空操作这个模型,而是实实在在地把手放在模型附近。

动图:手与虚拟模型直接交互

其次,visionOS 也支持用户直接与距离自己很近的 App 窗口交互。你可以像操作平板电脑似的“触控”这个虚拟窗口,比如滑动页面、点击按钮等。

动图:手与虚拟窗口直接交互

这还没完。除了一些基本手势外,visionOS 也支持开发者在自己的 App 中自定义手势。比如,流媒体应用可以通过“打碟”的手势控制音乐的进度条,而经典的“水果忍者”游戏则能让用户化手为刀。

其他手势展示

我还想专门提一下 visionOS 的虚拟键盘。我们理想中的 AR 键盘应当是在真实键盘的输入体验的基础上,任意更换键盘的外观、键程。但是,visionOS 并未带给我们惊喜,它仍然只能识别用户双手的食指,以“一指禅”的形式输入文字。

动图:visionOS 的打字体验

不过,我从虚拟键盘的交互细节中,看到了 visionOS 为了弥补虚拟物体没有触感的补偿措施:强化视觉反馈。用户的食指接近键帽时,按键就会被点亮;而当用户按下键帽时,它有明显的下沉动画。

动图: 虚拟键盘与手指的交互反馈

综上,visionOS 基于眼动、手势的人机交互模式确实可能比键鼠、触控更直观。但我必须指出,即使是 40 年前的命令行,如今依然在 Linux 等系统中广受欢迎。优秀的人机交互不会互相取代,而是共存互补。你想在 visionOS 中使用键鼠?没问题,蓝牙配对即可。

爱心 03 visionOS 的设计语言:融入现实世界

得益于 Vision Pro 的透传方案,visionOS 实现了 Hololens 等透镜设备无法企及的视觉效果:虚拟的毛玻璃材质。与 Win11、macOS 中用于美化界面的“实时模糊”不同,visionOS 的“毛玻璃”是字面意思地在模拟真实玻璃的光线折射效果,并且,它还是所有 App 的唯一指定背景。

visionOS 毛玻璃材质展示

毛玻璃效果在美学方面的优势不必多说,在 AR 场景中,它的实用性远在美观度之上。将虚拟窗口投射在真实空间中的首要问题就是,如果房间的光照无法作用于虚拟物体,虚拟与现实的割裂感就会很强。

以 Hololens 为例,App 窗口全是大色块、大矩形,你不能说它没法用,但就是看着生硬。尤其是房间较暗时,过亮的白色背景愈加让 App 不自然。

Hololens 实机显示画面

采用毛玻璃材质的 App 则不太一样。首先,用户能隐约看到 App 后面的景物,这让 App UI 的沉浸感大幅提升。其次,白天房间光照强时,毛玻璃明度会提高,类似白底;晚上房间光照弱时,毛玻璃明度降低,类似黑底。因此,visionOS 无需 iOS 上的深色模式,仅根据环境光照就能始终保持极高的 UI 可读性。

动图:环境光照对 UI 的影响

不仅如此,毛玻璃材质还能借由虚拟物体间的光照关系,反应出它们的相对空间位置。比如 App 底部的控制栏,它在空间上位于 App 主窗口的前方,因此它的毛玻璃背景除了有来自真实环境的光照,还有来自后方虚拟内容的光照。

动图:虚拟光照对 UI 的影响

全局毛玻璃背景虽然炫酷,但由于背景颜色不断改变,用户会不会看不清里面的文字?不用担心,visionOS 渲染毛玻璃材质的同时,也会改变文字的显示方式。开发者不需要自行设定文字的颜色、大小,只需用 Primary、Secondary 等层级来定义文字,它们就会自动变成特定光照下最清晰的样式。

动图:文字渲染前后对比

为了保持软件 UI 不论距离用户多远都可交互,visionOS 会自动缩放窗口来适应用户与窗口的空间位置。换言之,近大远小带来的可读性降低问题在 visionOS 中不会出现,用户可以自由地将多个窗口排布在远近不一的位置上而不影响使用。

动图:窗口智能缩放的原理

考虑到用户的房间不太可能空无一物,如果软件窗口在移动过程中被现实物体遮挡,这该怎么办?为了不破坏虚拟与现实间的空间关系,移动中的窗口确实会呈现被物体遮挡的效果,但当窗口内容处于活跃状态时,虚拟物体会覆盖在现实物体之上,遮挡不再发生。

动图:visionOS 对现实遮挡的处理

此外,软件 UI 只有正对用户时,才能保证其中的内容不发生畸变。当多个窗口时被同时打开时,窗口的朝向会自动以用户为中心,保证 UI 的显示质量。换言之,用户左右平移窗口时,窗口的倾角也会自动改变。

动图:visionOS 自动调节窗口朝向

当然,为了体现软件 UI 与真实世界的融合,用户也可以把窗口放在空间中的特定位置。它不会随着用户的移动而离开原来的位置,但当用户按下 Vision Pro 的数码表冠后,窗口会回到用户的视线之内。

动图:visionOS 窗口锚定效果

当软件 UI 可以超越物理世界的界限时,用户自然而然会产生改变窗口大小的想法。当用户不断放大窗口时,软件应当显示更多内容给用户,否则只是单纯的放大图片而已。visionOS 的软件内容可根据窗口尺寸自动响应。

动图:visionOS 的自适应 App 框架

综上,visionOS 的设计语言充分利用了视频透传的技术优势与 AR 相较传统计算平台的亮点,致力于将软件 UI 与现实世界融为一体。在此基础上,苹果也考虑到了软件的易用性,通过 visionOS 的自适应调节让 UI 在天马行空与实际可用间维持平衡。visionOS 作为初代系统就有如此详尽的用户体验的考量,我不得不佩服苹果的厚积薄发。

爱心 04 visionOS 的软件构建:源自窗口,突破窗口

聊完 visionOS 的基本交互与基本设计,紧接而来的问题是:这些 App 是以何种形式存在于空间中的?是传统的视窗系统,还是更科幻的摆件系统?如果你仔细观察 visionOS App 的下方,不难发现一点、一杠的按钮组合:

1. 看着横杠,App 进入可移动状态,用户用手势将它们在空间中排布;

2. 看着小点,App 进入准备关闭状态,用户用手势确认后触发关闭指令;

3. 看着 App 边缘,横线从底部移动至角落,App 进入可调节大小的状态;

动图:visionOS 的窗口控件

这套系统级控件与开启“台前调度”功能的 iPadOS 非常相似,可算作简化版的窗口系统。这是一个简明易懂的控制 App 的方案,但对于 visionOS 这类空间操作系统而言,把 App 限制在一个个悬空的“平板”里,是自废武功的行为。无论是 Hololens 还是 Quest,给用户呈现 3D 内容都是重中之重。

显然,苹果不会连这个道理都想不明白。visionOS 并非只有“平面窗口”这一种软件呈现形式,它还提供了“体积窗口”、“沉浸窗口”两种模式。App 可同时创建这三种类型的窗口,组合出一套空间交互体系。

visionOS 的三种窗口

为了让大家更快理解三种窗口间的关系,我将用 WWDC23 提供的“天文” App 加以说明。这个 App 允许查看太阳系各大天体的信息,并展示相应模型。

1. 软件的主界面使用了“平面窗口”。它与 iPad App 的构建类似,大部分用户上手后就能使用;

平面窗口

2. 软件的二级页面使用了“体积窗口”。此时,内容的重点是地球的模型,而非文字和按钮;

体积窗口

3. 软件的二级页面还使用了“沉浸窗口”。此时,现实世界完全被虚拟世界覆盖,即 visionOS 进入了 VR 模式。

沉浸窗口

4. 这三种窗口可以同时存在。比如在“沉浸窗口”中,软件可以创建“平面窗口”,让用户能舒适地阅读文字介绍。

不同窗口的组合

至此,visionOS 呈现 3D 内容的逻辑已经浮出水面:visionOS App 不会“为了 3D 而 3D”,比如把所有软件按钮都做成拟物化的模型;相反,visionOS App 仍然以用户熟悉的 2D 界面为主,通过在恰当的时机引入 3D 效果,来增强用户体验。

比如,使用 visionOS 版的 Keynote 时,播放幻灯片不仅是让窗口最大化,Keynote 还会启动一个“沉浸窗口”,让用户置身于乔布斯剧院中。这是用 3D 场景营造临场感的例子。

visionOS Keynote 界面展示

再比如,使用 visionOS 版的 Apple TV 时,播放视频不仅是隐去多余的按钮,Apple TV 会创建一个观影空间,这个“沉浸窗口”的四壁会被“平面窗口”中播放的影片照亮。这是用 3D 场景营造氛围感的例子。

visionOS Apple TV 界面展示

考虑到 visionOS 是一个多窗口的操作系统,不同 App 创造的窗口可以同时显示在一个空间中,这让用户的使用场景充满无限可能。

爱心 05 小结

以上便是我归纳的 WWDC23 头两天中与 visionOS 相关的内容。希望大家能从本文了解到一些新的东西,并认识到苹果所谓“空间计算”的实质。

从前,人机交互与 App 构建不用考虑空间信息,因为所有元素都在一个平面中。现在,我们通过 AR、VR 赋予软件空间信息,但真正受益的其实只有 3D 游戏,那些在 2D 状态已经很好用的软件,空间信息变成了累赘,而非特性。

visionOS 的多任务视图

visionOS 试图解决的问题,就是如何让用户熟悉的 2D 软件以 3D 形式呈现。途径有三:

1. 毛玻璃材质与自适应缩放,让传统 App 稍加改变就能与现实世界发生交互,打造极致的多窗口体验;

2. 虚拟世界与软件使用场景相结合,让传统 App 在最合适的环境中运行,打造极致的工作、娱乐氛围;

3. 全新的 App 构建规范,让针对 visionOS 开发的软件能充分调用 Vision Pro 的机能,实现传统 App 无法实现的交互,比如预览 3D 模型。

欢迎各位家友在评论区留言讨论!我还会持续关注 WWDC23 余下几天的内容。