首页> 中国专利> 用于在视频游戏中提供增强现实(AR)的AR系统

用于在视频游戏中提供增强现实(AR)的AR系统

摘要

一种增强现实(AR)系统允许在视频游戏中提供AR。所公开的AR系统允许将AR内容分层设置在视频游戏的内置特征的顶部,以便为游戏者提供独特的“游戏中”AR体验。远程计算系统提供用于AR内容和相关数据的中央数据仓库,所述中央数据仓库可以由所选的客户端机器访问,以渲染具有AR内容的增强帧。所述AR内容可以是在游戏世界内的适当位置处渲染的空间相关性AR内容。所述AR内容可以是事件特定的,使得所述AR内容响应于游戏相关事件而被添加。所公开的AR系统允许将多玩家方面添加到其它情况下的单玩家游戏中和/或实时共享AR内容以提供增强特征,如观战、游戏世界的混合和/或瞬间移动穿过AR对象。

著录项

  • 公开/公告号CN112839725A

    专利类型发明专利

  • 公开/公告日2021-05-25

    原文格式PDF

  • 申请/专利权人 威尔乌集团;

    申请/专利号CN201980062079.1

  • 发明设计人 I·布里斯戴尔-谢泼德;

    申请日2019-09-25

  • 分类号A63F13/26(20060101);A63F13/35(20060101);A63F13/86(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人刘瑜

  • 地址 美国华盛顿

  • 入库时间 2023-06-19 11:05:16

说明书

本申请是要求于2018年9月26日提交的题为“用于在视频游戏中提供增强现实(AR)的AR系统(AUGMENTED REALITY(AR)SYSTEM FOR PROVIDING AR IN VIDEO GAMES)”的美国专利申请序列号16/143,192的优先权的PCT申请,所述美国专利申请特此通过引用以其全文并入。

背景技术

传统上,增强现实(AR)技术涉及利用在透视显示器上显示的计算机生成的内容来增强真实世界环境。以此方式,此AR装置的用户能够在驻留于其真实世界环境中的真实对象的上下文中看到计算机生成的内容。到目前为止,AR技术主要局限于增强真实世界。针对这些和其它考虑呈现了本文所作的公开。

附图说明

参考附图进行了详细描述。在附图中,附图标记最左侧的一或多个数字标识附图标记首次出现的附图。在不同附图中使用同一附图标记指示类似或相同的组件或特征。

图1示出了展示具有增强现实(AR)组件的客户端机器的示例组件的框图,所述AR组件被配置成在视频游戏的执行期间渲染增强帧,所述增强帧包含视频游戏内容和增强现实(AR)内容。

图2是展示了示例系统的图示,所述示例系统包含远程计算系统的组件,所述组件用于创建AR内容并且在空间数据库中维护所述AR内容,以便将所述AR内容选择性地提供给客户端机器以用于在视频游戏中使用。

图3是展示了示例系统的图示,通过所述示例系统,客户端机器可以订阅确定由客户端机器接收的AR内容的AR频道。

图4是示例过程的流程图,所述示例过程用于:为作者提供内容创建接口以创建AR内容;将创建的AR内容存储在空间数据库中;以及基于一个或多个过滤标准将所选的AR内容发送给发出请求的客户端机器。

图5是用于在视频游戏的执行期间从远程计算系统接收AR内容并对帧(包含包括AR内容的增强帧)进行渲染的示例过程的流程图。

图6是用于在视频游戏的执行期间用空间相关性AR内容来增强帧的示例过程的流程图。

图7是用于在视频游戏的执行期间用动态和/或交互式AR内容来增强帧的示例过程的流程图。

图8是展示了用于使用所公开的AR系统将多玩家方面添加到单玩家视频游戏的示例技术的图示。

图9是用于使用AR系统通过借助于计算机网络在客户端机器之间进行数据交换来将多玩家方面添加到单玩家游戏的示例过程的流程图。

图10是展示了用于使用所公开的AR系统在客户端机器之间共享游戏世界的各方面的示例技术的图示。

图11是用于使用AR系统在客户端机器之间共享游戏世界的各方面的示例过程的流程图。

图12是用于在视频游戏与客户端机器上的单独执行的AR组件之间交换事件的示例过程的流程图。

具体实施方式

除了其它方面外,本文还描述了用于在视频游戏中提供增强现实(AR)的技术、装置和系统。如所提及的,AR传统上被认为是可用于增强用户对真实世界(即,用户的物理环境)的体验的技术。本文公开的AR系统增强的不是用户对真实世界的体验,而是用户对视频游戏的游戏世界的体验。所公开的AR系统允许将AR内容分层设置在视频游戏的内置特征的顶部。此游戏中AR系统在其允许作者通过为任何视频游戏或多个视频游戏创建AR内容来为游戏者提供独特的“游戏中”AR体验的意义上是通用的。在这样做时,所公开的AR系统减轻了游戏开发者向他们自己的游戏提供相同类型的增强特征的负担。如果留给他们自己的装置的话,则游戏开发人员可能会最终定制构建他们自己的AR系统,这可能会导致AR系统是游戏特定的并且与由其它游戏开发人员发布的其它游戏不兼容。相比之下,所公开的游戏中AR系统与多个不同的视频游戏兼容。

所公开的游戏中AR系统尤其可以包含充当用于AR内容和相关数据的中央数据仓库的远程计算系统。在一些实施例中,远程计算系统将AR内容维护在空间数据库中,所述空间数据库将AR内容与各种数据(例如,游戏标识符(ID)、与视频游戏的游戏世界坐标有关的空间数据、指定游戏相关事件的事件数据等)相关联。另外或可替代地,AR内容可以是充当AR内容的过滤标准的相关联的AR频道。

远程计算系统可以进一步为作者提供接口以创建新AR内容,所述新AR内容此后由远程计算系统进行维护并使得可被希望增强其视频游戏的游戏中AR体验的游戏者的所选观众所访问。此内容创建接口可以支持创建不同类型的AR内容,包含但不限于信息消息、二维(2D)对象、三维(3D)对象、具有2D和/或3D像素数据的屏幕快照、视频剪辑等。AR内容可以是“静态的”,并且因此可以渲染在游戏世界内的固定位置处。AR内容可以是“动态的”,并且因此可以在游戏世界内移动或动画化。在一些实施例中,AR内容甚至可以通过使用允许作者创建可执行程序的插件来交互,所述可执行程序对作为程序的输入的实时视频游戏数据进行响应。以此方式,视频游戏的玩家不仅可以体验已经添加到游戏世界中的AR内容,而且在一些情况下可以与AR内容进行交互,这非常类似于在核心视频游戏的游戏世界内玩二级视频游戏。

为了在游戏世界内渲染AR内容,客户端机器可以获得对AR内容的访问,并且可以在客户端机器上执行视频游戏时适当地标识相关性AR内容并将所述相关性AR内容渲染在游戏世界内。客户端机器可以从任何合适的存储位置(例如,通过计算机网络从远程计算系统;在从远程计算系统下载AR内容之后,从本地存储器)访问AR内容。在示例过程中,客户端机器可以执行视频游戏,所述视频游戏被配置成以一系列帧输出视频游戏内容。在游戏执行期间,客户端机器可以通过以下用AR内容增强一系列帧中的任何给定帧:(i)从视频游戏中获得关于视频游戏的当前状态的视频游戏数据;(ii)至少部分地基于视频游戏数据标识AR内容;(iii)生成包含视频游戏内容和所标识的AR内容的增强帧;以及(iv)在与客户端机器相关联的显示器上渲染增强帧。值得注意的是,AR内容不是由在客户端机器上执行的视频游戏生成的,而是从单独的资源中检索的,所述单独的资源维护在通过将AR内容分层设置在视频游戏内容的“顶部”来渲染增强帧时检索的AR内容。尽管本文经常陈述AR内容分层设置在视频游戏内容的“顶部”,但这不应按字面意思理解,因为AR内容可以以任何合适的方式与视频游戏内容合并,使得某种视频游戏内容(例如,半透明图形)渲染在AR内容的“顶部”。

在一些实施例中,视频游戏数据——其从正执行的视频游戏获得并且用于标识用于增强帧的相关性AR内容——可以是与视频游戏的游戏世界内的游戏世界坐标有关的空间数据。例如,AR内容可以基于其与游戏世界中的以某种方式与玩家控制的角色的当前位置有关坐标的关联性来标识。以此方式,空间相关性AR内容可以与视频游戏内容一起渲染在增强帧中的视频游戏的游戏世界内的某个位置处。在一些实施例中,视频游戏数据还可以是与游戏相关事件有关的事件数据。例如,可以基于游戏相关事件(例如,从枪支射击、游戏角色进入/离开车辆等)的发生,在游戏世界内标识并且渲染AR内容。

所公开的AR系统还允许利用各个多玩家方面来增强单玩家视频游戏。这可以在无需为了使其成为多玩家游戏而彻底修改单玩家游戏的代码的情况下实现。为了实现此类多玩家方面,客户端机器可以通过计算机网络交换数据。例如,可以将执行视频游戏的第一客户端机器连接到远程计算系统,使得第一客户端机器可以经由远程计算系统接收由也正在执行视频游戏的第二客户端机器发出的数据。由在第二客户端机器上执行的视频游戏发出的数据可以是空间数据,所述空间数据指定在第二客户端机器上渲染的游戏世界的第二实例内第二玩家控制的角色的当前位置。在通过网络接收到此空间数据后,第一客户端机器可以标识和检索AR内容(例如,第二玩家控制的角色的AR化身),并且第一客户端机器可以在第一客户端机器上正渲染的游戏世界的第一实例内渲染所检索的AR内容,所述AR内容渲染在游戏世界内的与所接收到的空间数据相对应的位置处。例如,此技术可以允许将“快速奔跑(speed running)”添加到其它单玩家游戏中,由此使用第一客户端机器的第一玩家看到第二玩家的游戏角色的AR化身,所述AR化身叠置到第一玩家的视频游戏的视频游戏内容上。

在一些实施例中,所公开的AR系统可以从3D屏幕快照(即,具有深度数据的图像)构建(或重建)游戏世界的一部分的模型。在这种情况下,AR内容可以是3D屏幕快照,并且3D屏幕快照中捕获的游戏世界的一部分的3D模型可以被构建成允许第一游戏者在由第二游戏者捕获的游戏世界的“切片(slice)”周围环顾和/或移动。可以在玩视频游戏时在第一游戏者的客户端机器上的增强帧122中渲染游戏世界的此3D切片。

在一些实施例中,所公开的游戏中AR系统可以允许通过计算机网络在不同游戏者的客户端机器之间实时共享AR内容。例如,AR内容可以在第一视频游戏中渲染为进入另一个玩家的视频游戏的游戏世界中的视口或甚至门户。此技术可以使用3D屏幕快照来构建在特定3D屏幕快照中展现的游戏世界的一部分的3D模型。这允许游戏者通过在每个视频游戏中被渲染为进入另一个视频游戏的虚拟游戏世界的窗口的AR内容彼此交互。

本文描述的技术和系统可以允许一个或多个装置在处理资源、存储器资源和/或联网资源方面节省资源。例如,至少与当今使用的通过计算机网络以高带宽消耗发送内容流的实况游戏流式传输技术相比,通过计算机网络发送数据代替实际内容(例如,图像和/或视频文件)减少了网络带宽消耗。作为另一个实例,将AR内容选择性地下载到客户端机器可以减少由本地客户端机器所产生和/或在本地客户端机器上的网络带宽消耗和/或存储器消耗,所述本地客户端机器被配置成在视频游戏执行期间检索和渲染AR内容。在整个本公开中描述了其它实例。

图1示出了展示具有增强现实(AR)组件102的客户端机器100的示例组件的框图,所述AR组件被配置成在视频游戏104的执行期间渲染增强帧,所述增强帧包含视频游戏内容和AR内容。一般来说,图1中所示的客户端机器100可以表示计算装置,所述计算装置可以由用户106用来执行所述计算装置上的程序和其它软件。在如图1所示的客户端机器100的用户106使用客户端机器100来实现玩耍在客户端机器100上执行或在远程计算系统上执行并且可在客户端机器100上作为流式传输的视频游戏104玩的视频游戏104的特定目的的上下文中,用户106在本文中通常被称为“玩家”。因此,术语“用户106”、“玩家106”和/或“游戏者106”在本文中可以互换使用,以表示客户端机器100的用户,其中客户端机器的许多用途之一是玩视频游戏。

客户端机器100可以被实施为被配置成处理图形并在相关联的显示器上渲染图形的任何合适类型的计算装置,包含但不限于PC、台式计算机、膝上型计算机、移动电话(例如,智能电话)、平板计算机、便携式数字助理(PDA)、可穿戴计算机(例如,虚拟现实(VR)头戴式受话器、增强现实(AR)头戴式受话器、智能眼镜等)、车载(例如,汽车内)计算机、电视(智能电视)、机顶盒(STB)、游戏控制台和/或任何类似的计算装置。

在所展示的实施方案中,客户端机器100除其它组件外还包含如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)等一个或多个处理器108、一个或多个显示器110、存储器112(或非暂时性计算机可读介质112)和一个或多个通信接口114。尽管图1的示例客户端机器100暗示客户端机器100包含嵌入式显示器110,但是客户端机器100实际上可以省略显示器,但是可以替代地耦合到外围显示器。因此,显示器110旨在表示相关联的显示器110,无论是嵌入在客户端机器100中还是与其连接(通过有线或无线协议)。

