Apple Vision Pro 的设计展示了「空间计算」在多任务(Multitasking)交互场景中的潜力。它为用户提供了无尽的虚拟画布,允许用户在不同的应用场景之间快速、高效地切换。在空间计算环境中,多任务处理变得更加自然和直观,用户可以更好地专注于所需的任务,同时避免互相干扰。
但也正因为其无限空间、虚实结合的特性,虚拟界面可能阻碍用户对真实环境的感知,或者让用户迷失在虚实结合的交互中,为了解决这些问题,visionOS 提供了一系列交互设计规范,本文结合 SwiftUI 开发实践探讨 Vision Pro 中多任务交互的设计原则。
共享空间
窗口默认尺寸&位置
在 Vision Pro 中,2D 窗口、 3D 内容同时存在于一个共享空间(Shared Space)中,对于用户来说,它们拥有完全相同的优先级,打开的虚拟窗口会固定在空间中,不会随用户移动而移动:
和 macOS 窗口一样,应用可以通过 .defaultSize
自定义创建窗口的默认尺寸(2D 尺寸或空间容器的 3D 尺寸),不同的是无法控制窗口的初始位置。
窗口的初始布局由visionOS系统自动管理。在macOS的传统2D屏幕环境中,用户对窗口的弹出位置有一定的预期。但在无界的3D空间中,为了不让用户感到迷茫,新窗口应显示在用户的视线前方。用户打开窗口后,可以根据自己的需要将其移动到任何位置。
当用户同时打开多个窗口时,visionOS系统会通过在空间位置上进行微调,来防止窗口之间的相互遮挡。
窗口遮挡关系
在visionOS的多窗口任务环境中,同一时间只能有一个窗口在共享空间中保持活跃。用户在不同窗口间切换时,新获得焦点的窗口将变为活跃状态,而失去焦点的窗口则会降低透明度,并在视觉上向z轴方向后退,以示区分。对于新创建的窗口,它们会默认获得焦点。同时,visionOS会对失去焦点的窗口应用羽化效果,以明确显示其状态的变化。
多任务之间的切换
对于那些当前被遮挡或处于非激活状态的窗口,visionOS通过视觉遮挡来区分“当前任务”和“次要任务”。即使窗口被遮挡,其中正在进行的任务(如音乐播放)不会中断,也不应该被中断。当用户的视线转移到另一个窗口时,即表示他们想要切换注意力到那个窗口,用户可以无需等待,立即切换到新的任务场景。
视频中的白色光点代表了用户的注视焦点,它在visionOS中的作用类似于macOS中的鼠标光标。macOS曾经尝试过一种名为“焦点跟随鼠标”(Focus Follows Mouse)的窗口切换机制,即鼠标悬停(无需点击)在哪个窗口上,该窗口就会自动获得焦点,从而可以直接进行键盘操作。然而,这种交互方式最终被放弃(尽管用户仍然可以在系统设置中启用),主要原因是它违背了多任务窗口的交互状态应与视觉线索保持一致的原则,即便这种焦点跟随方式在操作上更为迅速。
并列窗口(无遮挡)
当两个窗口在空间位置上完全无遮挡的情况下,窗口本身在视觉线索上就不存在激活、未激活的区别,例如我们可以同时打开两个文本编辑窗口,此时选择不同的输入窗口,visionOS 会将虚拟键盘朝向当前的激活窗口,仍然做到了视觉线索与交互状态一致:
沉浸空间
visionOS 还有一种状态称为「沉浸空间」(Immersive Space), 即进入完全被虚拟环境所包围的场景,就是传统 VR 设备中我们所熟悉的状态,有人将其比喻成 visionOS 的「全屏」模式,我觉得是非常恰当的:
和 macOS 平台用户进入全屏模式一样,进入沉浸空间意味着用户不希望被外界信息所干扰,而更希望沉浸在当前的场景中(如观影、游戏、办公等),这时反而变成应该尽量避免多任务交互。当然也有例外,比如全屏状态下的「画中画」模式:
通过Vision Pro的多任务交互设计,我们能够明显地感受到苹果与传统VR设备以及许多所谓的AR设备在产品定位上的不同。Vision Pro对多任务交互的原生支持使其能够像MacBook和iPad Pro一样,成为多功能的通用设备,而不仅仅是用于游戏和观看电影的娱乐工具。在确保多窗口的视觉线索与交互状态保持一致的同时,visionOS充分利用了无限的空间画布,这正是“空间计算”的核心所在。
请添加微信 PMxiaowanzi
连续体验48款应用,通过后原路退回
报名后添加星球助理
PMTalk123
最近Kevin的原创
Kevin的产品设计电子刊
讲解了需求调研&用户研究、功能减法、组合、微创新、迭代框架的5个步骤。每周更新2-4节,是一套非常好用的产品设计方法论。
电子刊新书:累计20万字,8个章节,一个简易设计方法