使用碰撞体来捕捉屏幕对象的利记博彩app

文档序号:6354806阅读:419来源:国知局
专利名称:使用碰撞体来捕捉屏幕对象的利记博彩app
技术领域
本发明设计运动捕捉系统,尤其设计运动捕捉系统中的屏幕对象捕捉。
背景技术
在过去,诸如计算机游戏和多媒体应用等计算应用程序使用控制命令来允许用户操纵游戏人物或应用的其他方面。通常,此类控制命令使用例如控制器、遥控器、键盘、鼠标等来输入。近来,计算机游戏和多媒体应用已开始使用照相机和软件姿势识别引擎来提供人机接口(“HCI”)。使用HCI,检测、解释用户移动和姿势并将其用于控制游戏人物或应用的其他方面。在玩游戏和其他此类应用中,生成用户可用他或她的移动来控制的屏幕上玩家表示或化身。此类游戏或应用的一个常见方面是用户需要执行导致屏幕上化身与移动的虚拟对象接触并捕捉该虚拟对象的移动。常见的游戏示例包括接住移动的虚拟球,或在英式足球(英国的足球)中用用户的脚接触移动的球。给定物理的骨架跟踪的精确性质,以及在 3D真实世界空间和虚拟2D屏幕空间的不同参考帧之间协调手眼动作的难度,在玩游戏期间在3D空间中执行导致化身捕捉虚拟的移动屏幕对象的运动是特别困难的。

发明内容
本发明的技术一般涉及向用户提供捕捉移动的屏幕对象时的误差余量,同时创建用户正在完全控制屏幕上的活动的假象的系统。本系统可创建附连到捕捉对象的一个或多个碰撞体(collision volume),这些碰撞体可用于捕捉移动的屏幕上目标对象。捕捉对象可以是身体部位,如手或脚,但不必如此。在各实施例中,取决于移动的目标对象的矢量速度以及捕捉对象和目标对象之间的距离,目标对象的航线可被更改为拉向捕捉对象并由其捕捉。由于屏幕上对象可能快速移动且航线纠正可能较小,因此对目标对象的航线的更改可能难以或不可能被用户感知。由此,看上去用户正确地执行了捕捉目标对象所需的移动。在各实施例中,本发明的技术包括耦合到用于捕捉用户运动的捕捉设备的计算环境。使用该系统,该技术执行生成供用户使用第二虚拟对象来捕捉第一虚拟对象的误差余量的步骤,该第一虚拟对象在显示画面上移动。该方法包括以下步骤在第二对象周围定义碰撞体,确定第一对象是否在碰撞体内经过,以及如果确定第一对象在碰撞体内经过,则调整第一对象的路径以便与第二对象碰撞。在另一实施例中,该方法包括确定第一对象的速度和方向的步骤。该方法还至少部分地基于给定位置处第一对象和第二对象之间的距离以及第一对象在该给定位置处的速度来确定是否调整第一对象的路径以便与第二对象碰撞。此外,该方法包括如果确定至少速度与给定位置处第一和第二对象之间的距离之比超过了阈值比率,则调整第一对象的路径以便与第二对象碰撞。在还有一个实施例中,该方法包括确定第一对象的速度和方向,以及基于以下各项来确定是否调整第一对象的路径以便与第二对象碰撞的步骤i)第二对象和第一对象的给定位置之间的距离,ii)第一对象在给定位置处的速度,以及iii)由第一对象的移动路径和给定位置处第一和第二对象之间的线定义的参考角。此外,该方法包括如果确定速度和参考角的组合与给定位置处第一和第二对象之间的距离之比超过了阈值比率,则调整第一对象的路径以便与第二对象碰撞。