存储器112(或非暂时性计算机可读介质112)可以包含以任何方法或技术实施的用于存储如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性存储器、可移除或不可移除介质。此类存储器包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储装置、RAID存储系统或者可以用于存储期望信息并且可以由计算装置访问的任何其它介质。计算机可读介质112可以被实施为计算机可读存储介质(“CRSM”),其可以是可由一个或多个处理器108访问以执行存储在存储器112上的指令的任何可用物理介质。在一个基本实施方案中,CRSM可以包含随机存取存储器(“RAM”)和闪速存储器。在其它实施方案中,CRSM可以包含但不限于只读存储器(“ROM”)、电可擦除可编程只读存储器(“EEPROM”)或可以用于存储期望信息并且可以由一个或多个处理器108访问的任何其它有形介质。

如下面将更详细描述的,客户端机器100可以经由一个或多个通信接口114通过计算机网络与远程计算系统通信。如此,一个或多个通信接口114可以采用任何合适的通信协议,以通过有线基础设施(例如,同轴电缆、光纤电缆等)、无线基础设施(例如,射频(RF)、蜂窝、卫星等)和/或其它连接技术进行通信。

在一些实施例中,如图2中所示的远程计算系统200等远程计算系统充当或可以访问用于将程序(和内容)分发(例如下载)到客户端机器(如客户端机器100)的平台。因此,客户端机器100在图1中被示出为具有安装在存储器112中的视频游戏客户端116。视频游戏客户端116可以表示被配置成启动和执行如视频游戏(或视频游戏程序)等程序的可执行客户端应用。换句话说,视频游戏客户端116可以包含可用于在客户端机器100上玩视频游戏的游戏软件。在安装了视频游戏客户端116的情况下,客户端机器100然后可以具有通过计算机网络从远程系统接收(例如,下载、流式传输等)视频游戏的能力并经由视频游戏客户端116执行视频游戏。可以将任何类型的内容分发模型用于此目的,如其中可单独购买视频游戏以在客户端机器100上下载和执行的直接购买模型、基于订阅的模型、其中视频游戏被租用或租赁某一时间段的内容分发模型等。因此,客户端机器100可以在视频游戏库118内包含一个或多个视频游戏,如视频游戏104。可以通过加载视频游戏客户端116来检索并执行这些视频游戏。在实例中,用户可以通过加载视频游戏客户端116并选择视频游戏104以开始执行视频游戏104来选择玩他们已经购买并下载到视频游戏库118中的多个视频游戏之一。视频游戏客户端116可以允许用户106使用证书(例如,用户帐户、密码等)登录视频游戏服务。

如图2的远程计算系统200等远程计算系统可以进一步充当或访问用于将增强现实(AR)内容120分发(例如,流式传输、下载等)到客户端机器(如客户端机器100)的平台。因此,客户端机器100被示出为具有存储在本地存储器112中的AR内容120,使得可从本地存储器112访问AR内容120。一般来说,可以通过计算机网络从远程系统200接收(例如,下载、流式传输等)此AR内容120,并且可以将所述AR内容用于渲染增强帧的过程中,所述增强帧包含添加到由视频游戏104本身输出的视频游戏内容的AR内容120。如此,AR内容120可以被远程维护(例如,在远程计算系统200处)并且可以通过计算机网络来访问。图1展示了示例增强帧122,所述增强帧可以在视频游戏104的执行期间被渲染为多个帧之一。如本文所使用的,“帧”意指作为用于在显示器上渲染实况视频游戏的一系列图像帧中的许多图像帧之一的图像帧。因此,增强帧122是包含视频游戏内容124和AR内容120两者的复合帧。值得注意的是,AR内容120表示不是由视频游戏104本身生成的内容。因此,AR内容120表示事后添加到视频游戏内容的补充性计算机生成的图形。因此,图1中的视频游戏内容124表示在客户端机器100上执行时由视频游戏104本身输出的一系列帧之一的视频游戏内容。在这个意义上,视频游戏104的“游戏世界”可以由坐标系定义,并且在一系列帧中的每个帧中渲染的游戏世界的部分可以取决于各种因素,包含游戏世界内玩家控制的角色126的当前位置。游戏世界的坐标系可以定义与游戏世界内的位置相对应的坐标。图1示出了允许玩家106控制游戏角色126在游戏世界内的移动的第一人称射手视频游戏104的实例。例如,玩家106可以(例如,经由游戏控制器、触摸屏等)向客户端机器100提供用户输入,以将玩家控制的角色126从一个位置移动到另一个位置,其中每个位置根据指示在任何给定时刻玩家控制的角色126位于游戏世界内的位置的特定坐标而被指定。

如将在下面更详细描述的,可以与空间数据相关联地存储客户端机器100可访问的AR内容120,所述空间数据可以指定特定视频游戏104的游戏世界的特定坐标。以此方式,每当视频游戏104渲染包含与特定AR内容120相关联的坐标的游戏世界的一部分时,可以基于AR内容120与那些坐标的关联来标识所述AR内容,并且可以使用所标识的AR内容120生成增强帧122,所述增强帧包含在游戏世界内的与那些坐标相对应的位置处呈现的AR内容120。

为了说明客户端机器100可以如何操作以提供游戏中AR,考虑一系列帧中的将被渲染在与客户端机器100相关联的一个或多个显示器110上的帧。为了渲染给定的帧,在客户端机器100上执行的AR组件102可以:从视频游戏104获得关于视频游戏104的当前状态的视频游戏数据128;至少部分地基于视频游戏数据128来标识AR内容120(如图1中的箭头130所示,本地地或远程地访问AR内容120);生成增强帧122,所述增强帧包含由视频游戏104输出的视频游戏内容124和基于视频游戏数据128标识的AR内容120;并且在一个或多个显示器110上渲染增强帧122。

AR组件102可以与视频游戏104的执行分开地执行,使得在视频游戏104崩溃的情况下,AR组件102不会崩溃,并且反之亦然。在这个意义上,AR组件102与在客户端机器100上执行的任何特定视频游戏104解耦,这提供了具有包含AR组件102的AR系统的能力,所述AR组件与多个视频游戏兼容并且可在多个视频游戏之间传送,使得AR内容120可以添加到任何视频游戏104中,以增强用户体验。例如,AR组件102可以作为与视频游戏104分开的进程(例如,与视频游戏104的.exe分开的.exe)运行,并且AR组件102和视频游戏104可以来回通信。AR进程可以潜在地一次与多个视频游戏和/或多个非游戏应用进行通信。此AR进程还可以包含插件或者被配置成加载插件。这些插件可以在安全沙盒(或容器)内执行。AR组件102与视频游戏104的这种解耦提供了稳定性;视频游戏104将不会使AR进程崩溃,并且反之亦然。安全性是另一个益处,因为用于渲染AR内容102的第三方插件代码将不会与视频游戏104在同一进程中运行,因为其被沙盒化并保持分离,从而减轻了利用AR系统作弊的任何可能性。在一些实施例中,呈以下更详细描述的“AR查看器”形式的视频游戏可以允许用户106在视频游戏内容124的上下文之外观看AR内容120。例如,“AR查看器”可以访问AR内容120并将所述AR内容渲染在空白背景或游戏世界的3D模型表示上。

在图1的实例中,基于视频游戏数据128标识的AR内容120包含第一AR内容120(1)和第二AR内容120(2)。例如,第一AR内容120(1)是屏幕快照(例如,2D或3D图像),并且第二AR内容120(2)例如是信息消息。第一AR内容120(1)可以与游戏世界内的第一坐标相关联,并且第二AR内容120(2)可以与游戏世界内的第二坐标相关联。在此情形下,从视频游戏104获得的视频游戏数据128可以包含指定游戏世界内玩家控制的角色126的当前位置的空间数据并且可能包含其它空间数据,如与玩家控制的角色126相关联的虚拟相机的当前朝向。相机朝向数据可以指示从玩家控制的角色126的角度看的视野,并且因此,当与玩家控制的角色126的当前位置耦合时,可以确定与处于玩家控制的角色126的视野内的游戏世界的一部分相对应的一组坐标。以此方式,要在增强帧122中渲染的AR内容120可以至少部分地基于指定玩家控制的角色126的当前位置的空间数据并且可能基于如相机朝向数据、索引等另外的空间数据来标识。下面将更详细地描述空间数据的这些方面。

因此,AR组件102可以确定屏幕快照(第一AR内容120(1))将在与游戏世界内的第一位置相对应的第一坐标处渲染,并且确定信息消息(第二AR内容120(2))将在与游戏世界内的第二位置相对应的第二坐标处渲染。以此方式,AR内容120在其与游戏世界内的特定坐标相关联的意义上可以是“空间相关性”AR内容120。因此,玩家106可以在AR内容120周围对玩家控制的角色126进行导航,在一些情况下,所述AR内容保持固定在游戏世界内的某个位置处。

如所提及的,AR内容120在当特定事件在视频游戏104中发生时其与所述特定事件相关联的意义上可以另外地或可替代地是事件相关AR内容120。在此情形下,第一AR内容120(1)可以与第一游戏相关事件相关联,并且第二AR内容120(2)可以与第一游戏相关事件或第二游戏相关事件相关联,并且从视频游戏104获得的视频游戏数据128可以包含指示一个或多个游戏相关事件的发生的事件数据。

在一些实施例中,作为由视频游戏104进行的功能调用的一部分,AR组件102可以从视频游戏104接收视频游戏数据128。在此情形下,视频游戏104的游戏开发人员可以在视频游戏代码中实施应用编程接口(API),以提供渲染钩(rendering hook),所述渲染钩在游戏执行期间的各个帧循环期间对AR组件102进行此类功能调用以将视频游戏数据128传递给AR组件102。例如,可以将由视频游戏平台的服务提供商编写的代码库提供给游戏开发人员以集成到他们的视频游戏104中,这允许在游戏进程内提供AR相关进程运行并且负责与在单独进程中运行的外部AR组件102进行通信。AR组件102可以负责基于视频游戏数据128来渲染增强帧122,并且负责请求要在增强帧122中渲染的AR内容120。在一些实施例中,在帧循环期间的功能调用的定时使得在视频游戏内容124中渲染不透明图形之后,但在视频游戏内容124中渲染半透明图形之前进行功能调用,从而AR内容120可以渲染在两种类型的图形之间。在一些实施例中,来自深度缓冲器的深度数据用于适当地合并视频游戏内容124和AR内容120。功能调用可以将视频游戏数据128(例如,如游戏世界坐标、玩家控制的角色126的相机朝向的矩阵变换等空间数据、事件数据等)提供给AR组件102,使得AR组件102可以基于视频游戏数据128检索相关性AR内容120。

