用于为视觉显示器生成补充数据的系统和方法
文献发布时间:2023-06-19 11:17:41
交叉引用
本申请要求于2018年9月21日提交的美国临时专利申请号62/734,824的权益,该美国临时专利申请通过引用以其整体并入本文。
背景技术
虚拟现实(VR)努力创建沉浸式的虚拟世界,其生成在虚拟世界中物理存在的感觉。沉浸感取决于用可信的图像、声音和其他刺激包围玩家。可信的、逼真的刺激引发了一种意识状态,其特征是部分或完全暂停怀疑,这使能在虚拟环境中对刺激进行动作和反应。
然而,在玩家自身的移动和化身的移动之间缺乏同步,其降低了玩家的沉浸感。由于完美的运动跟踪通常不是大多数游戏应用的逼真选项,因此游戏可以为化身或其一部分做动画,其中化身的移动不一定与玩家自己的移动关联。缺失数据可能是跟踪数据永久或暂时缺乏的问题。例如,跟踪系统可以跟踪一些身体部位并且不跟踪其他部位,可以错过帧,可以包括比能够使能逼真跟踪的更少的传感器或适当放置的传感器,等等。
例如,游戏动画化身通常为手做动画,供玩家用作他或她自己的;然而,动画手可能具有或可能不具有逼真的形状或运动。动画手提供基线沉浸感,因为像在日常生活中一样,我们最频繁看到的我们的身体部位是我们的手。照此,在虚拟世界中复制手遭受到来自玩家越来越多的视觉审视。关于手的至少一个挑战是为复杂移动手指做动画能够是实时的。提供逼真且直观的手指移动是朝向实现经改进的沉浸式体验的重要步骤。
另一个挑战是当为截肢者给身体完全的化身做动画时,引发怀疑的暂停。如果一只手、胳膊、腿或脚由于事故或疾病而被截肢,则十个被截肢者中有八个体验到肢体不再存在的不适感。该现象被称为幻肢疼痛。测试已经示出,如果大脑被骗认为截肢的肢体仍然附接到身体,则幻肢疼痛可以减轻。因此,沉浸式化身的生成在解决幻肢疼痛方面可以是有用的。
在VR之外,相关的挑战是实现沉浸式假体。假肢对用户命令反应越准确,假体就显现得越自然和令人满意。照此,假肢移动的改进可以有助于促进假体的自我认同感。
发明内容
本发明总体上解决了当跟踪人类移动时数据缺失或不足的问题。本发明分析被跟踪的身体部位的移动,并确定可能缺乏充足跟踪数据的相邻身体部位的补充移动。然后,补充移动数据与跟踪数据相组合进行显示。在一个示例中,系统收集用户身体部位中的一些的跟踪数据,为用户身体部位的其余部分生成补充移动数据,以及然后根据跟踪数据和补充跟踪数据的组合来为移动的化身做动画。补充跟踪数据可以超越关节,并且在没有对应末端效应器的情况下被生成。
感兴趣的一个应用是跟踪手腕移动,生成补充的手指移动,并用这两个移动来为化身做动画。感兴趣的第二应用是跟踪截肢附近的移动,确定如果缺失的肢体仍然附接,则它将做出什么补充移动,以及然后或者为这些移动做动画到身体完全的化身上,或者引起假体执行这样的移动。感兴趣的第三个应用是将跟踪数据和系统生成的相同身体部位的补充移动数据相组合,并使用该组合来改进化身动画准确性和精确度。
在一些实施例中,本公开包括:设置在用户上的一个或多个可佩戴传感器,其中可佩戴传感器收集和传输跟踪数据;与包括处理器可执行指令的存储器通信的处理器,其中指令的执行引起系统至少:接收跟踪数据;标识缺失的跟踪数据;生成补充跟踪数据以替换至少一部分缺失的跟踪数据;将跟踪数据和补充跟踪数据映射到3D模型上,其中3D模型是用户的虚拟表示;并传送3D模型以供显示。这样的系统可以通过将部分跟踪数据与关键姿势库进行比较、通过将部分跟踪数据与传送用于显示的在先3D模型聚类进行匹配或者利用逆向运动学来生成补充跟踪数据。
在一个方面中,本公开提供了一种用于生成补充跟踪数据的系统。该系统可以包括:一个或多个可佩戴传感器,其被配置为设置在主体上,其中可佩戴传感器被配置为收集和传输跟踪数据;与包括处理器可执行指令的存储器通信的处理器,其中指令的执行引起系统:(a)从该一个或多个可佩戴传感器接收跟踪数据;(b)将跟踪数据映射到3D模型上,其中3D模型是主体的范围和运动的虚拟表示;(c)标识3D模型的不完整部分,所述不完整部分包括未映射到跟踪数据的模型部分;(d)生成补充跟踪数据以替换至少一部分不完整部分;以及(e)在3D模型中包括补充跟踪数据。
在一些实施例中,通过将可用跟踪数据与关键姿势库进行比较来生成补充数据。在一些实施例中,将跟踪数据与关键姿势库中两个或更多个关键姿势之间的混合空间进行比较。在一些实施例中,跟踪数据与关键姿势库的关键姿势进行比较,以确定最强匹配。在一些实施例中,匹配的确定比远离不完整部分的关节和身体部位更重地加权最接近不完整部分的关节和身体部位的相似性。在一些实施例中,存储器包括引起系统访问一个或一系列在先3D模型的处理器可执行指令,其中在先3D模型先前被传送用于显示。
在一些实施例中,通过在一系列在先3D模型当中标识重复跟踪数据聚类,将跟踪数据与聚类匹配,并生成类似于聚类的匹配部分的补充数据,来生成补充跟踪数据。在一些实施例中,通过以下各项来生成补充跟踪数据:在一系列在先3D模型当中标识重复跟踪数据聚类,确定在重复跟踪数据聚类中可用跟踪数据最拟合在哪里,并生成模仿重复跟踪数据聚类的补充跟踪数据。在一些实施例中,处理器被配置为针对手势触发来分析该一个或一系列在先3D模型,其中手势触发的标识引起系统传送一系列更新的3D模型,该一系列更新的3D模型至少部分地与预先记录的手势动画混合。
在一些实施例中,当末端效应器的跟踪数据可用时,用FABRIK解算器生成补充跟踪数据,并且当末端效应器的跟踪数据不可用时,用聚类函数或关键姿势匹配生成补充跟踪数据。在一些实施例中,存储器包括处理器可执行指令,该可执行指令引起系统为系统针对其确实接收到跟踪数据的3D模型部分生成补充跟踪数据。在一些实施例中,通过将补充跟踪数据和跟踪数据混合来更新3D模型。
在一些实施例中,一个或多个可佩戴传感器包括电磁接收器和发射器、一个或多个光学元件、红外发射器、加速度计、磁力计、陀螺仪或其组合。在一些实施例中,处理器从电磁传感器和一个或多个相机两者接收跟踪数据。在一些实施例中,可佩戴传感器是无线的,并且与射频通信。在一些实施例中,该系统进一步包括可由用户佩戴的一个或多个条带,其中该一个或多个可佩戴传感器被配置为设置在该一个或多个条带中或条带上。在一些实施例中,显示器被配置为以物理方式、以虚拟现实方式或以混合现实方式显示更新的3D模型。在一些实施例中,跟踪数据包括手腕或掌骨跟踪数据,该手腕或掌骨跟踪数据用于确定3D模型的手指的补充跟踪数据。在一些实施例中,跟踪数据通过用户的至少一个关节与补充跟踪数据分离。在一些实施例中,处理器接收用户的“n”个身体部位的跟踪数据,并且处理器进行通信以显示具有“n + 1”个身体部位的更新的3D模型。
在另一方面,本公开提供了一种用于生成补充跟踪数据的系统。该系统可以包括与存储器通信的处理器,该存储器包括处理器可执行指令,该指令包括:跟踪数据集合,其中该跟踪数据涉及用户的一个或多个部位的位置或运动;3D模型,其中所述3D模型是用户的范围和运动的虚拟表示;库,其中所述库包括姿势、手势或两者的集合;补充跟踪数据集合,其中所述补充跟踪数据集合包括来自所述库的至少一个所选姿势或手势的至少一部分;组合模型,所述组合模型包括跟踪数据集合和补充数据集合。
在一些实施例中,补充数据包括在跟踪数据集合中不存在的肢体、附件、关节或足趾。在一些实施例中,补充数据包括在跟踪数据集合中不存在的运动周期。在一些实施例中,库与跟踪数据集合的比较用于从库中选择姿势或手势。在一些实施例中,指令进一步包括学习算法,其中补充数据集合由学习算法生成。在一些实施例中,指令进一步包括学习算法,其中姿势或手势由学习算法选择。在一些实施例中,通过跟踪数据集合与关键姿势库的比较来生成补充数据。在一些实施例中,比较包括在关键姿势库中的两个或更多个关键姿势之间的空间,并且生成补充数据以在那些空间之间混合。
在一些实施例中,通过将跟踪数据与关键姿势库内的关键姿势集合进行比较以确定匹配,来将跟踪数据集合映射到3D模型。在一些实施例中,通过比远离不完整部分的关节和身体部位更重地加权最接近不完整部分的关节和身体部位的相似性来确定匹配。在一些实施例中,指令包括用户运动的一个或一系列在先姿势、手势或两者。在一些实施例中,通过以下各项来生成补充跟踪数据:在一系列在先姿势、手势或两者当中标识重复跟踪数据聚类;将跟踪数据集合与聚类匹配;以及生成类似于聚类的匹配部分的补充数据。通过以下各项来生成补充跟踪数据:在一系列在先姿势、手势或两者当中标识重复跟踪数据聚类;确定在重复跟踪数据聚类中可用跟踪数据拟合在哪里;以及生成模仿重复跟踪数据聚类的补充跟踪数据。在一些实施例中,指令包括针对手势触发对一系列在先姿势、手势或两者的至少一部分的分析,其中手势触发的标识引起系统传送一系列更新的合并数据集合,所述更新的合并数据集合至少部分地与预先记录的手势动画混合。
在一些实施例中,当末端效应器的跟踪数据可用时,用FABRIK解算器生成补充跟踪数据,并且当末端效应器的跟踪数据不可用时,用聚类函数或关键姿势匹配生成补充跟踪数据。在一些实施例中,跟踪数据集合包括用于确定3D模型的手指的补充跟踪数据的手腕或掌骨跟踪数据。在一些实施例中,跟踪数据集合通过至少一个关节与补充跟踪数据分离。在一些实施例中,跟踪数据集合包括“n”个身体部位的跟踪数据,并且补充数据被映射到3D模型以形成具有“n + 1”个身体部位的组合模型。在一些实施例中,组合模型是以接近实时的时间生成的,被传送用于至少部分显示给用户,或者两者兼有。
在另一方面,提供了一种用于为视觉显示器生成补充数据的系统。该系统可以包括:(a)一个或多个电磁发射器和一个或多个电磁传感器,其被配置为选择性地放置在一个或多个被跟踪的身体部位上;以及(b)至少一个处理器,其与视觉显示器、所述一个或多个电磁发射器以及所述一个或多个电磁传感器通信,并且被配置为从所述一个或多个电磁发射器和所述一个或多个电磁传感器接收跟踪数据,并且生成包括不在跟踪数据内的投影运动并基于潜在运动库的补充显示数据。
在一些实施例中,处理器进一步被配置为使用跟踪数据在视觉显示器上显示所述一个或多个被跟踪的身体部位的移动和位置。在一些实施例中,该系统进一步包括可由用户佩戴的一个或多个条带,其中一个或多个发射器和一个或多个传感器被配置为设置在该一个或多个条带中或条带上。在一些实施例中,该系统进一步包括一个或多个光学元件,其中光学元件可由用户佩戴,并且其中一个或多个光学元件包括红外发射器、加速度计、磁力计、陀螺仪或其组合。在一些实施例中,处理器被配置为使用(1)木偶骨架装备动画技术、(2)顶点动画解决方案、或(3)两者的组合(4)来处理3-D图形,以生成补充显示数据。在一些实施例中,处理器进一步被配置为将跟踪数据和补充显示数据组合在3-D图形中,其中3-D图形包括化身或假体的模型,并且其中模型作为经处理的移动数据从处理器被传递。
在一些实施例中,显示器被配置为以物理方式、以虚拟现实方式或以混合现实方式显示补充显示数据。在一些实施例中,处理器进一步被配置为生成一个或多个被跟踪的身体部位的补充显示数据。在一些实施例中,跟踪数据包括手腕跟踪数据,并且补充显示数据包括手指移动数据,并且其中分析一系列一个或多个手腕或掌骨位置和移动以确定一个或多个手指的补充移动。在一些实施例中,处理器被配置为生成所述一个或多个被跟踪的身体部位、一个或多个未被跟踪的身体部位或两者的3-D图形,其中所述一个或多个被跟踪的或未被跟踪的身体部位包括手指、手、肘、肩、头、躯干、腰部、大腿、胫骨、脚、脚趾,其中来自一个或多个被跟踪的身体部位的跟踪数据被处理以生成第二一个或多个被跟踪的身体部位、未被跟踪的身体部位或两者的组合的补充移动数据。在一些实施例中,处理器被配置为通过分析来自玩家的手腕或掌骨的跟踪数据来生成手腕、手和手指集的3-D图形。在一些实施例中,处理器被配置为(i)分析一段时间内来自手腕的跟踪数据,(ii)确定手腕的预定义移动模式是否已经被执行,(iii)基于预定义移动模式的标识为手腕、手和手指集生成主题手势,其中主题手势包括挥动、指向或手掌张开,以及(iv)在显示器上生成包括主题手势的3-D图形或一系列3-D图形。
在另一方面,提供了一种用于跟踪主体的移动并显示化身的方法。该方法可以包括:(a)用一个或多个电磁发射器和一个或多个电磁传感器跟踪主体的一个或多个被跟踪的身体部位的移动;(b)从一个或多个电磁发射器和一个或多个电磁传感器接收一个或多个被跟踪的身体部位的被跟踪移动数据;(c)分析被跟踪移动数据,以确定一个或多个被跟踪的身体部位附近或与其相邻的一个或多个身体部位的补充移动数据;以及(d)为被跟踪移动数据和补充移动数据做动画到化身上。
在另一方面,提供了一种用于为化身做动画的方法。该方法可以包括:(a)接收包括一个或多个被跟踪的身体部位的位置、移动或两者的被跟踪移动数据;(b)通过分析被跟踪移动数据,确定一个或多个被跟踪的身体部位附近或与其相邻的一个或多个身体部位的补充移动数据;以及(c)为被跟踪移动数据和补充移动数据做动画到化身上。
在一些实施例中,补充移动数据通过至少一个关节与被跟踪移动数据分离。在一些实施例中,被跟踪移动数据包括手腕或掌骨,并且补充移动数据包括手、一个或多个手指或两者。在一些实施例中,跟踪一个或多个被跟踪的身体部位的移动的步骤包括跟踪多个身体部位“n”,并且为身体部位做动画的步骤包括为多个身体部位“n + 1”做动画。在一些实施例中,分析被跟踪移动数据以确定补充移动数据的步骤进一步包括分析一个或多个身体部位附近的第二一个或多个身体部位,并为被跟踪移动数据和补充移动数据的组合做动画到化身上。
通过引用并入
本说明书中提到的所有出版物、专利和专利申请都在如同每个个体出版物、专利或专利申请都被具体和单独地指示为通过引用并入的相同程度上通过引用并入本文。
附图说明
在所附权利要求中特别地阐述了本发明的新颖特征。通过参考以下详细描述,将获得对本发明的特征和优点的更好理解,以下详细描述阐述了其中利用本发明原理的说明性实施例、以及附图,附图为:
图1图示了根据一些实施例的示例计算环境。
图2A图示了根据一些实施例的头戴式显示器。
图2B图示了根据一些实施例的能够跟踪用户的移动的可佩戴传感器。
图3图示了根据一些实施例的从传感器数据收集到3D建模到化身动画的动画流水线。
图4图示了根据一些实施例的示例跟踪数据聚类。
图5示意性地图示了根据一些实施例的在用户身体上的不同传感器位置。
图6A-6E图示了根据一些实施例的跟踪用户的掌骨移动以估算手指移动的示例。
图7提供了根据一些实施例的如何可以使用有限数据来跟踪截肢的示例。
图8和图9图示了根据一些实施例的由装配有骨架的网格组成的3D模型。
图10图示了根据一些实施例的采用竖起大拇指关键姿势手势的手的3D模型。
具体实施方式
当玩家登录虚拟现实(“VR”)游戏时,所述玩家“成为”他们的化身。当玩家告诉他们的身体移动时,他们看到他们的化身相应地移动。如果系统实现了完美的跟踪,并且玩家的肢体计数等同于化身的肢体计数,则玩家的移动可以完美地映射到化身上,这从而使能改进的沉浸感。另一方面,如果化身比玩家有更多的肢体,或者如果完美的跟踪甚至暂时缺乏,则通过在其中缺乏跟踪数据的地方中显示跟踪的移动与逼真的补充移动相组合来实现改进的沉浸感。本公开的各方面提供了这样的功能。
为了有沉浸感,该系统生成的肢体可以理想地是响应性的。玩家的意图和意志可以转化为肢体移动。肢体可能显现得遵循物理定律,诸如通过发出声音并与虚拟环境互动。所有这些都可以利用作为可跟踪移动的衍生物和与之成比例的动画来完成。
存在用于手动画的至少两种通用方法。在第一种方法中,用手和前臂的一部分来为化身做动画。手一般可以在中立位置中做动画,其当玩家穿越虚拟世界时保持静态。当玩家与对象交互或按下控制器上的按钮时,手可能突然合上,例如抓住一对象。这样的VR游戏的示例包括Doom、Rift Core 2.0、Occulus Unity和外科医生模拟器。Bethesda的SkyrimVR游戏使用类似的方法。然而,该游戏包括施魔咒(casting spells)(手掌面向前,其中手指张开)和跑步(手指稍微卷曲)的特定手动画。这些解决方案提供了基本的手动画,并且因此无法最佳地提供沉浸式体验。
在第二种方法中,玩家的手和手指可以被主动跟踪并显示在化身上。诸如NoitomHi5跟踪器手套和VRgluv之类的系统佩戴在手上,以提供跟踪和触觉反馈。这些解决方案可能是过分数据密集型的、繁琐的和昂贵的。诸如Leap Motion和Playstation move Heroes之类的系统用光学相机跟踪手指移动。光学跟踪系统可能是过分数据密集型的,并且这样的系统一般遭受较差的保真度、有限的范围和/或视线挑战。微软专利9,861,886、9,824,478和8,451,278公开了具有类似缺点的光学跟踪技术。
关于截肢的动画移动,可能存在若干种解决方案。第一种解决方案使用镜子。通过在胸部前方以一角度放置镜子,可以创建身体对称的视觉错觉。如果一个人假装用双手同时做相同的移动,则在许多情况下,可以使大脑确信它与被截肢的手接触。这样的技术遭受到来自缺失肢体的感知反馈的不良逼真度影响,并且该装置是粗糙的,并且该错觉通常不是令人信服的(即,不是沉浸式的)。
第二种解决方案跟踪肢体的未受损伤的部分,并且然后为完全肢体做动画(参见Ambron等人的“Immersive Low-Cost Virtual Reality Treatment for Phantom LimbPain: Evidence from Two Cases”)。在Ambron的研究中,经桡动脉截肢(膝盖以下)的参与者使胫骨的剩余部分被跟踪,由此为完全的胫骨和脚做动画;然而,虽然动画包括胫骨相对于大腿的移动,但是它们没有公开脚移动动画。
在第三种方法中,用户的截肢可以根据在截肢的“残肢”处或其附近产生的肌电图(“EMG”)信号而做动画。当正确执行时,用户可以单独使用他们的想法来控制游戏中化身(或假肢)上截肢的移动。这样的方法遭受延长的设置时间。该设置需要放置和更换电极,直到找到最大信号幅度。该设置通常需要教导学习算法来解释用户的特定EMG信号,由此学习的算法可以最终将原始EMG信号转化成移动数据。例如,为了教导该算法,可以请求用户尝试一遍又一遍地做出各种手形状,并且学习算法使用这些尝试移动的实例作为训练数据。该方法还面临若干个基本挑战。该技术取决于用户的EMG技能(用户可以控制其EMG信号有多好)和电极可以有多可靠地拾取信号。
当移动跟踪数据不足或不存在时,本公开的各方面提供了用户移动的改进表示。当跟踪人的移动时,本公开的各方面可以为缺失数据问题提供一个或多个解决方案。本公开的系统和方法可以取得可用跟踪数据并生成补充移动数据,其中跟踪数据可能永久地或暂时地、完整地或部分地缺乏。本公开的系统和方法可以根据被跟踪移动数据和补充移动数据来为移动做动画或显示移动。在一些情况下,本公开的系统和方法可以用玩家(例如,化身)或其一部分(例如,部分化身或假体)的表示来培养自我认同感。为了实现这一点,玩家的表示可以是视觉上逼真的,并且它可以显现得可靠地响应于玩家的意志和命令。
缺失数据问题的至少一个挑战可能是准确地分析在衔接(articulate)关节一侧的身体部位的跟踪数据,以预测关节另一侧的身体部位的移动。在一些实施例中,本公开利用骨骼和顶点动画技术的组合来应对该挑战。在一些实施例中,本公开提供经学习的算法和/或级联算法来对跟踪移动建模并预测补充移动。在跨关节上缺乏跟踪数据的情况下,本公开的各方面可以在不使用末端效应器的情况下为在关节两侧的身体部位的移动做动画。
本公开为手指提供了一种或多种动画解决方案,其能够将玩家的手从手套、手持控制器或覆盖手指和/或限制手指移动的类似工具中解放出来。在一些实施例中,本公开为手指提供了不利用相机跟踪手指移动的动画解决方案。在一些实施例中,该解决方案可以利用当人弯曲和扭转他或她的手腕或掌骨时手指做出的移动。这样的手指移动可以模仿手指和手腕的自然移动或自动移动。本公开的系统和方法显示该手指移动,并且从而提供增加的沉浸感和视觉增强。在一些实施例中,预定义的手腕或掌骨运动和移动模式可以触发特定的手势,诸如指向、挥动或张开手掌。
在一些实施例中,本公开的系统和方法可以利用来自肘、膝盖、脚和脚趾附近的身体部位的跟踪数据,以便为肘、膝盖、脚和/或脚趾生成补充的移动动画。例如,来自肘的跟踪数据可以用于生成前臂和/或手腕和/或手指的补充数据。例如,来自膝盖的跟踪数据可以用于生成小腿和/或脚踝和/或脚趾的补充数据。例如,如果特定身体部位的跟踪数据不充分或缺乏,则来自一个或多个附近身体部位的跟踪数据可以用于确定或预测正确的移动或手势来做动画。
本公开的系统和方法为沉浸式的、超越关节的并且需要最小设置的截肢动画提供了至少一些解决方案。在残肢附近的跟踪数据可以用来预测肢体将可能做什么移动。这样的移动然后可以做动画到化身上或者用于影响假体的移动。
本公开的各方面提供了能够跟踪、建模和显示用户的视觉表示的计算环境。图1图示了根据一些实施例的示例计算环境。计算环境可以包括一个或多个印刷电路板(PCB)。计算环境可以作为单个设备或跨若干个设备运转,并且在一些情况下,由一个或多个印刷电路板组成。一般而言,计算环境可以在物理空间或虚拟空间中跟踪、建模和显示用户或主体的视觉表示。计算环境可以跟踪用户或主体环境以及物理空间中的移动。计算环境可以在虚拟空间中生成用户的3-D模型。计算环境可以为用户显示模型的视觉表示,如图3中描绘的。例如,视觉表示可以是显示在屏幕上的化身,其中化身的运动由用户控制。计算环境可以将用户在物理空间中的运动映射到化身在虚拟空间中的运动。
计算环境可以包括软件和硬件组件,其使得能够执行允许用户和/或计算环境玩游戏和各种类型的媒体的应用。该软件可以允许用户和/或计算环境控制和操纵非游戏应用和操作系统。计算环境可以包括一个或多个传感器、处理器、图形处理单元(GPU)、视频编码器/视频编解码器、声卡、传输器模块、网络接口和发光二极管(LED)。这些组件可以容纳在本地计算系统上,或者可以是与本地计算系统有线或无线连接的远程组件(例如,远程服务器、云、移动设备、连接的设备等)。可以通过一个或多个总线(例如,外围组件互连(PCI)总线、PCI-Express总线或通用串行总线(USB))来促进组件之间的连接。利用这样的总线,计算环境可以能够集成许多组件、许多PCB、许多远程计算系统。一个或多个系统管理控制器可以在总线和它们集成的组件之间提供数据传输管理功能。这样的管理控制器可以促进计算环境对这些组件的编排,这些组件可以各自在定义的时间框架内利用单独的指令来执行应用。网络接口可以包括以太网连接或形成到局域网(LAN)、广域网(WAN)、内联网或互联网的无线802.11b、g、a或n连接的组件。
图2A和图2B图示了能够跟踪用户的移动的头戴式显示器(HMD)201和可佩戴传感器202的示例。在一些实施例中,本公开的系统和方法可以使用电磁跟踪、光学跟踪、红外跟踪、加速度计、磁力计、陀螺仪、肌电跟踪、其他跟踪技术或一种或多种这样的跟踪方法的组合。跟踪系统可以是如本文公开的计算系统的部分。跟踪工具可以存在于一个或多个PCB上,其中它们可以监视一个或多个用户以执行一个或多个功能,诸如:捕获、分析和/或跟踪主体的移动。在一些情况下,系统可以利用多于一种的跟踪方法来改进可靠性、准确性和精确度。
电磁跟踪可以通过使交流电流经具有三个正交(x,y,z)线圈的一个或多个铁氧体磁芯来实现,从而以三个正交频率传输三个偶极场。交流电生成偶极连续波电磁场。在多个铁氧体磁芯的情况下,使用频分复用可以实现磁芯之间的差异。美国专利8,520,010和10,162,177提供了附加的细节。磁芯可以用于从彼此、用户周围的含铁对象和/或地球磁场发射和/或接收EM信号,以确定磁芯以及因此传感器的位置和定向。
惯性测量单元(IMU)可以进一步实现跟踪。IMU可能包括加速度计、磁力计和陀螺仪。加速度计测量给定PCB在物理空间中经历移动的速度改变率。磁力计通过在给定位置和定向的强度和方向来表征磁场向量。陀螺仪利用角动量守恒来确定给定PCB的旋转。IMU的个体组件用于补充、验证和改进电磁传感器捕获的跟踪数据。在一个示例中,可佩戴传感器202利用电磁跟踪和IMU跟踪的组合来捕获、分析和跟踪用户的移动。
光学跟踪和红外跟踪可以用一个或多个捕获设备来实现。在一些实施例中,系统可以使用电磁跟踪和光学跟踪的组合来执行跟踪功能。在一些情况下,用户佩戴相机。在一些情况下,捕获设备可以采用RGB相机、飞行时间分析、结构化光分析、立体图像分析或类似技术。在飞行时间的一个示例中,捕获设备发射红外(IR)光,并检测散射和反射的IR光。通过使用脉冲IR光,每个个体光子的发射和捕获之间的飞行时间指示光子行进的距离,并且从而指示被成像对象的物理距离。这可以允许相机分析图像的深度,以帮助标识环境中的对象及其位置。类似的技术可以针对相移、强度和光图案失真(诸如位图)分析反射光。立体图像分析利用被分离一定距离的两个或更多个相机来查看空间中相似的区域。这样的立体相机以一个或多个角度捕获给定的对象,其使能实现对象的深度分析。在一个示例中,HMD201利用一个或多个相机204,其使能实现光学跟踪以标识物理空间中的对象或位置,从而充当锚、例如(0,0,0)。然后,跟踪系统确定相对于锚的全局移动。
肌电跟踪可以使用能够感测神经脉冲(EMG)信号的多个传感器来实现。传感器可以用带、用导线或用针电极附接。EMG信号通过经学习的算法被解码成所意图移动的模型,该经学习的算法至少部分地由如下讨论的处理器执行。监视EMG活动可以对于测量与神经可塑性相关联的神经活动有用。
在一个具体示例中,电磁传感器各自包括具有三个正交线圈的接收器(RX)模块,所述三个正交线圈被配置为接收由传输器(TX)生成的电磁场,所述传输器(TX)也包括三个正交线圈。通过离散傅立叶变换(DFT)处理在每个线圈处收集的磁场数据。利用每个模块上的三个线圈,模块接收的信号可由3×3信号矩阵(“Sigmat”)表示,该3×3信号矩阵(“Sigmat”)是传输器-至-传感器半径向量和传输器-至-传感器旋转矩阵(也称为方向余弦或投影矩阵)的函数。IMU和相机系统可以用于校正电磁跟踪中的误差。在一个示例中,偶极场近似虑及根据方程1确定位置和定向(PnO),如美国专利4,737,794中所述。
方程1:
X–3×3 Sigmat矩阵(如在RX坐标中感测的)
N–3×3正交定向(在TX坐标中)传输器至传感器旋转矩阵(从IMU接收6个值)
r–3×1位置向量(在TX坐标中)(传输器至传感器半径向量)
B–3磁场,在r处,作为3×3矩阵的列(在TX坐标中)。
失真和干扰可以通过向方程添加E(r)来补偿。E(r)是从理论偶极场的超位置计算的结果,并且表示为未知磁场失真或干扰的3×3矩阵。如美国专利9,459,124中所述,E(r)可以被描述为误差矩阵,因为它补偿了计算的PnO中的误差。
方程2:
E(r)可以使用来自IMU和相机系统的数据来计算(如下面更详细解释的)。每个IMU通常包括加速度计、陀螺仪和磁力计。如美国专利10,234,306中所述,这些组件有助于校正PnO计算中的误差、噪声和相位模糊。例如,假设Sigmat被地上的大线圈生成的几乎均匀的EM场失真。为了对失真建模,可以确定失真场的方向(v)和每频率增益(P)。
失真场:
v–失真场的3×1方向(对于所有三个频率相同)
P–每频率失真场的1×3增益(标量)
方程3:
如美国专利申请2016/0377451A1中详述的,位置和定向也可以通过重力方程来校正,该重力方程是借助于卡尔曼滤波器传感器融合从IMU的加速度计和陀螺仪的融合中导出的。
重力方程:
重力方程的一部分可以替换失真场的方向(“v”)。该替换将失真场简化为关于重力的滚动,其减少了未知变量的数量,并且使方程更容易求解。该方程更容易求解,因为它将N(定向)的自由度(DOF)从3个角度减少到只有1个(绕重力滚动)。更多信息参见美国专利10,162,177。用Grx替换方程3中的失真场方向(“v”),得到方程4:
方程4:
要求解方程4,必须确定7个参数:
θ–N的滚动角
r–3D位置向量
P–失真增益。
Sigmat具有9个值(9 > 7),因此可能有唯一的解。对方程进行解析求解是困难的,然而迭代优化方法通过使用雅可比矩阵提供了更简单的解决方案。(例如,Levenberg-Marquardt算法)。
方程5(解算器1):
首先,使用解析偶极解(忽略失真)或通过跟踪来初始化
方程6:
当EM+IMU融合提供约束时,方程变为:
方程7(解算器2):
其中N =N融合
在一些实施例中,电磁跟踪系统是自参考的,其中PnO是相对于具有未知全局坐标的可佩戴发射器建立的。自参考跟踪系统可以以多种方式与全局坐标系合并。在一个示例中,本公开提供了包括相机204的系统。相机204记录并分析玩家周围的图像以建立锚点(例如,(0,0,0)点)。该相机204的移动被计算为相对于该全局坐标锚点的移动。
本公开的系统和方法通常包括传感器202A,其被配置为使得跟踪系统能够从自参考坐标转化到全局坐标。这样的传感器202A相对于系统的相机204具有固定的位置。如美国专利10,162,177中所述,该固定位置在自参考坐标和全局坐标之间提供了已知的距离和定向,从而允许它们合并。
当合并时,两个坐标系的优势最大化,而缺点最小化。在VR中,将跟踪系统锚定在现实空间中并准确定位玩家,作为一个整体,可以最好地通过光学系统来实现。然而,光学系统受到视线限制,并且因此对于确定玩家位置的细微差别(诸如肢体位置和其他身体配置信息)不理想。另一方面,电磁系统在跟踪肢体位置和身体配置方面非常出色,但通常需要静止的传输器来相对于现实世界参考进行位置跟踪。通过组合这两个系统,整个传感器系统可以被优化为既移动又准确。
本公开的系统和方法使用执行多个指令的一个或多个处理器,所述多个指令诸如是机器可读指令。指令包括从EM、光学、IR、IMU和/或肌电源接收、存储、处理和传输跟踪数据。跟踪数据可以通过有线或无线通信链路传送给处理器。在接收到跟踪数据时,处理器可以执行指令以将跟踪数据永久或临时存储为随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪速存储器、硬盘或其他合适的存储组件。这样的存储器组件可以是与处理器通信的独立组件,或者可以集成到处理器中。
处理器还可以执行用于构造虚拟空间实例的指令。该实例可以托管在外部服务器上,并且即使当用户没有登录到所述实例中时,该实例也可以持续存在并经历改变。替代地,实例可以是用户特定的,并且构造它所需的数据可以本地存储。在这样的实施例中,新实例数据可以作为用户从外部源下载到本地存储器中的更新来分布。在任一实施例中,虚拟空间的实例可以包括虚拟空间体积、虚拟地形(例如,地面、山脉、湖泊)、虚拟对象和虚拟角色(例如,非玩家角色“NPC”)。该实例可以以2-D或3-D方式构造和/或渲染。该渲染可以向用户提供第一人称或第三人称视角。该实例可以包括物理属性,诸如重力、磁性、质量、力、速度和加速度,所述物理属性引起虚拟空间中的虚拟对象以至少视觉上类似于现实空间中的现实对象的方式表现。
处理器可以执行用于分析和建模跟踪数据的程序。例如,处理器可以执行程序,该程序根据上述方程连同其他相关切题的数学公式来分析其接收的跟踪数据。这样的程序可以并入能够将跟踪数据转化成3D模型的图形处理单元(GPU)。GPU可以利用网格木偶、骨架装备、顶点动画、着色器引擎、逆向运动学(IK)引擎和/或类似的动画工具。在一些情况下,GPU可以至少部分地辅助GPU进行这样的计算。这允许GPU将更多资源专用于将3D场景数据转换到投影渲染缓冲区的任务。GPU可以通过使用一个或多个算法来细化3D模型,所述一个或多个算法诸如是在生物力学移动上学习的算法、通过解析和递增地考虑若干个跟踪数据源而收敛于解的级联算法、逆向运动学引擎、比例算法以及与数据处理和动画技术相关的其他算法。在GPU构造合适的3D模型之后,处理器执行程序以将3D模型的数据传输到计算环境的另一组件,或者传输到与计算环境通信的能够显示模型的外围组件。在一些实施例中,GPU经由总线将3D模型传递到视频编码器或视频编解码器,然后视频编码器或视频编解码器将代表3D模型的信息传递到合适的显示器。3D模型可以代表可以在虚拟空间的实例中显示的虚拟实体、例如化身。虚拟实体能够与虚拟空间内的虚拟地形、虚拟对象和虚拟角色进行交互。虚拟实体由用户的移动来控制。
图3图示了用于渲染化身的动画流水线的示例。动画流水线开始于从玩家303佩戴的传感器202收集跟踪数据。该跟踪数据被收集和处理以形成玩家身体的3D模型304。数据的收集可以由HMD 201实现,并且数据可以由处理器、GPU或它们的某种组合来处理。3D模型304可以由虚拟骨骼和虚拟皮肤或网格组成,如下面更详细讨论的。一旦为玩家的最新移动确定了合适的3D模型304,就为该模型的表面做动画为虚拟现实环境中的化身305,以供玩家观看和控制。该流水线的快速执行可能是重要的,使得在虚拟现实环境中收集跟踪数据和为展示跟踪移动的化身做动画之间存在最小的延迟。玩家的移动和他们的化身的移动之间的延迟可能缩减玩家在VR中的沉浸感。在一些实施例中,为化身做动画而没有头。一个人通常看不见他们的头,所以这通常可能不是一个问题。在一些实施例中,虚拟现实环境可以包括镜子或镜像表面。在这样的实例中,可以用玩家面部的数字渲染来为化身做动画,这可以在镜子和镜像表面中露面。
在一些实施例中,当跟踪数据受限或不可靠时,处理器可以执行用于预测位置和定向的监督式学习算法的指令。该算法被训练成基于可用跟踪数据的类型和量来加权不同的预测技术。该算法可以被训练成用向前和向后到达逆向运动学(“FABRIK”)引擎来预测拟人移动,用逐帧分析来标识和复制重复的移动,并将在先位置和部分跟踪数据与关键姿势库中的位置进行匹配。在一些示例中,当末端效应器的跟踪数据可用时,该算法将把FABRIK解算器加权为更可靠。在一些示例中,当缺乏末端效应器的跟踪数据时,该算法将把逐帧预测或匹配预测加权为更可靠。
当缺乏跟踪数据时,该算法可以利用FABRIK解算器来预测位置和定向。FABRIK解算器使用两个骨骼的逆向运动学链来确定骨架的移动,从而将末端效应器重新定位到新的跟踪位置。骨架的关节可以被限制为仅允许相对于已知末端效应器位置的解剖学上正确的移动。这可以通过限制关节移动性来实现。平移移动可以用边界框来限制,并且旋转移动可以根据最大解剖学上可能的运动范围来限制。类似地,任何关节的自由度可以限制在六个自由度或更少。如果缺乏末端效应器的跟踪数据,则算法可能对FABRIK解算器的解更低地加权,并可能更重地依赖其他预测方法。
可以训练学习算法,以通过逐帧分析跟踪数据并应用平滑函数来预测位置和定向模式。术语“学习算法”或“机器学习”通常可以指代可以逐步改进任务的计算机性能的任何系统或分析和/或统计过程。机器学习可以包括机器学习算法。机器学习算法可以是经训练的算法。机器学习(ML)可以包括一种或多种监督式、半监督式或无监督式机器学习技术。例如,ML算法可以是通过监督式学习被训练的经训练算法(例如,各种参数被确定为权重或缩放因子)。ML可以包括以下各项中的一个或多个:回归分析、正则化、分类、降维、集成学习、元学习、关联规则学习、聚类分析、异常检测、深度学习或超深度学习。ML可以包括但不限于:k均值、k均值聚类、k最近邻、学习向量量化、线性回归、非线性回归、最小二乘回归、偏最小二乘回归、逻辑回归、逐步回归、多元自适应回归样条、岭回归、主成分回归、最小绝对收缩和选择运算、最小角度回归、典型相关分析、因子分析、独立成分分析、线性判别分析、多维缩放、非负矩阵因子分解、主成分分析、主坐标分析、投影寻踪、Sammon映射、t分布随机近邻嵌入、AdaBoosting、提升(boosting)、梯度提升、自举聚集、集成平均、决策树、条件决策树、提升决策树、梯度提升决策树、随机森林、堆叠概括、贝叶斯网络、贝叶斯信念网络、朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、隐马尔可夫模型、分层隐马尔可夫模型、支持向量机、编码器、解码器、自动编码器、堆叠自动编码器、感知器、多层感知器、人工神经网络、前馈神经网络、卷积神经网络、递归神经网络、长期短期记忆、深度信念网络、深度玻尔兹曼机器、深度卷积神经网络,深度递归神经网络或生成对抗网络。
在一个示例中,该算法接收第一级训练数据,该第一级训练数据包括执行重复锻炼的人的跟踪数据,诸如图4中所描绘的。训练数据集是专门构建的,以包括其中跟踪数据至少部分缺失的一帧或一系列帧。该算法被赋予为缺失的帧预测人的完整位置和定向的任务。在一个示例中,该算法标识在缺失帧或一系列缺失帧的任一侧、即相邻的帧具有完整跟踪数据的帧。然后,该算法执行平滑功能,其为相邻帧之间的混合空间做动画,这导致平滑且连续的运动。平滑函数递增地混合两个相邻帧的值,因此第一输入逐渐变换为第二输入。例如,如果第一输入是图4的位置402,并且第二输入是位置404,则位置403可以是算法在位置402和404之间做动画的混合空间渲染之一。该算法可以进一步分析在先跟踪数据,以标识展现重复位置和定向的跟踪数据的聚类,并标识最新近的帧属于聚类中的哪里。如果部分跟踪数据和在先帧可以与其中跟踪数据完整的聚类匹配,则算法可以简单地复制该聚类中的(一个或多个)在先帧。在一些情况下,平滑函数标识具有一些但不是全部缺失帧的聚类,并且平滑函数使用该聚类以用作相邻帧之间的中间混合空间输入,这通常增加准确性。
在第二示例中,该算法接收第一级训练,其中,该算法被提供有用于重复锻炼的完整系列的跟踪数据,并且被赋予对数据中的间隙应用平滑函数的任务,该平滑函数产生没有间隙以及平滑且连续锻炼移动的完成系列的跟踪数据。在该示例中,对于第二级训练,算法被提供有一系列跟踪数据,其中最后一帧缺失了至少一些跟踪数据。然后,该算法被赋予通过标识一系列跟踪数据中的移动模式以接近实时的时间(例如,快于第1/60秒)预测最后一帧的完整跟踪数据的任务,其中该算法标识具有重复移动的帧聚类,并假设继续遵循最后一帧的重复运动。
图4图示了算法在一系列跟踪数据内已经标识的帧聚类。该算法标识该聚类,因为该系列跟踪数据一次又一次地示出与该聚类相似的移动。该算法已经标识了从位置401到402、到403、到404、到405、到404、到403、到402、到401的移动的一系列跟踪数据中的模式。在该算法已经标识一聚类之后,它然后可以通过假设遵循该聚类的模式来预测一个或多个缺失的帧。例如,假设该算法具有一相邻帧402,然后具有两个缺失的帧,并且然后是另一个相邻帧405。该算法可以预测对于缺失帧做动画的适当帧是类似于位置403和404的某物。在一些示例中,该算法已经标识了该聚类,并且然后具有它可能以接近实时的时间预测的最后、最新近的缺失帧。该算法检查两个最新近的帧是否与位置402和403相似,并且按照该次序,该算法然后预测下一个帧可能看起来像来自聚类的位置404,并对该位置做动画,以便为其中暂时缺乏跟踪数据的该帧提供平滑动画。应当领会,图4仅图示了一聚类内的一些位置。假设图4的后和前移动对于每次重复花费10秒,并且假设每秒收集60次跟踪数据,图4所表示的聚类实际上将包括600帧,以供算法在被赋予提供平滑功能的任务时参考。
在一些示例中,向该算法提供由一系列帧组成的第二级训练数据,其中跨一个或多个最新近的帧之上缺乏跟踪数据,并且该算法被赋予预测这些最新近的帧的任务。例如,该算法被提供有先前渲染的身体位置、所有过去的身体位置的系列以及当前身体位置的有限跟踪数据的信息。该算法可以标识可用跟踪数据中的模式,以找到重复的帧聚类,例如聚类功能。该算法可以标识聚类中在哪里最新近的帧在跟踪数据和聚类的一个或多个帧之间具有改进的拟合。然后,该算法如遵循与在聚类中标识的相同模式渲染(一个或多个)最新近的帧。当对以重复移动执行锻炼的玩家进行跟踪时,聚类函数预测特别有效。当暂时缺乏跟踪数据时,算法可以简单地假设继续遵循移动模式,并渲染与玩家的移动模式连续的下一帧移动。
在第三级训练的一个示例中,该算法被提供有训练数据集合,训练数据集合跨某个关节被限制,因此可以仅基于相邻身体部位的移动来预测关节之外的移动信息。换句话说,跟踪数据缺乏末端效应器,并且可以基于聚类函数或关键姿势匹配来预测位置和定向。例如,手指的跟踪数据可能绝对不可用或暂时缺乏。手指的位置可以根据关键姿势库中的匹配来渲染,其中匹配仅基于手、掌骨、手腕或手臂移动的位置、定向、方向性和速度。
在第三级训练的一些示例中,学习算法可以被训练成通过查阅关键姿势库来预测位置和定向。关键姿势库可以填充有玩家在执行锻炼时发现自己所处的共同位置和定向的跟踪数据。在一个示例中,将可用跟踪数据与关键姿势库进行比较。可用跟踪数据可以包括完整跟踪数据的过去帧和部分跟踪数据的一个或多个最新近的帧。将该可用跟踪数据与个体关键姿势进行比较,并混合两个或更多个关键姿势之间的空间来搜索强匹配。如果渲染关键姿势将导致抖动或瞬间移动,则该算法可能拒绝在部分跟踪数据与给定关键姿势之间的匹配。例如,如果在时间0的跟踪数据是完整的,并且在时间1缺乏手臂位置,则该算法可以将部分数据与关键姿势进行比较。然后,如果关键姿势的手臂位置在位置和定向上不接近时间0的手臂位置,则该算法可以拒绝具有与时间1的部分数据完美匹配的关键姿势。从一帧到另一帧仅可以允许少量移动(通常每秒60帧被做动画),以确保平滑且连续的动画。该算法可以进一步利用聚类函数来标识模式,并与聚类的模式同步地匹配关键姿势,并相应地渲染缺失的数据。当评估与关键姿势的匹配的强度时,可以利用加权函数来改进匹配的强度,该加权函数对接近缺失数据的关节加权得大于远离缺失数据的关节和身体部位。在一些情况下,个体关键姿势可以具有相关联的方向性、速度向量变换函数或两者。例如,指示拥抱位置的跟踪数据可以将手指渲染为在朝向拥抱前进时卷曲,而手指在从拥抱缩回时张开。这样,单个关键姿势可以具有取决于方向性的两个或更多个相关联的手位置。此外,手指卷曲或伸展的程度可能与手臂移动的速度成比例。这里讨论的算法通常被供应有大量的训练数据集。在算法为每个训练数据集提供输出之后,将输出与正确的输出进行比较,并且根据算法的节点对正确或不正确输出的贡献对算法的节点进行重新加权。
在一些实施例中,处理器可以执行用于级联算法的指令,该级联算法通过解析可用数据并递增地分析解析的数据而收敛于解。例如,级联算法可以利用EM跟踪数据、相机跟踪数据、IMU跟踪数据、比例参数和约束参数。在一个示例中,通过评估最后一个3D模型并定义在给定时间框架内跨每个关节的最大移动的约束参数来实现收敛。然后,该算法针对满足该约束的解而搜索EM跟踪数据。将该解与可用的IMU跟踪数据进行比较,并相应地修改该解。然后,该算法采用该解,并根据定义在各种身体部位之间适当角度、长度和距离的比例参数对其进行细化。可以使用最小二乘法、标准差、平均值或中值方法来实现细化,并且可以忽略明显偏离其余部分的数据(例如,离群值)。如果可用,则该算法然后查阅相机跟踪来验证该解准确地表示如由(一个或多个)相机捕获的用户的移动和身体位置。该算法可以重复这些步骤中的一个或多个,以在可接受的解上达到收敛,并且该算法可以临时地、永久地或连续地修改执行所述步骤的次序,以更快地达到收敛。当算法实现正确解已被标识的可接受置信度时,实现了收敛。对于其中准确性不是绝对关键的一些化身部分,该置信水平可能较低,诸如坐着时的腿的位置。对于其他部分,该置信水平可能更高,诸如手的位置和定向。高优先级身体部位的动画可以接收处理优先化,以确保动画不展现出可见的时延。如美国专利8,520,010中所述,动画优先化可以通过在软件、硬件或两者的组合中精简动画流水线来实现。
在一些实施例中,计算环境生成用户的3D模型、虚拟空间的实例,并且然后传送该信息用于显示。音频和视频显示器可以通过头戴式显示器(HMD)201与计算环境可通信地连接,这在VR系统、电视、高清电视、监视器等中是典型的。可以在阴极射线管(CRT)显示器、发光二极管显示器(LED)、等离子体显示面板(PDP)、有机发光二极管(OLED)显示器、液晶显示器(LCD)、电致发光显示器(ELD)和其他可视化硬件上可视化音频和视频显示。在一些实施例中,用户在物理空间中的移动被映射到3D模型304上,并且该模型的至少一部分被渲染在虚拟现实中,用户可以看到并控制该虚拟现实(例如,化身305)。在一些实施例中,虚拟3-D模型的显示被复制在物理3-D模型上,诸如假肢。
示例HMD包括但不限于Oculus Rift、Oculus Go、Oculus Quest、HTC Vive、ValveIndex、PlayStation VR、Razer OSVR、Fove VR、StarBreeze StarVR、Pimax、VRgnineersVRHero、VRgnineers XTAL、Deepoon VR、Dell Visor、Asus HC、Acer WMR、HP WMR、HPReverb、Lenovo Explorer、 Samsung Odyssey Samsung Gear VR、 Varjo VR、 LG SteamVR、 GameFace Labs、 HELMET VISION、 Avegan Glyph、 Microsoft Hololens、 Pico VRGoblin、 Pico VR Neo、 Qualcomm Snapdragon、 Alcatel Vision、 Woxter Neo、 LenovoMirage、 Google Daydream等。
一般而言,计算环境利用具有传感器、处理器、GPU和其他外围计算机组件的PCB来收集跟踪数据,将跟踪的移动映射到化身上,为用户显示化身的至少一部分,并显示虚拟现实环境。
在更具体的实施例中,本公开的系统和方法利用由多个独立的PCB、头戴式显示器(HMD)201和相机204组成的跟踪系统来准确且精确地无线跟踪用户移动。每个PCB通常支持电磁(EM)传感器202,其可以由EM接收器和EM发射器/传输器组成。HMD 201通常容纳相机204、距相机204固定距离处的EM传感器202A以及用于观看虚拟现实的视觉显示器。HMD 201还可以通过包括处理器和图形处理单元(GPU)来充当跟踪系统的主机,该处理器和图形处理单元(GPU)被配置为跟踪用户的移动,生成表示用户的化身,并生成虚拟现实环境。总共有十一个或更多的电磁传感器可以跟踪身体的位置和定向。
图3图示了装配有各种传感器的用户303的示例,各种传感器被配置为捕获、分析和跟踪用户303的移动。在一个示例中,用户303装配有HMD 201,并且布带205用于将包含EM接收器、EM发射器或两者的许多传感器202附接在手腕、肘、腰部上和背部上(统称为“模块”)。在一些实施例中,该系统还包括在膝盖和脚踝上的传感器,如图5中所描绘。该系统可以包括任何数量的模块,例如,模块的数量可以小于10000、小于100、小于50、小于20、小于10等。本公开的系统和方法可以包括更多传感器。例如,系统可以包括10、20、50、100、200、500、1000、10000个传感器或更多。
在一些实施例中,HMD 201可以充当编排各种模块的操作的主机,并且充当各种模块之间的管道。在一个示例中,主机经由射频(RF)向其他模块发送上游信息。上游信息可以包括频率偏移、LED颜色偏移、自动同步指南和其他各种命令。在该示例中,各种模块经由RF向主机发送下游信息,诸如同步状态和计算的PnO。
在一些实施例中,每个可佩戴传感器最初是未指定的。在一些实施例中,在启动和放置时,传感器可以开始自动同步。自动身体定位虑及无缝、防错设置,并且不需要手动输入。一旦传感器被放置在身体上,系统就自动确定每个传感器被放置在身体上哪里,并照此指定它们。该自动同步特征通过简化和加快启动系统的过程,改进了易用性。在一个示例中,放置在身体上的传感器202提供相对于发射器佩戴在用户背部上的传感器202B的PnO数据。主机然后分析PnO数据,以确定各种传感器的定位。可以使用两个变量来确定每个传感器的位置——高度和半球(例如,右侧或左侧)。在图3中用户303的示例中,具有最高位置的传感器容易被标识为HMD 201上的传感器202A。具有最接近佩戴在背部上的发射器传感器202B的高度的传感器202被分别指定为左肘和右肘。向下移动,三个传感器202定位在大约腰部高度。在该高度处的最中间的传感器被指定为腰部传感器,并且左传感器被指定为左手腕,并且右传感器被指定为右手腕。膝盖和脚踝传感器可以通过它们的半球(左或右)和它们的高度来类似地标识。尽管在上面的示例中使用了可变高度和半球,但这应该被理解为一种实现自动同步的方式的简化。例如,在每个传感器处接收的磁场向量在它们可以确定高度和半球之前必须被处理。磁场向量可以替代地被处理以确定距发射器的绝对距离。附加地,如果玩家移动他或她的手臂,则传感器内部的加速度计可以有助于标识手腕和肘传感器。在手臂移动期间,通常手腕将具有所有传感器中最大的加速度,并且肘的加速度可能低于手腕且高于其他传感器。其余的传感器然后可以仅通过高度来确定。本公开的系统可以使用其他这样的处理方法或这样方法的组合来确定相对传感器位置。
即使当采用最先进的跟踪技术时,关于给定身体部位的跟踪数据有时也可能暂时不充足。VR系统中的至少一个问题可能是当用户或主体身体的一部分的跟踪数据永久或暂时不可用时为化身做动画的挑战。例如,有限数量的传感器可以设置在用户或主体的身体上,并且可以为化身做动画以包括未被跟踪的身体部位。例如,可以跟踪前臂,但是可以不跟踪手或手腕或手指的运动。例如,可以跟踪身体部位,但是传感器可能暂时不传输数据(例如,至接收器的视线可能被阻挡)。
图5图示了潜在的传感器202放置选项。在第一示例501中,传感器202附接到头506、背部507、腰部508、肘509、手腕510、膝盖511和脚踝512,总共有十一个传感器跟踪玩家的移动。该示例501的传感器放置对于准确跟踪整个身体的移动是最佳的。在其他实施例中,这些传感器中的一些但不是全部附接到玩家。在第二示例502中,传感器202附接到头506、背部507、肘509、手腕510、膝盖511和脚踝512,总共十个传感器。在第三示例503中,传感器202附接到头506、背部507、腰部508、手腕510和膝盖511,总共七个传感器。该示例503的传感器放置使能实现几乎全身跟踪,其中基于被跟踪的身体部位的移动来预测肘和脚的未被跟踪的移动并且为其做动画。在第四示例504中,传感器202附接到头506、背部507、腰部508、肘509和手腕510,总共七个传感器。该设置可以提供对上身的改进跟踪,并对于跟踪坐着时执行的锻炼有用。在第五示例505中,传感器202附接到头506、腰部508和手腕510,总共四个传感器。该设置可以很好地跟踪手臂和脊柱的移动。通常,传感器至少附接到手腕以用于需要手臂移动的锻炼、腰部传感器以用于需要倾斜的锻炼、以及脚踝以用于需要腿移动的锻炼。在任一前述实施例中,安装在玩家身上的相机可以辅助跟踪。
在这些实施例中的每一个中,一些身体部位的跟踪信息可能完全或暂时不可用。例如,手指可能不被直接跟踪,并且相机跟踪可能遭受到视线挑战、距离问题和计算限制。肘和腿位置可能不被跟踪,并且相机跟踪可能遭受到视线或距离问题。脚和脚趾位置不被跟踪,并且鞋子可能消除相机跟踪的可能性。本质上,这些跟踪系统提供有限的数据,根据该数据来确定整个化身的位置和移动。
本公开的系统和方法通过为身体部位生成动画来填补跟踪技术中的至少一些信息间隙或者仅仅是细化基于跟踪的动画,在所述身体部位中,跟踪是绝对不可用的,在所述身体部位中,跟踪是暂时缺乏的。至少一个目标是即使在具有有限的移动数据的情况下也提供具有准确的和逼真的生物测定移动的完全化身,以确保用户的最大空间沉浸感。
在一些实施例中,本公开的系统和方法从玩家的手腕或掌骨或其附近收集跟踪数据,生成补充的手指移动,并显示两者。当人移动他们的手腕时,放松的手指倾向于移动。当手腕弯曲、旋前和内旋时,手指自动弯动、弯曲和张开。根据该观察,可以基于玩家的手、手腕或掌骨的定向来预测玩家手指的定向。这是动画解决方案的示例,其超越了没有末端效应器的关节(即,在衔接关节一侧的跟踪数据用于确定在关节另一侧的移动)。
图6A-6E图示了可以仅基于手、掌骨或手腕移动来渲染的手指位置动画的各种示例。图6A图示了一只手,其中拇指朝上指,并且手指朝向手掌呈小曲线伸出,下文称为“中立”位置。从该参考系来看,“向内”是指手腕将手掌朝向前臂弯曲(图6B),“向外”是指手腕将手背朝向前臂弯曲(图6C),“向上”是指手腕将拇指朝向前臂弯曲(图6D),并且“向下”是指手腕将小指朝向前臂弯曲(图6E)。
当玩家的手腕被跟踪为向内移动时,化身的手可能朝向手掌卷曲,如图6B中所描绘。在替代实施例中,当玩家的手腕被跟踪为向内移动时,化身的手卷曲,其中小指首先卷曲并且向内卷曲得最远,而无名指、中指和食指依次卷曲,由此每个手指卷曲到比上一个稍微更少的程度。当玩家的手腕被跟踪为向外移动时,化身的手可以伸直,手指可以稍微向后弯曲,并且一些手指可以相对均匀地向外张开,如图6C中所描绘。当玩家的手腕被跟踪为向上移动时,化身的拇指可以朝向前臂伸出,手指可以稍微张开,手指可以轻轻地朝向手掌弯曲,并且小指可以向内缩,如图6D中所描绘。当玩家的手腕被跟踪为向下移动时,化身的小指可以朝向前臂伸出,手指可以张开,手指可以伸直,并且手指可以向后弯曲,如图6E中所描绘。
在给定的情况下,玩家身体的一部分的跟踪数据可能被永久地或暂时地限制。跟踪系统可能不跟踪玩家的肘,或者跟踪系统可能试图跟踪玩家的肘,并且然后至少暂时无法提供准确的跟踪数据。当肘的跟踪数据不存在或不准确时,本公开的系统和方法介入。来自相邻身体部位(诸如手和/或头)的跟踪数据用于确定可能的肘位置。在一些实施例中,逆向运动学引擎利用手的位置作为末端效应器来确定肘位置。在替代实施例中,头和手的位置在物理上约束了对应肘的可能位置。通常,肘位于头和手之间。肘位置被约束在被跟踪手的前臂长度内,这可以用于创建可能的解的球面。肘位置也相对于头受约束,肘在生物力学上受限于相对于头的位置范围。将该位置范围与在先确定的可能的解的球面进行比较,并且重叠区域是可能的解。将这些可能的解与在先的解进行比较——即,随时间跟踪——基于较早期的移动数据,帮助查明关节的正确角度。在一些实施例中,可用跟踪数据由在生物力学上训练的神经网络处理,如以上讨论的。然后,系统生成预期的肘位置。在没有冲突信息(诸如关于肘位置的跟踪数据)的情况下,在预期位置中为肘做动画。如果存在冲突的位置信息,则系统可以忽略提出完全不同位置的冲突,并且当两个位置在空间上接近时,系统可以在预期位置和冲突数据之间进行标准化。这样的技术也可以用于确定手指位置。
跟踪系统可能永久或暂时缺乏来自玩家的膝盖和脚的准确跟踪数据。在一些实施例中,本公开的系统和方法查阅来自头、手、腰部和/或腿的跟踪数据来预测玩家的膝盖和脚的移动。该系统应用相同的技术来确定肘位置,以确定膝盖和脚的位置。例如,腰部跟踪数据可以用于建立膝盖和脚的可能位置的范围。此外,相机和IMU可以指示腰部与地面的距离。将该信息与用户的腿长相组合允许系统进一步约束膝盖和脚的可能位置的范围。
在一个应用中,用户的高度和腰部传感器距地面的距离指示用户很可能坐着。替代地,用户正在玩其中假定坐着的游戏。在任一情况下,系统至少使用腰部传感器来确定膝盖和脚的可能位置。例如,在中立坐姿下,膝盖和脚可以被假定为分开大约一英尺并且垂直定向。当腰部被跟踪为向前移动时,可能为膝盖做动画为变宽,并且可能为脚底做动画为在它们的外边缘上升。替代地,膝盖可能变窄,并且脚可能在它们的内边缘上升。发生哪种变化可能取决于设置和/或手跟踪数据。例如,被跟踪为在腰部以下在身体中线处或靠近身体中线伸出的手可引起膝盖动画变宽。而被跟踪为在腰部以下靠近身体边线伸出的手可引起膝盖动画变窄。在另外的实施例中,指示腰部向右倾斜或向左倾斜的跟踪数据可引起膝盖分别被做动画为向右倾斜和向左倾斜(例如,躯干倾斜在膝盖和脚中被模仿)。这样的动画可以对照可能偶尔捕获腿图像数据的相机跟踪数据来验证。
在一些实施例中,本公开的系统和方法为化身上的脚趾移动做动画。脚趾的光学跟踪和可佩戴跟踪设备大多不实用或无效。为脚趾移动做动画的最实用方法是跟踪相邻关节,诸如脚踝、膝盖、臀部和/或腰部,并根据该跟踪数据预测脚趾最可能的移动。像手指一样,当一只脚在脚踝处弯曲和扭曲时,脚趾以可预测的方式移动。在一些实施例中,本公开的系统和方法为脚趾提供动画,该动画是对这些其他关节处的移动的补充。例如,跟踪指示用户抬起他们的脚掌同时保持脚后跟埋置的数据可引起伸展和/或张开脚趾的动画。跟踪指示脚踝旋转的数据可引起动画在所述旋转的相同方向上伸出。跟踪指示用户踮起他们的脚尖站立的数据可引起脚趾屈曲以抓紧地面的动画。
图7图示了根据一些实施例的为具有一个或多个缺失肢体的用户700生成身体完全的化身706。可以针对移动跟踪截肢701、702周围的身体部位。然后,该移动信息可以用于生成具有缺失肢体的化身703,由此“幻肢”展现对玩家的跟踪移动的补充移动。如以上讨论的,最可能的移动可选地由在生物力学上训练的学习算法来确定。该算法基于可用跟踪数据确定最可能的移动。可选地,采用肌电跟踪。肌电跟踪跟踪并记录在残肢(例如,704、705)处或附近的EMG信号来确定所意图移动。然后在确定最可能的移动中考虑所意图移动。然而,这样的方法需要大量的准备和设置。最可能的移动然后被渲染在化身上或者被传送到物理假肢以影响其移动。
本公开的系统和方法可以与替代形式的跟踪数据结合使用,以辅助用户控制假肢。本质上,用户残肢的移动被跟踪,并且在那里捕获的移动数据被用于建立预期运动或者将运动的可能范围限制到特定子集。然后,该信息被用于帮助确定假体执行的移动。
本公开的系统和方法为玩家提供有价值的视觉刺激,即他们再一次具有缺失的肢体。玩家被跟踪的移动引起肢体移动,就好像他们在控制肢体一样。肢体可能能够与游戏中的对象进行交互。视觉刺激、控制外观和交互性的组合有助于创建一种玩家已经恢复他们的肢体的印象。这对经历幻肢疼痛的人尤其有帮助。这些感觉的组合可以帮助玩家认识到缺失的肢体没有疼痛,它没有主动受伤,缺失的手或脚是放松的,并且没有时常紧张(一些手截肢者有他们缺失的手时常紧握成紧拳头的感觉),并且可以限制伸缩并发症。
除了添加截肢之外,本公开的系统和方法可以用于添加其他额外的肢体。例如,基于单个肩膀的移动,玩家可以控制两个手臂,将这两个手臂做动画为附接到化身的单个肩膀。类似地,基于单个膝盖的跟踪移动,玩家可以控制两个附件,将这两个附件做动画为附接到化身的膝盖。玩家被跟踪的肢体确定了(一个或多个)额外肢体的移动,并且通过练习,玩家能够取得对额外肢体的控制,并学习如何与他或她身体的其余部分同步地移动该额外肢体。
本公开的系统和方法可以提供用户移动到游戏内化身上的实时改进映射,由此用户通过移动他或她自己的身体来控制化身。在典型的游戏中,带有各种按钮的控制器被用来控制游戏中的化身。玩家的输入是有限的,并且因此可能的移动是有限的,所以实际上预先为每个可能的移动做动画,并且在按下相关联按钮时简单地显示这样预先记录的动画。由用户身体移动控制的动画更复杂。
在典型的VR游戏中,针对位置并且有时是定向来跟踪用户的手。这要求游戏以察觉不到的帧速率(即,每秒60+帧)捕获跟踪数据,将最新近的帧与一个或多个较早前的帧进行比较,以确定是否存在跨所述帧的移动,为表示用户在少于第1/60秒前的位置的化身渲染帧,由此连续帧的渲染创建平滑运动的外观。典型地,针对位置和定向跟踪手,并且手的跟踪数据被用作末端效应器,以使得逆向运动学能够确定附接的身体部位(诸如前臂、上臂等)的正确位置。手位置动画通常是对于第一人称VR游戏要求的绝对最小值,然而手位置就其本身而言不太可能为玩第三人称VR游戏的玩家提供足够的沉浸感。一般而言,化身映射到用户越多,体验就变得越沉浸式。
沉浸感需要用户的移动忠实地映射到化身。用户通过移动他们自己的身体来控制化身,并且因此化身可能能够模仿用户执行的每一个可能的运动。对每一个可能的位置都具有预先记录的运动不是不实用就是不可能。相反,动画可以从工具集合被渲染,所述工具集合的使用允许按需渲染。在一些实施例中,本公开的系统和方法利用被称为关键姿势的许多预先记录的3D模型。关键姿势通常是由多个顶点定义的化身的多边形渲染。用户在给定时间点的位置是通过将最近的关键姿势与它们对用户跟踪位置的接近度成比例地混合来渲染的,例如顶点动画。在一些实施例中,本公开的系统和方法利用骨架装备,由此骨架装备的骨骼在渲染过程中被操纵以将化身定位在类似于用户自己的位置的位置中。在替代实施例中,应用顶点和骨架动画的组合来渲染化身。
本公开的系统和方法可以利用3D建模来生成被称为化身的虚拟实体。化身可以由虚拟骨骼、虚拟皮肤或网格以及虚拟衣服组成。
在一个示例中,化身包括虚拟骨骼,并且包括促进肢体和其他身体部位的形成的内部解剖结构。这些虚拟骨骼的骨架层级可以形成有向无环图(DAG)结构。骨骼可能具有多个子骨骼,但仅有单个父骨骼,从而形成树形结构。两个骨骼可以通过共享共同的父骨骼而相对于彼此移动。
虚拟皮肤可以围绕虚拟骨骼作为化身的外表面表示。虚拟皮肤可以被建模为顶点集合。顶点可以包括点云、三角形网格、多边形网格、细分表面和低分辨率笼中的一个或多个。在一些实施例中,化身的表面由顶点集合定义的多边形网格表示,由此每个多边形通过连接至少三个顶点来构造。
多边形网格的每个个体顶点可以包含位置信息、定向信息、权重信息和其他信息。顶点可以被定义为笛卡尔坐标系内的向量,由此每个顶点在笛卡尔空间中具有对应的(x,y,z)位置。在替代实施例中,虚拟骨骼变换可以被定义为四元数空间中的向量,由此每个骨骼在四元数空间中具有对应的(1,i,k,j)位置。骨骼变换的四元数旋转表示有益于避免万向节锁,万向节锁暂时降低被跟踪对象的自由度。万向节锁与跟踪相关联,并且因此与动画误差相关联。
化身网格顶点与骨架结构的移动可以通过线性混合蒙皮算法来控制。每个顶点与特定骨骼相关联的量由标准化权重值控制,并且可以分布在多个骨骼当中。这在下面的骨骼动画部分中被更全面地描述。
根据顶点动画、骨骼变形或两者的组合,利用移动为化身的表面做动画。动画技术包括利用混合空间,该混合空间可以同时组合多个驱动程序,以无缝和连续地解决化身移动。使用混合空间的示例是基于化身向前/向后和向左/向右移动来控制脚动画的扫射移动模型。另一个示例是表示具有不同手腕或掌骨位置(向内、向外、向上、向下)的手指位置的四个手形。在这两个示例中,每个形状或动画姿势取决于其驱动程序当前活动的程度被混合在一起,即,化身在世界空间中移动了多少或者手腕的当前跟踪位置。形素目标形状是受影响顶点的存储偏移,其可以混合在骨骼变形中并与其组合来创建更令人信服的变形。形素目标动画的示例是响应前臂移动的二头肌膨胀。关键姿势插值是化身从一个姿势到另一个姿势依次混合的骨骼移动,其中姿势是由动画师在骨骼变换上设置关键帧值来定义的。
可以实现特殊的网格来使能实现一些移动动画。其中移动动画与跟踪数据(例如补充移动)间接相关,相关联的3D模型可以包括与3D模型的其余部分分离的网格拓扑。作为示例,3D模型的手可以由与3D模型的其余部分分离的拓扑组成。为了实现移动动画,根据顶点动画、骨骼动画或这样技术的组合来修改手。
图8和图9图示了由装配有骨架的网格组成的3D模型。这些图示出了作为框架的网格801和作为用X、Y和Z轴标记的枢轴点802的层级的骨架,其中它们之间的线803指示骨骼的父代(parenting)关系。替代地,这些枢轴点802用(1,i,k,j)轴标签来标记,其对应于四元数坐标。每个轴都可以表征为数学向量。父代关系允许骨骼继承其父骨骼的运动。虚拟骨架的骨骼可以或可以不精确地模仿典型人体解剖中看到的关节。
骨架的每个骨骼形成变换,该变换影响与骨骼相关联的所有顶点。每个骨骼对每个顶点具有的影响量由加权系统控制。在一个骨骼动画方法中,根据逆向运动学(其中指尖位置用作末端效应器)实时仔细地执行手指衔接,以对游戏中化身的直观屈曲和逼真运动范围做动画。对于顶点动画方法,3D模型的骨架跨关节(或枢轴点)手动操纵,以形成3D模型的特定姿势。这些姿势有时被称为变形,因为它们是原始3D模型的变形。这些变形被保存为与原始模型的偏移或增量,以便用作顶点动画方法的关键姿势。
在顶点动画方法中,移动动画可以作为形素目标之间的插值来执行。形素目标是由原始多边形网格的副本创建的新形状,其中维持顶点次序和拓扑,并且然后移动顶点以创建新的所期望形状。形素目标然后被保存为从该顶点的原始位置到新目标位置的3D偏移集合,每个顶点一个。由要做动画的模型制成的每个变形都作为关键姿势或形素目标而跨各种触发机制存在。对于手的动画,将移动做动画为中立形状和一个或多个目标形状之间的插值。在基本水平上,应用形素目标是在保存的偏移向量的方向上朝向其目标形状线性移动每个顶点。混合形状的激活量由其权重控制。1.0的权重激活完全的目标形状。0.5的权重将使每个顶点恰好朝向目标位置移动一半。多个混合形状目标可以同时活动,其中每个混合形状目标由其自己的权重值控制。随着混合形状的权重随时间改变,实现中间形状之间的平滑插值。
为了显现得逼真,形素图像可以在其一个或多个姿势之间成比例地形变。对于手动画,这意味着可以既与手腕或掌骨移动成比例又具有相同的方向性地为手指移动动画做动画。该移动是通过跨多边形网格的每个顶点上应用驱动机构来实现的。驱动机构可以执行数学变换,该数学变换生成与手腕屈曲度线性相关或者与手腕屈曲度具有弯曲关系的形素形状。
在手腕屈曲和手指移动之间呈线性关系的情况下,从中立的25%的手腕屈曲可以引起朝向所述关键姿势变形25%并且朝向中立姿势变形75%的动画。如果手腕屈曲被定角度为朝向多于一个关键姿势,则手动画与附近关键姿势和中立姿势的接近度成比例地进行插值。例如,33%“向内”和33%“向上”的手腕屈曲测量可引起手动画的生成,该手动画被均匀地插值在手模型的中立姿势、“向内”姿势和“向上”姿势之间。该中间姿势存在于这三个个体姿势的混合空间内。
当与利用线性关系的模型相比时,手腕屈曲和手指移动之间的弯曲关系可以为给定的手腕屈曲生成不同的动画。假设一只手正从中立姿势移动到“向内”姿势。在手腕屈曲的前25%期间,动画可以穿过混合空间的一半,并产生50%“向内”和50%中立的动画。这样,动画驱动器在前端加速;示出了手腕屈曲的前四分之一的手模型混合空间的一半。混合空间的剩余一半然后在后端被减慢下来,并跨手腕屈曲的四分之三展开。当然,该方法可以颠倒,并且手动画可以在前端减慢,并且在后端加速。
顶点动画方法也可以利用放松功能来适应快速移动。快速移动可以引起动画技术因不适当地为极端手姿势做动画而暂时失去准确性。因此,手可以进入或离开姿势的速率受到缓动功能限制。缓动功能用于暂时将被做动画的移动的显示减慢下来。本质上,当移动被认为太快时,缓动功能在达到特定姿势时生成迟滞时间。此外,缓动功能可以避免来自笛卡尔坐标旋转期间可能发生的万向移动事件的动画抖动。
尽管已经参考手腕、掌骨、手和手指动画描述了动画技术,但是应当理解,相同的动画原理适用于化身的其他身体部位。附加地,由这样的技术确定的位置可以通知假体的特定动画或特定移动。
在一些实施例中,当系统跟踪触发手势时,动画可以呈现更复杂的移动。例如,当在游戏中与虚拟鸟交互时,玩家向鸟伸出的动作可以触发玩家化身的手的预先记录的移动动画的显示。当跟踪数据指示玩家已经将他们的手掌面朝上伸向鸟时,化身可以被渲染为手掌面向上,并且手指张开以允许鸟着陆。替代地,当跟踪数据指示玩家已经将他们的手掌面向下伸向鸟时,化身可以被渲染成手掌面向下并且食指完全伸展,而其余手指向内卷曲,由此鸟着陆在化身的食指上。
本公开的系统和方法可以将跟踪数据(跨若干个帧)与手势库进行比较,以标识用户何时执行了一个或多个手势。手势的标识触发动画协议。代替于根据用户的移动来渲染化身,根据用户的移动和一个或多个预先记录的动画的组合来渲染化身。手势的标识不引起下一个可视化帧示出手势动画。取而代之,逐渐引入手势动画。例如,最后跟踪的位置可以与最终手势位置混合。在一些实施例中,最后跟踪的位置和最终手势位置之间的转变花费大约一秒钟,由此转变跨越大约60个帧,其中每个连续的帧用被逐渐插值为更接近最终手势位置的动画被渲染。
手势库内手势的一个示例是挥动手势。在一些实施例中,当跟踪数据指示用户在枢转原本静止的前臂的同时已经将他们的手腕向后和前移动了时,或者作为手腕和前臂的平滑后和前弧线,化身可以渲染预先记录的挥动动画。在其他实施例中,挥动动画被修改以反映玩家正在移动的速度,被修改以反映手相对于前臂的角度,和/或被修改以匹配手势进行的时间长度。本质上,手势不完全接管渲染,取而代之,它们与跟踪数据混合,由此手势部分根据跟踪数据执行,并且部分根据预先记录的动画执行。可选地,挥动手势伴随有“你好”的音频线。
图10图示了竖起拇指手势的示例。这里,手的3D模型经由骨骼变形呈现竖起拇指的关键姿势。在一些实施例中,当跟踪数据指示用户已经伸展他们的手臂,并且然后在他们的拇指向上定向的同时扣下他们的手腕时,则无论姿势保持多久,系统都渲染预先记录的竖起拇指运动。对于膝盖、脚和脚趾可以开发类似的触发,所述触发可以为诸如踢球或跳舞之类的事情做动画。
化身的手可能展现出与玩家自己的运动没有直接联系的运动。例如,为了给化身的手注入生命,手指可以以给定的不移动间隔张开和伸展。也可以为脚趾显示这样的动画。
手可以被定制,以进一步改进沉浸感。玩家可以选择他们的性别,并且可以在化身上为性别特定的手做动画。玩家可以选择肤色、指甲颜色,并可以装备一个或多个戒指。这些定制进一步用于增加玩家的沉浸感,并且使游戏离使能实现在虚拟世界中暂停怀疑更进一步。
虽然本文已经示出和描述了本发明的优选实施例,但是对于本领域技术人员而言将显然的是这样的实施例仅仅是作为举例提供的。在不脱离本发明的情况下,本领域技术人员现在将会想到许多变型、改变和替换。应当理解,在实践本发明中,可以采用本文描述的本发明实施例的各种替代方案。意图以下权利要求限定本发明的范围,并且这些权利要求及其等同物范围内的方法和结构因此被覆盖。
- 用于为视觉显示器生成补充数据的系统和方法
- 用于为关系型数据库自动生成语义映射的方法和系统