用于将动画或运动应用到角色的系统和方法

文档序号:1562735阅读:180来源:国知局
专利名称:用于将动画或运动应用到角色的系统和方法
用于将动画或运动应用到角色的系统和方法
背景技术
诸如计算机游戏、多媒体应用程序等许多计算应用程序包括使用典型的运动捕捉技术来动画化的化身或角色。例如,在开发高尔夫球游戏时,可以将专业高尔夫球手带入具有运动捕捉设备的工作室,该运动捕捉设备包括例如朝向工作室中的特定点的多个照相机。专业高尔夫球手然后可以装备具有多个点指示器的运动捕捉套装,这些点指示器可以用照相机来配置并由照相机跟踪,以使得照相机可捕捉例如专业高尔夫球手的运动。这些运动然后能够在开发高尔夫球游戏期间被应用于化身或角色。当完成高尔夫球游戏后,化身或角色然后能够在执行高尔夫球游戏期间用专业高尔夫球手的运动来动画化。不幸的是,典型的运动捕捉技术是昂贵的,依靠特定应用程序的开发,并且不包括与应用程序的实际玩家或用户相关联的运动。

发明内容
在此公开了用于混合动画的系统和方法。例如,在一实施例中,可捕捉用户的现场运动,并且可接收预先记录的运动,诸如预先记录的艺术家生成的运动、用户的预先记录的运动、和/或被程序控制的转换。现场运动接着可被应用到虚拟角色的第一部分,而预先记录的运动可被应用到该虚拟角色的第二部分,使得该虚拟角色可用现场运动和预先记录的运动的组合来动画化。根据一实施例,响应于从用户接收到可与动画命令相关联的姿势, 现场运动和/或预先记录的运动可被应用到虚拟角色。此外,可用预先记录的运动的组合 (诸如用户的预先记录的运动和预先记录的艺术家生成的动画)通过例如将用户的预先记录的运动应用到虚拟角色的第一部分并将预先记录的艺术家生成的运动应用到虚拟角色的第二部分来动画化虚拟角色。提供本发明内容以便以简化形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。