在一些实施例中,可以由AR组件102将AR内容120作为视频游戏内容124的现有帧上的覆盖物自动地“注入”到视频游戏中,这不依赖于与游戏开发人员协调来将任何另外的AR相关代码实施到其视频游戏中。如将在下面更详细描述的,可以使用同时定位与地图构建(SLAM)技术来实现这种自动注入技术。简而言之,SLAM过程可以由图2所示的远程计算系统200离线执行并且可以用于从许多图像递增地重建游戏世界几何形状(例如,游戏世界的3D模型)。此后端过程可以由视频游戏平台的服务提供商、由游戏开发人员和/或通过从玩家客户端机器100众包游戏世界图像来完成。以此方式,SLAM可以用于使视频游戏内容124的屏幕快照中所描绘的游戏世界几何形状的识别自动化,并且由SLAM过程生成的游戏世界的3D模型可以由客户端机器100使用以便以在游戏世界几何形状的上下文中呈现AR内容120的方式利用AR内容120增强视频游戏内容124。这还可以允许将AR内容120添加到旧目录游戏的视频游戏内容124中,所述旧目录游戏的代码不再由游戏开发人员更新。在一些实施例中,视频游戏106可以被配置成在不依赖于AR组件102的情况下显式地请求AR内容120本身并渲染AR内容120本身。

在一些实施例中,AR内容120在渲染增强帧122的过程中叠置在视频游戏内容124上。例如,视频游戏104可以输出像素数据(例如,颜色值、深度值等),所述像素数据对应于针对增强帧122的要在一个或多个显示器110上渲染的图形。由视频游戏104输出的像素数据可以指示例如要首先渲染不透明图形(例如,在距玩家控制的角色126的当前位置较远的较大深度值处),并且指示要在不透明图形之后渲染半透明图形(例如,颗粒、云、灰尘等)(例如,在与玩家控制的角色126的当前位置较接近的较小深度值处)。因此,在一些情况下,如通过在不透明图形与半透明图形的相应深度值之间的深度值处渲染AR内容120,可以在不透明图形与半透明图形之间渲染AR内容120。

在一些实施例中,可以在增强帧122内以细微的方式来呈现AR内容120,如利用不占用游戏世界中的太多空间的图标,并且当用户106专注于AR内容120时(例如,通过将指针悬停在图标之上,移动到图标附近等),可以呈现询问用户106他/她是否想看更多的弹出窗口。如果用户106通过按钮的选择指示他/她想看更多,则可以呈现AR内容120的完整版本(例如,通过将图标扩展为屏幕快照、信息消息、对象或任何其它形式的AR内容120)。在一些实施例中,可以以这种方式呈现未订阅的AR内容120。在下面更详细地讨论AR频道(例如,参见图3)。简而言之,AR频道充当过滤机制,使得用户106可以订阅一个或多个AR频道以看到与那些已订阅AR频道相关的AR内容。然而,除了从已订阅AR频道接收订阅的AR内容之外,客户端机器100还可以接收用户106尚未订阅的AR内容120,所述尚未订阅的AR内容以用于将未订阅的AR内容120与订阅的AR内容120在视觉上区分开的细微方式呈现在增强帧122内。可以基于视频游戏104的游戏世界的待渲染部分的当前游戏世界坐标将此未订阅的AR内容120传输到客户端机器100。因此,可以基于用户106当前正经历的游戏世界内的位置,将未订阅的AR内容120提供给用户106以进行订阅。

图2是展示了示例系统202的图示,所述示例系统包含远程计算系统200的组件,所述组件用于在空间数据库204中创建和维护AR内容120和相关数据,以便将AR内容120选择性地提供给客户端机器以用于在视频游戏中使用。在所展示的实施方案中,远程计算系统200除其它组件外还包含一个或多个处理器206、一个或多个通信接口208和存储器210(或非暂时性计算机可读介质210)。存储器210(或非暂时性计算机可读介质210)可以包含以任何方法或技术实施的用于存储如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性存储器、可移除或不可移除介质。此类存储器包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储装置、RAID存储系统或者可以用于存储期望信息并且可以由计算装置访问的任何其它介质。计算机可读介质210可以被实施为计算机可读存储介质(“CRSM”),其可以是可由一个或多个处理器206访问以执行存储在存储器210上的指令的任何可用物理介质。在一个基本实施方案中,CRSM可以包含随机存取存储器(“RAM”)和闪速存储器。在其它实施方案中,CRSM可以包含但不限于只读存储器(“ROM”)、电可擦除可编程只读存储器(“EEPROM”)或可以用于存储期望信息并且可以由一个或多个处理器206访问的任何其它有形介质。增强现实(AR)模块212可以表示存储在存储器210中的指令,所述指令当由一个或多个处理器206执行时使远程计算系统200执行本文所述的技术和操作。存储器210还被示出为维护视频游戏目录214,其可以存储如视频游戏104等视频游戏的目录,以分发给如本文所述的客户端机器100等客户端机器。

一个或多个通信接口208可以采用任何合适的通信协议,以通过有线基础设施(例如,同轴电缆、光纤电缆等)、无线基础设施(例如,射频(RF)、蜂窝、卫星等)和/或其它连接技术进行通信。如图2中所示的作者216(1)和216(2)等作者可以使用相应的用户计算装置220(1)和220(2)通过计算机网络218访问远程计算系统200。计算机网络218可以表示和/或包含但不限于因特网、其它类型的数据和/或语音网络、有线基础设施(例如,同轴电缆、光纤电缆等)、无线基础设施(例如,射频(RF)、蜂窝、卫星等)和/或其它连接技术。在一些情况下,远程计算系统200可以是被维护并可通过计算机网络218访问的网络可访问计算平台的一部分。可以使用如“按需计算”、“软件即服务(SaaS)”、“平台计算”、“网络可访问平台”、“云服务”、“数据中心”等术语来提及如这种网络可访问计算平台等网络可访问计算平台。一般来说,远程计算系统200被配置成充当用于AR内容120和相关数据的中央数据仓库。

远程计算系统200可以被进一步配置成为用户计算装置120提供接口(例如,应用编程接口(API))以创建新AR内容120。如此,远程计算系统200可以通过内容创建接口(例如,API)从用户计算装置120接收用于创建AR内容120的指令222。图2描绘了使用第一用户计算装置220(1)来提供用于创建新AR内容120的第一指令222(1)的第一作者216(1),以及使用第二用户计算装置220(2)来提供用于创建新AR内容120的第二指令222(2)的第二作者216(2)。应当理解,远程计算系统220可以支持希望创建新AR内容120的此类作者216的社区,使得所述新AR内容由远程计算系统200维护,以在玩视频游戏时供客户端机器进行访问。

除了允许作者216在视频游戏104的执行之外创建AR内容120的API之外,还可以在视频游戏104的执行期间经由插件逻辑在客户端机器100上创建新AR内容120。例如,在客户端机器100上执行的AR组件102可以将视频游戏数据128提供给在玩游戏期间创建新AR内容120(例如,便利贴、屏幕快照等)的一个或多个插件。此插件创建的AR内容120在其在当前玩家106的游戏会话的存在期内存在的意义上可以是瞬态的并且在会话结束之后不持续存在。可替代地,可以将插件创建的AR内容120上载到空间数据库204,以便在以后的游戏会话中可访问所述插件创建的AR内容。在一些实施例中,插件创建的AR内容120与正在玩同一视频游戏104或不同视频游戏的其它玩家106实时共享。在此情形下,远程计算系统200用作在游戏会话期间在客户端机器100之间中继AR内容120的服务器。作者216还可以使用内容创建API来指定与新AR内容和/或作者216先前创建的内容相关联的访问权限。内容创建API还可以允许将AR内容添加到与一个或多个视频游戏104相关联的预先存在的屏幕快照或视频剪辑中。

图2示出了用于存储由作者216创建的AR内容120的空间数据库204。空间数据库204可以将AR内容120与各种类型的数据(包含但不限于图2中所示的数据的类型)相关联。例如,图2展示了空间数据库204可以如何包含AR内容120(1)、120(2)、...、120(N)的多个记录。AR内容120的每个记录可以例如与唯一地标识视频游戏目录214内的视频游戏104的游戏标识符(ID)224相关联。以此方式,AR内容120的每个记录可以被绑定到特定视频游戏。在一些实施例中,AR内容120的各个记录可以与多个不同视频游戏的多个游戏ID 224相关联,或者空间数据库204可以维护单独的记录以将同一AR内容120与不同视频游戏的多个不同游戏ID 224相关联。在一些实施例中,游戏ID 224可以允许以任何合适的粒度级别如视频游戏的级别(如果视频游戏具有多个级别的话)来指定视频游戏的方面。例如,AR内容120的记录可以与特定视频游戏的级别3相关联,而与其它级别无关。

AR内容120的各个记录也可以与唯一地标识AR频道的AR频道ID 230相关联。下文(例如,参考图3)更详细地描述AR频道。简而言之,AR频道可以充当过滤标准以过滤掉不相关的AR内容120,并且基于所述用户106的AR频道订阅将相关性AR内容120发送到用户106的客户端机器。

AR内容120的各个记录也可以与游戏世界坐标226相关联。游戏世界坐标226可以被认为是指定特定视频游戏的游戏世界内的特定坐标的空间数据227,所述游戏世界由坐标系定义。以此方式,每当与AR内容120的记录相关联的游戏世界坐标226将被渲染在帧中以便向视频游戏104的玩家106呈现游戏世界的一部分时,与那些游戏世界坐标226相关联的AR内容120可以被标识并用于生成包含AR内容120的增强帧122。在说明性实例中,每当在一系列帧中的某一帧中渲染门廊时,作者216(1)可以为给定级别的视频游戏创建将在所述门廊中呈现的如信息消息等AR内容120。应当理解,AR内容120的多个记录可以与相同的游戏世界坐标226(例如,给定级别的视频游戏上的门廊)相关联,并且与那些游戏世界坐标226相关联的一些或全部AR内容120对于视频游戏的给定玩家106而言是可呈现的,这取决于玩家106访问AR内容120的访问权限。例如,多个信息消息可以与特定视频游戏的级别3上的门廊相关联,并且当门廊处于玩家控制的角色126的视野中时,这些信息消息中的一些或全部信息消息作为AR内容120对于给定玩家106都是可见的。

再次参考游戏ID 224,游戏ID 224也可以用于区分视频游戏104的游戏世界内的游戏世界坐标226的多个实例。换句话说,在游戏世界坐标不明确的情况下,游戏ID 224可以使游戏世界坐标226唯一。考虑一个实例,其中作者216(2)想要将全息图作为AR内容120附接到作为视频游戏内容124提供的汽车上。在客户端机器100上执行的AR组件102可能需要知道要将AR内容120(例如,全息图)附接到具有相同品牌和型号的潜在许多汽车中的哪个汽车。对于可以在游戏世界中到处移动的如汽车等移动对象,与此类移动对象相关联的游戏世界坐标226可以相对于移动对象来表达,而不是相对于移动对象之外的游戏世界环境的一部分来表达。在这种情况下,与移动对象相关联的游戏世界坐标226可能不足以完全区分AR内容120(例如,全息图)所要附接到的游戏世界的部分,并且游戏ID 224因此可用于完全区分游戏世界坐标226的多个实例。

作为可以如何使用游戏ID 224的另一个实例,考虑出现在视频游戏104的游戏世界中的多个不同位置中的虚拟酒店。尽管视频游戏104可以相对于酒店本身表达各个酒店的游戏世界坐标226(例如,就好像酒店本身就是小型游戏世界),但酒店的每个实例都可以由不同的游戏ID 224唯一标识。一般来说,应当理解,游戏世界坐标226可能不真正类似于真实世界坐标,这是由于未被真实世界所共享的视频游戏的各个方面(例如,连接不同位置的门户、每次加载视频游戏(每次会话)时都会以不同的顺序拼接在一起的预建房间等)所引起的。由于这些和其它原因,游戏ID 224可以有助于区分相同游戏世界坐标226的多个实例。

在说明性实例中,AR内容120的记录可以对应于由玩家控制的角色捕获的游戏世界的一部分的屏幕快照(例如,图1中所示的第一AR内容120(1))。当屏幕快照被捕获时,其可能已经与游戏世界坐标226和游戏ID 224以及屏幕快照被捕获时的相机朝向相关联。此数据可以与相关联的AR内容120一起上载,以在空间数据库204中创建新记录。因此,在玩游戏期间,当视频游戏104以指定与玩家控制的角色126相关联的当前游戏世界坐标226和当前游戏ID 224的空间数据的形式提供视频游戏数据128时,与所述空间数据相关联的屏幕快照可以作为AR内容120渲染在用于所述帧的视频游戏内容124的顶部,从而允许第一游戏者106看到与第二游戏者106看到的游戏世界快照相同的游戏世界快照。在一些实施例中,不显示实际屏幕快照,除非并且直到当前玩家的相机朝向匹配与屏幕快照相关联的相机朝向,并且除此以外,当相机朝向不匹配时,这些屏幕快照可以在游戏世界中呈现为“浮动”图像,非常类似于图1所示的示例第一AR内容120(1)。以此方式,如果多个屏幕快照在游戏世界的相同位置中被捕获并作为AR内容120上载到远程计算系统200,则给定玩家106可以看到浮动图像的集群,每当玩家106将他/她的玩家控制的角色126与和那些屏幕快照相关联的相机朝向对准时都可查看所述浮动图像。

