掌桥专利:专业的专利平台
掌桥专利
首页

人工现实环境中的手势移动

文献发布时间:2024-04-18 20:00:50


人工现实环境中的手势移动

相关申请的交叉引用

本申请要求于2022年8月11日提交的、第17/819,073号美国非临时申请专利的优先权的权益,该申请通过引用全部结合到本文中。

技术领域

本公开针对独立于控制器且基于手势的移动系统,该移动系统用于控制人工现实环境中的角色的位置和方位。

背景技术

人工现实(artificial reality,XR)环境可以由各种系统提供,这些系统例如为投影仪、头戴式显示器、“洞穴式(cave)”系统等。用户可以例如通过以下方式与人工现实环境交互:选择对象、移动、转动、调整大小、启动控件、改变颜色或皮肤、定义虚拟对象之间的交互、设置作用于虚拟对象的虚拟作用力、或几乎任何其他可想象的动作。

在XR环境中移动角色和重定向角色通常通过以下方式来实现:追踪用户在真实世界空间中的物理移动、或使用物理输入设备(如带有控制杆的手持控制器)。然而,这些角色移动的方法可能是不可行且不切实际的。例如,用户可能无法在真实世界空间中自由移动(例如,由于缺乏足够的空间、由于受伤或残疾等)。此外,一些XR系统(例如,虚拟现实(virtual reality,VR)头戴式设备(headset))可以在没有外部控制器的情况下操作,使得一些用户可能没有控制器来实现在XR环境中原地移动。此外,一些游戏或应用程序可能会被设计为通过手势来接收用户输入,而这些手势在握住控制器时很难做出。

发明内容

本公开的各方面针对用于控制XR环境中的角色的位置和方位的、基于手势的移动系统。XR系统的虚拟移动系统可以使用计算机视觉、惯性测量单元(inertial measurementunit,IMU)数据、和/或用于控制手势(例如,食指捏合手势)的其他合适方式来监测用户的单手或双手。虚拟移动系统可以响应于识别到该控制手势,将输入情境从一般输入模式切换到移动模式,在移动模式期间,XR系统将后续手势解释为与移动相关(即,不用于与XR环境中的其他菜单、对象等进行交互)。然后,虚拟移动系统追踪用户的手相对于开始位置(控制手势在该开始位置处执行)的移动,以确定要执行的移动动作(如果有的话)。在一些实施例中,虚拟移动系统可以渲染具有多个空间分开的区域的用户界面,每个区域表示特定的移动动作,例如在特定方向上移动、转向、下蹲、跳跃、或激活传送模式。例如,如果用户的手在用于使角色向左转90度的区域上做出释放手势(例如,释放食指捏合),则该虚拟移动系统相应地在XR环境中对角色进行重定向。

附图说明

图1为示出了多个设备的概况的框图,本技术的一些实施方式可在该多个设备上运行。

图2A为示出了虚拟现实头戴式设备的装配图,该虚拟现实头戴式设备可在本技术的一些实施方式中使用。

图2B为示出了混合现实头戴式设备的装配图,该混合现实头戴式设备可在本技术的一些实施方式中使用。

图2C为示出了多个控制器的装配图,在一些实施方式中,用户可以用单手或双手握住该多个控制器以与人工现实环境交互。

图3为示出了本技术的一些实施方式可在其中运行的环境的概况的框图。

图4为示出了多个部件的框图,在一些实施方式中,该多个部件可以在采用所公开技术的系统中使用。

图5A为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的移动的过程的流程图。

图5B为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的传送(teleportation)的过程的流程图。

图5C为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的精细移动控制和快速移动控制(snap locomotive control)的过程的流程图。

图5D为示出了在本技术一些实施方式中使用的、用于XR环境中的多层虚拟控制器的基于手势的导航的过程的流程图。

图6A为示出了用于控制XR环境中的角色的基于手势的虚拟控制器的示例的概念图。

图6B为示出了用于在XR环境中移动角色的传送系统的示例的概念图。

图6C为示出了传送系统当在XR环境中移动角色时遇到环境限制的示例的概念图。

图7为示出了精确系统的示例的概念图,该精确系统用于提供对XR环境中的角色的精细移动控制和快速移动控制这两者。

图8为示出了使用层改变手势通过多层虚拟控制器进行的示例导航的概念图。

图9A为示出了这样的示例场景的概念图:在该示例场景中,基于手势的传送在同一表面上的两个位置之间移动角色。

图9B为示出了这样的示例场景的概念图:在该示例场景中,基于手势的传送在不同高度下的、不同表面的多个位置之间移动角色。

图9C为示出了这样的示例场景的概念图:在该示例场景中,基于手势的传送与墙壁相冲突并决定将角色移动到附近位置。

通过结合附图参考以下具体实施方式可以更好地理解这里所介绍的技术,在附图中,相似的附图标记指代相同或功能相似的元件。

具体实施方式

本公开的各方面针对用于控制XR环境中的角色的位置和方位的、基于手势的移动系统。XR系统的虚拟移动系统可以使用计算机视觉、惯性测量单元(inertial measurementunit,IMU)数据、和/或用于控制手势(例如,食指捏合手势)的其他合适方式来监测用户的单手或双手。虚拟移动系统可以响应于识别到该控制手势,将输入情境从一般输入模式切换到移动模式,在移动模式期间,XR系统将后续手势解释为与移动相关(即,不用于与XR环境中的其他菜单、对象等进行交互)。然后,虚拟移动系统追踪用户的手相对于开始位置(控制手势在该开始位置处执行)的移动,以确定要执行的移动动作(如果有的话)。在一些实施例中,虚拟移动系统可以渲染具有多个空间分开的区域的用户界面,每个区域表示特定的移动动作,例如在特定方向上移动、转向、下蹲、跳跃、或激活传送模式。例如,如果用户的手在用于使角色向左转90度的区域上做出释放手势(例如,释放食指捏合),则该虚拟移动系统相应地在XR环境中对角色进行重定向。

在一些实施例中,虚拟移动系统可以实现多层虚拟控制器(也称为虚拟控制器),其中各个层包括移动动作的不同组合。例如,虚拟控制器的一个层可以包括这样的区域:所述区域用于在不改变角色位置的情况下使角色向左转或向右转,而另一层包括这样的区域:所述区域用于在不改变角色的方位的情况下向左移动角色或向右移动角色(即,平移(strafe))。用户可以做出层改变手势(例如,将其食指捏合的手从手掌向下的方位重定向为手掌向上的方位),该层改变手势改变哪一层为活动层。以此方式,用户可以例如通过单手的多个手势,来选择期望的或者合适的一组适合XR环境中特定活动的移动控制。

在一些情况下,用户可能希望在不必切换虚拟控制器中的活动层的情况下,仅移动而不转向、同时移动和转向、以及转向而不移动。在一些实施例中,虚拟移动系统可以实现精确的系统,该系统直观地将精细移动控制(例如,同时平稳地移动和转向)与快速移动控制(例如,顷刻或瞬间移动或转向)控制相结合。以用户做出控制手势并且随后将其手向左或向右移动一定量为例。当用户将其手向左移动时,角色会逐渐或缓慢地转向左侧,角色转向的速率可以取决于用户的手相对于控制手势位置而向左移动的距离。虚拟移动系统可以以这种方式执行精细移动控制,只要用户的手保持在所定义的精确区域内即可。然而,如果用户的手继续向左伸,使得其手移动到该精确区域的外部,则该虚拟移动系统可以将该外部区域中的释放手势解释为这样的输入:该输入用于执行“快速”或非连续性的移动控制,例如通过实质性步骤使角色(例如以预定量或间隔,例如10度、20度、45度等)瞬间转向。以这种方式,该虚拟移动系统可以使用户能够不必在虚拟控制器的不同层之间进行导航的情况下、精细且快速地调整角色的位置和/或方位。