图1示出了用户正在玩游戏的系统的示例实施例。图2示出了可在本发明的技术的系统中使用的捕捉设备的示例实施例。图3A示出了可在本发明的技术的系统中用于解释移动的计算环境的示例实施例。图;3B示出了可在本发明的技术的系统中用于解释移动的计算环境的另一示例实施例。图4示出了从图2的系统生成的用户的骨架映射。图5示出了用户试图捕捉移动对象。图6示出了用于调整移动对象的方向以便被用户捕捉的碰撞体。图7示出了用户捕捉对象。图8是用于调整移动对象的方向以便被用户捕捉的碰撞体的替换实施例。图9是根据本发明的技术的第一实施例的捕捉引擎的操作的流程图。图10是根据本发明的技术的第二实施例的捕捉引擎的操作的流程图。图11是根据本发明的技术的第三实施例的捕捉引擎的操作的流程图。图12示出了粘附到不是用户身体的一部分的对象的碰撞体。
具体实施例方式现在将参考图1-12来描述本发明的技术的各实施例,本发明的技术一般涉及向用户提供捕捉移动的屏幕对象时的误差余量,同时创建用户正在完全控制屏幕上活动的假象的系统。在一个一般的实施例中,本系统可创建被附连到一个或多个捕捉对象且围绕该一个或多个捕捉对象的一个或多个“碰撞体”,这些碰撞体可用于捕捉移动的屏幕上目标对象。捕捉对象可以是身体部位,如手或脚,但不必如此。取决于移动的目标对象的矢量速度以及捕捉对象和目标对象之间的距离,目标对象的航线可被更改为拉向捕捉对象并由其捕捉。在其他实施例中,该碰撞体可类似于捕捉对象周围的磁场,其具有从碰撞体的中心向外逐渐减小的吸引力。在此类实施例中,碰撞体在目标对象的给定位置处的强度也可影响对象的航线是否被调整以便被捕捉。在以下描述的实施例的任一个中,屏幕上对象可能快速移动和/或航线纠正可能较小。由此,对目标对象的航线的任何更改可能难以或不可能被用户感知。由此,看上去用户正确地执行了捕捉目标对象所需的移动。最初参考图1-2,用于实现本发明的技术的硬件包括可用于识别、分析和/或跟踪诸如用户18等的人类目标的系统10。系统10的各实施例包括用于执行游戏或其他应用的计算环境12,以及用于从游戏或其他应用提供音频和视觉表示的视听设备16。系统10还包括用于检测设备20捕捉的用户的移动和姿势的捕捉设备20,计算环境接收并使用该移动和姿势来控制游戏或其他应用。这些组件中的每一个都会在以下详细描述。如图1所示,在一示例实施例中,在计算环境12上执行的应用可以是用户18可能正在玩的橄榄球(美式足球)游戏。例如,计算环境12可使用视听设备16来提供移动的球21的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移动来控制的玩家化身14的视觉表示。用户18可在真实空间中作出移动,并且这些移动如下所述地由系统10来检测和解释,使得玩家化身14模仿用户的屏幕上移动。例如,用户18可看见屏幕上移动的虚拟球21,且在真实空间中作出移动以将其化身的脚定位在球的路径中以便捕捉该球。如此处所使用的术语“捕捉”指的是例如球21等屏幕上目标对象接触到例如化身的脚等屏幕上捕捉对象。术语“捕捉”不具有时间方面。捕捉对象可捕捉目标对象,使得对象之间的接触持续不多于一个瞬间,或者对象可在捕捉时保持与彼此接触,直到发生某一其他动作来分开对象。捕捉对象可以是各种身体部位的任一种,或者不是化身的身体的任何部位的对象。例如,用户18可以手持诸如球拍等对象,该对象可作为捕捉对象来对待。可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。各种各样的其他对象可被抓握、穿戴或以其他方式附连到用户的身体,这些对象可作为捕捉对象来对待。在其他实施例中,捕捉对象完全不需要与用户的身体相关联。作为以下参考图12描述的一个示例,篮圈可以是用于捕捉目标对象(例如,篮球)的捕捉对象。关于捕捉对象和目标对象的进一步细节在下文中解释。图2示出可在目标识别、分析和跟踪系统10中使用的捕捉设备20的示例实施例。 关于与本发明的技术一起使用的捕捉设备的进一步细节在题为“Device For Identifying And Tracking Multiple Humans Over Time”(用于随时间标识和跟踪多个人的设备)的共同待审的专利申请第12/475,308号中有阐述,该申请通过整体引用结合于此。然而,在一示例实施例中,捕捉设备20可被配置成经由任何合适的技术——包括例如飞行时间、结构化光、立体图像等——捕捉带有深度图像的视频,该深度图像可包括深度值。根据一实施例,捕捉设备20可将所计算的深度信息组织为“Z层”,即可与从深度照相机沿其视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件22。根据一示例实施例,图像相机组件22可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维 (2-D)像素区域,其中2-D像素区域中的每一像素可表示来自相机的所捕捉的场景中的对象的长度,该长度可采用例如厘米、毫米等单位。如图2所示,根据一示例实施例,图像相机组件22可包括可用于捕捉场景的深度图像的顶光组件对、三维(3-D)照相机沈、和RGB相机观。例如,在飞行时间分析中,捕捉设备20的顶光组件M可将红外光发射到场景上,然后可使用传感器(未示出),使用例如 3-D相机沈和/或RGB相机观,来检测来自场景中的一个或多个目标和物体的表面的反向散射光。根据另一实施例,捕捉设备20可包括两个或更多物理上分开的相机,这些相机可从不同角度查看场景以获得视觉立体数据,该视觉立体数据可被解析以生成深度信息。捕捉设备20还可包括话筒30。话筒30可包括可接收声音并将其转换成电信号的变换器或传感器。根据一实施例,话筒30可用于减少目标识别、分析和跟踪系统10中的捕捉设备20与计算环境12之间的反馈。另外,话筒30可用于接收也可由用户提供的音频信号,以控制可由计算环境12执行的诸如游戏应用、非游戏应用等应用。在一示例实施例中,捕捉设备20还可包括可与图像相机组件22进行有效通信的处理器32。处理器32可包括可执行指令的标准处理器、专用处理器、微处理器等,指令可以是用于接收深度图像的指令、用于确定合适的目标是否可被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或模型的指令、或任何其他合适的指令。捕捉设备20还可包括存储器组件34,存储器组件34可存储可由处理器32执行的指令、3-D相机或RGB相机所捕捉的图像或图像的帧、或任何其他合适的信息、图像等等。 根据一示例实施方式,存储器组件34可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘、或任何其他合适的存储组件。如图2所示,在一实施例中,存储器组件 34可以是与图像捕捉组件22和处理器32进行通信的单独的组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。如图2中所示,捕捉设备20可以经由通信链路36与计算环境12通信。通信链路36可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线 802. lib,802. llg、802. Ila或802. Iln连接等无线连接。根据一实施例,计算环境12可经由通信链路36向捕捉设备20提供可用于确定例如何时捕捉场景的时钟。另外,捕捉设备20可经由通信链路36向计算环境12提供深度信息和由例如3-D 相机沈和/或RGB相机观捕捉的图像,以及可由捕捉设备20生成的骨架模型。存在各种用于确定捕捉设备20所检测的目标或对象是否对应于人类目标的已知技术。骨架映射技术因而可用于确定该用户的骨架上的各个点,手、腕、肘、膝、鼻、踝、肩的关节,以及骨盆与脊椎相交之处。其他技术包括将图像变换成该人体的身体模型表示以及将图像变换成该人体的网格模型表示。骨架模型然后可被提供给计算环境12,使得计算环境可跟踪骨架模型并呈现与该骨架模型相关联的化身。计算环境然后可在屏幕上将化身M显示为模仿用户18在真实空间中的移动。具体地,相机沈、观和设备20以骨架模型及其相关联的移动的形式捕捉的真实空间数据可被转发到计算环境,计算环境解释骨架模型数据并在与用户18的位置相同的位置呈现化身24,且该化身具有与用户18相似的运动。尽管与本发明的技术不相关,但计算环境还可将某些用户位置或移动解释为姿势。具体地,计算环境12可接收用户移动或位置骨架数据,并将该数据与所存储的姿势库进行比较来确定用户移动或位置是否与预定义姿势相对应。如果是,则计算环境12执行与该姿势相关联地存储的动作。图3A示出了可在系统10中用于解释位置和移动的计算环境的示例实施例。诸如以上参考图1A-2描述的计算环境12等计算环境可以是诸如游戏控制台等多媒体控制台 100。如图3A所示,多媒体控制台100包括具有一级高速缓存102、二级高速缓存104和闪存ROM 106的中央处理单元(CPU) 101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可以设置成具有一个以上的核,以及由此的附加的一级和二级高速缓存102和104。闪存ROM 106可存储在多媒体控制台100通电时在引导过程的初始化阶段加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速、高分辨率图形处理的视频处理流水线。数据经由总线从GPU108输送到视频编码器/视频编解码器114。视频处理流水线将数据输出到A/V(音频/视频)端口 140以传输到电视机或其他显示器。存储器控制器110连接到GPU 108以方便处理器访问各种类型的存储器112,诸如但不局限于RAM。多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一 USB主控制器126、第二 USB主控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外围控制器142 (1)-142 (2)、无线适配器148、和外部存储器设备146(例如闪存、外部⑶/DVD ROM驱动器、可移动介质等) 的主机。网络接口 1 和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的接入并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导过程期间加载的应用程序数据。提供媒体驱动器144且其可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器 144对于多媒体控制台100可以内置或外置的。应用程序数据可经由媒体驱动器144访问, 以由多媒体控制台100执行、回放等。媒体驱动器144经由诸如串行ATA总线或其他高速连接(例如IEEE 1394)等总线连接到I/O控制器120。系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端口 140以供外置音频播放器或具有音频能力的设备再现。前面板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150 和弹出按钮152以及任何LED(发光二极管)或其他指示器的功能。系统供电模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其它组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。作为示例,这种架构可以包括外围部件互连(PCI)总线、 PCI-Express 总线等。当多媒体控制台100通电时,应用程序数据可从系统存储器143加载到存储器112 和/或高速缓存102、104中并在CPU 101上执行。应用可呈现在导航到多媒体控制台100 上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144 中包含的应用和/或其他媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。多媒体控制台100可通过将该系统简单地连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互、看电影、或听音乐。然而,随着通过网络接口 1 或无线适配器148可用的宽带连接的集成, 多媒体控制台100还可作为较大网络社区中的参与者来操作。当多媒体控制台100通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器保留(例如,16MB)、CPU和GPU周期(例如, 5%)、网络带宽(例如,SlAs)等。因为这些资源是在系统引导时保留的,所以所保留的资源对应用而言是不存在的。具体地,存储器保留较佳地足够大,以包含启动内核、并发系统应用和驱动程序。 CPU保留较佳地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用生成的轻量消息(例如,弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图较佳地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率,也就不会引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在一组在上述所保留的系统资源中执行的系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存破坏最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频级(例如,静音、衰减)。输入设备(例如,控制器142(1)和142( )由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。相机26J8和捕捉设备20可定义控制台100的附加输入设备。图;3B示出了用于在系统10中解释一个或多个位置或移动的计算环境220的另一示例实施例,该计算环境可以是图1A-2所示的计算环境12。计算系统环境220只是合适的操作环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将计算环境220解释为对示例性操作环境220中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元件可包括被配置成实例化本发明的具体方面的电路。例如,本公开中使用的术语电路可包括被配置成执行固件或开关的功能的专用硬件组件。在其他示例实施例中,术语“电路”可包括由具体化可操作来执行功能的逻辑的软件指令来配置的通用处理单元等。在电路包括硬件与软件组合的示例实施方式中, 实现者可编写实施逻辑的源代码且该源代码可被编译成可由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择之一并留给实现者。在图;3B中,计算环境220包括计算机Ml,其通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括诸如ROM 223和RAM 260等易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统224 ¢10 包括如在启动时帮助在计算机Ml内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260 通常包含处理单元259可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非局限,图3B示出了操作系统225、应用程序226、其它程序模块227和程序数据228。计算机241还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图3B示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器238,对可移动、非易失性磁盘邪4进行读写的磁盘驱动器239,以及对诸如CD ROM或其它光学介质等可移动、非易失性光盘253进行读写的光盘驱动器M0。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由不可移动存储器接口,诸如接口 234连接至系统总线221,磁盘驱动器239和光盘驱动器240通常由可移动存储器接口,诸如接口 235连接至系统总线221。以上讨论并在图;3B中示出的驱动器及其相关联的计算机存储介质为计算机241 提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图3B中,例如,硬盘驱动器238被示为存储操作系统258、应用程序257、其他程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同, 也可以与它们不同。操作系统258、应用程序257、其他程序模块256和程序数据255在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘251和定点设备252(通常称为鼠标、跟踪球或触摸垫)向计算机241输入命令和信息。 其他输入设备(未示出)可以包括麦克风、游戏杆、游戏手柄、碟形卫星天线、扫描仪等等。 这些和其他输入设备通常由耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。相机 26,28和捕捉设备20可定义控制台100的附加输入设备。监视器242或其他类型的显示设备也经由接口,诸如视频接口 232连接至系统总线221。除监视器以外,计算机还可以包括其他外围输出设备,如扬声器244和打印机M3,它们可以通过输出外围接口 233连接。计算机241可使用至一个或多个远程计算机,如远程计算机M6的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件,尽管在图3B中仅示出了存储器存储设备M7。图:3B中所示的逻辑连接包括局域网(LAN) 245和广域网(WAN049,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器245连接至LAN 237。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,关于计算机 241所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图 3B示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。图4描绘了可从捕捉设备20生成的用户的示例骨架映射。在该实施例中,标识各种关节和骨骼每一手302、每一前臂304、每一肘306、每一二头肌308、每一肩310、每一髋312、每一大腿314、每一膝316、每一前腿318、每一脚320、头322、躯干324、脊椎的顶部3 和底部328、以及腰330。在跟踪多个点的情况下,可标识另外的特征,如手指或脚趾的骨骼和关节,或脸部的各个特征,如鼻和眼。根据本发明的技术,上述身体部位中的一个或多个可被指定为具有附连的碰撞体 400的捕捉对象。尽管碰撞体400被示为与脚320b相关联,但可以理解,图4所示的身体部位中的任一个可具有与其相关联的碰撞体。在各实施例中,碰撞体400是球体,且以其所关联的身体部位为中心。可以理解,在其他实施例中,碰撞体可以是其他形状的体,且不需要以相关联的身体部位为中心。碰撞体400的大小在各实施例中可以变化,并且当存在一个以上碰撞体400且每一碰撞体与一不同的身体部位相关联时,不同的碰撞体400可以是不同大小。一般而言,系统10可以被示为使用三个参考系来工作。第一个参考系是用户在其中移动的真实世界3D空间。第二个参考系是3D机器空间,其中计算环境使用运动方程来定义用户以及游戏或其他应用所创建的虚拟对象的3D位置、速度和加速度。第三个参考系是2D屏幕空间,其中用户的化身和其他对象在显示画面中呈现。计算环境CPU或图形卡处理器将对象的3D机器空间位置、速度和加速度转换成2D屏幕空间位置、速度和加速度,且使用这些2D屏幕空间位置、速度和加速度来在视听设备16上显示对象。在3D机器空间中,用户的化身或其他对象可以改变其景深,以便在2D屏幕空间上的前景和背景之间移动。当在2D屏幕空间中显示对象时存在一缩放因子用于3D机器空间中的景深的变化。该缩放因子将背景中的对象显示得比前景中的相同对象小,由此创建了深度感。可以理解,在碰撞体400处于不同景深时,与身体部位相关联的碰撞体的大小可以按相同方式缩放。即,尽管从3D机器空间的视角来看碰撞体的大小保持恒定,但随着景深的增加,其在2D屏幕空间中将变得更小。碰撞体在屏幕上是不可见的。但是对于在景深中更深的捕捉/目标对象,在目标对象受到碰撞体影响的捕捉对象和目标对象之间的最大屏幕距离将在2D屏幕空间中按缩放因子减小。用户知道当用户能够将他或她的身体以使得计算环境将该用户的3D机器空间身体解释为在移动对象的路径内的方式来定位时,捕捉该移动对象。当移动对象的3D机器空间位置匹配用户的身体的3D机器空间位置时,用户捕捉该对象且计算环境使该移动对象停下来。如果计算环境感测到移动对象错过了身体部位(其位置在3D机器空间中不相交), 则移动对象继续经过身体部位。一般而言,碰撞体400用于在用户正试图捕捉目标对象时提供误差余量,使得即使用户未将捕捉对象定位在与移动对象的路径相交的精确位置,该移动目标对象也被捕捉。碰撞体的操作的示例在以下结合图5-8的图示以及图9-11的流程图来解释。图5 示出了在3D机器空间中附连到用户404上的捕捉对象402的碰撞体400的呈现。本示例中的捕捉对象402是用户的脚320b。图5还包括目标对象406,其在本示例中是足球。目标对象406以矢量速度ν移动,该矢量速度表示目标对象406的3D机器空间速度。用户可能期望在捕捉对象402上捕捉目标对象406。在图5的示例中,用户可能希望在他的脚320b上捕捉目标对象足球406。假定目标对象406继续沿着相同的矢量速度 (不弯曲或改变航线)移动,且假定用户没有做出进一步的移动,则在图5中目标对象将错过用户的脚320b (没有被脚320b捕捉到)。
然而,根据本发明的技术,计算环境12还可包括此处称为捕捉引擎190(图2)的软件引擎。捕捉引擎190检查目标对象406相对于捕捉对象402的矢量速度,且如果满足某些准则,则捕捉引擎调整目标对象406的航线以使其与捕捉对象402相连并被捕捉对象 402捕捉。捕捉引擎190可用于根据各种方法来纠正目标对象的路径。以下更详细地解释了多个这样的方法。图9是捕捉引擎190的一个简单实施例的流程图。在步骤500,捕捉引擎将碰撞体 400附连到捕捉对象402。关于哪些对象是具有附连到其上的碰撞体的捕捉对象的确定在下文中解释。在捕捉引擎190的该实施例中,在目标对象406在碰撞体400的外边界内经过的任何时刻,调整目标对象406的路径,以使得目标对象406与碰撞体400所附连到的捕捉对象402相连并被该捕捉对象402捕捉。在步骤502,捕捉引擎190确定目标对象406是否在碰撞体400的边界内经过。如上所述,计算环境12保持在3D机器空间内移动的对象的位置和速度信息。该信息包括描述移动目标对象的速度的矢量方向和标量大小(即速率)的运动方程。计算环境12还可将对象标记为目标对象406。具体地,在移动对象可能未被捕捉的情况下,它将不被标记为目标对象,而能被捕捉的移动对象被标记为目标对象。由此,仅那些能够被捕捉的对象受捕捉引擎190的影响。在步骤506,在引擎190检测到目标对象406进入碰撞体400的边界时,该引擎可沿着碰撞体400内朝向捕捉对象402的矢量来调整对象406的方向。该简单实施例忽略了目标对象的速率、目标对象的方向和碰撞体的强度。该实施例的捕捉引擎190仅查看目标对象406是否进入碰撞体400。如果是,则纠正其路径,使得它在碰撞体400内与捕捉对象 402相连。在被捕捉对象402捕捉之后,目标对象在步骤508停下来。该实施例中目标对象406的路径可以在进入碰撞体400时被突然纠正来将其朝向捕捉对象402重定向。或者,目标对象406的路径可被逐渐纠正,使得该对象从其原始矢量向捕捉对象402弯曲。速率可以在一旦对象进入碰撞体400时被调整,并且更改其方向,也可以不被调整。在各实施例中,碰撞体的大小可能足够小,使得将目标对象的路径更改为与捕捉对象相连不被用户看见或不容易被用户看见。图10示出了捕捉引擎190的另一实施例。除了以下描述的附加步骤504之外,图 10的捕捉引擎与以上关于图9描述的相同,且以上对步骤500、502、506和508的描述适用于图10。在图10中,在检测碰撞体400内的目标对象406的步骤502之后,该实施例还包括确定目标对象是否比阈值速率行进得更快或更慢的步骤504。如果对象比该速率行进得更快,则不纠正其航线。然而,如果目标对象406比阈值速率行进得更慢,则在步骤506如上所述地纠正其航线。图10的实施例背后的概念是以较高速度行进的对象具有较大的动量,且较不可能更改其航线。阈值速率可由游戏应用的作者来任意选择。除了速度的速率分量之外,图10的实施例还考虑了目标对象406相对于捕捉对象 402的接近角。例如,当进入碰撞体时,在目标对象的给定位置,可在目标对象的路径与从碰撞体的中心向外的半径之间定义一参考角。在该参考角是90°的情况下,目标对象406 与捕捉对象402切向地行进,且较不可能被捕捉。另一方面,在该参考角接近180°的情况下,目标对象已经几乎沿着到中心的半径进入碰撞体,且更有可能调整其航线以便被捕捉。由此,图10的实施例可使用一阈值,该阈值是捕捉对象402行进的速率和指示目标对象406进入碰撞体400的入射角的参考角的组合。该阈值可以被任意选择来产生实用结果,其中如果速率太高和/或参考角接近90°,则目标对象不被捕捉。图11是描述捕捉引擎的另一实施例的流程图,其中碰撞体具有随着远离其中心而逐渐减小的吸引力。尽管这些力是不可见的,但该碰撞体在图5-7中示出。吸引力可以远离中心线性地或指数地减小。这允许系统在数学上实现类似于磁场或万有引力系统的系统。即,目标对象406越接近地经过捕捉对象402,目标对象406就越有可能被拉向捕捉对象 402。在一个实施例中,碰撞体内距离中心(捕捉对象)的所有距离可具有相关联的吸引力。这些力随着远离中心而减小。吸引力可以是方向无关的。即,对于碰撞体400中位于离中心给定距离处的所有点的吸引力将是相同的,不管该点在空间中相对于中心的定向如何。或者,吸引力可以是方向相关的。由此,从第一方向进入碰撞体400且距离中心为给定距离的目标对象406与距离中心为相同距离、但从第二方向进入碰撞体400的另一目标对象406相比将遇到更大的吸引力。吸引力是相关的一个实施例可以例如用于使得接近用户前方的对象比从用户背后接近用户的对象更有可能被捕捉。图11的实施例还可考虑目标对象的矢量速度,S卩,其速率和方向。矢量速度与更改其航线所需的力成比例。由此,以较高速率行进的目标对象较不可能受给定吸引力影响。 同样,该实施例中使用了移动对象的方向。在碰撞体400内以较切向的角经过的目标对象 406相比以较垂直的角进入碰撞体400的目标对象406而言需要较大的吸引力来更改其航线。现在参考图11,在步骤510,分配碰撞体400来如上所述地捕捉对象,并且在步骤 512,捕捉引擎190检查目标对象406是否在碰撞体的边界内经过。步骤516和518检查目标对象406在碰撞体400内的航线是否要被更改,且因此步骤512可以在替换实施例中被省略。在步骤516,捕捉引擎确定在目标对象的所计算的位置处施加到目标对象406上的吸引力。这可以按照描述力随着离源生成中心的距离增加的变化的已知方程来完成。在步骤520,捕捉引擎确定是否朝向捕捉对象402来调整目标对象406的位置。该确定是基于在目标对象406的位置处所计算的吸引力相比于目标对象406的矢量速度来做出的。在步骤520可使用若干方案来确定是否朝向捕捉对象调整目标对象的矢量速度。在一个这样的方案中,捕捉引擎可确定将目标对象406的矢量速度改变为具有穿过捕捉对象402的方向的矢量速度所需的力。为了进行这一计算,本发明的技术向目标对象406分配任意质量。在各实施例中,可以选择与为碰撞体选择的吸引力相一致的质量。 即,对于所选的碰撞体吸引力,选择这样的质量该质量不会太高以致于目标对象的方向很少得到纠正,且不会太低以致于目标对象的方向自动得到纠正。所选质量可用于本系统中使用的所有目标对象。或者,可向不同对象分配不同质量。在这些情况下,在矢量速度相同的情况下,具有较大质量的目标对象406与具有较小质量的对象406相比较不可能调整其航线。捕捉引擎190接着可将更改目标对象406的航线的力与目标对象406处的吸引力进行比较。如果在步骤520中吸引力大于重定向目标对象406所需的力,则在步骤5M调整目标对象406的方向以使其与捕捉对象402相交。这一情况在图6中示出。另一方面,如果吸引力小于重定向目标对象406所需的力,则在步骤520不调整目标对象406的方向以使其与捕捉对象402相交。捕捉引擎190可以每一预设时间段一次地重复执行上述步骤。循环时间周期可以例如在每秒30到60次之间,但是在其他实施例中可以比这一周期更频繁或更不频繁。因此,尽管一次通过上述步骤可能偶尔会没有纠正目标对象406的航线,但下一次通过上述步骤可导致目标对象406的航线被纠正。这会在例如以下情况下发生时发生,例如下一次通过该循环时,目标对象的路径使其在碰撞体400内更接近捕捉对象402且因此,目标对象 402上的吸引力增大到超过调整目标对象406的矢量速度所需的力的点。假定在步骤520调整了目标对象406的路径,在与捕捉对象402相交且被捕捉对象402捕捉之后,在步骤528,目标对象406停下来。这一情况在图7中示出。给定以上公开内容,本领域的技术人员将认识到可用于对给定目标对象矢量速度和碰撞体吸引力确定是否调整目标对象406的路径的其他方案。作为一个另外的示例,可省略碰撞体的概念,且捕捉引擎只检查目标对象406和捕捉对象402的距离。这一实施例可在上述任一实施例中使用。例如,关于图8的实施例,代替检测目标对象406何时在碰撞体的边界内经过,捕捉引擎可以只查看目标对象406是否在捕捉对象的任意选择的阈值距离内经过。碰撞体的概念可以类似的从图10和11的实施例中省略。在图10和11中,捕捉引擎可以查看目标对象406是否在捕捉对象的阈值距离内经过,且可进一步查看在该距离处目标对象的速率。更一般而言,捕捉引擎可查看目标对象406的速率相对于目标对象和捕捉对象之间的空间的比率,且如果该比率超过阈值比率,则可调整该对象的航线来穿过捕捉对象402。上述参考角也可与上述捕捉对象的速率相组合来计入该阈值比率。在上述实施例中,只要目标对象406的路径被纠正,目标对象就在捕捉对象402上被捕捉。在另一实施例中,捕捉引擎在确定目标对象406是否在捕捉对象上被捕捉时可以进一步查看捕捉对象402的速度。具体地,如果捕捉对象402正在以高于阈值速率的速率移动,或者以远离目标对象的经调整的方向或与该经调整的位置横向的方向上移动,则捕捉对象402可能不捕捉目标对象406。在该实施例中,上述因素必然会导致目标对象406的航线被调整,且捕捉对象402的速度必须低于阈值以使目标对象406被捕捉。在关于图11所描述且包括碰撞体400的实施例中,碰撞体400施加的吸引力从捕捉对象402向外连续(线性地或指数地)减小。在另一实施例中,吸引力可从中心向外不连续地减小。即,吸引力以离散阶减小。这一情况在图8中示出。该实施例中的碰撞体400 可包括多个离散体积力区400a、400b、400c等,其中每一区中的吸引力是恒定的,但是各区之间的吸引力变化(从中心向外减小)。图8所示的碰撞区400可根据以上关于图11描述的流程图来操作。图8所示的力区的数量作为示例,在本实施例的其他示例中可以有更多或更少力区。上述图5-8示出了其中捕捉对象402是脚、且目标对象406是球的一个示例。可以理解,在其他实施例中,捕捉对象402可以是任何身体部位,以便具有附连的碰撞体。手和脚是捕捉对象402的显而易见的示例,但是可以想到任何身体部位可以是具有附连的碰撞体的捕捉对象。即使在正常地不被认为能够捕捉对象的情况下,游戏应用也可例如包括在身体部位上具有尼龙搭扣、粘合剂等的用户,从而允许身体部位来捕捉对象。此外,目标对象406可以是能够被捕捉的任何移动对象。在上述图5-8中,捕捉对象402也被示为附连到身体部位。在其他示例中,捕捉对象402不需要附连到身体部位。例如,用户可手持诸如球拍等也被显示在视听设备16上的对象来击中移动的目标对象。在该示例中,捕捉对象402是球拍的线绳部分。图12示出了 3D机器空间中的用户404在篮圈402处投射目标对象球406的进一步图示。在该示例中,捕捉对象402是篮圈420,且其具有附连的碰撞体400。图12的示例还示出除了碰撞体 400的吸引力和目标对象406的矢量速度之外,其他力可作用于目标对象406。例如,在图 12中,捕捉引擎190(或系统10的其他方面)也可模拟重力来随时间更改球的初始速度矢量V。。诸如重力等这些其他力可以进一步作为上述吸引力对比目标对象的矢量速度的分析的一部分来包括,并且被计入该分析中。由此,如上所述,根据本发明的技术的捕捉引擎190在用户移动中构建某种误差余量以便在游戏应用中捕捉对象。尽管以上相对于游戏应用描述了本发明的技术,但可以理解,本发明的技术可以在除了游戏应用之外的软件应用中使用,在此类软件应用中,用户协调其在3D真实空间中的移动来捕捉出现在其显示器上的2D屏幕空间中的移动对象。在各实施例中,捕捉引擎还能够确定哪些对象要被指定为要将碰撞体400附连到其上的捕捉对象402。在某些应用中,捕捉对象可在游戏应用中明确定义。例如,在图12的篮球实施例中,篮圈420可自动被分配一碰撞体。在其他实施例中,可能捕捉目标对象的所有身体部位或其他对象可被分配碰撞体。在又一实施例中,对碰撞体的分配可能不是预定义的,而是可被动态创建和移除。 在一个这样的实施例中,捕捉引擎可取决于呈现给用户的潜在对象交互来动态地将碰撞体附连到对象。例如,在图5-8中,在目标对象足球406飞向用户404的情况下,捕捉引擎可确定可能捕捉目标对象406的所有对象,然后向这些对象分配碰撞体400。在图5-8的示例中,捕捉引擎可将碰撞体分配给用户的双脚。给定用户与目标对象足球406的路径的相对位置,捕捉引擎还可确定用户有可能在用户的头后方捕捉目标对象足球。如果是这样,则捕捉引擎可进一步将一碰撞体附连到用户的头和/或颈。作为该分配的一部分,捕捉引擎可以从游戏应用接收关于哪些对象可能用于捕捉接近的对象的数据。在再一实施例中,捕捉引擎可传感用户的移动,并内插用户正在试图移动哪一身体部位来捕捉接近的对象。在这一实施例中,捕捉引擎可以将碰撞体单独分配给该对象。本发明系统的前述详细描述是出于说明和描述的目的而提供的。这并不旨在穷举本发明系统或将本发明系统限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择所述实施例以最好地解释本发明系统的原理及其实践应用,从而允许本领域技术人员能够在各种实施例中并采用各种适于所构想的特定用途的修改来最好地利用本发明系统。本发明系统的范围旨在由所附权利要求书来定义。
权利要求
1.一种在包括计算环境(1 的系统中的方法,所述计算环境耦合到用于捕捉用户运动的捕捉设备(20),所述方法生成误差余量以供用户使用第二虚拟对象(40 来捕捉第一虚拟对象006),所述第一虚拟对象(406)在显示画面(16)上移动,所述方法包括(a)定义围绕所述第二对象G02)的碰撞体000);(b)确定(步骤50 所述第一对象(406)是否在所述碰撞体G00)内经过;以及(c)如果在所述步骤(b)中确定所述第一对象(406)在所述碰撞体(400)内经过,则调整(步骤506)所述第一对象006)的路径以便与所述第二对象(40 碰撞。
2.如权利要求1所述的方法,其特征在于,所述定义碰撞体的步骤(a)包括将所述碰撞体定义为围绕所述第二对象的球体,且所述第二对象在所述球体的中心的步骤。
3.如权利要求1所述的方法,其特征在于,所述定义围绕所述第二对象的碰撞体的步骤(a)包括定义围绕所述计算环境使用的用户的表示的一个或多个身体部位的碰撞体的步骤。
4.如权利要求1所述的方法,其特征在于,所述定义围绕所述第二对象的碰撞体的步骤(a)包括定义围绕所述显示画面上与所述用户隔开的一个或多个对象的碰撞体的步骤。
5.一种在包括计算环境(1 的系统中的方法,所述计算环境耦合到用于捕捉用户运动的捕捉设备(20),所述方法生成误差余量以供用户使用第二虚拟对象(40 来捕捉第一虚拟对象006),所述第一虚拟对象(406)在显示画面(16)上移动,所述方法包括(a)确定(步骤502、504)所述第一对象006)的速率和方向;(b)至少部分地基于给定位置处所述第一对象和第二对象(406、402)之间的距离以及所述第一对象在所述给定位置处的速率来确定是否调整所述第一对象G06)的路径以便与所述第二对象(40 碰撞;(c)如果在所述步骤(c)中确定至少所述速率与所述给定位置处所述第一对象和第二对象(406、402)之间的距离之比超过了阈值比率,则调整所述第一对象(406)的路径以便与所述第二对象(40 碰撞。
6.如权利要求5所述的方法,其特征在于,还包括定义围绕所述第二对象的碰撞体的步骤。
7.如权利要求5所述的方法,其特征在于,所述定义围绕所述第二对象的碰撞体的步骤(a)包括定义围绕所述用户的身体部位的碰撞体的步骤。
8.如权利要求5所述的方法,其特征在于,所述定义围绕所述第二对象的碰撞体的步骤(a)包括定义围绕与所述用户的身体隔开的对象的碰撞体的步骤。
9.如权利要求5所述的方法,其特征在于,所述步骤(c)确定调整所述第一对象的路径以便与所述第二对象碰撞的机率随着所述第一对象行进的速率的增大而减小。
10.如权利要求5所述的方法,其特征在于,所述步骤(c)确定调整所述第一对象的路径以便与所述第二对象碰撞的机率随着所述第二对象进入所述碰撞体的角度的增大而增大。
11.一种用于计算环境(1 的处理器可读存储介质(112、238),所述计算环境耦合到用于捕捉用户运动的捕捉设备(20),所述存储介质对处理器(101、259)编程以便执行一种生成误差余量以供用户使用第二虚拟对象(40 来捕捉第一虚拟对象006)的方法,所述第一虚拟对象(406)在显示画面(16)上移动,所述方法包括(a)确定(步骤520)所述第一对象006)的速率和方向;(b)基于以下各项确定(步骤520)是否调整所述第一对象(406)的路径以便与所述第二对象(402)碰撞i)所述第二对象G02)与所述第一对象006)的给定位置之间的距离, )所述第一对象(406)在所述给定位置处的速率,以及iii)由所述第一对象的移动路径与所述给定位置处所述第一对象和第二对象之间的线定义的参考角;以及(c)如果在所述步骤(b)中确定所述速率和所述参考角的组合与所述给定位置处所述第一对象和第二对象(406、402)之间的距离之比超过了阈值比率,则调整所述第一对象 (406)的路径以便与所述第二对象(40 碰撞。
12.如权利要求11所述的处理器可读存储介质,其特征在于,还包括定义围绕所述第二对象的碰撞体的步骤。
13.如权利要求12所述的处理器可读存储介质,其特征在于,所述碰撞体对所述第一对象施加由所述第二对象与所述第一对象的给定位置之间的距离定义的吸引力。
14.如权利要求13所述的处理器可读存储介质,其特征在于,所述碰撞体施加吸引力的步骤包括施加随半径增加而线性或指数地减小的吸引力的步骤。
15.如权利要求11所述的处理器可读存储介质,其特征在于,还包括如果所述第一对象移动的速率低于阈值水平,则在所述第一对象处将所述第二对象停下来的步骤。
全文摘要
本发明公开了使用碰撞体来捕捉屏幕对象的方法和装置。公开了一种用于向用户提供捕捉移动的屏幕对象时的误差余量,同时创建用户正在完全控制屏幕上活动的假象的系统。该系统可创建被附连到一个或多个捕捉对象且围绕该一个或多个捕捉对象的一个或多个“碰撞体”,这些碰撞体可用于捕捉移动的屏幕上目标对象。取决于移动的目标对象的矢量速度以及捕捉对象和目标对象之间的距离,和/或碰撞体的强度,目标对象的航线可被更改为拉向捕捉对象并由其捕捉。
文档编号G06F3/01GK102163077SQ201110043270
公开日2011年8月24日 申请日期2011年2月15日 优先权日2010年2月16日
发明者A·威尔逊, P·托塞尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1