AR内容120的各个记录也可以与状态228相关联。为了说明可以如何使用状态228,考虑一种视频游戏,所述视频游戏呈现的游戏世界随着时间的推移(如在发生改变游戏中发生的事情的特定事件时)在不同状态之间动态变化。在说明性实例中,游戏世界可以在击败头目之前以第一状态呈现并且在击败头目之后以第二状态呈现。在这个意义上,AR内容120的各个记录可以借助状态228与这些不同的游戏世界状态相关联。也就是说,与特定游戏世界坐标226相关联的第一AR内容120可以通过其与第一状态228的关联而以游戏世界的第一状态呈现,并且当游戏世界的状态改变时,第一AR内容120可以被移除,并且与相同游戏世界坐标226相关联的第二AR内容可以通过其与第二状态228的关联而以游戏世界的第二状态呈现,依此类推。在说明性实例中,当玩家106开始头目战时,玩家106可以看到呈祝愿玩家在与头目交战中“好运”的信息消息的形式的第一AR内容120,并且然后当玩家106击败头目时,玩家106可以看到呈祝贺玩家击败头目的信息消息的形式的第二AR内容120。

作为可以如何使用状态228的又另一实例,考虑可在不同模式(例如,每个玩家自己玩耍的单独模式、玩家成对玩耍的搭档模式、玩家以较大群组玩耍的小队模式等)下玩耍的视频游戏。这些模式可以独立地,但在视频游戏的同一游戏世界内进行玩耍。因此,AR内容120的记录可以与对应于特定游戏模式的状态228相关联。一般来说,状态228可以是用于对要在增强帧122中渲染AR内容120的上下文(不一定是空间上下文)进行过滤的任何状态。

AR内容120的各个记录也可以与像素数据232相关联。像素数据232可以具体地与呈由视频游戏的玩家106捕获的屏幕快照的形式的AR内容120相关联。例如,像素数据232可以包含每像素值(例如,颜色值)的2D阵列,以重建游戏世界的2D屏幕快照。在一些实施例中,像素数据232包含向场景提供深度感的每像素深度值。客户端机器100的AR组件102可以使用包含与场景有关的3D信息的像素数据232来构建游戏世界的3D模型。

在图2中被示出为包含在空间数据库204的AR内容120的记录中的示例数据类型仅仅是实例,并且可能存在与AR内容120的特定记录相关联的其它类型的数据。例如,访问权限可以与AR内容120的各个记录相关联,以指示在玩视频游戏时AR内容120对其具有可见性的特定用户或用户组。例如,AR内容120可以与标签相关联,所述标签指定AR内容120对于公众、创建AR内容120的作者216的朋友或其它指定的用户或用户组是可见的。在一些实例中,AR内容120可以与用户兴趣、口语(例如,英语、日语、西班牙语等)、地理位置、一天中的时间等相关联。这些类型的数据可以充当过滤标准,以允许在满足一个或多个标准时将AR内容120发送到发出请求的客户端机器100。这些类型的数据可以另外地或可替代地充当渲染标准以确定是否渲染AR内容120(例如,渲染AR内容120:如果当前时间对应于一天中的特定时间(例如,在特定时间范围内),如果用户106当前位于特定地理位置处(例如,在特定地理区/区域内),如果用户106讲特定语言,如果用户106对特定主题感兴趣(例如,如用户个人资料(其中指定了用户兴趣)中所指示的)等)。

作者216可以通过由远程计算系统200提供的内容创建接口(例如,应用编程接口(API))来创建各种不同类型的AR内容120。AR内容120的示例类型包含但不限于:信息消息(例如,游戏者106发布的消息);虚拟对象(例如,形状、化身、射击目标等)——包含2D和/或3D对象;玩家在玩视频游戏时捕获的屏幕快照——包含2D和/或3D屏幕快照;视频剪辑;交互式对象(例如,游戏角色或在游戏世界内移动的其它虚拟对象或图形)等。

为了使得能够创建AR内容120(例如,静态、动态或以其它方式为交互式的AR内容120),远程计算系统200可以为作者216提供API以编写存储在空间数据库204内的AR内容120的记录中的代码(例如,如插件等可执行程序,其可以被实施为动态链接库(DLL)、Javascript文件、.exe等)。在此情形下,代替检索已经创建的AR内容120,可以将关于视频游戏104的当前状态的视频游戏数据128作为输入提供给AR内容120的记录的可执行程序,并且可执行程序可以基于视频游戏数据128的程序处理生成并输出AR内容120。在这个意义上,在一些实施例中,存储在空间数据库204的记录中的“AR内容”可以包含“可执行程序”,所述可执行程序被配置成基于输入到可执行程序的视频游戏数据128来生成AR内容。在一些实施例中,在客户端机器100上执行的AR组件102可以创建安全沙盒,加载与客户端机器100的用户106所订阅的一个或多个AR频道相对应的一个或多个可执行程序或插件(例如,DLL),并且向插件提供视频游戏数据128以使插件运行它们相应的逻辑并返回AR内容120。例如,可能存在DLL的文件夹,每个DLL表示不同的插件。当用户106订阅一个或多个AR频道时,AR组件102可以在安全沙盒内加载一个或多个对应的DLL,并且然后,对于待渲染的每个帧,AR组件102可以将视频游戏数据128作为输入提供给已经加载的一个或多个对应的DLL,并且可以从一个或多个DLL接收作为输出的将在作为增强帧122的所述帧中渲染的AR内容120。在说明性实例中,作者216可以创建插件,以允许将动画对象(例如,游戏角色)添加到视频游戏104的游戏世界中作为AR内容120的覆盖物。使用此类插件层,作者216可以创建相对于基本(或核心)视频游戏104单独运行并且被呈现为视频游戏104的视频游戏内容上的覆盖物的二级游戏。在这个意义上,视频游戏104不需要知道或关心渲染在视频游戏内容124的顶部的AR内容120,但是交互式AR内容120仍然可以取决于关于视频游戏104的当前状态的视频游戏数据128,使得交互式AR内容120可以在游戏世界内的适当上下文中(例如,在给定游戏世界的几何形状的情况下,在适当的位置处且以明智的方式、在适当的时间等)呈现。以此方式,玩家106可以通过提供用户输入以控制玩家控制的角色126来与AR内容120交互。AR插件可以在客户端机器100上本地执行,或者可以在远程计算系统200处远程执行。在后一种情况下,AR内容120可以由客户端机器100通过网络218实时接收。用户106可选择多个可执行程序(AR插件)以从远程计算系统200下载,各个插件生成用于特定目的的AR内容120。

在某些实施例中,由远程计算系统200提供的内容创建接口(例如,API)可以允许作者216创建可执行程序(例如,插件),所述可执行程序被配置成接收与正渲染在客户端机器100的屏幕上的游戏世界的当前场景(例如,3D屏幕快照)有关的视频游戏数据128作为输入,并且可执行程序可以输出AR内容。以此方式,可以于在客户端机器100的屏幕上呈现的游戏世界的上下文中呈现交互式AR内容120。例如,作者216可以使用插件来编写可执行程序,所述可执行程序使AR游戏角色在视频游戏的游戏世界到处奔跑,如玩家106可以尝试射击、捕获或以其它方式与之交互的敌人。3D屏幕快照数据可以允许以现实的方式添加此类交互式内容120,如通过角色在游戏世界中绕墙壁奔跑而不是穿过墙壁奔跑。对于具有类似的玩家运动行为、类似大小的世界和/或类似的游戏逻辑的视频游戏104,作者216可以创建与多个视频游戏兼容并跨多个视频游戏起作用的可执行程序。以此方式,包含AR模块212的AR系统可以促进二级游戏开发的文化,其中作者216喜欢使用插件创建API来创建二级基于AR的游戏,所述二级基于AR的游戏运行在多个不同视频游戏(尤其是具有类似游戏世界和玩家运动行为的视频游戏)的“顶部”。在这个意义上,使用本文公开的AR系统的作者216实际上可以是从事开发二级基于AR的游戏的游戏开发人员。例如,插件可以用于创建AR游戏会话,其使用来自多个游戏实例的游戏状态以便生成AR内容120,然后可以在多个客户端机器100之间共享所述AR内容。那些客户端机器100的用户106可以能够参与这些AR游戏会话而无需执行相同的视频游戏——一些AR游戏可以被设计成允许每个用户处于不同的游戏中或处于呈AR查看器的形式的视频游戏内。可以由网络218来中介“AR游戏会话”内的用户交互(例如,即使在一个或多个特定视频游戏中不支持用户通过网络218交互,AR平台也使用户能够彼此交互)。

游戏开发人员可以通过向他们的游戏代码添加次要特征以支持提供如本文所描述的交互式AR内容120的可执行程序的使用来参与此AR系统。例如,视频游戏104可以由游戏开发人员开发,由此视频游戏被配置成向在给定客户端机器100上执行的AR组件102发出数据并从所述AR组件接收数据,以用于将交互式AR内容120作为另外的层添加在视频游戏内容124的顶部。例如,游戏开发人员可以向他们的视频游戏104添加一行或多行代码,每当在游戏中射出子弹时,所述视频游戏就发出数据,所述数据指定游戏世界内的向量(或射线),所述向量(或射线)提供与由视频游戏104中玩家控制的角色126发射的子弹有关的方向性和可能的量值(例如,速度)。AR组件102可以接收此发出的数据,并且将其作为输入提供给和与子弹发射相对应的事件数据相关联的AR内容120的特定记录的可执行程序。可执行程序可以通过生成定位于游戏世界内并且玩家106可以尝试使用玩家控制的角色126的武器(例如,枪支、刀等)来击中的基于AR的射击目标来对此事件进行响应。可执行程序可以继续接收由视频游戏104发出的数据,所述数据通知可执行程序关于是否已经击中了基于AR的射击目标,并且可执行程序可以输出爆炸目标,使得玩家106可以通过射击基于AR的射击目标并使其爆炸来与所述基于AR的射击目标交互。在视频游戏104的热身阶段期间,这对于玩家106练习他们的射击而不是仅仅漫无目的地在游戏世界中到处奔跑可能是有用的。在这个意义上,游戏开发人员可以通过更新其视频游戏104以发出和/或接收由作者216使用插件层编写的可执行程序所使用的特定数据,来为其游戏中的此类基于AR的交互性提供持续的支持。

在一些实施例中,由远程计算系统200提供的内容创建接口(例如,API)可以允许作者216编写可执行程序(例如,插件),所述可执行程序将数据提供给视频游戏104作为与视频游戏104具有交互性的另外的层。例如,API可以用于编写程序(例如,插件),所述程序(例如,插件)在其执行期间向视频游戏104发送数据,以便控制玩家控制的角色126何时获得或失去健康,或者控制特定游戏中敌人在何时和/或何处出现。游戏开发人员可能必须编写支持与在客户端机器100上执行的AR组件102的这种双向交互的游戏代码,并且游戏开发人员可以确定何时启用此类功能(例如,通过在在线竞争性比赛期间禁用交互式AR内容120以防止作弊,但在单玩家模式期间允许交互式AR内容120在基本视频游戏104的顶部提供更生动有趣的AR体验)。在一些实施例中,由不同作者216编写的不同AR插件(可执行程序)可以通过在视频游戏执行期间在AR组件102的管理处来回传递数据来彼此交互。例如,作者216可以创建向玩家控制的角色126提供“生活质量改善”的“效用”插件(例如,用于可视化从视频游戏104的内置用户接口中省略的有用信息的AR插件)。