一些用户可能还希望有一种用于快速或非连续性的移动运动的方法,使得他们可以在XR环境中快速且有效地四处移动其角色。在一些实施例中,虚拟移动系统可以实现传送系统,在该传送系统中,可以在XR环境中将用户的角色从其当前位置瞬间或顷刻移动到不同位置。例如,虚拟移动系统可以提供这样的虚拟控制器的区域:该区域在被激活时(例如,当在该区域内做出释放手势时)激活传送模式。虚拟移动系统在处于传送模式时,可以渲染这样的用户界面:该用户界面指示当用户做出触发手势时、该角色在XR环境中将被传送到的位置。用户可以在激活传送动作之前移动其手来调整传送位置。此外,该系统可以允许用户连续地做出多个触发手势,以允许角色在XR环境中快速地“跳跃”。虚拟移动系统可以监测用户的手的退出手势(例如,用户的手进行扭转或重定向)以禁用传送模式并返回到一般输入情境。

在一些实施例中,虚拟移动系统可以对传送模式进行限制,以便不违反某些环境约束。例如,如果用户的目标是传送到竖直墙壁或天花板,则虚拟移动系统可以确定该目标传送位置不被允许(例如,因为XR环境具有重力并且不允许角色依附墙壁)。如果用户试图传送到不被允许的位置,则虚拟移动系统可以确定附近的、该角色被允许传送到的表面上的位置(例如,地面上的、处于目标传送位置的下方或附近的一位置)。这种处理环境冲突并确定合适的传送位置的过程可以在XR环境中可视地渲染,使得用户在激活传送之前知道该冲突并被告知实际的传送位置。以此方式,虚拟移动系统的传送模式可以允许角色以多个非连续性间隔移动,而不会使角色超出XR环境的边界或以其他方式违反XR应用的规则。

此外,传送模式可以允许角色不仅在同一表面上的多个位置之间移动,而且还可以允许角色在不同高度的两个表面之间移动。例如,传送“轨迹”可以被可视化地表示为弧线,这允许角色传送到高度较高或较低的表面上。以此方式,用户可以在不同于平坦等高的地面的虚拟地形上执行基于传送的导航,而不必专门执行跳跃和向前移动的移动动作(该跳跃和向前移动的移动动作在没有同时提供两个或更多个输入的情况下可能很难执行,如同物理控制器的典型情况一样)。

虚拟移动系统可以实现精确系统、传送系统和多层菜单的某种组合,以提供直观、有效且合理的移动控制——所有这些都没有物理控制器。然而传统的物理控制器使用户能够同时进行两个或更多个输入(例如,用不同的手指按下多个按钮、用两只手控制多个控制杆等),而使用虚拟控制却很难检测多个同时的输入,且对于基于手势的XR系统更是如此。然而,虚拟控制相较于其物理对应部件提供了极大的自由度和灵活性。物理键盘一度被认为是移动电话最有用的输入设备;然而,物理键盘几乎全部已经被基于触摸屏的键盘取代,基于触摸屏的键盘可以动态地改变以适应特定输入情境(例如,标准键盘、表情符号键盘、不带字母字符的用于数字输入的数字键盘、用于手写的自由形式输入等)的需要。尽管物理键盘在今天仍然很常见,但触摸屏键盘在某些场景下具有明显的优势。

本申请考虑了用于提供无控制器的移动输入方法的技术,而这些方法用作对物理控制器的替代。与触摸屏键盘非常相似,基于手势的移动输入可以提供比其物理对应部件更多的灵活性,并且可以被直观地设计和实现,以使用户能够在XR环境中相对轻松和简单地导航。重要的是,本公开的虚拟移动系统可以用于包容性地提供给如下用户:买不起物理控制器的用户、其环境使控制器无法使用的用户、或者具有残疾并且不能使用物理控制器来使用各种XR应用的用户。本公开的虚拟移动系统通过提供对基于控制器的XR外围设备的技术改进来改进XR计算系统的功能——该基于控制器的XR外围设备包括这样的基于手势的移动系统:该基于手势的移动系统用于控制人工现实环境中的角色的位置和方位。

值得注意的是,大多数用于导航三维(three dimensional,3D)虚拟环境中的角色的控制器涉及对两个控制杆的使用——一个控制杆用于移动或平移,而另一个控制杆用于重定向——并因此需要两只手来操作它们。本文所公开的虚拟移动系统可以使用单手来操作(即,可以使用单手来控制角色的位置和方位)。因此,虚拟移动系统可以用来实现更合理的移动控制方式。

此外,与传统数字系统相比,虚拟现实系统和人工现实系统的关键好处在于,VR系统和XR系统提供了更直观的、模拟用户在虚拟环境中的物理存在的体验。头戴式设备和3D音响系统使用户能够完全沉浸在虚拟环境中。然而,手持控制器可能会削弱这种沉浸式体验——部分因为人们不会随身携带控制器以与真实世界交互——从而降低XR体验的直观性和沉浸感。因此,提供有效的无控制器XR输入系统是一个必然植根于计算机技术(特别是VR计算系统和XR计算系统)的问题。

如本文所描述的,术语“移动动作”概括地指用于修改角色在XR环境中的位置和/或方位的指令、动作或输入。在一些情况下,该角色可以是虚拟环境中的虚拟摄像头,使得调整其方位涉及改变该虚拟摄像头的视场(field-of-view,FOV)。移动动作可以涉及向单独的应用发送一个或多个输入控制、或对用于控制虚拟玩家角色的游戏引擎的软件开发工具包(software development kit,SDK)进行函数调用等。

在一些情况下,移动动作可以涉及以预定义的或预定的间隔改变角色的位置和/或方位。例如,移动动作可以涉及将角色向左转或向右转预定的角度,或者可以涉及将角色按照预定或指定的距离或间隔移动到XR环境中的不同位置。如本文所描述的,“预定间隔”可以指量(例如,距离大小、角度等)和方向(例如,向左、向右、向前、向后、或它们的某种组合;沿轴顺时针方向或逆时针方向等)这两者。换句话说,预定间隔可以指定平移向量或自旋向量。在一些情况下,预定间隔的量和方向可以对应于用户的手的移动程度(例如,传送地的位置,或者以非连续性间隔(该非连续性间隔与用户在做出释放手势之前将其手向左或向右移动了多远有关)向左转或向右转等)。

如本文所描述的,术语“手势”概括地指一个或多个手部姿势和/或移动,该一个或多个手部姿势和/或移动可以被XR系统认出、识别或以其他方式确定,以表示特定种类、类别或类型的移动。例如,“控制手势”可以包括如下的一个或多个手部姿势和/或移动(例如,食指和拇指捏合,中指和拇指捏合,将小指、无名指和中指放到手掌上同时以L形伸出食指和拇指等):该一个或多个姿势和/或移动使得XR系统从一般输入情境转换到移动输入情境或模式。“释放手势”可以指与控制手势互补的手势(例如,释放两个捏合的手指,使小指、无名指和中指远离手掌伸出等),使得控制手势可以被描述为“保持”直到它被解除或释放。在一些实施方式中,代替保持和释放的范例,控制手势可以充当将输入情境改变为移动模式的切换,而“释放”手势可以为将输入情境切换回一般输入情境的单独且独立的手势。

在一些情况下,释放手势可以修改移动模式的情境。例如,控制手势可以首先触发虚拟移动系统进入用于选择要执行哪种移动动作的选择情境。用户可以通过在特定区域上移动其手并做出释放手势来选择移动动作。在一些情况下,释放手势既使得角色执行所选的移动动作,又将输入情境转换回一般输入情境。在其他情况下,所选择的移动动作可以是从选择情境或模式到另一移动相关的情境(例如,传送模式)的转换。因此,术语“释放”手势是指使得虚拟移动系统改变输入情境的手势。