图IA和IB示出了伴随用户玩游戏的目标识别、分析和跟踪系统的示例实施例。图2示出了可在目标识别、分析和跟踪系统中使用的捕捉设备的示例实施例。图3示出可用于解释目标识别、分析和跟踪系统中的一个或多个姿势和/或动画化由目标识别、分析和跟踪系统所显示的虚拟角色的计算环境的示例实施例。图4示出可用于解释目标识别、分析和跟踪系统中的一个或多个姿势和/或动画化由目标识别、分析和跟踪系统所显示的虚拟角色的计算环境的另一示例实施例。图5描绘了用于生成并应用用户的运动捕捉文件的示例方法的流程图。图6示出了可包括与用户相关联的人类目标的图像的示例实施例。图7示出了可以为与用户相关联的人类目标生成的模型的示例实施例。
图8A-8B示出了运动捕捉文件中可在各个时间点处捕捉的与用户相关联的模型的示例实施例。图9A-9B示出了虚拟角色的模型的示例实施例,该虚拟角色可基于在各个时间点处的模型被动画化。图10A-10B示出了可被动画化的虚拟角色的示例实施例。图11A-11F示出了可被动画化的虚拟角色的另一示例实施例。图12A-12B示出了可被动画化的虚拟游戏角色的另一示例实施例。说明性实施例的
具体实施例方式如本文中将描述的,用户可通过执行一个或多个姿势和/或移动来控制在诸如游戏控制台、计算机等计算环境上执行的应用和/或动画化诸如化身、屏幕上角色、屏幕上对象等虚拟角色。根据一个实施例,姿势和/或移动可由例如捕捉设备来接收。例如,捕捉设备可捕捉场景的深度图像。在一个实施例中,捕捉设备可以确定场景中的一个或多个目标或对象是否对应于诸如用户等人类目标。然后可扫描匹配与人类目标相对应的目标或对象的每个目标或对象以生成与其相关联的模型,诸如骨架模型、网格人类模型等。在一示例实施例中,可跟踪模型,可生成所跟踪的模型的运动捕捉文件,可呈现与用户的模型相关联的虚拟角色或对象,可使用与用户的模型相关联的实时运动和/或预先记录的运动来动画化虚拟角色或对象,和/或可基于例如所跟踪的模型来确定哪些控制要在计算机环境上执行的应用中执行。图IA和IB示出伴随用户18玩拳击游戏的目标识别、分析和跟踪系统10的配置的示例实施例。在一示例实施例中,目标识别、分析和跟踪系统10可用于识别、分析和/或跟踪诸如用户18等的人类目标。如图IA所示,目标识别、分析及跟踪系统10可包括计算环境12。计算环境12可以是计算机、游戏系统或控制台等等。根据一示例实施例,计算环境12可包括硬件组件和/ 或软件组件,使得计算环境12可用于执行诸如游戏应用、非游戏应用等应用。在一个实施例中,计算环境12可包括诸如标准化处理器、专用处理器、微处理器等可执行各种指令的处理器,这些指令包括例如用于执行以下动作的指令捕捉用户的现场运动、接收预先记录的运动、将现场运动应用到虚拟对象的第一部分并将预先记录的运动应用到该虚拟对象的第二部分,或任何其他合适的指令,这些将在下面更详细地描述。如图IA所示,目标识别、分析及跟踪系统10还可包括捕捉设备20。捕捉设备20 可以是例如相机,所述相机可用于在视觉上监视诸如用户18等的一个或多个用户从而可以捕捉、分析并跟踪一个或多个用户所执行的姿势和/或移动,来执行应用中的一个或多个控制或动作和/或动画化诸如化身、屏幕上角色、屏幕上对象等虚拟角色,如将在下面更详细地描述的。根据一个实施例,目标识别、分析及跟踪系统10可连接到可向诸如用户18等用户提供游戏或应用视觉和/或音频的视听设备16,如电视机、监视器、高清电视机(HDTV)等。 例如,计算环境12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从计算环境12接收视听信号,然后可向用户18输出与该视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算环境12。如图IA和IB所示,目标识别、分析和跟踪系统10可用于识别、分析和/或跟踪诸如用户18等的人类目标。例如,可使用捕捉设备20来跟踪用户18,从而可以捕捉用户18 的姿势和/或移动来动画化诸如化身、屏幕上角色、屏幕上对象等虚拟角色和/或可将用户 18的姿势和/或移动解释为可用于影响计算环境12所执行的应用的控制。因此,根据一实施例,用户18可移动他的或她的身体来控制应用和/或动画化虚拟对象。如图IA和IB所示,在一示例实施例中,在计算环境12上执行的应用可以是用户 18可能正在玩的拳击游戏。例如,计算环境12可使用视听设备16来向用户18提供拳击对手38的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移动来控制的玩家化身40的视觉表示。例如,如图IB所示,用户18可在物理空间中挥拳来使得玩家化身40在游戏空间中挥拳。因此,根据一示例实施例,目标识别、分析和跟踪系统 10的计算环境12和捕捉设备20可用于识别和分析物理空间中用户18的重拳从而使得该重拳可被解释为对游戏空间中的玩家化身40的游戏控制和/或该重拳的运动可用于动画化游戏空间中的玩家化身40。用户18的其他移动也可被解释为其他控制命令或动作,和/或用于动画化玩家化身,如上下快速摆动、闪避、滑步、封堵、用拳猛击或挥动各种不同的有力重拳的控制命令。 此外,某些移动可被解释为可对应于除控制玩家化身40之外的动作的控制。例如,玩家可以使用移动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。另外,用户18的全范围运动可以用任何合适的方式来获得、使用并分析以与应用进行交互。在各示例实施例中,诸如用户18等人类目标可持有一物体。在这些实施例中,电子游戏的用户可手持物体从而可以使用玩家和物体的运动来调整和/或控制游戏的参数。 例如,可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。在另一示例实施例中,可以跟踪并利用玩家手持物体的运动来控制电子格斗游戏中的屏幕上武
ο根据其他示例实施例,目标识别、分析及跟踪系统10还可用于将目标移动解释为游戏领域之外的操作系统和/或应用控制。例如,事实上操作系统和/或应用程序的任何可控方面可由诸如用户18等目标的移动来控制。图2示出可在目标识别、分析及跟踪系统10中使用的捕捉设备20的示例实施例。 根据一示例实施例,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度信息可包括深度值。根据一实施例,捕捉设备20可将深度信息组织为“Z层”或者可与从深度相机沿其视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件22。根据一个示例实施例,图像相机组件22可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如所捕捉的场景中的对象距相机的例如以厘米、毫米等计的长度或距离。如图2所示,根据一示例实施例,图像相机组件22可包括可用于捕捉场景的深度图像的顶光组件对、三维(3-D)相机沈、和RGB相机观。例如,在飞行时间分析中,捕捉设备20的顶光组件M可以将红外光发射到场景上,然后,可以使用传感器(未示出),用例如3-D相机沈和/或RGB相机观,来检测从场景中的一个或多个目标和对象的表面反向散射的光。在某些实施例中,可以使用脉冲红外光,使得可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到场景中的目标或对象上的特定位置的物理距离。附加地,在其他示例实施例中,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或对象上的特定位置的物理距
1 O根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像在内的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。在另一示例实施例中,捕捉设备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生成的骨架模型。计算环境12然后可使用该模型、深度信息、以及所捕捉的图像来例如控制诸如游戏或文字处理程
7序等的应用和/或动画化诸如屏幕上角色、化身、屏幕上对象等虚拟角色。例如,如图2所示,计算环境12可包括姿势库190。姿势库190可包括姿势过滤器集合,每一姿势过滤器包括关于骨架模型可执行(在用户移动时)的姿势的信息。可将由相机26J8和捕捉设备 20捕捉的骨架模型形式的数据以及与其相关联的移动与姿势库190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个姿势。那些姿势可与应用的各种控制相关联。因此,计算环境12可使用姿势库190来解释骨架模型的移动并基于该移动来控制应用。图3示出可用于解释目标识别、分析和跟踪系统中的一个或多个姿势和/或动画化目标识别、分析和跟踪系统所显示的诸如化身、屏幕上角色、屏幕上对象等虚拟角色的计算环境的示例实施例。上面参考图1A-2所描述的诸如计算环境12等计算环境可以是诸如游戏控制台等多媒体控制台100。如图3所示,多媒体控制台100具有含有一级高速缓存 102、二级高速缓存104和闪存ROM(只读存储器)106的中央处理单元(CPU) 101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可以设置成具有一个以上的内核,以及由此的附加的一级和二级高速缓存102和104。闪存ROM 106可存储在多媒体控制台100通电时引导过程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元108向视频编码器/视频编解码器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⑴-142 O)、无线适配器148、和外置存储器设备146 (例如闪存、外置⑶/DVD ROM驱动器、可移动介质等) 的主机。网络接口 1 和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问,并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导过程期间加载的应用数据。提供媒体驱动器 144,且其可包括DVD/⑶驱动器、硬盘驱动器、或其他可移动媒体驱动器等。媒体驱动器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)的存储器、保留量(诸如,5% )的 CPU和GPU周期、保留量(诸如,SlAs)的网络带宽,等等。因为这些资源是在系统引导时间保留的,所保留的资源对于应用视角而言是不存在的。具体而言,存储器保留优选地足够大,以包含启动内核、并发系统应用和驱动程序。CPU保留优选地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来调度代码来将弹出窗口呈现为覆盖图以显示由系统应用程序生成的轻量消息(例如,弹出窗口)。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率并引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。当并发系统应用需要音频时,则由于时间敏感性而将音频处理异步地调度给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。输入设备(例如,控制器142(1)和142( )由游戏应用和系统应用共享。输入设备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。相机26J8和捕捉设备20可为控制台100定义额外的输入设备。图4示出计算环境220的另一示例实施例,其可以是图1A-2显示的用于解释目标识别、分析和跟踪系统中的一个或多个姿势和/或动画化目标识别、分析和跟踪系统所显示的诸如化身、屏幕上角色、屏幕上对象等虚拟角色的计算环境12。计算系统环境220只是合适的计算环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将计算环境220解释为对示例性操作环境220中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元素可包括被配置成实例化本发明的各具体方面的电路。例如,本公开中使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。其他示例中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在其中电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。在图4中,计算环境220包括计算机Ml,计算机241通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM06O。基本输入/输出系统224 (BIOS)包含诸如在启动期间帮助在计算机Ml内的元件之间传输信息的基本例程,基本输入/输出系统224¢10 通常储存储在ROM 223中。RAM 260通常包含处理单元 259可立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统225、应用程序226、其他程序模块227和程序数据228。计算机241也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器 238,从可移动、非易失性磁盘2M中读取或向其写入的磁盘驱动器239,以及从诸如⑶ROM 或其他光学介质等可移动、非易失性光盘253中读取或向其写入的光盘驱动器M0。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器 238通常由例如接口 234等不可移动存储器接口连接至系统总线221,而磁盘驱动器239和光盘驱动器240通常由例如接口 235等可移动存储器接口连接至系统总线221。以上讨论并在图4中示出的驱动器及其相关联的计算机存储介质为计算机241提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图4中,例如,硬盘驱动器238被示为存储操作系统258、应用程序257、其他程序模块256和程序数据255。注意, 这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同,也可以与它们不同。在此操作系统258、应用程序257、其他程序模块256以及程序数据255被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,例如键盘251和定点设备252——通常是指鼠标、跟踪球或触摸垫——向计算机241输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,例如并行端口、游戏端口或通用串行总线(USB)来连接。相机沈、 28和捕捉设备20可为控制台100定义额外的输入设备。监视器242或其他类型的显示设备也通过诸如视频接口 232之类的接口连接至系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口 233连接的诸如扬声器244和打印机243之类的其他外围输出设备。计算机241可以使用到一个或多个远程计算机(如远程计算机M6)的逻辑连接, 以在联网环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括许多或所有以上相对于计算机241描述的元件, 但在图4中仅示出了存储器存储设备M7。图2中所描绘的逻辑连接包括局域网(LAN) 245 和广域网(WAN) M9,但还可包括其他网络。这些联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当用于LAN网络环境中时,计算机241通过网络接口或适配器245连接到LAN 237。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他手段。调制解调器250,可以是内置的或外置的,可以经由用户输入接口 236或其他适当的机制,连接到系统总线221。在联网环境中,相对于计算机 241所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制, 图4示出了远程应用程序248驻留在存储器设备247上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。图5描绘了用于混合动画的示例方法300的流程图。示例方法300可使用例如, 参考图1A-4所描述的目标识别、分析和跟踪系统10的捕捉设备20和/或计算环境12来实现。在一示例实施例中,示例方法300可采取可由例如参考图1A-4所描述的目标识别、 分析和跟踪系统10的捕捉设备20和/或计算环境12执行的程序代码(即指令)的形式。根据一个实施例,在305,可接收图像。例如,目标识别、分析和跟踪系统可包括诸如参考图1A-2描述的捕捉设备20等捕捉设备。捕捉设备可捕捉或观察可包括一个或多个目标的场景。在一示例实施例中,捕捉设备可以是被配置成使用诸如飞行时间分析、结构化光分析、立体视觉分析等的任何合适的技术来获得场景的诸如RGB图像、深度图像等图像的深度相机。例如,在一个实施例中,图像可包括深度图像。深度图像可以是多个观测到的像素,其中每个观测到的像素具有观测到的深度值。例如,深度图像可包括所捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如所捕捉的场景中的对象距捕捉设备的例如以厘米、毫米等计的长度或距离。图6示出了可在305处被接收的深度图像400的示例实施例。根据一示例实施例, 深度图像400可以是由例如以上参考图2所描述的捕捉设备20的3-D相机沈和/或RGB 相机观所捕捉的场景的图像或帧。如图6所示,深度图像400可包括与例如诸如参考图IA 和IB所描述的用户18等的用户对应的人类目标402以及诸如所捕捉的场景中的墙、桌子、 监视器等的一个或多个非人类目标404。如上所述,深度图像400可包括多个观测到的像素,其中每一观测到的像素具有与其相关联的观测到的深度值。例如,深度图像400可包括所捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如所捕捉的场景中的对象或目标距捕捉设备的例如以厘米、毫米等计的长度或距离。在一实施例中,深度图像400可被着色从而使得深度图像的不同颜色的像素对应于和/或从视觉上描绘了人类目标402和非人类目标404离捕捉设备的不同距离。例如,根据一个实施例, 深度图像中与最接近捕捉设备的目标相关联的像素可用红色和/或橙色阴影来着色,而深度图像中与较远的目标相关联的像素可用绿色和/或蓝色阴影来着色。回头参考图5,在一个实施例中,在305处接收到图像之后,可将该图像降采样到较低的处理分辨率,使得该深度图像可用更少的计算开销来被更容易地使用和/或更快地处理。另外,可从深度图像中移除和/或平滑掉一个或多个高变度和/或含噪声的深度值; 可填入和/或重构缺少的和/或移除的深度信息的各部分;和/或可对所接收的深度信息执行任何其他合适的处理,使得该深度信息可用于生成诸如骨架模型等模型,如将在下文更详细描述的。在310,可以生成图像中的用户的模型。例如,当接收到图像时,目标识别、分析和跟踪系统可以通过对深度图像中的每一个目标或对象进行泛色填充并将每一个经泛色填充的目标或对象与和处于各种位置或姿势的人类的身体模型相关联的图案进行比较,确定深度图像是否包括诸如以上结合图6描述的人类目标402的对应于例如诸如以上参考图IA 和IB描述的用户18等用户的人类目标。然后可以隔离并扫描匹配图案的经泛色填充的目标或对象以确定包括例如对各身体部位的度量的各个值。根据一示例实施例,然后可基于该扫描来生成模型,诸如骨架模型、网格模型等。例如,根据一个实施例,可通过扫描来确定的度量值可被存储在可用于定义模型中的一个或多个关节的一个或多个数据结构中。可以使用一个或多个关节来定义可以对应于人类的身体部位的一个或多个骨骼。图7示出了可以为310处的用户生成的模型500的示例实施例。根据一示例实施例,模型500可包括可表示例如与深度图像内的用户相关联的人类目标(诸如以上结合图6 讨论的深度图像400内的人类目标402)的三维模型的一个或多个数据结构。在一实施例中,与用户相关联的人类目标的每个身体部位可被表征为定义模型500的关节和骨骼的数学矢量。如图7所示,模型500可包括一个或多个关节jl_jl8。根据一示例实施例,关节 jl_jl8中的每一个可使得在这些关节之间定义的一个或多个身体部位能相对于一个或多个其他身体部位移动。例如,表示人类目标的模型可包括多个刚性和/或可变形身体部位, 这些身体部位由一个或多个诸如“骨骼”等结构件来定义,而关节jl_jl8位于毗邻骨骼的交叉点处。关节jl-18可使得与骨骼和关节jl_jl8相关联的各个身体部位能够彼此独立地移动。例如,如图7中所示的,在关节j7与jll之间定义的骨骼可对应于前臂,该前臂可独立于例如在关节jl5与jl7之间定义的骨骼(可对应于小腿)而移动。如上所述,每一个身体部位都可被表征为具有定义图7所示的关节和骨骼的X值、 Y值和ζ值的数学矢量。在一示例实施例中,与图7所示的骨骼相关联的矢量的相交可定义与关节jl-j 18相关联的相应点。参考回图5,在315,可捕捉与用户相关联的模型的实时的、或现场的运动。例如, 可跟踪模型使得模型可被调整或移动来模拟用户做出的移动。与用户相关联的模型的这样的调整或运动可被实时地捕捉。此外,这样的调整或运动可被应用到诸如化身、屏幕上角色、屏幕上对象等虚拟角色,这将在以下详细描述。根据一个实施例,诸如以上参考图7描述的模型500等模型可以是诸如以上参考图IA和IB描述的用户18等用户的表示。目标识别、分析和跟踪系统可观察或捕捉来自用户18的可被用于调整或移动模型500的移动,使得模型500的调整或运动可在315被捕捉。例如,诸如以上参考图1A-2描述的捕捉设备20等捕捉设备可以观察或捕捉可用于调整模型的场景的多个图像,如深度图像、RGB图像等。根据一实施例,可基于所定义的频率来观察或捕捉每一图像。例如,捕捉设备可每毫秒、每微秒等来观察场景的新图像或对其进行捕捉。在接收到每一图像后,可将与特定图像相关联的信息与和模型相关联的信息进行比较来确定用户是否已经执行了移动。例如,在一个实施例中,该模型可被光栅化成诸如合成深度图像等合成图像。合成图像中的像素可以与和每一接收到的图像中的人类目标相关联的像素进行比较来确定所接收的图像中的人类目标是否已移动。根据一示例实施例,可以基于在合成图像和所接收的图像之间比较的像素来计算一个或多个力矢量。可向该模型的诸如关节等一个或多个受力方面施加或映射一个或多个力,来将该模型调整或移动成更接近地对应于物理空间中的人类目标或用户的姿态的姿态。所跟踪的模型的调整或运动可接着在315被捕捉。在一实施例中,所跟踪的模型的调整或运动可被记录在运动捕捉文件中。例如,目标识别、分析和跟踪系统可呈现并存储可包括特定于诸如以上参考图IA和IB描述的用户18等用户的一个或多个运动的运动捕捉文件,这些运动如挥手运动、诸如高尔夫挥杆等挥臂运动、重拳运动、行走运动、奔跑运动等。根据一实施例,可基于诸如包括与所跟踪的模型相关联的X、Y和Z值的矢量之类的信息来实时地生成运动捕捉文件,并且该运动捕捉文件可包括由用户执行的可应用到模型的移动的一个或多个帧。运动捕捉文件中模型的运动可被进一步实时地或现场地应用到诸如化身、屏幕上对象、屏幕上角色等虚拟角色。此外,运动捕捉文件中模型的运动可被存储或被预先记录,使得运动捕捉文件可在将来的时间点被应用到虚拟对象或角色,这将在以下详细描述。图8A-8B示出了运动捕捉文件中可在各个时间点被捕捉的与用户(诸如以上关于图IA和IB描述的用户18)相关联的模型500的示例实施例。如图8A-8B中显示的,以上关于图7描述的模型500可如以上描述的基于用户在各个时间点的移动来调整或移动。例如,如图8A中显示的,当用户抬起他的或她的右前臂时,可如以上描述的通过例如将一个或多个力矢量应用到关节j3,j7和jll来调整或移动模型500的关节j3,j7和jll以及它们之间定义的骨骼来表示姿势502。在用户如图8A中显示的那样抬起他的或她的右前臂后,诸如用户18的用户可接着抬起他的或她的左前臂。如图8B中显示的,模型500可接着被从姿势502调整到姿势504,使得当用户抬起他的或她的左前臂时,可如以上描述的通过例如将一个或多个力矢量应用到关节j4,j8和jl2来调整或移动模型的关节j4,j8和jl2 以及它们之间定义的骨骼。如图8A和8B中的姿势502和504显示的可被应用到模型500 的调整或运动可在315在如上描述的运动捕捉文件的各个帧中被捕捉。参考回图5,在320可接收预先记录的运动。例如,目标识别、分析和跟踪系统可接收针对诸如屏幕上游戏角色、化身、屏幕上对象等虚拟角色的预先记录的运动。在一实施例中,预先记录的运动可以是由应用开发者开发的针对虚拟角色或对象的艺术家开发的动画或运动捕捉文件,和/或由应用开发者开发的被程序控制的转换,诸如输入设备控制的
13动画或运动、偶人动画或运动等等。根据另一实施例,预先记录的运动可以是如以上描述的可被存储以供将来使用的与目标识别、分析和跟踪系统的用户相关联的模型的运动捕捉文件。图9A-9B示出了可在320作为预先记录的艺术家开发的运动接收的虚拟对象或角色(诸如半人马)在各个时间点或在各个帧中的角色模型600的示例实施例。如图9A-9B 中所示,角色模型600可包括一个或多个关节jl’_j20’。在一实施例中,关节jl’_j20’中的各个关节可定义一个或多个身体部位,该一个或多个身体部位可相对于或独立于在关节 jl’_j20’处的一个或多个其他身体部位移动以动画化虚拟对象或角色,这将在以下详细描述。此外,根据一示例实施例,角色模型600的关节jl’ _j20’中的各个关节可具有预先记录的艺术家开发的动画或运动捕捉文件中各个时间点处或在预先记录的艺术家开发的动画或运动捕捉文件的各个帧中的对应动画跟踪。例如,如图9A中显示的,角色模型600 的关节jl6’,jl8’和j20’以及它们之间定义的身体部位各自可具有动画跟踪,该动画跟踪可产生预先记录的艺术家开发的动画或运动文件中第一时间点处或在预先记录的艺术家生成的动画或运动捕捉文件中第一帧处的角色模型600的姿势602。关节jl6’,jl8’和 j20’接着可被调整来表示预先记录的艺术家开发的动画或运动文件中随后的或第二时间点或第二或随后的帧处的角色模型600的关节jl6’,jl8’和j20’的各个动画跟踪的姿势 604。参考回图5,在325,模型的运动和/或预先记录的运动可被应用到虚拟对象或角色。例如,目标识别、分析和跟踪系统可将用户的一个或多个实时的或现场的运动和/或预先记录的运动映射到虚拟对象或角色的至少一个部分,使得虚拟对象或角色可被动画化来模拟由诸如以上关于图IA和IB描述的用户18的用户执行的移动。此外,目标识别、分析和跟踪系统可将一个或多个预先记录的艺术家开发的动画或运动和/或一个或多个预先记录的被程序控制的转换映射到虚拟对象或角色的至少一个部分,使得虚拟对象或角色可被动画化来模拟预先记录的艺术家开发的运动和/或预先记录的被程序控制地转换。图10A-10B示出了虚拟角色700的示例实施例,该虚拟角色可具有在325处被应用到其的用户的现场运动和/或预先记录的运动。如图10A-10B中显示的,角色700可包括可以是例如游戏应用中一个角色的半人马。根据一实施例,在325,虚拟角色700可用与用户相关联的所跟踪的模型的现场运动和预先记录的运动(诸如预先记录的艺术家开发的运动)被动画化。例如,虚拟角色700的第一部分A可用诸如以上结合图IA和IB描述的用户18的用户所执行的现场运动来动画化,而第二部分B可用预先记录的艺术家开发的运动来动画化。根据一示例实施例,以上结合图7-8B描述的与用户相关联的模型500的关节 jl_jl2可被映射到虚拟角色700的第一部分A,且以上结合图9A-9B描述的角色模型600的关节j9’ -j20’可被映射到虚拟角色700的第二部分B,使得第一部分A可被动画化来模拟可由用户执行的现场运动,而第二部分B可被动画化来模拟角色模型(诸如与虚拟角色700 相关联的角色模型600)的动画。例如,图8A-8B中显示的模型500的关节j4,j8和jl2以及它们之间定义的骨骼可被映射到虚拟角色700的左肩、左肘和左腕以及它们之间定义的对应的身体部位,使得图10A-10B中显示的虚拟角色700的第一部分A可模拟图8A-8B中显示的与用户移动他的或她的左臂相关联的关节j4,j8和jl2的姿势502和504。此外,图 9A-9B中显示的角色模型600的关节jl6’ jl8’和j20’以及它们之间定义的身体部位可被映射到虚拟角色700的前左臀、前左膝和前左踝以及它们之间定义的对应的身体部位,使得图10A-10B中显示的虚拟角色700的第二部分B可模拟图9A-9B中显示的半人马的模型踢出它的左前腿的关节jl6’,jl8’和j20’的姿势602和604。由此,根据一示例实施例, 虚拟角色700可包括与用户相关联的模型500的现场运动并混合有与虚拟角色或对象相关联的角色模型600的预先记录的运动。在一实施例中,为了用现场运动和预先记录的运动来动画化虚拟角色700,目标识别、分析和跟踪系统可禁用与角色模型600的对应于虚拟角色700的第一部分A的关节和 /或身体部位相关联的动画或运动跟踪。此外,目标识别、分析和跟踪系统可禁用运动捕捉文件中与模型500的对应于虚拟角色700的第二部分B的关节相关联的动画或运动。目标识别、分析和跟踪系统接着可将运动捕捉文件中与用户相关联的模型500的动画或运动与角色模型600的动画或运动跟踪相混合,使得第一部分A可用与用户相关联的模型500的运动来动画化,而第二部分可用与虚拟角色700相关联的角色模型500的动画或运动来动画化。例如,目标识别、分析和目标系统可禁用角色模型600的关节jl’_j8’的动画或运动跟踪以及与用户相关联的模型500的关节jl3-jl8的动画或运动。目标识别、分析和目标系统可接着将角色模型600的动画和运动和与用户相关联的模型500的动画和运动相混合,使得虚拟角色700的第一部分A可模拟由用户做出的移动,而虚拟角色700的第二部分 B可模拟如图10A-10B中显示的角色模型的预先记录的动画或运动。图11A-11F示出了虚拟角色800的另一示例实施例,该虚拟角色可具有在325处被应用到其的用户的现场运动和/或预先记录的运动。如图11A-11F中显示的,虚拟角色 800可包括可以是例如游戏应用中一个角色的机器人。根据一实施例,在325,虚拟角色800 可用与用户相关联的所跟踪的模型的现场运动和/或预先记录的运动(诸如与用户相关联的模型的存储的运动或预先记录的艺术家开发的运动)被动画化。例如,虚拟角色800的第一部分A’可用诸如以上结合图IA和IB描述的用户18的用户所执行的现场运动来动画化和/或第二部分B’可用运动捕捉文件中用户的预先记录的运动或预先记录的艺术家开发的运动来动画化。根据一实施例,响应于从用户接收的姿势,现场和/或预先记录的运动或动画可被应用到虚拟角色800。例如,可在315处被捕捉的与用户相关联的模型的一实时的或现场的运动可包括可用于在325控制虚拟角色800的移动或动画的姿势。在一示例实施例中,用户可抬起他的或她的左臂,使得与用户相关联的模型可被调整来模拟用户抬起他的或她的左臂并可在315处被捕捉。例如,以上结合图7-8B描述的模型500的关节j4,j8和jl2可被调整来反映用户抬起他的或她的左臂。目标识别、分析和跟踪系统可接着解释与被抬起的左臂相关联的姿势,使得目标识别、分析和跟踪系统可将预先记录的运动或现场运动应用到诸如虚拟角色800的第一部分A’的至少一个部分,并可响应于与用户抬起的左臂相关联的姿势将应用到诸如虚拟角色800的第一部分A’的至少一个部分的预先记录的运动或现场运动切换成其他运动。例如,根据一实施例,响应于用户抬起他的或她的左臂,虚拟角色800可基于对例如与用户相关联的模型500做出的调整被动画化,使得用户抬起他的或她的左臂的现场运动可被应用到如图IlB中显示的例如虚拟角色800的第一部分A’。即,响应于用户抬起他的或她的左臂,与用户相关联的模型500的关节j4,j8和jl2可被映射到虚拟角色800的左臂,使得虚拟角色800的第一部分A'可由用户用他的或她的上半身执行的现场运动来动画化。此外,由用户用他的或她的上半身做出的随后的移动可被进一步应用到虚拟角色 800。例如,在用户抬起他的或她的右前臂时,用户抬起他的或她的右前臂的现场运动可被应用到模型500的关节j7和jll。现场运动接着可被应用到如以上描述的虚拟角色800, 使得虚拟角色800可被动画化或被移动来如图IlC中显示的抬起他的或她的左前臂。由此,根据一实施例,响应于接收到的姿势,虚拟角色800的至少一个部分可被动画化来模拟由用户做出的可被应用到与用户相关联的模型500的移动。类似地,用户可抬起他的或她的左腿,使得与用户相关联的模型可被调整来模拟用户抬起他的或她的左腿并可在315处被捕捉。例如,以上结合图7-8B描述的模型500的关节jl4,jl6和jl8可被调整来反映用户抬起他的或她的左腿。目标识别、分析和跟踪系统可接着解释与被抬起的左腿相关联的姿势,使得目标识别、分析和跟踪系统可将预先记录的运动或现场运动应用到诸如虚拟角色800的第二部分B’的至少一个部分,并可响应于与用户抬起的左腿相关联的姿势将应用到诸如虚拟角色800的第二部分B’的至少一个部分的预先记录的运动或现场运动切换成其他运动。例如,根据一实施例,响应于用户抬起他的或她的左腿,如图11D-11F中显示的, 虚拟角色800的第二部分B'可用预先记录的行走运动(诸如在运动捕捉文件中捕捉的与用户相关联的模型500的预先记录的行走运动或艺术家开发的行走动画)来动画化。艮口, 响应于用户抬起他的或她的左腿,在所存储的运动捕捉文件中模型500的关节jl3-jl8可被映射到虚拟角色800的各个右腿和左腿,使得虚拟角色800的第二部分B’可由预先记录的用户执行的行走运动来动画化。可替代地,响应于用户抬起他的或她的左腿,角色模型的关节和/或身体部位可被映射到虚拟角色800的各个右腿和左腿,使得虚拟角色800的第二部分B’可由预先记录的艺术家开发的行走运动来动画化。在一实施例中,用户的现场运动和/或预先记录的运动可被应用到例如虚拟角色 800的第一部分A’和第二部分B’,直到接收到可控制被应用到虚拟角色800的动画的后续姿势。例如,用户的现场运动可被应用到例如虚拟角色800的第一部分A’直到接收到诸如用户抬起他的或她的右臂和左臂两者的后续姿势。在接收到后续姿势后,虚拟角色800的第一部分A’可以是静止的或转移到用例如预先记录的运动(诸如以上描述的运动捕捉文件中用户的预先记录的运动或预先记录的艺术家生成的动画)来动画化。根据一示例实施例,为了响应于用户抬起他的或她的左手来用由用户用他的或她的上半身执行的现场运动来动画化虚拟角色800的第一部分A’,目标识别、分析和跟踪系统可禁用诸如与用户的下半身相关联的模型500的关节jl3-jl8的关节和/或身体部位的动画或运动。此外,为了响应于用户抬起他的或她的左腿用预先记录的行走运动来动画化虚拟角色800的第二部分B',目标识别、分析和跟踪系统可禁用角色模型的关节和/或身体部位的动画或运动或与虚拟角色800或用户相关联的角色模型的上半身相关联的模型 500的关节和/或身体部位的动画或运动。目标识别、分析和跟踪系统可接着将启用的用户上半身的现场动画或运动与启用的角色模型600的预先记录的行走运动相混合,使得如图11D-11F中显示的,响应于用户用预先记录的行走运动抬起他的或她的左臂,第一部分A’ 可用用户上半身的现场运动来动画化。此外,在一实施例中,响应于接收诸如用户抬起两臂的后续姿势(该后续姿势可例如用预先记录的运动来切换被应用到虚拟角色800的第一部分A'的用户的现场运动), 目标识别、分析和跟踪系统可在预定量的帧(诸如15-20帧)上混合转换使得虚拟角色的第一部分A’可平滑地在现场运动和预先记录的运动之间转换。例如,现场运动中模型500 的关节和/或身体部位中的各个关节和身体部分可在15-20帧上与预先记录的运动中对应的关节和/或身体部位相混合。由此,运动捕捉文件内现场运动的第一帧处与模型500的上半身相关联的每个关节可与预先记录的运动或动画的第一帧内角色模型的每个对应的关节和/或身体部位相混合。在预定量的帧后,现场运动可接着被逐步淘汰,使得虚拟角色 800的第一部分A’可用预先记录的运动或动画来动画化。图12A-12B示出了虚拟角色900的示例实施例,该虚拟角色可具有在325处被应用到其的用户的现场运动和/或被程序控制的转换。如图12A-12B中显示的,游戏角色900 可包括可以是例如橄榄球游戏应用中一个角色的橄榄球运动员。根据一实施例,在325,游戏角色900可用与用户相关联的所跟踪的模型的现场运动和被程序控制的转换(诸如输入设备控制的动画或运动、偶人动画或运动)来动画化。例如,游戏角色900的诸如手臂906a 和906b的第一部分可由用户(诸如以上结合图IA和IB描述的用户18)用他的或她的手臂执行的现场运动来控制或动画化。根据一示例实施例,图12A-12B显示的诸如游戏角色 900的剩余身体部位中的各个部位的第二部分可具有应用到其的预先记录的被程序控制的转换。在一实施例中,预先记录的被程序控制的转换可包括基于目标的动画或运动,该基于目标的动画或运动可使用物理学来使得应用中诸如游戏角色900的游戏角色达到它的目标。例如,游戏角色900可以是广泛的接收者,其可具有达到橄榄球游戏应用中提供的橄榄球场地上的某个位置以接球(catch a pass)的目标。预先记录的被程序控制的转换可包括使用例如可导致游戏角色900自动地达到该位置的物理学的动画或运动。此外,根据另一示例实施例,如图12A-12B中显示的,游戏角色900可被对方队中的游戏角色捉住。被程序控制的转换可包括基于可被定位以在橄榄球游戏应用中的给定位置处捉住游戏角色900的偶人的预先记录的运动或动画。例如,被程序控制的转换运动或动画可包括可基于物理学计算生成的偶人动画或运动,该物理学计算基于在游戏角色900 被与对方运动员的位置相关联的偶人捉住时该游戏角色900的反应。由此,在一实施例中,手臂906a和906b可具有被应用到其的用户的手臂的现场运动,并且游戏角色900的剩余身体部位可用与捉住游戏角色900的对方运动员相关联的偶人动画或运动的被程序控制的转换来动画化,使得用户可保留对手臂906a和906b的控制来如图12A-12B中显示的那样做出接球,并且身体的剩余部分可以类似于在现实生活中被对方运动员捉住的运动员反应的方式来反应。由此,在示例实施例中,响应于运动捕捉文件中的一个或多个现场或预先记录的运动,屏幕上角色的可视外观可在图5中显示的325处被更改。例如,可由此处描述的游戏控制台来跟踪诸如以上参考图IA和IB描述的正在游戏控制台上玩电子游戏的用户18等游戏玩家。当游戏玩家摆动一条手臂时,游戏控制台可跟踪该运动,然后可响应于所跟踪的运动来调整与用户相关联的模型。如上所述,所跟踪的模型可进一步在运动捕捉文件中捕捉。该运动捕捉文件然后可被应用于屏幕上角色的例如上半身,使得可对该屏幕上角色动画化来模拟用户摆动他们的手臂的实际运动。此外,预先记录的艺术家生成的运动或被程序控制的转换可与运动捕捉文件中现场或预先记录的运动相混合。例如,根据示例实施例, 屏幕上角色可被动画化来在游戏中正如用户实时地或现场地摆动他的或她的手臂那样来摆动例如高尔夫球杆、球棒或挥拳猛击,或可被动画化为像可在预先记录的奔跑、行走或自行车运动或动画中捕捉的专业运动员那样奔跑、行走或骑自行车。应该理解,此处所述的配置和/或方法在本质上是示例性的,且这些具体实施例或示例不被认为是限制性的。此处所述的具体例程或方法可表示任何数量的处理策略中的一个或更多个。由此,所示出的各个动作可以按所示顺序执行、按其他顺序执行、并行地执行等等。同样,可以改变上述过程的次序。本发明的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合、和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。
权利要求
1.一种用于混合运动的计算机实现的方法,所述计算机实现的方法包括 捕捉用户的现场运动315;接收预先记录的运动320 ;以及将所述现场运动应用到虚拟角色的第一部分并将所述预先记录的运动应用到所述虚拟角色的第二部分325。
2.如权利要求1所述的计算机实现的方法,其特征在于,还包括 接收图像305,其中所述图像包括与所述用户相关联的人类目标; 基于所接收到的图像中的所述人类目标来生成所述用户的模型310。
3.如权利要求2所述的计算机实现的方法,其特征在于,将所述现场运动应用到虚拟角色的第一部分并将所述预先记录的运动应用到所述虚拟角色的第二部分325进一步包括将所述虚拟角色的一个或多个身体部位映射到所述用户的模型中的一个或多个关节;以及将所述虚拟角色的一个或多个身体部位映射到与所述预先记录的运动相关联的角色模型的一个或多个身体部位。
4.如权利要求3所述的计算机实现的方法,其特征在于,将所述现场运动应用到虚拟角色的第一部分并将所述预先记录的运动应用到所述虚拟角色的第二部分325进一步包括禁用所述用户的模型中与所述虚拟角色的第二部分中的一个或多个身体部位相对应的一个或多个关节;禁用与所述预先记录的运动相关联的角色模型中与所述虚拟角色的第一部分中的一个或多个身体部位相对应的一个或多个关节;以及响应于禁用所述用户的模型中的一个或多个关节以及所述角色模型中的一个或多个关节,将与所述用户的所调整的模型相关联的现场运动与和所述角色模型相关联的预先记录的运动相混合;以及用所混合的现场和预先记录的运动来动画化所述虚拟角色的所述第一部分和所述第二部分。
5.如权利要求1所述的计算机实现的方法,其特征在于,进一步包括接收来自所述用户的姿势315,其中所述姿势与向所述虚拟角色应用动画的命令相关联。
6.如权利要求5所述的计算机实现的方法,其特征在于,响应于接收到来自用户的姿势,所述现场运动和所述预先记录的运动中的至少一个被应用到所述虚拟角色325的各个所述第一部分和所述第二部分。
7.一种其上存储有用于混合运动的计算机可执行指令的计算机可读存储介质34、 110、143、222,所述计算机可执行指令包括用于以下操作的指令将预先记录的运动应用到虚拟角色700,800 ; 接收来自用户18的第一姿势; 捕捉所述用户18的现场运动;以及响应于接收到所述第一姿势,将所述现场运动应用到所述虚拟角色700,800的至少一个部分。
8.如权利要求7所述的计算机可读存储介质,其特征在于,进一步包括用于接收来自用户18的第二姿势的指令。
9.如权利要求8所述的计算机可读存储介质,其特征在于,进一步包括用于响应于接收到所述第二姿势,将所述预先记录的运动应用到所述虚拟角色700,800的所述部分的指令。
10.如权利要求9所述的计算机可读存储介质,其特征在于,用于响应于接收到所述第二姿势,将所述预先记录的运动应用到所述虚拟角色700,800的所述部分的指令包括用于以下操作的指令将所述用户18的现场运动与所述预先记录的运动在预定量的帧上混合;以及用所混合的现场和预先记录的运动在预定量的帧上动画化所述虚拟角色800 ;以及在预定量的帧后用预先记录的运动动画化所述虚拟角色800。
11.一种用于混合运动的系统10,所述系统包括处理器32、101,259,其中所述处理器32、101,259执行计算机可执行指令,并且其中所述计算机可执行指令包括用于以下操作的指令 接收用户18的预先记录的运动和现场运动;将虚拟角色700的一个或多个身体部位映射到与所述现场运动相关联的用户18的第一模型500中的一个或多个关节;将所述虚拟角色700的一个或多个身体部位映射到与所述预先记录的运动相关联的第二模型600的一个或多个身体部位;以及用所述预先记录的运动和所述现场运动来动画化所述虚拟角色700。
12.如权利要求11所述的系统,其特征在于,其中预先记录的运动包括以下至少一个 用户18的预先记录的运动;艺术家开发的运动;以及被程序控制的转换。
13.如权利要求11所述的系统,其特征在于,用于用所述预先记录的运动和所述现场运动来动画化所述虚拟角色700的指令包括用于以下操作的指令禁用所述用户18的所述第一模型500中与所述虚拟角色700的第二部分中的一个或多个身体部位相对应的一个或多个关节;禁用与所述预先记录的运动相关联的所述第二模型600中与所述虚拟角色700的第一部分中的一个或多个身体部位相对应的一个或多个关节;以及响应于禁用所述用户18的所述第一模型500中的一个或多个关节以及所述第二模型 600中的一个或多个关节,将与所述用户18的所述第一模型500相关联的现场运动与和所述第二模型600相关联的预先记录的运动相混合;以及用所混合的现场和预先记录的运动来动画化所述虚拟角色700的所述第一部分和所述第二部分。
14.如权利要求11所述的系统,其特征在于,进一步包括用于接收来自所述用户18的姿势的指令,其中所述姿势与向所述虚拟角色700应用动画的命令相关联。
15.如权利要求14所述的系统,其特征在于,响应于接收来自用户18的所述姿势,所述虚拟角色700用所述现场运动和所述预先记录的运动来动画化。
全文摘要
可使用用户的现场运动和预先记录的运动来动画化一诸如屏幕上对象、化身、屏幕上角色等虚拟角色。例如,可捕捉用户的现场运动,并且可接收预先记录的运动,诸如预先记录的艺术家生成的运动、用户的预先记录的运动、和/或被程序控制的转换。现场运动接着可被应用到虚拟角色的第一部分,而预先记录的运动可被应用到该虚拟角色的第二部分,使得该虚拟角色可用现场运动和预先记录的运动的组合来动画化。
文档编号A63F13/00GK102596340SQ201080024686
公开日2012年7月18日 申请日期2010年5月22日 优先权日2009年5月29日
发明者A·A·基普曼, J·马戈利斯, K·S·佩雷 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1