在一些实施例中,远程计算系统200可以维护游戏世界234的3D模型的储存库。如所提及的,SLAM过程可以由远程计算系统200离线执行,以便重建游戏世界几何形状并将游戏世界几何形状存储在游戏世界234的3D模型中。3D模型可以是游戏世界的一部分,使得多个3D模型可以构成整个游戏世界。SLAM是除其它之外使用计算算法基于在未知地形环境中基于捕获所述环境的至少一部分的图像数据展现的已识别的形状、点、线等来构建模型(或地图)的技术。例如,3D模型可以表示经由SLAM从许多游戏帧重建(例如,从(具有或不具有深度缓冲数据的颜色数据的)密集的时间连续视频流重建)的游戏世界的聚合区域。此重建可以作为单独的后端过程来完成,使得3D模型234在AR插件开始在客户端机器100上执行之前就先验地可用。对于给定视频游戏,可以由视频游戏平台的服务提供商、由视频游戏104的游戏开发人员或通过从玩家客户端机器100众包视频游戏屏幕快照来执行3D重建过程。可以在从用户106的客户端机器100获得此类数据之前获得用户同意。此外,出于构建3D模型234的目的,用户106可以通过自愿探索游戏世界并且将屏幕快照数据上载到远程计算系统200来选择参与所述过程。

出于标识来自视频游戏内容124的图像的游戏世界并且为了在游戏中添加AR内容120而确定相机姿势的目的,可以由客户端机器100检索SLAM创建的3D模型234。在一些实施例中,可以由客户端机器100获得3D模型234,以便自动地将AR内容120注入未经修改的视频游戏和/或视频游戏的预先存在的屏幕快照和/或视频中。这可以实现“流式传输”使用实例,其中视频游戏104输出没有AR内容120的视频流,AR系统(例如,AR组件102和/或AR模块212)将AR内容120叠置在视频流的顶部(例如,通过从视频游戏获得足够的信息,如每帧相机姿势)。

图3是展示了示例系统300的图示,通过所述示例系统,客户端机器100可以订阅确定由客户端机器100接收的AR内容120的AR频道。一般来说,可以与参考图1描述的客户端机器100相同的客户端机器100可以在执行视频游戏104之前和/或在执行视频游戏104期间,通过计算机网络218从远程计算系统200接收AR内容120。这可以涉及在视频游戏104的执行期间AR内容120的实时流式传输,或者当AR内容120将被渲染为增强帧122的一部分时,为了减少时延和/或网络带宽消耗,可以从远程计算系统200下载AR内容120并且可以从客户端机器100的本地存储器访问所述AR内容。在一些实施例中,每当用户106在客户端机器100上开始视频游戏104时,视频游戏客户端116就通过计算机网络218向远程计算系统200发送包含视频游戏104的标识符(例如,游戏ID 224)的请求,并且远程计算系统200使用游戏ID224在空间数据库204内查找与游戏ID 224相关联的AR内容120的记录。因此,在空间数据库204中维护的可用AR内容120中,远程计算系统200可以标识与其在请求中从客户端机器100接收的游戏ID 224相关联的可用AR内容120的子集。可以基于一个或多个过滤标准来进一步过滤此标识的AR内容120,从而使AR内容120的经过滤子集最终被发送到客户端机器100,所述AR内容120的经过滤子集是还满足一个或多个过滤标准的与游戏ID 224相关联的AR内容120。此过滤标准可以包含如果发送请求的用户106具有对AR内容120的访问权限则满足的一个或多个标准。例如,在AR内容120的记录仅对于特定用户组是可见的情况下,如果发送请求的已登录用户帐户包含在所述特定用户组中,则将所述AR内容120的记录发送到客户端机器100。否则,如果未包含在所述特定用户组中的用户106发送了对AR内容120的请求,则所述AR内容120的记录可能不会被发送到客户端机器100,这得视用户106为何可能没有对所述AR内容120的访问权限而定。

图3中展示的另一示例过滤标准是AR内容120是否与客户端机器100的用户106已经订阅的频道相关联。图3示出了视频游戏客户端116可以在客户端机器100上显示的用户接口302。用户接口302可以包含菜单项304的列表,以供用户选择,用于导航到由远程计算系统200提供的视频游戏服务的不同方面。例如,“商店”菜单项304可以允许客户端机器100的用户106浏览如视频游戏目录214内的视频游戏等内容。“库”菜单项304可以允许用户106浏览内容库,如客户端机器100由于用户106已经获取(例如,购买、租用、租赁等)视频游戏而可访问的视频游戏库118。“新闻”菜单项304可以允许用户106浏览由内容发布实体发布的新闻文章。“社区”菜单项304可以允许用户106与视频游戏服务的其它用户106(如朋友和社区的其它用户)进行交互。“游戏中增强现实”菜单项304可以允许客户端机器100的用户106访问由本文公开的AR系统提供的各种AR特征。图3中描绘的那些AR特征之一是“频道”AR特征,所述频道AR特征允许用户106订阅不同的AR频道306,所述不同的AR频道规定通过计算机网络218发送到客户端机器100并且因此使得其对于客户端机器100的用户106是可见的AR内容120的类型。换句话说,由远程计算系统200维护的可用AR内容120可以被划分为AR频道306,并且用户106可以订阅那些AR频道306中的一个或多个AR频道,并且可能在频道之间切换以便在视频游戏104的执行期间查看不同类型的AR内容120。AR频道306也可以被认为是AR内容120的“层”,所述层基于用户106的频道订阅而变得可见或保持隐藏。

图3示出了用户106可以订阅的四个示例AR频道306(1)-(4),其中在用户106尚未订阅的每个AR频道306旁边带有“订阅”按钮。对于已经订阅的频道,可以在AR频道306旁边提供对用户106已经订阅AR频道306的指示,如“屏幕快照”频道306(2)旁边的“复选框”,其指示用户106已经订阅了所述AR频道306(2)。例如,用户106可以订阅“同人小说”频道306(1),以使与同人小说有关的AR内容120在视频游戏104的执行期间可见(例如,可以在整个游戏世界中放置讲故事并且可能给出关于在哪里找到下一条信息消息的暗示(类似于地理寻宝)的多个信息消息)。用户106可以订阅“屏幕快照”频道306(2),以使包括屏幕快照的AR内容120在视频游戏104的执行期间可见。用户106可以订阅“朋友”频道306(3),以使与用户106的朋友中的一个或多个朋友相关联的AR内容120在视频游戏104的执行期间可见。可以向此类型的AR频道306(3)提供下拉菜单或类似的选择机制,以选择用户106想要订阅的特定朋友和/或朋友组。用户106可以订阅“职业游戏者”频道306(4),以使与一个或多个职业游戏者相关联的AR内容120在视频游戏104的执行期间可见。而且,可以为此类型的AR频道306(4)提供下拉菜单或类似的选择机制,以选择用户106想要订阅的特定职业游戏者或游戏者组。这些仅是用户106可以订阅的AR频道306的类型的实例。

在一些实施例中,用户106可以订阅仅选择当前流行的AR内容120(例如,高于阈值的量的具有AR内容120的社区活动,高于阈值的数量的观看或赞成票,用户106的朋友当中的流行AR内容120等)并且仅使其可见的AR频道306。换句话说,AR频道306中的一个或多个AR频道可以被配置成基于指示社区的其它用户对AR内容120感兴趣的某一水平的试探法,来选择性地使用户106可能感兴趣的所述AR频道120的AR内容120的子集可见。在一些实施例中,远程计算系统200的AR模块212可以被配置成在玩游戏期间向当前正在玩视频游戏的玩家106提供用于即时(on-the-fly)订阅AR频道306的选项。例如,玩家106的朋友当前可能正在玩寻宝游戏类型的基于AR的二级游戏,并且可以向使用客户端机器100的玩家106呈现弹出选项以订阅AR频道306,所述AR频道提供用于他/她的朋友此刻正在享受的相同寻宝游戏的AR内容120。在订阅用于寻宝游戏的AR频道306之后,客户端机器100可以下载提供寻宝游戏的AR内容120作为在客户端机器100上执行的核心视频游戏104的顶部运行的二级游戏。作为另一个实例,游戏者106可以正在玩视频游戏104并且可以将视频游戏流式传输到用户社区。使用客户端机器100的玩家106可以在他/她当前正在玩的视频游戏104的游戏世界内看到所述游戏者106的在视频游戏世界内呈现的化身以及所述化身之上的观看用户数量(例如,10k,代表10,000个观看者),从而表明AR内容120当前很流行。使用客户端机器100的玩家106可以点击化身或化身旁边的订阅按钮,以调出游戏者106的游戏玩法的2D或3D广播。

再次具体参考图2,响应于用户106选择与特定AR频道306相关联的订阅按钮,客户端机器100可以通过计算机网络218向远程计算系统200发送订阅请求。远程计算系统200在接收到订阅请求时,可以标识满足此过滤标准的AR内容120(例如,与已订阅AR频道306相关联的AR内容120),并且可以将此AR内容120发送到客户端机器100,用于在生成具有AR内容120的增强帧122中使用。因此,客户端机器100接收满足一个或多个过滤标准的AR内容120(例如,与已订阅AR频道306相关联的AR内容120),并且客户端机器100可以将AR内容120存储在客户端机器100的本地存储器中并且与相关数据(例如,空间数据,如游戏世界坐标226、索引228、相机朝向数据、像素数据232、事件数据等)相关联。以此方式,每当要将AR内容120渲染在增强帧122中时,可从本地存储器中检索所述AR内容,这可以减少时延和/或网络带宽消耗。

在一些实施例中,用于过滤最终发送到客户端机器的AR内容120的一个或多个过滤标准可以进一步包含旨在减少本地存储器消耗和/或网络带宽消耗的过滤标准。例如,考虑一种情形,其中与特定游戏相关联的AR内容120的量如此之大,以至于难以将所有相关性AR内容下载到客户端机器100的本地存储器。在此类情形下,可以基于新近度(例如,AR内容120的创建日期)、流行度(例如,基于观看的数量、赞成票的数量等)、AR内容120的作者(例如,相对于一般用户,使由朋友创建的AR内容120优先)、关于用户106的已知用户兴趣(例如,在用户个人资料中指定的用户兴趣、基于使用历史等)、数据量(例如,仅下载小于阈值数据量的AR内容120)等来过滤相关性AR内容120。以此方式,可以选择最相关的AR内容120,并且可以过滤掉不太相关的AR内容120,使得客户端机器120仅接收最相关的AR内容120。

图3中描绘的另一AR特征是“AR查看器”308特征。此特征允许用户106选择AR查看器308链接以调用AR查看器,所述AR查看器在本文中被认为是可以在视频游戏内容124的上下文之外显示AR内容120的一种视频游戏104。例如,AR查看器可以将AR内容120呈现在空白背景上或呈现为游戏世界的一个或多个SLAM创建的3D模型上的覆盖物。在任何情况下,AR查看器308特征的使用都不依赖于加载视频游戏104,并且因此可以在处理资源可能不适合运行PC游戏的客户端机器100(例如,电话)上执行。在说明性实例中,用户106可能想要在玩用AR内容120进行增强的视频游戏104时看到他/她的朋友现在正在看什么。用户106可以在他/她的电话上选择AR查看器308链接。AR查看器308链接以及到朋友的当前游戏会话的子链接使查询连同游戏ID、朋友的游戏角色当前位于游戏世界中的位置以及相机朝向提交给远程计算系统200。基于此数据,远程计算系统200可以访问空间数据库204并返回在所述相机朝向的情况下在所述位置处可见的AR内容120。此AR内容120可以以一系列的帧呈现在用户的电话上(例如,以3D形式),并且用户106可以环顾四周并且看到他/她的朋友的角色在所述朋友当前正在经历的游戏世界中到处奔跑。以此方式,用户106可以观看他/她的朋友当前在远程位置处正在经历的AR内容120。

本文所述的过程被展示为逻辑流程图中的框的集合,其表示可以在硬件、软件或其组合中实施的操作的序列。在软件的上下文中,框表示计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时执行所叙述的操作。通常,计算机可执行指令包含执行特定功能或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为是限制性的,并且任何数量的所描述的框可以按任何顺序和/或并行地组合以实施过程。

图4是示例过程400的流程图,所述示例过程用于:为作者提供内容创建接口以创建AR内容;将创建的AR内容存储在空间数据库中;以及基于一个或多个过滤标准将所选的AR内容发送给发出请求的客户端机器。出于讨论的目的,参考前面的图描述了过程400。

在402处,远程计算系统200可以为用户计算装置220提供接口(例如,API)以创建新AR内容120。使用用户计算装置220的作者216可使用此内容创建接口来创建如本文所述的任何合适类型的AR内容120。