在传送模式或情境中,术语“触发手势”可以用来指使得角色从一个位置传送到另一个位置的手势。例如,捏合并释放手势可以用作触发手势,可以在传送模式内多次做出该捏合并释放手势,以在XR环境中连续传送角色。当用户做出“退出手势”(例如,扭转手腕或使手重定向)时,可以退出传送情境,该“退出手势”以与释放手势类似的方式改变输入情境。在不同的实施方式中,特定的控制手势、释放手势、触发手势和退出手势可以不同。

如本文所描述的,术语“精确”概括地指所定义的XR环境中与精细移动控制(例如对角色的位置和/或方位进行平稳、连续或小增量的调整)相关联的运动范围或区域。例如,在精确区域内做出的手势可以使角色平稳地转向,而在该精确区域外做出的手势使得角色快速转向或以某种非连续性间隔以其他方式瞬间转向。因此,在精确区域内触发的移动动作可以被描述为“连续”(例如,非常小的增量)、“平稳”或“精细”,而在精确区域外触发的移动动作可以被描述为“非连续”(例如,大的增量)或“快速”移动或重定向。

所公开技术的实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实或超现实(extra reality,XR)是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实或XR例如可以包括虚拟现实(VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成内容或与所采集的内容(例如,真实世界的照片)相结合的生成内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,以上中的任何一种都可以在单个通道或多个通道中呈现(例如,给观看者带来三维效果的立体视频)。此外,在一些实施例中,人工现实可以与应用、产品、附件、服务或它们的某种组合相关联,这些应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounteddisplay,HMD)、独立HMD、移动设备或计算系统、“洞穴式”环境或其他投影系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。

如本文所使用的“虚拟现实”或“VR”是指这样的沉浸式体验:在该沉浸式体验中,用户的视觉输入由计算系统控制。“增强现实”或“AR”是指这样的系统:在所述系统中,用户在真实世界的图像通过计算系统之后,观看这些真实世界的图像。例如,背面带有摄像头的平板电脑可以采集多幅真实世界的图像,并且随后可以在该平板电脑的与摄像头相对的一侧的屏幕上显示这些图像。该平板电脑可以在这些图像通过系统时,例如通过添加虚拟对象来处理并且调整或“增强”这些图像。“混合现实”或“MR”是指这样的系统:在所述系统中,进入用户眼睛的光部分地由计算系统产生,且部分地来自从真实世界中的对象反射出的光。例如,MR头戴式设备可以被成形为一幅具有透传式显示器的眼镜,该具有透传式显示器的眼镜允许来自真实世界的光穿过一波导,该波导同时出射来自MR头戴式设备中的投影仪的光,从而允许该MR头戴式设备呈现与用户可看到的真实对象混合在一起的虚拟对象。如本文所使用的,“人工现实”、“超现实”或“XR”是指VR、AR、MR、或它们的任何组合或混合中的任何一者。

以下参考附图更详细地论述了数个实施方式。图1为示出了多个设备的概况的框图,所公开技术的一些实施方式可以在这些设备中运行。这些设备可以包括计算系统100的、可以控制人工现实环境中的角色的位置和方位的多个硬件部件。在各种实施方式中,计算系统100可以包括单个计算设备103或多个计算设备(例如,计算设备101、计算设备102和计算设备103),该多个计算设备通过有线信道或无线信道通信,以分发处理并共享输入数据。在一些实施方式中,计算系统100可以包括独立头戴式设备,该独立头戴式设备能够在无需外部处理或外部传感器的情况下,为用户提供计算机创建或增强的体验。在其它实施方式中,计算系统100可以包括多个计算设备,该多个计算设备例如为头戴式设备和核心处理部件(例如,控制台、移动设备、或服务器系统),其中,一些处理操作在头戴式设备上执行而其它处理操作被转移到核心处理部件。以下关于图2A和图2B描述了示例头戴式设备。在一些实施方式中,位置数据和环境数据可以仅由结合在头戴式设备中的传感器收集,而在其他实施方式中,多个非头戴式设备计算设备中的一个或多个可以包括可追踪环境数据或位置数据的传感器部件。

计算系统100可以包括一个或多个处理器110(例如,中央处理单元(centralprocessing unit,CPU)、图形处理单元(graphical processing unit,GPU)、全息处理单元(holographic processing unit,HPU)等)。处理器110可以是单个处理单元或多个处理单元,该多个处理单元位于一个设备中或者分布在多个设备上(例如,分布在计算设备101至103中的两个或更多个计算设备上)。

计算系统100可以包括一个或多个输入设备120,该一个或多个输入设备向处理器110提供输入,从而向处理器通知动作。这些动作可以由硬件控制器传达,该硬件控制器对从输入设备接收的信号进行解释,并使用通信协议将信息传送给处理器110。每个输入设备120可以例如包括鼠标、键盘、触摸屏、触摸板、可穿戴输入设备(例如,触觉手套、手镯、戒指、耳环、项链、手表等)、摄像头(或其它基于光的输入设备,例如红外传感器)、传声器、或其它用户输入设备。

处理器110可以例如通过使用内部总线或外部总线而耦接到其它硬件设备,上述总线例如为,外设部件互连标准(PCI)总线、小型计算机系统接口(SCSI)总线、或无线连接。处理器110可以与用于各设备(例如,用于显示器130)的硬件控制器通信。显示器130可以用于显示文本和图形。在一些实施方式中,显示器130包括输入设备,例如当该输入设备是触摸屏或者该输入设备配备有眼动方向监测系统(eye direction monitoring system)时,该输入设备作为显示器的一部分。在一些实施方式中,显示器与输入设备分开。显示设备的示例为:液晶显示器(liquid crystal display,LCD)显示屏、发光二极管(LED)显示屏、投影显示器、全息显示器、或增强现实显示器(例如,平视显示设备或头戴式设备(head-mounted device))等。其他输入/输出(I/O)设备140也可以耦接到处理器,该I/O设备例如为网络芯片或网卡、视频芯片或视频卡、音频芯片或音频卡、通用串行总线(USB)、火线或其他外部设备、摄像头、打印机、扬声器、光盘只读存储器(CD-ROM)驱动器、数字视频光盘(DVD)驱动器、磁盘驱动器等。

在一些实施方式中,来自I/O设备140(例如,摄像头、深度传感器、IMU传感器、GPS单元、激光雷达(LiDAR)或其他飞行时间传感器等)的输入可以由计算系统100用来识别和绘制用户的物理环境,同时追踪用户在该环境中的位置。该同步定位与地图构建(simultaneous localization and mapping,SLAM)系统可以生成针对一区域(其可以是房间、建筑物、室外空间等)的地图(例如,拓扑、网格等),和/或获取先前由该计算系统100或另一个已经绘制该区域的计算系统所生成的地图。SLAM系统可以基于GPS数据等因素追踪区域内的用户,将识别的对象和结构与绘制的对象和结构匹配,监控加速度和其他位置变化等。

计算系统100可以包括这样的通信设备:该通信设备能够与其它本地计算设备或网络节点无线地通信或基于有线地通信。该通信设备可以通过网络例如使用传输控制协议/网际协议(TCP/IP)与另一设备或服务器通信。计算系统100可以利用该通信设备在多个网络设备上分发操作。

处理器110可以访问存储器150,该存储器可以被包含在计算系统100的多个计算设备中的一个计算设备上,或者可以分布在计算系统100的多个计算设备、或其它外部设备上。存储器包括用于易失性或非易失性存储的一个或多个硬件设备,并且可以包括只读存储器和可写存储器这两者。例如,存储器可以包括以下中的一者或多者:随机存取存储器(random access memory,RAM)、各种高速缓冲存储器、CPU寄存器、只读存储器(read-onlymemory,ROM)和可写非易失性存储器,该可写非易失性存储器例如为,闪存、硬盘驱动器、软盘、光盘(CD)、DVD、磁存储设备、磁带驱动器等。存储器不是脱离底层硬件的传播信号;因此存储器是非暂态的。存储器150可以包括存储程序和软件的程序存储器160,上述程序和软件例如为操作系统162、虚拟移动系统164、和其它应用程序166。存储器150还可以包括数据存储器170,该数据存储器170可以例如包括提供给程序存储器160或计算系统100中任何元件的手势识别模型、虚拟控制器用户界面图形元素、XR环境约束、配置数据、设置、用户选项或偏好等。

