VR/AR产品中的选择和操作方式都有哪些？
原文标题：VR/AR空间交互设计之选择与操作设计范式关键词：空间交互设计   VR/AR   直接手势交互  非直接手势交互  设计指南在我写的《空间设计之手势交互》一文中，已经对基于手的直接与非直接交互展开过讨论,且对其交互设计原则进行过总结，但讨论的背景是基于现有特定硬件（苹果VisionPro和微软Hololens），内容通用性因受特定设备的影响还是有一定局限性的，如果您当前在基于这两款硬件开发相关项目，可推荐您重点阅读一下。空间中的选择和操作是将输入输出设备(如头显、键鼠及显示器等)捕获的用户输入信息(例如，用户手的运动轨迹、按下按钮的行为)映射到虚拟世界中产生一定的、所期待的操作(例如，选择或旋转虚拟对象)，所以它由硬件与软件所呈现的功能共同决定。对于采用其它硬件设备或基于PC的3D空间交互等，目前不同的硬件所支撑的交互方式有所不同。因此，本文基于3D空间交互设计原则出发，力图达到为多数产品（如VR游戏或虚拟仿真类项目、PC端3D虚拟仿真项目）的空间选择与操作设计提供意见和建议。（1）“因人因时因地”以制宜的思想提高用户操作效率和舒适度，减小由人类固有习性和硬件限制带来的影响，在VR/AR空间项目体验中非常重要。因此，在构思和规划VR/AR项目产品前，结合用户需求、硬件和产品形态选型（VR式/PC式或AR式），“因人、因时、因地”的明确采用适合自己项目的交互操作方式去设计产品，意义重大。（2）定位、操作与反馈的通用思路模型虽然，有不同的因素需要考量，但任何时候用户执行一项任务，通常都包括定位聚焦对象、选择操作确认、操作后的反馈这3个流程。选择何种定位聚焦方式、进行哪些操作、采用什么反馈，是空间交互设计细节里的通用思路模型之一。（3）阅读建议基于通用化认知的需要，本文仍然以直接交互和非直接交互两大类型展开说明。如果对“VE/RE”、“3DOF/6DOF”、“3D操作任务”、“GUI/2DUI/3DUI”等不熟悉的朋友，继续往下阅读前建议先阅读最后一章（第四章-名词释义及说明）。在3D空间中，模拟真实世界中人的交互方式，无疑是最自然友好的，但在虚拟环境中是不可能完全模拟所有现实中的操作范式的。直接交互：是指直接与空间对象进行触控，属于近距离可触达的交互，用户用手（映射到虚拟空间中对应着“虚拟手”或“虚拟工具”）靠近虚拟对象来操作它。例如，对空间中虚拟物体进行移动、缩放、旋转、轻触点击等。直接交互的方式下，用户必须将手靠近交互对象。特点是：近距离可触达。在虚拟空间中的直接交互分为基于手和基于手指2种模式。至于选择哪种模式，根据项目特点自行决定。020201基于手的交互基于手，是将用户的虚拟手（或虚拟工具）看作一个整体（单点触发器）来实现对空间虚拟物体（即目标对象）的抓握、移动等交互 (即，所有交互计算都基于对用户真实手的6-DOF位置的单次变换)。（1）简单虚拟手交互技术方式简单虚拟手交互是在VE（虚拟环境的简称）中直接将用户手部的运动映射到虚拟手的运动，通常(但不总是)采用一对一的映射来建立设备和VE坐标系统之间的直接对应关系。当然，在简单模式下用户的真实手也可以是手柄控制器，而虚拟手也可以是虚拟工具。换种更易于理解的说法就是，想要选择一个对象，用户只需将手或手持控制器（对应的是映射在虚拟空间中的虚拟手或虚拟工具）和要选择的虚拟空间中的对象接触，然后通过按下（控制器）按钮、语音命令或通过自然手势等触发机制来选中它，然后将对象附加到虚拟手上，就可以很容易地实现对虚拟对象平移和旋转，直到用户使用下一个触发机制释放它为止。基于手的空间交互非常直观，因为直接模拟了用户与日常物体的交互。这种交互方式的特点是：只有用户可触及范围内的对象才可以被选择和操作，即使使用缩放映射（如gogo技术），用户的触摸范围也是有限的。（2）缩放映射的GO-GO技术方式采用缩放映射有一种方式叫GO-GO技术，通俗的讲就是采用伸缩虚拟手臂的方式，按正常来讲用户只能够到一米范围内的物体，通过延长虚拟手臂的方式可以够到更远处的物体（对象）。它能让用户交互式地改变虚拟手臂的长度。当用户的真实手在对象附近时， Go-Go 技术就像简单虚拟手那样进行一对一映射，并且真实手的移动会对应虚拟手的移动。但是，当用户伸开手臂超过预定义的距离阈值时，映射变为非线性的，虚拟手臂会相应地 &#34;增长&#34;,从而允许用户访问和操作更远处的物体（对象）。Go-Go技术方式的交互允许用户将远处的物体搬到近处，可以将近处的物体拿到远处，同时可以对物体进行旋转、放缩等操作。但是，随着距离的增加，该方式将用户的手的小幅动作映射到虚拟手的大幅运动中，会使得在远距离交互情形下的精准度降低。就如同近距离下拿一只铅笔去扎蚂蚁洞和远距离下举一个20米的旗杆去捅马蜂窝，哪个更准确呢。另外，经验表明，Go-Go 技术通常不如光线投射方式有效,Go-Go 技术需要控制3-DOF, 而光线投射技术只需要控制2-DOF。关于光线投射方式下见“非直接交互-线性指向型的空间交互”有关内容。020202 基于手指的交互基于手指，通过将用户的虚拟手建模、为手指指节结构分层（多点触发器），并且直接被用户真实手指所控。一种方式是结合带有数据传感器的动捕手套，另一种更直接的方式就是通过头显中的手指动作捕捉模块直接对双手手指进行动作识别，这两种方式的区别就是精确度的问题。若操作者要用很精确的方式与物体进行交互和操作，则选择动捕手套更好。不过，基于手指的空间交互如果没有相应的触觉反馈或视觉反馈，用户体验会大打折扣，所以在用户基于手指的交互过程中要有一定的即时反馈（如触达物体对象后来自动捕手套的震动反馈，或者来自物体样式或体积的变化反馈，亦或是显示辅助边界框等的反馈）。此外，如果不允许虚拟手指穿透虚拟对象，那么虚拟手指可能会与真实手指位置不一致。020203直接交互范式延伸无论是作为单点交互的虚拟手方式还是作为多点交互的虚拟手指方式，面对虚拟空间中数量众多、密度较大的可交互对象们，在选择和操作上依然会有困难。这就需要我们在交互设计时要灵活变通，可以分别在虚拟手和被交互对象上做一些延伸性设计。下面就列举两个。（1）虚拟手延伸比如，可以将虚拟手灵活设计为一个可动态改变大小的“气泡”，动态地改变其半径尺寸，用以保证始终都可以触摸到最靠近“气泡”的目标（通过算法将目标对象包围）。此方法是基于手的一种变种。（2）目标对象侧延伸在用户欲选取某个目标时，他们只需将手指触碰到目标，目标会被一个球体包裹（请参考附图）。在近距离的范围内，该虚拟球体内包含了所有可供用户选择的标的。随着用户逐渐确定选择的目标，并将虚拟手部动作接近，一个更接近的小球会在外部球体内出现，从而进一步缩小目标对象的范围，直至最终选中一个目标。相较于传统的依赖手指的选择方法，通过在“目标对象侧”优化选取过程，使用户在各种选择任务中更加快速且高效地完成目标选取。当然，再延伸一点，可以将球体隐藏，通过目标样式或位姿的变化反馈形式，来体现。如当手指触碰到对象后，对象相对原来的位置向上跃起，一次可能有多个对象跃起，此时继续缩小范围精准地确定目标，逐步找到最终那个。非直接交互：远距离情形下对当前获得焦点的对象产生互动。获取焦点的方式有很多种，常见的是通过眼睛注视、手部射线来锁定空间中的某一个对象或组件来获取焦点。用户聚焦到某个对象或控件后，可以用一个或多个手指动作快速操作对象。特点是：远距离不可直接触达或必须通过位移后才可触达。在《VR/AR项目对接、需求分析及空间交互设计需考虑的几个方面（二）》中对眼动追踪和语音交互方式进行聚焦选择和操作确认的方式展开过分析，在本篇中就不再赘述，建议阅读一下。本篇中重点围绕另外几种常见的非直接交互方式展开叙述。020301线性指向型交互线性指向型的空间交互大家接触的较多，这是一种基于矢量的指向技术。如果换句说法你可能会更明白，它就是“射线”。当然，还有其变种“弯曲鱼竿线”。基于线性矢量的指向型空间交互，可以使用户通过一个矢量射线来确定他们想要选择和操作的对象。（1）射线可以通过一条从虚拟手为出发点发射的一条矢量射线去对空间物体对象进行选择。当然，如果想解放双手，也可以选择以头部位置作为出发点发射一条矢量射线来聚焦空间物体对象，只是这样会额外增加头颈部的负担，一般情况下不提倡，除非在特定情况下不得已而为之。（2）弯曲线在空间中的目标对象位置不易通过直接射线检测时，可考虑采用弯曲线形式。这种线很好理解，比如现在主流的瞬移，通过一条指向地面的弯曲线确定移动方向和目标位置，只不过它用作移动功能上了，当目标点容易遮挡时，弯曲线的好处就显而易见了。（3）目标视图转化通过将获取的远距离目标视图投射到眼前的方式，用户触摸和操作位于用户前面的虚拟图像平面上的2D 投影来选择和操作3D对象(参见图)。对象按比例缩放并被带入用户可触及的操作范围内，对于用户来说直观且易于操作。020302体积指向型交互体积指向与线性指向原理大致相同。唯一不同的是，体积指向将射线改为了由一点发射的圆锥体，具有范围聚焦特性。类似“手电筒”，被照射的空间物体对象均在可选范围内。它不需要使用光线精确或准确地指向虚拟对象，用圆锥选择体代替了虚拟射线，并且锥体的顶点位于输入设备上，在这个锥体范围内的对象被选中。因此，这种技术可以很容易地选择较小的对象，即使这些对象距离用户很远。当有多个对象在手电筒的范围内时，该如何处理选择呢。通常会使用两个基本的规则来消除这样的歧义。首先，如果当两个对象在选择体内时，那么更靠近选择锥体中心线的对象会被选中。其次， 如果两个对象和选择锥中心线之间的角度相同，那么更靠近设备的对象会被选中。手电筒技术并不需要将整个对象都放置在聚光范围内：即使对象被选择体的侧面触及(即，被光“照亮”),就可以将其视为候选对象。尽管这使得虚拟对象的选择变得非常容易，但是当需要选择小对象或紧密成组的对象时，这种易于选择的特性变成了一种缺点。在这些情况下(以及其他一些情况下),需要直接指定锥体张角大小。前面讲到我们在交互设计时要灵活变通，可以分别在虚拟手和被交互对象上做一些延伸性设计。同样道理，我们也可以将射线进行改进，在射线触达目标物体对象时，附加一个体积球来进行单个或多个对象的选择。020303间接代理型交互代理：一个可以替代空间物体或对象的东西。通过操控这个“代理”来达到操作目标物体对象的目的。这种方式一般应用在以下几种情景中：不引入漫游功能；空间物体对象被遮挡；自由度（DOF）受限（如PC端或CAVE系统中）。（1）间接界面代理交互采用额外的外部多点触控屏，操作主显示器上所看到的虚拟对象。Mark台即时这种方法的体现。可以触摸外部多点触摸屏来控制主显示器上的光标位移、视角转换或选择对象等。这种方式提高沿最佳轨迹移动虚拟对象的效率以及将其放置到目标位置的准确性，提供了更加舒适的观看体验。但比传统的直接触摸交互需要更多的时间来操作物体。（2）虚拟平台（界面）虚拟平台（或虚拟界面），在虚拟环境中可以使用一个虚拟界面作为间接控制。通过将远距离的交互界面放置在用户跟前的虚拟操作台上，或者直接将界面放置在眼前，而远距离处的界面依然存在。这种方式不需要再外接多点触控屏。在一些虚拟空间演示类项目中，用户可以近距离操作而不需要移动至界面跟前。提高了用户的舒适度，同时也动态权衡了空间操作效率和准确性。（3）微缩世界代理交互玩游戏的时候，“小地图”都不陌生。在3D空间中如果切换关卡或者查看整体动态情况，可以用2dUI或空间中的某些对象进行任务触发，当然也可以在“小地图”思路上下功夫，比如将虚拟世界缩小至用户可用上帝视角观看的程度，设置一些关卡切换或者物体拾取、移动等的交互。通过微缩版副本，将整个世界缩小并将其放置在用户可触及的范围内（甚至可以手持），相较于通过漫游移动找寻空间的触发物后再来执行目标任务来讲，也不失为一种很好的方式。（4）半实物代理交互：又称“巫术玩偶”如果虚拟空间中有我们需要操作的对象，但对象被遮挡、对象体积较大、或者距离较远等、或者想快速方便地进行虚拟对象的自由度变换（移动、旋转等），使用半实物代理的方式不失为一种方法，半实物类似“玩偶”，是一个临时的、缩微的手持对象副本，通过它可间接地操作虚拟对象。目前半实物与软件系统的结合，其应用也很普遍。这个“玩偶”可以是车辆方向盘、可以是整个车，也可以是任何你想让它成为的样子。（5）3D小部件代理交互：含虚拟球3D小部件，我们也不陌生。在三维建模软件操作时，旋转、移动、缩放对象时，其周围包裹的可操控的边界线即是一种小部件，这在2D桌面、3D空间中对物体操作都已很常见。例如在3D空间中利用虚拟手（虚拟工具）对物体对象进行操作，其边界现实操作框，我们赋予边框不同的功能，达到直观方便的操作目的。另外，3D小部件也可以不包裹对象，而是在3D空间中独立在其旁边或者在2D平面UI上，通过虚拟手（3D空间中）或鼠标（2D平面UI）来操控目标物体对象。最后，还可以像手游中的前、后、左、右移动组件一样，也可以在3D虚拟空间中模拟一个虚拟球，通过手来旋转虚拟球来改变远距离、难触达的对象样式或位姿属性等。类似小部件的代理交互设计，一千个产品经理有一千种想法，“因人、因时、因地以制宜”。说明1：前面所介绍的技术大多数只需要一只手就可以与3D UI进行交互。然而，有些技术需要双手才能进行交互。例如，微缩世界和巫术玩偶范式。说明2，基于当前无论是采用直接双手还是非直接的双手（双手柄控制器的非直接交互），应用已很普遍，只需要根据不同的操作目的赋予“双手”不同的操作功能即可。说明3，选择与操作的设计，并不仅仅局限于我们所掌握的，它是一个开放式的答卷，可以采用眼动追踪定位和聚焦、然后结合手势进行操作、或者结合语音命令交互，可以借助光线或体积球也可以利用3D小部件来辅助，所有的范式选择都依赖于你的产品需求、应用场景和情景，取决于选择何种硬件及其可以提供哪类交互范式，受限于是在PC端、VR端、还是AR端去设计。本文只是站在通用性、可参考，能够启发设计的角度去梳理的，至于具体如何创意性的进行空间交互的设计，还在于各位。但需要强调一点：无论怎么去设计，都有一定的交互设计原则，比如便捷性、可操作性、舒适性等，关于交互设计原则，我在《空间设计之手势交互》《VR/AR/MR-空间交互设计之“界面布局”》等文中都有所提及，不妨了解一下。设计一种适用于所有交互场景的单一、最佳的3D操作技术是极其困难，甚至是不可能的。就像现实世界中一样，没有任何工具可以完成所有可能的任务；同样，在3D用户界面（3DUI）中，也没有任何一种交互技术可以有效地适用于所有操作。这里借用《3D用户界面设计与评估》一书中的内容，提供一下设计时应该注意的点，仅供参考。  0301 交互选型与设备相匹配 选择操作技术时，考虑设备的属性是非常重要的。当使用6-DOF 设备时，允许集成操作控制的交互技术可能比分别控制维度的更加直观和有效。当需要较高操作精确度时，最好允许用户精确抓握并用手指来操作。  0302 选择3D操作方式前，先对任务进行分析 对于应用中大多数通用操作任务来说，操作技术的选择和设计需要提供优良的可用性和性能。反问一下：操作需要什么样的精确性呢、需要定位吗、选择有效吗、用户要距离多远才能操作虚拟对象?被操作的对象尺寸有多大等。  0303 多对象选择时、渐进式细化 面对空间中的多对象、密集分布、易遮挡对象或者跟踪抖动、手抖动、目标过小、目标距离远、目标移动等难以选择时，交互设计采用渐进式细化（层层筛选）的原则，逐渐减少可选对象集，直到只剩下一个目标。  0304 非直接型方式选择，直接交互型操作在选择任务中，射线投射、体积指向型等方式提供了很好的效果，但是它们在操作任务中的表现却不尽人意。对于操作应该使用直接交互（如虚拟手）更好。  0305 尽可能平衡自由度操作技术中不一定需要操作所有6个自由度。有些操作完全可以将3D选择形式简化为基于2D形式，从而提供非常有效的交互。另外，许多应用程序并不需要6-DOF 操作，减少自由度可以帮助用户更高效和更精确地进行交互。 0306 考虑技术设计和环境设计之间的权衡 在设计操作界面时可以使用两种策略。首先，可以调整交互技术，以便其在目标任务条件下产生最好的用户性能。其次，可以设计环境，以便可以更有效地使用现有的技术。如果应用程序允许灵活的环境设计，那么第二种方法将会非常有用。 0307 没有单一的最佳操作技术理想的3D操作技术还没有出现。每一种技术都有其优点和缺点。对于某个应用程序的最佳技术不一定适合另一个。任何技术的选择都是权衡的结果。处理这种权衡是优秀3DUI 设计的关键之一。0401 VEV E:VirtualEnvironment，简称VE;即计算机生成的、可交互的三维环境称为虚拟环境。同样的，R E(Real Environment) 可代表真实物理或现实环境。说明：3D空间中的操作，无论是在物理环境（RE）还是虚拟环境（VE）中，都是最基本的行为。0402 3D操作任务3D操作任务:虚拟3D 操作是指模拟人类在真实世界中与对象的系列操作，如定位聚焦、伸手抓取、移动、旋转、放大或缩小物体等。说明：另外，还有一些特定的操作任务，如利用半实物仿真模拟操作杆，控制虚拟环境中的对象行为或状态等。0403 GUI/2DUI/3DUIV E:VirtualEnvironment，简称VE;即计算机生成的、可交互的三维环境称为虚拟环境。同样的，R E(Real Environment) 可代表真实物理或现实环境。说明：VR中通俗点常用3DUI一词来表示；另外，AR中常用AUI(Augmented-reality UserInterface )来表示。0404 DOF/自由度自由度DOF：（DOF, degrees of freedom）,指的是物体在空间里面沿着XYZ方向的6种基本运动方式，按总体来分可视为两类：位移和旋转。说明：空间中的XYZ轴即可呈现6中基本运动方式：如沿X轴位移（前后）、Y轴位移（左右）、Z轴位移（上下）和X轴旋转（前后翻转roll）、Y轴旋转（左右摇摆pitch）、Z轴旋转（上下转动yaw）。DOF一词，无论是空间交互设计、还是硬件购买时的详情中均会发现其身影，网上对自由度的科普很多，但其中不乏一些错误的解释，亦或是不完全的解释。那么，什么是3DOF和6DOF呢？3DOF:沿三维直角坐标系三个坐标轴的平移自由度或围绕三维直角坐标系三个坐标轴的旋转自由度。注：用以表示一个空间三维物体相对于某一坐标系的平移关系或旋转关系。移动或旋转。强调：“或”。6DOF:沿三维直角坐标系三个坐标轴的平移自由度以及绕这三个坐标轴的旋转自由度。注：描述一个物体的位姿共需要六个自由度，移动及旋转。强调：“及”。参考：《3D用户界面设计与评估》原书第2版2019年3月第1版第1次印刷— — — —  END  — — — —