如子框404所示,在一些实施例中,在框402处提供内容创建接口可以允许作者216创建一个或多个可执行程序(例如,插件),所述可执行程序被配置成基于作为输入提供给一个或多个可执行程序的视频游戏数据128来生成交互式AR内容120。此类视频游戏数据128可以包含但不限于空间数据、事件数据,所述空间数据尤其指定了视频游戏中玩家控制的角色或某个其它对象的当前位置,所述事件数据指示游戏相关事件的发生(例如,子弹被发射、游戏角色进入或离开车辆、门廊等)。

在406处,远程计算系统200可以通过接口从用户计算装置220接收用于创建新AR内容120的指令。这些指令可以包含提供给呈图形用户接口的形式的接口的用户输入,所述图形用户接口允许作者216指定AR内容的类型以及与AR内容有关的其它参数,如视频游戏的游戏ID 224、特殊数据227(如AR内容120将于其处呈现在视频游戏的游戏世界内的游戏世界坐标226)、事件数据等。

在408处,远程计算系统200可以将新AR内容120存储在空间数据库204中。如子框410所示,将新AR内容120存储在空间数据库204中可以涉及将新AR内容120与空间数据库204内的相关联数据相关联。相关联数据可以包含但不限于视频游戏的游戏ID 224、视频游戏的游戏世界内的游戏世界坐标226、用于在游戏世界坐标226在其它情况下不明确的情况下区分游戏世界坐标226的索引228、相机朝向数据(例如,与捕获的屏幕快照相关联的相机朝向)、像素数据232(例如,与捕获的屏幕快照相关联的像素数据)、事件数据等。

如子框412所示,将新AR内容120存储在空间数据库204中可以涉及将新AR内容120与如本文所述的一个或多个AR频道306相关联。以此方式,用户106可以订阅AR频道306以接收可以在其视频游戏的游戏世界内显示的特定AR内容120。

在414处,远程计算系统200可以通过计算机网络218从客户端机器100接收来自用户帐户的用于订阅一个或多个AR频道306作为一个或多个已订阅AR频道306的订阅请求。本文参考图3描述AR频道306的实例。

在416处,远程计算系统200可以通过计算机网络218从客户端机器100接收与视频游戏104相关联的视频游戏数据128。此视频游戏104可以是通过客户端机器100执行的视频游戏(例如,通过启动客户端机器100上的视频游戏客户端116并且经由视频游戏客户端116执行视频游戏104,从而使AR组件102将视频游戏数据128发送到远程计算系统200)。

在418处,远程计算系统200可以至少部分地基于视频游戏数据128来在存储在空间数据库204中的可用AR内容120中标识游戏特定的AR内容120。例如,空间数据库204中的AR内容120的记录可以与在客户端机器100上执行的特定视频游戏104的游戏ID 224、与游戏世界的待渲染部分相关联的空间数据227等相关联,并且可以在框418处标识所述AR内容120,因为其与在客户端机器100上执行的特定视频游戏104相关并且与如由视频游戏数据104所指示的视频游戏104的当前状态相关。

在子框420处,远程计算系统200可以基于所讨论的用户账户的一个或多个已订阅AR频道306来过滤在框418处标识的游戏特定的AR内容120。这可以产生游戏特定的AR内容120的与已订阅AR频道306相关联的子集。例如,与所讨论的视频游戏104相关联的AR内容120可以与多个AR频道306有关,因此可以将所讨论的用户账户尚未订阅的AR频道306用于过滤掉不相关的AR内容120,并且剩余的游戏特定的AR内容120的子集可以是与一个或多个已订阅AR频道306相关联的子集。在子框422处,远程计算系统200可以进一步基于一个或多个过滤标准来过滤游戏特定的AR内容120,以获得最终要发送到客户端机器100的游戏特定的AR内容120的子集。如果游戏特定的AR内容120的子集的流行度大于流行度阈值,则在框422处可以满足示例过滤标准。在此实例中,可以基于与游戏特定的AR内容120的子集相关联的观看的数量或赞成票的数量中的至少一个,和/或基于用户的先前活动或用户的社交网络关系来确定流行度。如本文所述,还预期其它过滤标准,如基于与用户账户相关联的访问权限、基于AR内容120的创建日期(过滤掉比阈值时间久的AR内容)、基于与用户帐户相关联的用户兴趣、基于一天中的时间、基于与客户端机器100或用户帐户相关联的地理位置等来过滤游戏特定的AR内容120。

在424处,远程计算系统200可以通过计算机网络218将游戏特定的AR内容120的子集发送到发出请求的客户端机器100。以此方式,向客户端机器100提供了对相关性AR内容120的访问,所述相关性AR内容可以在视频游戏的执行期间渲染在增强帧122中的视频游戏内容124的“顶部”。应当理解,至少框416-424可以在游戏执行期间实时发生,以通过网络218向客户端机器100提供实时AR内容120。在一些实施例中,过程400在接近于视频游戏开始执行的时间时执行,使得客户端机器100接收过滤的游戏特定的AR内容120,所述过滤的游戏特定的AR内容可以被本地地存储以供游戏执行期间进行访问。

在一些实施例中,在框418处,远程计算系统200可以进一步至少部分地基于视频游戏数据128在存储在空间数据库204中的可用AR内容中标识游戏特定的AR内容120的与未订阅的AR频道306相关联的另外的子集。在此情形下,在框424处,远程计算系统200还可以通过计算机网络将游戏特定的AR内容120的另外的子集发送给客户端机器100以便以在视觉上将游戏特定的AR内容的另外的子集与游戏特定的AR内容的子集区分的方式呈现在客户端机器100上。也就是说,可以以细微的方式(例如,通过相对较小的图标,如果用户有兴趣点击所述图标,则所述图标指示AR内容可用)呈现用户106尚未订阅的AR内容120。基于视频游戏数据128,此未订阅的AR内容可以是空间相关性的。

图5是用于在视频游戏104的执行期间从远程计算系统200接收AR内容并对帧(包含包括AR内容120的增强帧122)进行渲染的示例过程500的流程图。出于讨论的目的,参考前面的图描述了过程500。

在502处,客户端机器100可以通过计算机网络218向远程计算系统200发送用于订阅一个或多个AR频道306作为一个或多个已订阅AR频道306的订阅请求。本文参考图3描述AR频道306的实例。

在504处,客户端机器100可以开始执行视频游戏104。例如,客户端机器100的用户106可以启动视频游戏客户端116,并且可以从视频游戏库118中选择视频游戏104以开始执行视频游戏104。

在506处,客户端机器100可以通过计算机网络218向远程计算系统200发送包含视频游戏104的游戏ID 224的请求。这可以是响应于用户106开始在客户端机器100上执行视频游戏104的自动逻辑。游戏ID 224允许远程计算系统200查找与游戏ID 224相关联的游戏特定的AR内容120。

在508处,客户端机器100可以通过计算机网络218从远程计算系统200接收游戏特定的AR内容120的子集以及相关联数据。在框508处接收到的游戏特定的AR内容120的子集可能已经由远程计算系统200至少部分地基于游戏ID 224和一个或多个已订阅AR频道306来选择。因此,游戏特定的AR内容120的子集可以与视频游戏104以及一个或多个已订阅AR频道306两者相关联。

在子框510处,客户端机器100可以将游戏特定的AR内容120的子集与相关联数据相关联地存储在客户端机器100的本地存储器中。相关联数据可以包含但不限于空间数据227、像素数据232、事件数据等,其可以用于确定在游戏执行期间何时在增强帧122中渲染特定AR内容120。

在512处,客户端机器100可以经由视频游戏客户端116在视频游戏104的执行期间渲染一系列帧。例如,当视频游戏104在第一进程(或一个或多个线程)中执行时,视频游戏104可以以一系列帧输出视频游戏内容124。通过子框514-524示出了可以在框512处迭代执行以渲染一系列帧中的各个帧的操作。

在514处,AR组件102——通过客户端机器100上的视频游戏客户端116作为与视频游戏104分开的进程(例如,或一个或多个线程)执行——可以从视频游戏104获得关于视频游戏104的当前状态的视频游戏数据128。此视频游戏数据128可以是与视频游戏104的游戏世界内的游戏世界坐标226有关的空间数据227。例如,空间数据227可以指定在视频游戏104的游戏世界内玩家控制的角色的当前位置、要在即将到来的帧中渲染的游戏世界的一部分的一组游戏世界坐标226、索引228、与玩家控制的角色相关联的虚拟相机的当前朝向等。视频游戏数据128可以是指定与视频游戏104相关联的游戏相关事件的事件数据。在一些实施例中,在框514处从视频游戏104获得视频游戏数据128可以包含:作为视频游戏104进行的从AR组件102请求AR内容120以便在必要时将帧渲染为增强帧122的功能调用的一部分,AR组件102从视频游戏104接收视频游戏数据128。

在516处,可以将帧渲染为不具有任何AR内容120(即,仅具有视频游戏内容124)的普通帧。在518处,AR组件102可以基于视频游戏数据128确定是否可以标识AR内容120。例如,AR组件102可以将其在框514处获得的视频游戏数据128的至少一部分与和可访问AR内容120(例如,在框508处客户端机器100接收到的游戏特定的AR内容120的子集)一起存储的相关联数据进行比较。如果AR组件102确定不存在要显示的可标识AR内容120,则过程500可以从框518遵循“否”路线,以前进到框520处的下一个帧。另一方面,如果AR组件102确定存在要显示的可标识AR内容120,则AR组件102至少部分地基于视频游戏数据120(例如,通过将视频游戏数据128与和AR内容120一起存储的相关联数据进行比较)来标识AR内容120,并且过程500可以从框518遵循“是”路线到框522。AR内容120的标识可以包含从视频游戏104以外的源(例如,从客户端机器100的本地存储器,实时地从远程计算系统200等)检索/接收AR内容120。在通过网络218实时检索AR内容120的情况下,在框508处的AR内容的接收可以结合(例如,响应于)在框518处的AR内容120的标识而发生。

在522处,客户端机器100可以通过AR组件102生成增强帧122,所述增强帧包含由视频游戏104输出的视频游戏内容124以及在框516处标识和检索的AR内容120。如所提及的,增强帧122的生成可以包含将AR内容120叠置在视频游戏内容124上。在一些实施例中,框522处的操作包含:获得与给定帧的视频游戏内容124相关联的深度数据;以及至少部分地基于深度数据将视频游戏内容124与AR内容120合并在增强帧122中。例如,AR内容120可以分层设置在一些视频游戏内容124(例如,不透明图形)之上并且分层设置在其它视频游戏内容124(例如,半透明图形)之下。

在524处,客户端机器100可以通过AR组件102在与客户端机器100相关联的一个或多个显示器110上渲染增强帧122,并且然后可以前进到框520处的下一个帧以对框514-524进行迭代,如由从框520到框514的箭头所示。

玩家106可以通过订阅一个或多个不同的AR频道306来在过程500期间的任何时间有效地改变AR频道306,这使客户端机器100向远程计算系统200发送新订阅请求,使得可以基于一个或多个新订阅的AR频道306从远程计算系统200接收不同或另外的AR内容120。以此方式,玩家106可以在玩游戏期间在AR频道306之间切换,以在视频游戏的执行期间在增强帧122中呈现不同的AR内容120。

图6是用于在视频游戏104的执行期间用空间相关性AR内容120来增强帧的示例过程600的流程图。过程600的操作可以涉及将单独的帧渲染为在视频游戏的执行期间渲染的一系列帧中的增强帧。出于讨论的目的,参考前面的图描述了过程600。

在602处,AR组件102——通过客户端机器100上的视频游戏客户端116执行——可以从视频游戏104获得关于视频游戏104的当前状态的空间数据227的形式的视频游戏数据128。例如,在框602处获得的空间数据227可以涉及但不限于:当前游戏世界坐标,如视频游戏104的游戏世界内玩家控制的角色126的当前坐标(即,当前位置)、要在即将到来的帧中渲染的游戏世界的一部分的一组游戏世界坐标226;游戏ID 224、状态228、虚拟相机(例如,与玩家控制的角色126相关联的虚拟相机)的当前相机朝向;或其任何组合。

在604处,AR组件102可以至少部分地基于空间数据227从可用AR内容(例如,从远程计算系统200接收到的游戏特定的AR内容120的子集)中标识AR内容120。