一些实施方式可以与许多其它计算系统环境或配置一起运行。可适用于与该技术一起使用的计算系统、环境和/或配置的示例包括但不限于,XR头戴式设备、个人计算机、服务器计算机、手持式设备或膝上型设备、蜂窝电话、可穿戴电子设备、游戏控制台、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子设备、网络个人计算机(PC)、小型计算机、大型计算机、或包括上述系统或设备中的任何系统或设备的分布式计算环境等。

图2A是根据一些实施例的虚拟现实头戴式显示器(HMD)200(也称为HMD 200)的装配图。HMD 200包括前部刚性体205和带210。前部刚性体205包括电子显示器245的一个或多个电子显示元件、惯性运动单元(inertial motion unit,IMU)215、一个或多个位置传感器220、定位器225、以及一个或多个计算单元230。位置传感器220、IMU 215和计算单元230可以位于HMD 200内部,并且可以对用户不可见。在各种实施方式中,IMU 215、位置传感器220和定位器225可以以三个自由度(three degrees of freedom,3DoF)或六个自由度(sixdegrees of freedom,6DoF)来追踪HMD 200在真实世界中和人工现实环境中的移动和位置。例如,定位器225可以发射红外光束,这些红外光束在HMD 200周围的真实对象上产生光点。作为另一示例,IMU 215可以例如包括一个或多个加速度计,一个或多个陀螺仪,一个或多个磁力计,一个或多个其它非基于摄像头的位置、力或方位传感器,或它们的组合。与HMD200集成在一起的一个或多个摄像头(未示出)可以检测光点。HMD 200中的计算单元230可以使用检测到的光点,来推测HMD 200的位置和移动、以及识别HMD 200周围的真实对象的形状和位置。

电子显示器245可以与前部刚性体205集成在一起,并且可以如计算单元230所指示的向用户提供图像光。在各种实施例中,电子显示器245可以是单个电子显示器或多个电子显示器(例如,每只用户眼睛一显示器)。电子显示器245的示例包括:液晶显示器(LCD)、有机发光二极管(organic light-emitting diode,OLED)显示器、有源矩阵有机发光二极管显示器(active-matrix organic light-emitting diode display,AMOLED)、包括一个或多个量子点发光二极管(quantum dot light-emitting diode,QOLED)子像素的显示器、投影仪单元(例如,微型LED、激光器(LASER)等)、某种其它显示器、或它们的某种组合。

在一些实施方式中,HMD 200可以耦接到诸如个人计算机(personal computer,PC)(未示出)等核心处理部件和/或一个或多个外部传感器(未示出)。外部传感器可以(例如通过从HMD 200发射的光)对HMD 200进行监测,PC可以使用该HMD结合来自IMU 215和位置传感器220的输出,来确定HMD 200的位置和移动。

图2B是混合现实HMD系统250(也称为混合现实系统250、HMD系统250或HMD 250)的装配图,该混合现实HMD系统包括混合现实HMD 252和核心处理部件254。混合现实HMD 252(也称为HMD 252)和核心处理部件254可以通过如链路256所指示的无线连接(例如,60GHz链路)进行通信。在其他实施方式中,混合现实系统250仅包括头戴式设备而没有外部计算设备,或者包括混合现实HMD 252与核心处理部件254之间的其他有线或无线连接。混合现实HMD 252包括透传式显示器258和框架260。框架260可以容纳各种电子部件(未示出),这些电子部件例如为光投影仪(例如,激光器、LED等)、摄像头、眼动追踪传感器、微机电系统(MEMS)部件、网络部件等。

投影仪可以例如通过光学元件耦接到透传式显示器258,以向用户显示媒体。这些光学元件可以包括用于将来自投影仪的光引导到用户的眼睛的一个或多个波导组件、一个或多个反射器、一个或多个透镜、一个或多个反射镜、一个或多个准直器、一个或多个光栅等。可以将图像数据从核心处理部件254通过链路256传输到HMD 252。HMD 252中的控制器可以将图像数据转换成来自投影仪的多个光脉冲,这些光脉冲可以作为输出光而通过光学元件传输到用户的眼睛。该输出光可以与穿过透传式显示器258的光混合,从而使输出光能够呈现如下的虚拟对象:这些虚拟对象看起来如同其存在于真实世界中一样。

与HMD 200类似,HMD系统250也可以包括运动和位置追踪单元、摄像头、光源等,上述运动和位置追踪单元、摄像头、光源等允许HMD系统250例如以3DoF或6DoF追踪其自身、追踪用户的多个部位(例如,手、脚、头部、或其他身体部位)、将虚拟对象绘制为在HMD 252移动时看起来如同静止一样、以及使虚拟对象对手势和其他真实世界对象作出反应。

图2C示出了多个控制器270(其包括控制器276A和276B),在一些实施方式中,用户可以用单手或双手握住该多个控制器,以与由HMD 200和/或HMD 250呈现的人工现实环境交互。控制器270可以直接与HMD通信,也可以通过外部设备(例如,核心处理部件254)与HMD通信。控制器可以具有其自身的IMU单元、位置传感器,和/或可以发射另外的光点。HMD 200或250、外部传感器、或控制器中的传感器可以追踪这些控制器光点,以确定控制器位置和/或方位(例如,以3DoF或6DoF追踪控制器)。HMD 200中的计算单元230或核心处理部件254可以结合IMU输出和位置输出,使用该追踪来监测用户的手部位置和动作。这些控制器还可以包括各种按钮(例如,按钮272A至272F)和/或控制杆(例如,控制杆274A和274B),用户可以对这些按钮和/或控制杆进行致动,以提供输入并与对象交互。

在各种实施方式中,HMD 200或250还可以包括多个附加子系统,该多个附加子系统用于监测用户交互和意图的指示,这些附加子系统例如为眼动追踪单元、音频系统、各种网络部件等。例如,在一些实施方式中,代替控制器或除了控制器之外,包括在HMD 200或250中的一个或多个摄像头、或来自多个外部摄像头的一个或多个摄像头可以监测用户手部的位置和姿势,以确定手势和其它手部动作和身体动作。作为另一示例,一个或多个光源可以照亮用户双眼中的任一眼睛或两只眼睛,并且HMD 200或250可以使用面向眼睛的摄像头来采集该光的反射,以(例如基于围绕用户角膜的一组反射)确定眼睛位置,对用户的眼睛建模并确定注视方向。

图3是示出了环境300的概况的框图,所公开技术的一些实施方式可在该环境300中运行。环境300可以包括一个或多个客户端计算设备305A至305D,这些客户端计算设备的示例可以包括计算系统100。在一些实施方式中,这些客户端计算设备中的一些客户端计算设备(例如,客户端计算设备305B)可以为HMD 200或HMD系统250。客户端计算设备305可以在网络环境中、使用通过网络330到一个或多个远程计算机(例如,服务器计算设备)的逻辑连接来运行。

在一些实施方式中,服务器310(也称为服务器计算设备310)可以是边缘服务器,该边缘服务器接收客户端请求,并通过其它服务器(例如,服务器320A至320C(也称为服务器计算设备320A至320C))来协调对这些请求的实现。服务器计算设备310和320可以包括计算系统,例如计算系统100。尽管每个服务器计算设备310和320在逻辑上被显示为单个服务器,但多个服务器计算设备可以各自是一分布式计算环境,该分布式计算环境包含位于同一物理位置处或在地理上不同的物理位置处的多个计算设备。

客户端计算设备305和服务器计算设备310和320可以各自充当一个或多个其它服务器/客户端设备的服务器或客户端。服务器310可以连接到数据库315。服务器320A至320C可以各自连接到对应的数据库325A至325C。如以上所论述的,每个服务器310或320可以与一组服务器相对应,并且这些服务器中的各个服务器可以共享一数据库,或者可以具有其自己的数据库。尽管数据库315和325在逻辑上被显示为单个单元,但数据库315和325可以各自是包含多个计算设备的分布式计算环境,该多个计算设备可以位于其对应的服务器内,或者可以位于同一物理位置处或位于地理上不同的物理位置处。

网络330可以是局域网(local area network,LAN)、广域网(wide area network,WAN)、网状网络、混合网络、或其它有线或无线网络。网络330可以是互联网或某种其它公共或专用网络。客户端计算设备305可以经由网络接口例如通过有线或无线通信连接到网络330。尽管服务器310与多个服务器320之间的连接被显示为单独的连接,但这些连接可以是包括网络330或单独的公共或专用网络的、任何类型的局域网、广域网、有线网络、或无线网络。

图4是示出了多个部件400的框图,在一些实施方式中,可以在采用所公开技术的系统中使用这些部件。各部件400可以被包括在计算系统100的一个设备中,或者可以分布在计算系统100的多个设备上。这些部件400包括硬件410、中间件420和多个专用部件430。如以上所论述的,实现所公开技术的系统可以使用各种硬件,这些硬件包括多个处理单元412、工作存储器414、输入和输出设备416(例如,摄像头、显示器、IMU单元、网络连接等)、以及存储内存(storage memory)418。在各种实施方式中,存储内存418可以是以下中的一种或多种:本地设备、到远程存储设备的接口、或它们的组合。例如,存储内存418可以是可通过系统总线访问的一个或多个硬盘驱动器或闪存驱动器、或者可以是可通过一个或多个通信网络访问的云存储提供者(例如,在数据库315或325中)或其它网络存储器。在各种实施方式中,各部件400可以在客户端计算设备(例如,客户端计算设备305)中或在服务器计算设备(例如,服务器计算设备310或320)中实现。

中间件420可以包括在硬件410与各专用部件430之间传递资源的部件。例如,中间件420可以包括操作系统、服务、驱动器、基本输入输出系统(basic input output system,BIOS)、控制电路、或其它硬件或软件系统。

各专用部件430可以包括被配置为执行用于提供虚拟移动系统的操作的软件或硬件,该虚拟移动系统控制角色在XR环境中的位置和方位。各专用部件430可以包括输入管理器434、用户追踪器436、情境管理器438、手势识别器440、精确移动检测器442、非连续性移动控制器444、连续性移动控制器446、冲突处理器448、以及如下的部件和应用程序接口(API)(例如,多个接口432):所述部件和API可以用于提供用户界面、传递数据、以及控制专用部件。在一些实施方式中,各部件400可以位于如下计算系统中:该计算系统分布在多个计算设备上;或者,各部件400可以是至基于服务器的应用程序的接口,该基于服务器的应用程序执行各专用部件430中的一个或多个。尽管专用部件430被描绘为单独的部件,但这些专用部件可以是逻辑功能或其它非物理区分的功能,和/或可以是一个或多个应用程序的子模块或代码块。

输入管理器434可以管理对虚拟界面(例如,虚拟控制器和/或虚拟控制器的多个层)和各种来自用户的输入形态的显示,以执行从虚拟界面的选择(例如,移动动作、情境转换等)。例如,输入管理器434可以在用户的视线内显示虚拟控制器。在一些实施方式中,虚拟控制器可以显示在距离用户的阈值距离处(或在距离用户的距离范围内)。例如,虚拟控制器可以显示在如下位置:距离用户至少0.5米处、距离用户的一手臂长的范围内、这些的任意组合、或任何其他合适的距离处。虚拟控制器可以显示在角色FOV的第一人称视角内的特定固定区域处,即使当用户在人工现实环境中移动和重定向其FOV时,该虚拟控制器也仍然处于用户FOV内的相同区域中——使得该虚拟控制器在给定用户移动(例如,头部转向、身体转向等)的情况下持续处于用户的视线内。

对输入管理器434的实现可以接收(例如来自一个或多个摄像头、IMU数据、通过用户追踪器436等的)所追踪的用户手部输入,并且可以估计用户的手部姿势以实现手部姿势和手势识别。例如,输入管理器434可以将所追踪的用户手部输入(例如,所追踪的手部动作和/或手指动作)与触发标准进行比较。当所追踪的用户手部输入满足触发标准(例如,由手势识别器440所识别的控制手势)时,输入管理器434可以使计算系统100渲染虚拟控制器。在一些实施例中,输入管理器434还可以渲染本文所示出和描述的传送系统的用户界面元素。

用户追踪器436可以追踪用户的身体以获得各种形态的用户输入。XR系统的一个或多个传感器(例如,摄像头、诸如一个或多个加速度计等可穿戴传感器等)可以感知用户的身体状况(例如,手部移动、手腕移动、手臂移动、手指移动等),以追踪用户的单手动作或双手动作。所追踪的用户手部动作可以作为所追踪的用户手部输入提供给输入管理器434,所追踪的用户手部动作随后可以由手势识别器440处理以检测一个或多个特定手势、和/或手势类型。

情境管理器438可以追踪基于手势的输入系统的情境、模式或状态(例如,一般输入情境、移动模式、选择模式、传送模式等),以确定响应于检测到各种手势(如果有的话)而采取的一个或多个动作。例如,一般输入情境可以允许用户与XR环境中的对象、和用户界面元素(例如,菜单、虚拟键盘、和弹出窗口等)进行交互。然而,为了防止与XR环境的无意交互,情境管理器438可以管理该输入系统的状态——例如响应于手势识别器440检测到控制手势,将输入情境从一般输入情境转换到移动模式。当处于移动模式时,情境管理器438可以与手势识别器440和输入管理器434配合,以确定给定手势是否对应于在移动模式情境方面的特定动作。

手势识别器440可以接收来自用户追踪器436的所追踪的用户手部动作,并将特定时间或多个时间点处的一个或多个用户手部动作帧、关键点模型、或表示用户的手部姿势的其他数据分类为特定手势、特定类型的手势(例如,控制手势、释放手势、触发手势、退出手势等)。手势识别器440可以包括统计模型、机器学习模型、和/或可以对所追踪的用户手部动作进行分类的其他手势识别模型。在一些实施方式中,手势识别器440可以将所追踪的用户手部动作分类为特定手势(例如,食指捏合手势),输入管理器434基于来自情境管理器438的当前情境或模式来解释该特定手势,以确定情境化的手势(例如,控制手势)。

精确移动检测器442可以接收来自用户追踪器436的所追踪的用户手部动作,以监测用户的手相对于精确区域(例如,由输入管理器434定义的用户界面元素或区域)的位置。如果用户的手在精确区域内移动,则精确移动检测器442可以将移动控制从输入管理器434引导到连续性移动控制器446,以对角色在XR环境中的位置和/或方位运用精细移动控制。替代地,如果用户的手移动超出精确区域,则精确移动检测器442可以将移动控制从输入管理器434引导到非连续性移动控制器444,以对角色在XR环境中的位置和/或方位运用快速移动控制。关于图7示出并描述了精确检测的示例。

非连续性移动控制器444可以将来自输入管理器434的移动动作转换为对XR引擎的对应API函数调用、SDK函数调用或其他函数调用,以便以大间隔或大增量控制XR环境中的虚拟摄像头、玩家角色、或其他角色(例如,向左转30度、向前移动2米等)。相比之下,连续性移动控制器446可以将来自输入管理器434的移动动作转换为对XR引擎的对应API函数调用、SDK函数调用或其他函数调用,以便以小间隔或小增量控制XR环境中的虚拟摄像头、玩家角色或其他角色(例如,向左转0.5度、向前移动1厘米等)。“连续性”移动概括地指用于产生(与快速、瞬间转向或传送移动相比的)平稳自然动作的印象的一个或多个移动或重定向。