在子框606处,可以至少部分地基于所接收到的空间数据227中的游戏世界坐标226来标识AR内容120。例如,AR组件102可以标识与游戏世界坐标226相关联的AR内容120,所述游戏世界坐标包含在空间数据227中的一组游戏世界坐标226中,或者所述游戏世界坐标距玩家控制的角色126的当前位置的距离在阈值距离以内并且如从虚拟相机的当前朝向所确定的,处于游戏角色126的视野内。

在子框610处,可以至少部分地基于在空间数据227中指定的游戏ID 224来标识AR内容120。例如,AR组件102可以标识与匹配空间数据227中的游戏ID 224的游戏ID相关联的AR内容120。如果游戏世界包含在空间数据227中指定的游戏世界坐标226的多个实例,则此游戏ID可以用于区分游戏世界坐标226的多个实例。

在612处,客户端机器100可以通过AR组件102生成增强帧122,所述增强帧包含在框604处标识(并且检索)的AR内容120(并且可能包含由视频游戏104输出的视频游戏内容124)。如子框614所示,在所标识的AR内容120是3D屏幕快照(例如,具有深度数据的图像)的情况下,在框612处的增强帧122的生成可以包含至少部分地基于3D屏幕快照中包含的数据(例如,像素数据的2D阵列加上来自深度缓冲器的深度数据)来构建在3D屏幕快照中展现的游戏世界的一部分的3D模型。可以将所得3D模型叠置在框612处的增强帧122内的视频游戏内容124上。例如,所标识的AR内容120可以是当前在客户端机器上执行的视频游戏104的游戏世界或不同视频游戏的不同游戏世界的3D屏幕快照。在任一情况下,3D屏幕快照可能已经被另一个游戏者106捕获,也许是在更早的时间,在捕获3D屏幕快照的那一瞬间捕获了游戏世界的整个上下文。作为AR内容120叠置在视频游戏内容124上的所构建的3D模型可以允许当前执行的视频游戏104的玩家106以模拟其它游戏者106在捕获3D屏幕快照时看到的内容的方式在所构建的3D模型周围导航(例如,在3D屏幕快照中捕获的对象周围移动)以看到由其它游戏者106捕获的游戏世界的“切片”。如子框616所示,在所标识的AR内容120是多个连续3D屏幕快照的情况下,在框612处的增强帧122的生成可以包含开始回放至少部分地基于多个连续3D屏幕快照的3D视频。

在618处,客户端机器100可以通过AR组件102在与客户端机器100相关联的一个或多个显示器110上渲染增强帧122,并且然后可以进行到下一个帧,作为在视频游戏104的执行期间渲染一系列帧的迭代过程的一部分。

图7是用于在视频游戏104的执行期间用动态和/或交互式AR内容120来增强帧的示例过程700的流程图。过程700的操作可以涉及将单独的帧渲染为在视频游戏的执行期间渲染的一系列帧中的增强帧。出于讨论的目的,参考前面的图描述了过程700。

在702处,AR组件102——通过客户端机器100上的视频游戏客户端116执行——可以获得如本文所述的关于视频游戏104的当前状态的视频游戏数据128。如子框704所示,获得视频游戏数据128可以包含获得即将到来的帧中的游戏世界的待渲染部分的3D模型。可以从远程计算系统200中检索此3D模型,所述远程计算系统可以基于密集的时间连续视频流(例如,包含具有或不具有深度缓冲数据的颜色数据)预先生成视频游戏的游戏世界的3D模型并存储所述3D模型,以供客户端机器100按需访问。SLAM过程可以离线执行并且可以用于从许多图像递增地重建游戏世界几何形状(例如,游戏世界的3D模型)。此后端过程可以由视频游戏平台的服务提供商、由游戏开发人员和/或通过从玩家客户端机器100众包游戏世界图像来完成。

在706处,AR组件102可以至少部分地基于视频游戏数据128从可用AR内容(例如,从远程计算系统200接收到的游戏特定的AR内容120的子集)中标识AR内容120。为了标识AR内容120,AR组件102可以使用视频游戏数据128从可用AR内容中查找AR内容120的记录,并且可以确定AR内容120的记录提供了被配置成生成动态和/或交互式AR内容120的可执行程序。可能已经通过使用如本文所述的插件创建了此可执行程序。

在子框708处,AR组件102可以将视频游戏数据128(例如,在框704处获得的3D模型)作为输入提供给可执行程序,所述可执行程序被配置成至少部分地基于视频游戏数据128生成动态和/或交互式AR内容120。在一些实施例中,AR组件102可以创建安全沙盒,加载与客户端机器100的用户106所订阅的一个或多个AR频道相对应的一个或多个可执行程序或插件(例如,DLL),并且将视频游戏数据128作为输入提供给插件以使插件运行它们相应的逻辑并返回AR内容120。例如,可能存在DLL的文件夹,每个DLL表示不同的插件。当用户106订阅一个或多个AR频道时,AR组件102可以在安全沙盒内加载一个或多个对应的DLL,并且然后运行过程700,其中在子框708处,AR组件102可以将视频游戏数据128作为输入提供给已经加载的一个或多个对应的DLL。

在子框710处,AR组件102可以从一个或多个可执行程序接收作为输出的动态和/或交互式AR内容120的形式的所标识的AR内容。AR组件102还可以从一个或多个可执行程序接收作为输出的用于在增强帧122内定位动态和/或交互式AR内容120的定位数据,所述定位数据至少部分地基于游戏世界的待渲染部分的3D模型。

在712处,客户端机器100可以通过AR组件102生成增强帧122,所述增强帧包含由视频游戏104输出的视频游戏内容124以及在框706处标识的AR内容120。通过将3D模型作为输入提供给可执行程序,可以将动态(例如,移动和/或动画化)AR对象以对游戏世界的几何形状和/或拓扑敏感的方式自动注入到游戏世界中。例如,可以通过避免与游戏世界中的虚拟对象(如障碍物、墙壁、门等)碰撞和/或将AR内容抵靠墙壁定位在地板等上来使移动或动画化AR游戏角色在游戏世界内移动。

在718处,客户端机器100可以通过AR组件102在与客户端机器100相关联的一个或多个显示器110上渲染增强帧122,并且然后可以进行到下一个帧,作为在视频游戏104的执行期间渲染一系列帧的迭代过程的一部分。

图8是展示了用于使用所公开的AR系统将多玩家方面添加到单玩家视频游戏的示例技术的图示。在图8中,第一客户端机器100(1)和第二客户端机器100(2)各自连接到计算机网络218,以便通过计算机网络218与远程计算系统200(图8中未示出)以及与其它客户端机器100交换数据。在图8的实例中,第一玩家106(1)正在第一客户端机器100(1)上玩视频游戏104,并且第二玩家106(2)也正在第二客户端机器100(2)上玩同一视频游戏104。可以在每个客户端机器100上独立地执行视频游戏104,而无需任何联网代码,使得不依赖于网络连接来执行视频游戏104。在这个意义上,在一些实例中,在每个客户端机器上执行的视频游戏104可以是各个玩家106可以自己玩的单玩家视频游戏。

然而,网络连接使得能够经由远程计算系统200在执行同一单玩家视频游戏104的客户端机器100之间传送数据800,如图8所示。这允许将多玩家方面添加到单玩家视频游戏中,而无需依赖游戏开发人员将多玩家方面纳入其视频游戏(这可能是一项昂贵的工作)。相反,视频游戏104的代码可以被配置成迭代地发出关于视频游戏104的当前状态的数据800(例如,每个帧、每两个帧、每几个帧等发出数据800)。从在第二客户端机器100(2)上执行的视频游戏104发出的此数据800可以通过计算机网络218传输到正在执行本地AR组件102的第一客户端机器100(1)。第一客户端机器100(1)上的AR组件102可以接收从第二客户端机器100(2)发送的数据800,并且可以处理数据800以生成包含AR内容120(1)的增强帧122,所述AR内容将多玩家方面添加到第一客户端机器100(1)上渲染的游戏世界的第一实例。例如,第二玩家106(2)的游戏角色的幻影图像可以作为AR内容120(1)渲染在第一客户端机器100(1)的屏幕上,以实现多玩家方面,如“快速奔跑”,其中第一玩家106(1)可以看到第二玩家106(2)的游戏角色相对于第一玩家106(1)的游戏角色的位置。以此方式,第一玩家106(1)可以与第二玩家106(2)竞争,而不必将多玩家方面实施到视频游戏104本身的代码中。通过在每个客户端机器100上玩视频游戏104时通过网络218实时发送数据800,可以实时添加这些多玩家方面。另外或可替代地,可以将第二玩家106(2)的游戏表现保存并且将其作为AR内容流在稍后的时间在第一客户端机器100(1)上执行视频游戏104期间重放。以此方式,在第一客户端机器100(1)上玩游戏期间被检索并用于增强帧的AR内容120(1)可以是同一视频游戏104中第二玩家106(2)的游戏表现的实况或重放流。以此方式,第一玩家106(1)可以实时竞争,和/或第一玩家106(1)可以不断地反复针对第二玩家106(2)的游戏表现的重放进行练习。在一些实施例中,可以将在第一客户端机器100(1)上渲染的包含增强帧122的帧保存并且将其作为视频剪辑上载到远程计算系统200,使得其它人可以重放如由第一玩家106(1)所看到的竞争体验。

在另一方面,可以以将两个游戏世界802(1)和802(2)的坐标系对准的方式将游戏世界802(2)拼接到第一客户端机器100(1)上的游戏世界802(1)中,以将两个游戏世界802(1)和802(2)有效地混合在一起。例如,如果两个玩家控制的角色826(1)和826(2)在同一视频游戏104的同一游戏世界内彼此靠近(例如,在阈值距离之内)定位,则第一客户端机器100(1)可以同时从第二客户端机器100(2)接收第二游戏世界802(2)的一个或多个3D屏幕快照以及在一个或多个3D屏幕快照中描绘的第二游戏世界802(2)的一个或多个所述部分的一组坐标,并且第一客户端机器100(1)的AR组件102可以将接收到的屏幕快照中的图形与第一游戏世界802(1)中的当前一组坐标对准以将两个游戏世界混合在一起。例如,第一玩家106(1)可能能够看到第二玩家106(2)在第二游戏世界802(2)中所看到的作为AR内容120(2)的对象。增强帧122中的两个游戏世界802(1)和802(2)之间的差异可以通过突出显示作为AR内容120渲染的对象或图形(例如,使用不同的颜色等)来在视觉上进行指示。在图8中,两个游戏世界802(1)和802(2)之间的差异在增强帧122中由来自第二游戏世界802(2)的以虚线所示的对象示出,而第一游戏世界802(1)中的对象以实线示出。当将AR内容120以在其它情况下将难以辨别增强帧122中的AR内容120是什么的方式拼接到第一游戏世界1002(1)中时,视觉区别可以帮助第一玩家106(1)在视频游戏内容124与AR内容120之间进行区分。

为了说明图8中所示的技术的操作,现在参考图9,其是用于使用AR系统通过借助于计算机网络218在客户端机器100之间进行数据交换来将多玩家方面添加到单玩家游戏的示例过程900的流程图。考虑一种情形,在所述情形中,在第一客户端机器100(1)上执行视频游戏104期间,在所述第一客户端机器上渲染游戏世界802(1)的第一实例,并且在第二客户端机器100(2)上独立执行同一视频游戏104期间,在第二客户端机器100(2)上渲染同一游戏世界802(2)的第二实例。如图8所示,在每个客户端机器100上独立执行视频游戏104期间,第一玩家106(1)可以控制第一玩家控制的角色826(1),而第二玩家106(2)可以控制第二玩家控制的角色826(2)。

在902处,第一客户端机器100(1)可以通过计算机网络218从第二客户端机器100(2)接收呈空间数据227的形式的数据800,所述空间数据指定作为游戏世界802(2)的第二实例渲染在第二客户端机器100(2)上的游戏世界内第二玩家控制的角色826(1)的当前位置。

在904处,为了在第一客户端机器100(1)上渲染增强帧122(例如,如在图8中由附图标记122所示),在第一客户端机器100(1)上执行的AR组件102可以从在第一客户端机器100(1)上执行的视频游戏104获得视频游戏数据128,所述视频游戏数据128呈空间数据227的形式,所述空间数据指定与要作为游戏世界802(1)的第一实例渲染在第一客户端机器100(1)上的视频游戏104的游戏世界的一部分相关联的第一游戏世界坐标226。