冲突处理器448可以确定传送弧是否与角色不被允许移动到的墙壁、天花板或其他表面相撞或相交,并在触发传送时确定一附近位置来移动角色。例如,如果用户将传送弧指向墙壁,则冲突处理器448可以估算、计算或以其他方式确定与墙壁相邻的地面上的且接近被指向的传送位置的合适的传送位置。关于图6C示出并描述了冲突处理的示例。

本领域技术人员将理解,以上所描述的图1至图4中所示出的、以及以下所论述的各流程图中的每个中所示出的各部件可以以各种方式改变。例如,可以对逻辑的顺序进行重新排列,可以并行执行多个子步骤,可以省略所示出的逻辑,可以包括其它逻辑等。在一些实施方式中,以上所描述的各部件中的一个或多个部件可以执行以下所描述的各过程中的一个或多个过程。

图5A为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的移动的过程500的流程图。在一些实施方式中,过程500可以“恰好及时”地执行,例如作为在XR应用中执行的虚拟移动系统正在进行的手势检测过程的一部分。在一些实施方式中,过程500可以由用户启动XR系统中的XR应用来触发,可以通过进入XR环境中角色的第一人称视角来触发,或者可以响应于用户手动激活基于手势的虚拟移动系统来触发。

在框502处,过程500检测控制手势,例如用食指和拇指形成的“L”形的捏合手势、或能够被手势识别器检测到的任何其他手势。一经检测到控制手势,过程500就使得XR系统转换到移动模式504,从而切换输入情境。

在框506处,过程500渲染虚拟控制器的具有两个或更多个空间分开的区域的层。取决于特定的实施方式,虚拟控制器可以包括单个层或多个层。每一层可以包括一个或多个区域,这些区域中的每个区域与特定的移动动作(例如平稳移动、快速移动、平稳转向、快速转向、下蹲、跳跃、或其他动作)相关联。该虚拟控制器可以被渲染在从角色的第一人称视角来看固定的位置处(例如,在第一人称FOV的左下角处)。

在一些实施方式中,过程500可以解析XR环境中做出控制手势的开始位置。例如,如果控制手势被指定为食指和拇指之间的捏合,则开始位置可能被设置在食指和拇指相接触的点处或附近。在这些实施方式中,过程500可以将虚拟控制器定位为以所确定的开始位置为中心。作为具体示例,如果虚拟控制器的层包括四个饼形区域(即,一个圆被划分为四个空间分开的区域),则虚拟控制器可以以开始位置为中心,使得开始位置位于四个饼形区域之间。由于饼形区域是空间分开的,因此该开始位置不在上述区域的任何区域上或内部。然而,如果用户移动其手,则过程500追踪动作或手势(例如,捏合点)的位置——使得用户可以捏合以调用虚拟控制器,并拖动以悬停在上述区域中的一个区域上以“选择”该区域。

在框508处,过程500追踪用户的手到虚拟控制器的两个或更多个空间分开的区域中的特定区域的移动。然后,在框510处,过程500检测释放手势,例如松开食指和拇指的捏合。在该示例中,用户的手在特定区域上的移动用来对该区域进行“选择”,而释放手势用来确认该选择。

在框512处,过程500执行与特定区域相关联的移动动作。例如,过程500可以使得XR应用对角色施加移动控制(例如,对引擎的SDK进行函数调用)。

在本示例中,移动动作不会重复,也不会使XR系统转换到不同的输入情境。因此,在框514处,过程500退出移动模式。然而,将理解,某些移动动作可被配置为是可重复的。在这些情况下,虚拟移动系统可以操作以在触发框514之前检测有区别的退出手势。

图5B为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的传送的过程520的流程图。在一些实施方式中,过程520可以“恰好及时”地执行,例如作为在XR应用中执行的虚拟移动系统正在进行的手势检测过程的一部分。在一些实施方式中,过程520可以由用户启动XR系统中的XR应用来触发,可以通过进入XR环境中角色的第一人称视角来触发,或者可以响应于用户手动激活基于手势的虚拟移动系统来触发。

在框522处,过程520检测控制手势。框522可以与以上关于图5A所描述的框502相似或相同。一经识别到控制手势,过程520就使输入情境转换为移动模式524。在该示例中,移动模式524包括两个子情境:选择模式526,该选择模式526用于选择移动动作;以及传送模式534,该传送模式534可以用传送指示器来替换选择模式526下的用户虚拟控制器,在视觉上通知用户:输入模式已被改变。关于图6B和图6C示出并描述了示例传送指示器。

在框528处,过程520渲染虚拟控制器的具有两个或更多个空间分开的区域的层。框528可以与以上关于图5A所描述的框506相似或相同。

在框530处,过程520追踪用户的手到虚拟控制器的两个或更多个空间分开的区域中的特定区域的移动。在该示例中,该特定区域与用于激活传送模式524的移动动作相关联。关于图6B示出并描述了用于激活传送模式的示例区域。在框532处,过程520检测释放手势,该释放手势确认对虚拟控制器中的传送区域的选择,这使得XR系统从选择模式526转换到传送模式534。

在框536处,过程520渲染传送指示器。传送指示器可以包括在角色和距离角色一定距离的传送位置之间延伸的弧线,该弧线可以在竖直方向上弯曲(例如,以向用户示意:将角色传送到比该角色当前所处的高度更高的表面的可能性)。传送指示器还可以包括在角色和传送位置之间沿该角色所在的地面延伸的线(实线、虚线、点划线等)(即,与弧线具有相同或相似的起点和终点,但在竖直方向上不弯曲)。还可以例如使用以传送位置为中心的小圆圈来图形化地表示该传送位置,以向用户指示:当用户触发传送时角色将被传送的位置。其他用户界面也是可能的。在一些实施方式中,传送指示器以与用户在人工现实环境中的最大速度一致的速度从该用户处向外移动。这使得传送移动与两足移动一致,因此即使在使用传送时,角色也被限制在最大移动速度。例如,如果有两个用户处于同一人工现实环境中,其中一个用户使用两足移动,另一个用户使用传送,则这两个用户都将不会比另一个更快。关于图6B和图6C示出并描述了示例传送指示器。

在框538处,过程520检测触发手势。触发手势可以类似于控制手势(例如,用食指和拇指捏合),使得用户不需要记住大量手势来使用该基于手势的移动系统。在其他实施方式中,触发手势可以是独特的手势(例如,将所有五个手指合拢到手掌、将中指和拇指捏合在一起等),使得用户将控制手势关联为与触发手势不同的情境切换手势。

在框540处,过程520响应于识别到触发手势,将角色移动到传送位置。换句话说,该角色从其当前位置被“传送”到传送位置。在一些实施方式中,对角色进行“传送”可能涉及即刻(即,在XR引擎的单个帧中)改变角色的位置,或者可能涉及在短时间段内(例如,跨越几个帧)瞬间改变角色的位置。

在框542处,过程520确定是否已经识别到退出手势。如果过程520没有识别到退出手势,则过程520保持在传送模式534并返回到框536。替代地,如果过程520识别或检测到退出手势,则过程520退出传送模式534和移动模式524。

图5C为示出了在本技术一些实施方式中使用的、用于在XR环境中执行基于手势的精细移动控制和快速移动控制的过程550的流程图。在一些实施方式中,过程550可以“恰好及时”地执行,例如作为在XR应用中执行的虚拟移动系统正在进行的手势检测过程的一部分。在一些实施方式中,过程550可以由用户启动XR系统中的XR应用来触发,可以通过进入XR环境中角色的第一人称视角来触发,或者可以响应于用户手动激活基于手势的虚拟移动系统来触发。

在框552处,过程550检测控制手势。框552可以与以上关于图5A所描述的框502相似或相同。一经检测到控制手势,过程550就使XR系统转换到移动模式554。

在框556处,过程550渲染虚拟控制器的具有两个或更多个空间分开的区域的层。框556可以与以上关于图5A所描述的框506相似或相同。

在框558处,过程550追踪用户的手到虚拟控制器的两个或更多个空间分开的区域中的特定区域的移动。框558可以与以上关于图5A所描述的框508相似或相同。

在框560处,过程550确定用户的手是否被定位在精确区域内。精确区域可以在定义的水平区域上连续延伸,其中该水平区域在视觉上由精确的用户界面元素(例如,参见图7的精确的用户界面(UI)元素726)表示。如果过程550确定用户的手处于精确区域内(例如,如图7中的帧704所示),则过程550进行到框562。在框562处,过程550使用精细移动控制(例如,连续性运动、平稳转向等)来控制角色的位置和/或方位。

在框562完成之后,或者如果过程550确定用户的手被定位在精确区域之外(例如,如图7中的帧706所示),则过程550进行到框564。在框564处,过程550确定用户的手部动作是否代表释放手势。如果用户的手部动作不代表释放手势,则过程550返回到框558以继续追踪用户的手部移动。替代地,如果用户的手部动作被过程550识别为释放手势,则过程550进行到框566。

在框566处,过程550确定:当用户做出释放手势时,用户的手是否被定位在精确区域外。若是,则过程550进行到框568,其中过程550执行快速移动控制(例如,非连续性移动、以大间隔转向等)。替代地,如果过程550确定:当用户做出释放手势时用户的手处于精确区域内,则过程550确定:还未输入快速移动控制并退出移动模式554。

图5D为示出了在本技术一些实施方式中使用的、用于XR环境中的基于手势的多层虚拟控制器导航的过程570的流程图。在一些实施方式中,过程570可以“恰好及时”地执行,作为在XR应用中执行的虚拟移动系统正在进行的手势检测过程的一部分。在一些实施方式中,过程570可以由用户启动XR系统中的XR应用来触发,可以通过进入XR环境中角色的第一人称视角来触发,或者可以响应于用户手动激活基于手势的虚拟移动系统来触发。

在框572处,过程570检测控制手势。框572可以与以上关于图5A所描述的框502相似或相同。一经检测到控制手势,过程550就使XR系统转换到移动模式574。

在框576处,过程570渲染虚拟控制器的具有两个或更多个空间分开的区域的第一层。在该示例中,虚拟控制器包括多个层,其中每个层具有分别与一个或多个移动动作相关联的一个或多个区域。因此,第一层可以包括第一组移动动作(例如,向前走、向后走、向左转和向右转),该第一组移动动作对应于一种导航风格或导航范例。例如,第一层可以包括用于在迷宫中导航的移动控制,在迷宫中,向前运动和转向是最常见的移动动作。

在框578处,过程570检测层改变手势。层改变手势可以是改变多层虚拟控制器的活动的、聚焦的或可见的层的任何可识别手部动作。例如,如果捏合并保持手势被用作控制手势,则在保持控制手势的同时重定向用户的手(例如,扭转手腕以将手掌朝向下转动为手掌朝向上,例如如图8中所示)可以使得虚拟移动系统在多层虚拟控制器中向上或向下移动一层。转动方向可以用于指定在多层虚拟控制器的各层中导航的方向(例如,顺时针转动向下移动一层、逆时针转动向上移动一层,如果多层虚拟控制器中存在这样的层)。

在框580处,过程570渲染虚拟控制器的第二层。在一些实施方式中,过程570一次仅渲染该虚拟控制器的单个层,使得第一层被第二层替换。在其他实施方式中,过程570改变聚焦的或活动的层,其中相邻层或其它层相对于活动层是半透明的、变暗的、尺寸更小的、或以其他方式可视化地表示为非活动的。关于图8概念性地示出并描述了层改变手势改变虚拟控制器的渲染的或聚焦的层的示例实施方式。

在框582处,过程570追踪用户的手到虚拟控制器的两个或更多个空间分开的区域中的特定区域的移动。框582可以与以上关于图5A所描述的框508相似或相同。该特定区域可以与第一层中不存在的移动动作相关联。例如,第一层可以包括向左转或向右转的移动控制,而第二层用向左平移(strafe)或向右平移(即,在不转向的情况下向左平移(translate)或向右平移)来替换这些移动控制。在该示例中,用户可以做出层改变手势以切换到第二层,并且使用第二层来在不转向的情况下移动角色——在某些环境下可能是优选的移动范例。

在框584处,过程570检测释放手势。框584可以与以上关于图5A所描述的框510相似或相同。然后,在框586处,过程570执行与特定区域相关联的移动动作。框586可以与以上关于图5A所描述的框512相似或相同。

图6A为示出了用于控制XR环境中的角色的、基于手势的虚拟控制器的示例的概念图600。在帧620处,用户的手602做出控制手势,该控制手势使得虚拟移动系统渲染虚拟控制器610的层。如果用户将其手602向左移动到如帧622所示的虚拟按钮612上方或靠近该虚拟按钮612,则用户界面可以在视觉上指示用户已经选择了该虚拟按钮612(例如,向左转)。替代地,如果用户将其手602向下移动到如帧624所示的虚拟按钮614上方或靠近该虚拟按钮614,则用户界面可以在视觉上指示用户已经选择了该虚拟按钮614(例如,向后移动)。此外,如果用户将其手602向右移动到如帧626所示的虚拟按钮616上方或靠近该虚拟按钮616,则用户界面可以在视觉上指示用户已经选择了该虚拟按钮616(例如,向右转)。用户可以通过做出释放手势(例如,松开其捏合的手指)来触发任何移动动作。

如图6A所示,虚拟按钮在空间上可以小于用户的手可在其内移动以选择该移动动作的区域,使得虚拟按钮充当图标和对用户的视觉反馈,但不表示可选区域的全部范围。可取的是具有比该图标或虚拟按钮更大的可选区域,以降低选择移动动作所需的精度,从而使基于手势的移动系统对用户更加友好。因此,将理解的是,本文所描述的“空间分开的区域”的边界不一定是由用户界面元素定义的。

图6B为示出了用于在XR环境中移动角色的传送系统的示例的概念图630。在帧632之前,用户的手602做出控制手势,该控制手势使得虚拟移动系统渲染虚拟控制器610的层并进入选择模式。在帧632处,用户将其手602移动到虚拟按钮618上方或靠近该虚拟按钮618,并且用户界面在视觉上指示用户已经选择了虚拟按钮618(例如,激活传送模式)。

当选择虚拟按钮618时,用户的手在帧634处做出释放手势,这使得虚拟移动系统退出选择模式并进入传送模式。如帧634所示,传送指示器640被渲染,该传送指示器640显示出传送位置644、在用户的手602和传送位置644之间延伸的竖向弯曲弧线642、以及从角色在地面上的位置延伸到传送位置644的点划线646。用户可以通过移动其手602,来对传送位置644进行调整、或“指向”该传送位置644。在一些情况下,传送位置644可以在用户的位置处开始、并以与人工现实环境中的用户角色的最大速度匹配的速度移动。因此,传送移动速度可以与用户角色的最大速度一致。一旦设置了期望的传送位置,用户就可以做出触发手势(例如,捏合并松开捏合)以使角色从其在帧634中所示的位置传送到传送位置644,来到达帧636中所示的位置。一旦执行了传送动作,虚拟移动系统就可以再次渲染传送指示器640,从而允许用户连续多次传送以在XR环境中导航。在一些实施方式中,对传送指示器640的重复渲染可以在每次传送之后重置到用户的当前位置,并且可以以用户角色的最大速度从用户向外移动——保持与两足移动一致的传送移动。