在906处,第一客户端机器100(1)的AR组件102标识AR内容120以用于生成增强帧122。如子框908所示,可以通过至少部分地基于第一游戏世界坐标226确定第二玩家控制的角色826(2)的当前位置处于第一客户端机器100(1)的屏幕上待渲染的游戏世界的部分内来标识AR内容120。如子框910所示,AR内容120可以作为第二玩家控制的角色826(2)的AR化身来检索。例如,第一客户端机器100(1)可以从远程计算系统200(在视频游戏104执行之前或期间)接收呈AR化身的形式的AR内容120。以此方式,第一客户端机器100(1)可访问包含AR化身的AR内容的记录。

在912处,第一客户端机器100(1)可以通过AR组件102生成增强帧122,所述增强帧包含由在第一客户端机器100(1)上执行的视频游戏104输出的视频游戏内容124和在框906处标识(和检索)的AR内容120。如子框914所示,增强帧122的生成可以包含在视频游戏内容124上在游戏世界802(1)的第一实例内与第二玩家控制的角色826(2)的当前位置相对应的位置处呈现第二玩家控制的角色826(2)的AR化身作为AR内容120。

在916处,第一客户端机器100(1)可以通过AR组件102在与第一客户端机器100(1)相关联的一个或多个显示器110上渲染增强帧122,并且然后可以进行到下一个帧,作为在视频游戏104的执行期间渲染一系列帧的迭代过程的一部分。此增强帧122的实例在图8中示出,其中在与游戏世界中第二玩家控制的角色826(2)的当前位置相对应的位置处,增强帧122中的AR内容120是所述游戏角色的AR化身。这允许将多玩家方面作为在第一客户端机器100(1)上执行的视频游戏中的增强功能进行添加,所述视频游戏可以是单玩家游戏。

图10是展示了用于使用所公开的AR系统在客户端机器之间共享游戏世界的各方面的示例技术的图示。在图10中,第一客户端机器100(1)和第二客户端机器100(2)各自连接到计算机网络218,以便通过计算机网络218与远程计算系统200(图10中未示出)以及与其它客户端机器100交换数据。在图10的实例中,第一玩家106(1)正在第一客户端机器100(1)上玩视频游戏104,并且第二玩家106(2)正在第二客户端机器100(2)上玩视频游戏104。在每个客户端机器100上执行的视频游戏104可以是相同的视频游戏或不同的视频游戏,并且所述视频游戏可以是单玩家或多玩家视频游戏。

网络连接使得不仅能够经由远程计算系统200在客户端机器100之间传送数据,而且能够传送AR内容120。例如,从第二客户端机器100(2)发送到第一客户端机器100(1)的AR内容120可以表示在第二客户端机器100(2)上渲染的第二游戏世界1002(2)的一部分的屏幕快照(例如,2D或3D屏幕快照)。此AR内容120可以在第二客户端机器100(2)上执行视频游戏104期间被迭代地传输(例如,每个帧、每两个帧、每几个帧等)。第一客户端机器100(1)上的AR组件102可以接收从第二客户端机器100(2)发送的AR内容120,并且可以使用AR内容120来生成包含接收到的AR内容120的一个或多个增强帧122。因此,通过网络218实时传输呈屏幕快照的形式的AR内容120允许在客户端机器之间共享游戏世界,如在第一客户端机器100(1)上渲染的第一游戏世界1002(1)内共享第二游戏世界1002(2)。例如,当第二玩家106(2)控制第二玩家控制的角色1026(2)在第二游戏世界1002(2)四处移动时,如从第二玩家控制的角色1026(2)的角度所看到的第二游戏世界1002(2)的屏幕快照可以作为AR内容120通过网络218发送到第一客户端机器100(1)。当第一玩家106(1)控制第一玩家控制的角色1026(1)在第一游戏世界1002(1)四处移动时,接收到的屏幕快照可以作为AR内容120呈现在增强帧122中,如通过将穿过墙壁上的“门户”的屏幕快照渲染在第一游戏世界1002(1)中。这可以实现与客户端机器之间的游戏世界共享有关的不同类型的功能。

例如,AR内容120可以向第一玩家106(1)提供进入第二游戏世界1002(2)的视口。在此情形下,如从第二玩家控制的角色1026(2)的角度所看到的第二游戏世界1002(2)的一个或多个屏幕快照可以传输到第一客户端机器100(1)以作为AR内容120在第一游戏世界1002(1)内显示。可以通过网络218传输一系列屏幕快照,以使得能够实时观看第二玩家106(2)的游戏玩法。例如,第一玩家106(1)可能能够通过被呈现为进入第二游戏世界1002(2)的视口的AR内容120来观看第二玩家106(2)的游戏玩法。可以经由第一客户端机器100(1)上的AR组件102将通过网络218传输的一系列屏幕快照呈现为实况AR视频流,使得第一玩家106(1)可以观看第二玩家控制的角色1026(2)在第二游戏世界1002(2)中移动。为了实现进入第二游戏世界1002(2)中的3D视口,第一客户端机器100(1)可以接收呈一个或多个3D屏幕快照的形式的AR内容120,并且第一客户端机器100(1)上的AR组件102可以构建在3D屏幕快照中描绘的游戏世界1002(2)的3D模型和/或呈现基于与3D屏幕快照相关联的相机朝向而定位的3D屏幕快照。这可以允许第一玩家106(1)在第二游戏世界1002(2)的所重建的3D模型周围环顾和/或移动,以看到关于第二玩家控制的角色1026(2)的环境的甚至更多的细节。

在客户端机器100之间共享游戏世界的另一个实例涉及以将两个游戏世界1002(1)和1002(2)的坐标系对准的方式将两个游戏世界1002(1)和1002(2)拼接或混合在一起。例如,如果两个玩家控制的角色1026(1)和1026(2)在同一视频游戏104的同一游戏世界内彼此靠近(例如,在阈值距离之内)定位,则第一客户端机器100(1)可以同时从第二客户端机器100(2)接收第二游戏世界1002(2)的一个或多个3D屏幕快照以及在一个或多个3D屏幕快照中描绘的第二游戏世界1002(2)的一个或多个所述部分的一组坐标,并且第一客户端机器100(1)的AR组件102可以将接收到的屏幕快照中的图形与第一游戏世界1002(1)中的当前一组坐标对准以将两个游戏世界混合在一起。想象一下,第一玩家控制的角色1026(1)与第二玩家控制的角色1026(2)位于游戏世界内的同一位置处,并且第一玩家106(1)能够看到第二玩家106(2)在第二游戏世界1002(2)中看到的敌人(AR内容120)的3D渲染。增强帧122中的两个游戏世界1002(1)和1002(2)之间的差异可以通过突出显示作为AR内容120渲染的对象或图形(例如,使用不同的颜色等)来在视觉上进行指示。当将AR内容120以在其它情况下将难以辨别增强帧122中的AR内容120是什么的方式拼接到第一游戏世界1002(1)中时,这可以帮助第一玩家106(1)在视频游戏内容124与AR内容120之间进行区分。

为了说明参考图10描述的技术的操作,现在参考图11,其是用于使用AR系统在客户端机器之间共享游戏世界的各方面的示例过程1100的流程图。

在1102处,AR组件102——通过第一客户端机器100(1)上的视频游戏客户端116执行——可以从在第一客户端机器100(1)上执行的视频游戏104获得如本文所述的视频游戏数据128。

在1104处,第一客户端机器100(1)的AR组件102标识AR内容120以用于生成增强帧122。如子框1106所示,可以通过计算机网络218从第二客户端机器100(2)接收AR内容120来标识AR内容120。例如,AR内容120可以呈渲染在第二客户端机器100(2)上的游戏世界1002(2)的一部分的一个或多个屏幕快照的形式,所述游戏世界可以是与在第一客户端机器100(1)上渲染的游戏世界1002(1)相同的游戏世界或不同的游戏世界。在一些实施例中,第一客户端机器100(1)可以从第二客户端机器100(2)接收AR内容120以及另外的数据800,所述另外的数据如与在第二客户端机器100(2)上渲染的第二游戏世界1002(2)的游戏世界坐标226有关的空间数据227。这可以包含与第二游戏世界1002(2)内第二玩家控制的角色1026(2)的当前位置相对应的坐标。

在1108处,第一客户端机器100(1)可以通过AR组件102生成增强帧122,所述增强帧包含由视频游戏104输出的视频游戏内容124以及在框1104处标识(和检索)的AR内容120。在一些实施例中,在框1102处获得的视频游戏数据128可以允许将AR内容120提供在待渲染的增强帧122中的游戏世界1002(1)的上下文中,如通过将呈屏幕快照的形式的AR内容120定位在游戏世界1002(1)中的墙壁上或者以其它方式将AR内容120附接到游戏世界1002(1)中的对象。如子框1110、1112和1114所示,可以以各种方式来实施增强帧122的生成。

在子框1110处,第一客户端机器100(1)的AR组件102可以至少部分地基于在框1106处接收到的AR内容120(例如,一个或多个屏幕快照)来构建进入在第二客户端机器100(2)上渲染的游戏世界1002(2)的视口。例如,3D屏幕快照可以用于在第一游戏世界1002(1)中渲染为AR对象的门户内重建第二玩家106(2)的游戏世界1002(2)的3D视图。可以将一系列屏幕快照渲染得很像AR内容120的视频流,以提供可以用于观看第二玩家106(2)的游戏玩法的实况视口。在一些实施例中,在子框1110处构建的视口可以包含第二客户端机器100(2)的第二玩家106(2)在第二游戏世界1002(2)内看到的其它AR内容120。

在子框1112处,第一客户端机器100(1)的AR组件102可以至少部分地基于从第二客户端机器100(2)接收到的游戏世界坐标226将在第二客户端机器100(2)上渲染的游戏世界1002(2)与在第一客户端机器100(1)上渲染的游戏世界1002(1)拼接在一起。例如,如果游戏世界的两个实例都处于距游戏世界内的公共位置阈值距离以内,则可以将当前游戏世界坐标对准。在一些实施例中,AR内容120呈游戏世界1002(2)的3D屏幕快照的形式,其可以用于获得与此3D屏幕快照相关联的相机姿势。此相机姿势可以用于在游戏世界1002(1)内对准和/或定向其它AR内容120(例如,对象、游戏角色等)。

在1116处,第一客户端机器100(1)可以通过AR组件102在与第一客户端机器100(1)相关联的一个或多个显示器110上渲染增强帧122,并且然后可以进行到下一个帧,作为在视频游戏104的执行期间渲染一系列帧的迭代过程的一部分。

图12是用于在视频游戏与客户端机器上的单独执行的AR组件之间交换事件的示例过程1200的流程图。

在1202处,AR组件102可以通过在客户端机器100上的视频游戏客户端116作为与在客户端机器100上执行的视频游戏104分开的进程执行。

在1204处,AR组件102可以从视频游戏104接收一个或多个游戏发出的事件。例如,游戏开发人员可以指定视频游戏在执行期间将发出的游戏事件,并且AR内容120的作者216可以订阅那些“游戏发出的事件”,以了解视频游戏104中正在发生的事情,用于达到以下目的:生成AR内容120并将游戏接受的事件返回给视频游戏104。

在1206处,AR组件102可以标识AR内容120。此标识可以基于将一个或多个游戏发出的事件作为输入提供给一个或多个可执行程序(例如,一个或多个插件)。在一些实施例中,标识可以另外地或可替代地基于从视频游戏104获得的视频游戏数据128(例如,空间数据227)。

在1208处,AR组件102可以响应于一个或多个游戏发出的事件的接收而将一个或多个游戏接受的事件发送给视频游戏104。同样,游戏开发人员可以指定视频游戏104能够接受的事件。在一些实施例中,一个或多个可执行程序(例如,一个或多个插件)可以至少部分地基于作为输入提供的游戏发出的事件来输出这些游戏接受的事件。

在1210处,客户端机器100可以通过AR组件102生成增强帧122,所述增强帧包含由视频游戏104输出的视频游戏内容124以及在框1206处标识的AR内容120。

在1212处,客户端机器100可以通过AR组件102在与客户端机器100相关联的一个或多个显示器110上渲染增强帧122,并且然后可以进行到下一个帧,作为在视频游戏104的执行期间渲染一系列帧的迭代过程的一部分。

尽管以特定于结构特征的语言描述了主题,但应理解的是所附权利要求中限定的主题不必限于所描述的具体特征。相反,具体特征被公开为实施权利要求的说明性形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号