图6C为示出当在XR环境中移动角色时传送系统遇到环境限制的示例的概念图650。在帧652之前,用户激活传送模式并将其角色定位在墙壁658附近。在该示例中,用户首先从帧652中所示的位置向前传送到帧654中所示的位置。在帧654处,用户将传送指示器640指向墙壁658,使得弧线642在冲突点643处与墙壁658相撞。在该场景中,弧线642被显示为在冲突点643处突然改变方向,并且从冲突点643延伸到传送位置644。以这种方式,用户被可视地通知冲突、如何解决该冲突、以及如果用户触发传送动作用户将被传送到的位置。然后,用户触发传送动作,该传送动作使得角色移动到帧654中所示的传送位置644,这在帧656中示出。以这种方式,传送系统可以被环境规则(例如,用户不能移动穿过墙壁、不能站在墙壁上等)约束。

图7为示出了精确系统的示例的概念图700,该精确系统用于在XR环境中提供对角色的精细移动控制和快速移动控制。在帧702之前,用户的手做出控制手势,该控制手势触发虚拟移动系统以渲染虚拟控制器712的层和精确指示器720。在该实施方式中,精确指示器720包括中心点722,该中心点722用于指示精确区域726的中心或“零点”,该精确区域726在靠近精确区域726左右两端的点之间延伸。此外,使用半透明点示出了用户的手710的特定位置724a,以在视觉上告知用户其处于精确区域726内的位置(即,类似于鼠标或指针)。

在帧702处,用户将其手710向前移动到与虚拟按钮714相关联的区域上,在该示例中,虚拟按钮714用于平稳地或递增地向前移动角色(例如,向前行走或向前奔跑)。在帧704处,用户将其手710向右移动到位置724b,该位置724b包含在精确区域726内。因此,角色继续向前移动,并同时略微向右平移,从而允许用户沿着XR环境中显示的对角轨迹平稳移动。在帧706处,用户将其手710进一步向右移动,甚至超出精确区域726的边界到达位置724c,这使得虚拟移动系统突出显示或点亮虚拟按钮716,该虚拟按钮716与以预定间隔(例如,10度、或某个其他非连续性的转向间隔)向右快速转向相关联。当用户的手710在位置724c处做出释放手势时,虚拟移动系统触发角色向右快速转向,使得角色的方位从帧706中所示的方位改变为帧708中所示的方位。以这种方式,精确系统使单个层和输入情境(例如,移动模式)能够用于执行平稳或精细移动、以及快速或非连续性移动。

图8为示出了使用层改变手势通过多层虚拟控制器进行的示例导航的概念图800。当用户做出控制手势从而产生手部姿势802时,虚拟控制器被概念性地示出为处于状态810。最初,虚拟控制器将层814设置为活动的、突出显示的或可见的层,其中层812、816和818被显示为变暗的、半透明的、不可见的或以其他方式表示为不活动的。在该示例中,层812包括用于触发角色跳跃或非下蹲的虚拟按钮;层814包括用于向前移动、向后移动、向左转和向右转的虚拟按钮;层816包括用于向前移动、向后移动、向左平移和向右平移的虚拟按钮;并且层818包括用于使角色下蹲的虚拟按钮。

然后,用户的手通过以下方式做出层改变手势:将手掌从姿势802处的朝下方位转动到姿势804处的朝上方位,并且随后返回到姿势806处的手掌朝下方位。这种重定向序列可以由手势模型或手势识别器识别为表示层改变手势,其中转动方向指定在多层虚拟控制器中导航的方向。响应于检测到层改变手势,虚拟控制器从状态810改变为状态820,该状态820将活动层从层814切换到层816。以这种方式,虚拟控制器可以包括多组控件,并且可以在该多组控件之间切换以适应XR应用中的特定活动或情况的需要。

图9A为示出了这样的示例场景的概念图900:在该示例场景中,基于手势的传送在同一表面上的两个位置之间移动角色。如图9A所示,角色904位于XR环境902内,并且用户已激活传送模式以渲染在角色904和传送位置908之间延伸的弧线906。在该示例中,角色904和传送位置908位于同一地面910上。如果用户做出触发手势,则角色904将传送到传送位置908。

图9B为示出这样的示例场景的概念图920:在该示例场景中,基于手势的传送在不同高度、不同表面上的位置之间移动角色。如图9B所示,用户已经将弧线922指向传送位置924,该传送位置924位于XR环境902中的对象的表面926上,该表面926处于比地面910更高的高度。如果用户做出触发手势,则角色904将传送到传送位置924。弧线922的向上曲率可以用来向用户指示传送到不同高度的表面是可能的,并且允许在XR环境中进行自如地导航,而不必跳跃或做出更复杂的动作来在不同高度的表面之间移动。

图9C为示出了这样的示例场景的概念图930:在该示例场景中,基于手势的传送与墙壁相冲突并决定将角色移动到附近位置。图9C概念性地示出了图6C中所示的示例实施方式。如图9C所示,用户已将弧线932指向为与XR环境902的墙壁936相撞。在本示例中,XR环境包括规则或约束,这些规则或约束指定角色不能移动穿过墙壁并且不能站在墙壁上。因此,虚拟移动系统确定地面910上的传送位置934既是靠近预期传送位置的合适位置,又不违反XR环境902的规则和约束。

在本说明书中对“多个实施方式”(例如,“一些实施方式”,“各种实施方式”、“一种实施方式”、“一实施方式”等)的引用意味着,所描述的与该实施方式有关的特定的特征、结构或特性被包括在本公开的至少一个实施方式中。这些表达在说明书中不同地方的出现不一定都指同一实施方式,也不一定是与其它实施方式相互排斥的单独实施方式或替代实施方式。此外,描述了可由一些实施方式而不是由其它实施方式呈现的各种特征。类似地,描述了可以是一些实施方式而不是其它实施方式的要求的各种要求。

如本文所使用的,高于阈值意味着比较项的值高于指定的其它值,比较项位于具有最大值的某个指定数量的项中,或者比较项具有在指定的最高百分比值内的值。如本文所使用的,低于阈值意味着比较项的值低于指定的其它值,比较项位于具有最小值的某个指定数量的项中,或者比较项具有在指定的最低百分比值内的值。如本文所使用的,处于阈值内意味着比较项的值在两个指定的其它值之间,比较项位于中间的指定数量的项中,或者比较项具有在中间指定百分比范围内的值。当没有另外定义时,诸如高或不重要等相对术语可以被理解为分配一个值并确定该值如何与所建立的阈值进行比较。例如,短语“选择快速连接”可以被理解为意味着选择具有分配的与其高于阈值的连接速度相对应的值的连接。

如本文所使用的,词语“或”是指一组项目的任何可能的排列。例如,表达“A、B或C”是指以下中的至少一者:A、B、C、或它们的任意组合,例如以下中任何一者:A;B;C;A和B;A和C;B和C;A、B和C;或任何项目的倍数(例如,A和A;B、B和C;A、A、B、C和C等)。

尽管已经用专用于结构特征和/或方法动作的语言描述了该主题,但应理解,在所附权利要求书中所限定的主题不必限于上述特定特征或动作。本文已出于说明的目的描述了特定的实施例和实施方式,但可以在不脱离这些实施例和实施方式的范围的情况下进行各种修改。上述特定特征和动作是作为实现所附权利要求书的示例形式而公开的。因此,除了所附权利要求书之外,实施例和实施方式不受限制。

以上所提到的任何专利、专利申请和其它参考文献都通过引用结合到本文中。如果需要,可以对各方面进行修改,以采用上述各种参考文献的系统、功能和概念来提供另外的实施方式。如果通过引用结合的文档中的陈述或主题与本申请的陈述或主题相冲突,则以本申请为准。

技术分类

06120116541498