用于处理与在线游戏相关的媒体流的方法、系统和节点与流程

文档序号:11532474阅读:366来源:国知局
用于处理与在线游戏相关的媒体流的方法、系统和节点与流程

本文公开的技术总体涉及在线游戏领域,具体涉及与这种在线游戏相关的媒体流的处理。



背景技术:

“云游戏”(也称为点播游戏和在线游戏)是用于描述在线游戏分发的形式的总称,其旨在向终端用户提供使用各种设备的游戏的无摩擦和直接的可玩性。目前有两种主要类型的云游戏:基于视频流的云游戏和基于文件流的云游戏。

基于视频流的云游戏是一种利用宽带连接、大型服务器群集、加密和压缩,将游戏内容流传输到用户设备的游戏服务。这允许通过使用瘦客户端将游戏直接和点播流传输到计算机、控制台和移动设备上,类似于视频点播。因此用户可以在不下载或安装实际游戏的情况下玩游戏。实际游戏取而代之地存储在运营商或游戏公司的服务器上,并被直接流传输到例如通过瘦客户端访问服务器的计算机。来自用户(玩家)的动作,即输入(例如按下控制和按钮)被直接传送到服务器,并记录在服务器中,然后服务器发回游戏对玩家输入的响应。

游戏内容不存储在订户的硬盘驱动器上,并且游戏代码执行主要在服务器集群处发生。因此,订户可以使用比游戏通常所需更弱的计算机来玩游戏,因为服务器群集群来完成所有高性能操作。让服务器来执行通常由终端用户的计算机完成的所需处理,在很大程度上使得用户设备的能力并不重要。

基于文件流的云游戏(也称为渐进式下载)将运行实际游戏的瘦客户端部署在用户的游戏设备(例如移动设备,个人计算机(pc)或控制台)上。最初,下载游戏的一小部分(通常小于总游戏大小的5%),使得玩家可以快速开始玩。剩余的游戏内容在游戏时下载到终端用户的设备。这允许无延时地用低带宽互联网连接来即时访问游戏。云用于提供流传输游戏内容和处理密集数据分析的可缩放方式。

基于文件流的云游戏需要具有操作游戏的硬件能力的用户设备。下载的游戏内容通常存储在将其高速缓存的终端用户的设备上。

视频游戏广播允许玩家记录和流传输和/或广播其玩游戏过程。存在视频游戏广播服务,其中人们广播自己在玩游戏和/或谈论游戏,而其他人(观看者)观看他们并同时就此进行聊天,或者观看“精彩片段”(通常是所记录的视频的一部分)。这种服务越来越流行。



技术实现要素:

在如今的直播游戏流传输服务中,只广播玩家所看到的,而这可能不是理解或欣赏整个游戏状态的最佳观看角度、最佳位置等。此外,玩家通常控制视频质量和格式,因此可能不会给出最佳的呈现、音频和/或视频质量。这可能进一步降低观看者的体验。期望改善观看者的体验。

本公开的目的在于解决或至少减轻上述问题中的至少一个。

根据第一方面,该目的通过在用于处理与游戏云系统提供的在线游戏有关的媒体流的系统中执行的方法来实现。该系统包括至少一个节点。该方法包括向游戏云系统发送包括与至少一个虚拟摄像机相关的数据的消息,以及从游戏云系统接收由所述至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流。

该方法能够改善观看者的体验并且能够使游戏事件的广播更容易跟踪。这是通过实现例如观看方向和位置的选择的方法来实现的。通过发送对该选择进行定义的数据,即与虚拟摄像机有关的数据,来做出这种选择。该方法为游戏广播的制作人提供了控制虚拟摄像机、添加事件、修改图形等的手段。因此,可以使游戏事件更具吸引力。此外,该方法使得能够提供更好的视图、具有不同摄像机角度的回放/慢动作等,由此提供对整个游戏过程的更好理解,从而提供更好的观看者体验。

根据第二方面,该目的通过用于处理与游戏云系统提供的在线游戏相关的媒体流的系统来实现。该系统包括至少一个节点并且被配置为:向游戏云系统发送包括与至少一个虚拟摄像机相关的数据的消息,以及从游戏云系统接收由所述至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流。

根据第三方面,该目的通过用于处理与游戏云系统提供的在线游戏有关的媒体流的系统的计算机程序来实现。该计算机程序包括计算机程序代码,所述计算机程序代码当在系统的至少一个处理器上执行时,使得所述系统执行如上所述的方法。

根据第四方面,该目标通过计算机程序产品来实现,所述计算机程序产品包括上述计算机程序和存储有上述计算机程序的计算机可读装置。

根据第五方面,该目的通过在用于提供与在线游戏相关的媒体流的游戏引擎中执行的方法来实现。该方法包括从节点接收包括与至少一个虚拟摄像机相关的数据的消息;基于接收到的数据提供至少一个虚拟摄像机;呈现由所述至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流;以及向所述节点发送至少一个第一媒体流。

根据第六方面,该目的通过用于提供与在线游戏相关的媒体流的游戏引擎来实现。游戏引擎被配置为从节点接收包括与至少一个虚拟摄像机相关的数据的消息;基于接收到的数据提供至少一个虚拟摄像机;呈现由所述至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流,以及向所述节点发送所述至少一个第一媒体流。

根据第八方面,该目的通过用于游戏引擎的计算机程序来实现,所述游戏引擎用于提供与在线游戏相关的媒体流,所述计算机程序包括计算机程序代码,所述计算机程序代码当在游戏引擎的至少一个处理器上执行时使得游戏引擎执行上述方法。

根据第九方面,该目标通过计算机程序产品来实现,所述计算机程序产品包括上述计算机程序和存储有上述计算机程序的计算机可读装置。

此外,当阅读以下描述和附图时,本公开的其他特征和优点将变得清楚。

附图说明

图1示意性地示出了可以实现本公开的实施例的环境。

图2示出了根据本公开的方面来实现的特征。

图3是示出了提供用于广播的游戏事件的方面的序列图。

图4示出了在根据本公开的系统中的方法的步骤的流程图。

图5示意性地示出了用于实现本公开的实施例的系统和装置。

图6示出了在根据本公开的游戏引擎中的方法的步骤的流程图。

图7示意性地示出了用于实现本公开的实施例的游戏引擎。

具体实施方式

在以下描述中,出于说明而非限制的目的,阐述具体细节,例如特定架构、接口、技术等,以提供完全的理解。在其他实例中省略了对公知设备、电路和方法的详细描述,以避免以因为不必要的细节使描述不清楚。在本说明书全文中,同样的附图标记指代相同或相似的元素。

可以预见,视频游戏广播将改变,并且将越来越像一个表演、事件或电影制作,在这种意义上,游戏的玩家将主要是“演员”,而其他人或实体将像今天的摄像师那样工作。为了提高观看者的体验,根据本公开的一个方面,包括电影导演、摄像师等的制作团队(虚拟或真实)能够从玩家的流、评论者的视频等中创建原始内容,并且能够创建新的玩游戏视频。

如前所述,今天,在正在进行的游戏的虚拟游戏场中,观看者可能没有的最佳“位置”。如果有更好的观察点,观看者可能能够更好地理解游戏。观看者还可能错过游戏的重要时刻。在本公开的各个方面中,通过提供用于改善观看者体验的手段,消除或至少减轻了这些缺点以及其他缺点。

现有技术的上述缺点的简单示例是游戏角色进入空房间。玩家可以广播在他的屏幕上呈现的内容,并且游戏角色通常看到的(对于第一人称游戏)是空房间。然而,对于观看者来说,更好的是可视化则可能是看到角色进入房间。根据本教导,这种可视化可以通过将虚拟摄像机放置在房间中、地板上,指向进入房间的角色来给出。此外,想象太阳强烈地照耀在角色的背后;由于背光,观看者将仅而看到角色的轮廓。这种视觉对玩家来说可能不是很好,但对观看游戏的人来说可能不错。

在各个方面中,通过定义在用于游戏事件的云系统的不同元素之间的多个控制信道,本公开给予例如“电影导演”的人自由,以及选择玩游戏过程的不同视点和其他选项的能力。该“电影导演”可以是计算机程序和/或设备形式的虚拟“电影导演”,或真实的电影导演。

图1示意性地示出了可以实现本公开的实施例的环境。具体地,示出了根据本公开的一个方面的架构、控制信道和媒体信道。用于游戏事件的基于云的控制系统1包括游戏电影制作(gfp)系统10、游戏云系统(gcs)20和视频流传输服务30。基于云的控制系统1可以包括游戏事件广播中的虚拟摄像机,其中虚拟摄像机可以被真实或虚拟的摄像师控制。通过计算机程序和/或设备,可以将“虚拟摄像师”实现为“电影导演”。

示出了参与由gcs20提供的当前游戏的多个玩家,第一玩家p1、第二玩家p2,...和第n玩家pn。每个玩家p1、p2、...、pn可以控制(“是”)游戏中的相应角色c1、c2,...、cn。每个角色具有部分由玩家控制的相关联的虚拟摄像机,玩游戏过程是基于玩家的输入来呈现的。角色(有时也被称为虚拟形象)可以被视为例如由玩家控制的三维游戏世界中的虚拟演员。针对这种控制,玩家p1、p2、...、pn例如通过使用输入设备(例如移动操纵杆、按压按钮等)来输入命令。命令在控制数据流中被传送到gcs20的游戏引擎21。从每个玩家p1、p2、...、pn到每个相应的角色c1、c2,...、cn的虚线表示控制数据流。从而第一玩家p1的角色c1可以被控制,并且例如在游戏场景内移动,执行游戏内的各种动作。来自玩家的控制命令和动作被发送到游戏引擎21或相关服务器,并且可以被记录和存储在存储器中。

gcs20可以包括游戏引擎21,游戏引擎21发送回游戏针对玩家输入的响应(如从游戏的每个角色c1、c2,...、cn到相应玩家p1,p2,...,pn的实线所示),然后玩家再对该响应进行动作。游戏引擎21和玩家之间的控制数据流可以例如包括元数据,比如位置、动作等。gcs20可以包括例如一个或多个web服务器22和任何数量的其他服务器和/或服务器集群。

玩家p1、p2、...、pn可以记录并流传输和/或广播他的玩游戏过程。游戏记录的这种呈现可以在玩家的设备2中本地执行,或者可以从gcs20接收这种记录。虽然用户设备2被示为仅用于第一玩家p1,但是每个玩家都具有能够玩游戏的某种类型的设备。该设备2可以例如包括计算机、游戏控制台、移动通信设备等。

玩家可以从游戏引擎21接收包括例如与玩游戏相关的音频和视频在内的媒体流,如从角色c1到第一玩家p1的实线所示。注意,所示出的角色仅用于说明目的,并且gcs20(例如其游戏引擎21)接收/发送/创建与包括角色的游戏相关的媒体流。

例如,第n个玩家pn可以选择将从游戏引擎21转发的与游戏相关的他的媒体流发送到视频流服务30,如从角色n到视频流服务30(例如到其视频流服务器31)的实线所示。玩家p1、p2、...、pn可以发送来自游戏内和来自外部摄像机(网络摄像头)和麦克风的视频和音频流。例如,第二玩家p2可以使用网络摄像头来拍摄玩游戏时的自己,并且将网络摄像头视频流发送到视频流服务30,如从第二玩家p2到视频流服务30的实线所示。

如果呈现不在本地完成,例如在云游戏中完成,则玩家p1、p2、...、pn可以从gcs20(例如,其游戏引擎21)接收相应的一个或多个媒体流(例如,如图所示的视频流)。

gcs20可以包括用于提供游戏的若干服务器。在一个实施例中,gcs20仅包括游戏引擎21,例如游戏引擎服务器。在图中示出了一个游戏引擎21,但是可以认识到,gcs20可以包括任何数量的处理设备(例如服务器)和用于存储与玩家p1、p2、...、pn相关的数据的存储器设备(例如游戏引擎服务器集群)。注意,在该上下文中,游戏引擎包括实现例如视频游戏的创建和开发的软件框架。游戏引擎21可以包括用于呈现2维(2d)或3维(3d)图形的呈现引擎,游戏引擎21可以用于处理声音、脚本、流传输、存储器管理等。术语“游戏引擎”通常被解释为负责游戏机制的软件,并且可以在服务器(例如游戏引擎21)中提供。这在本领域是已知的,将不进一步详细描述。

gcs20可以接收和存储所有玩家的数据,并(最终)针对一些设备来呈现和流传输游戏。图1中通过从第n个玩家角色cn到视频流服务30的实线示出了针对第n个玩家的这种流传输的示例。

在本公开的一个方面中,gcs20还呈现虚拟摄像机vc1、vc2、vcn,并且将它们流传输(即,根据它们的设置,对由虚拟摄像机呈现的视图的流媒体进行流传输)到gfp10,具体地,流传输到gfp10的虚拟摄像机设备cm1、cm2、...、cmm11。

视频流服务(vss)30可以包括一个或多个处理设备(例如视频流服务器31)以及存储器设备。vss30可以直接从玩家和从gcs20接收媒体流。vss30还可以对媒体流执行一些处理,例如执行切换、混合和转码。vss30还包括用于向若干观看者v1、v2、...、vk发送媒体流的装置。

观看者v1、v2、...、vk具有用户设备3(例如计算机),并且可以使用它来选择要观看的视频游戏流。观看者v1、v2、...、vk可以从vss30接收媒体流。在一个方面,观看者可以直接连接到gcs20,并且接收游戏状态和呈现选项,例如观看游戏事件的预定义位置。游戏状态可以被视为例如定义游戏属性(例如,参与玩家的列表、玩家的分数、角色的位置等)的游戏状态,实质上保持跟踪在玩游戏期间改变的所有属性。

在本公开的一个方面中,观看者v1、v2、...、vk可以与gfp10交互,例如通过对游戏中的未来发展进行投票。例如,他们可以对在游戏中给予玩家角色c1、c2,...、cn的虚拟礼物(例如新武器)进行投票。

在本公开的一个方面,vss30还可以与gfp10交互,例如通过向gfp10(例如其导演设备12)提供与vss30发送给观看者的流有关的统计数据。例如,gfp10可以利用该信息来决定在可能有观看者的区域广播。

注意,观看者v1、v2、...、vk的数量通常比玩家p1、p2、...、pn的数量高得多,即k>>n。

gfp10可以创建一个或多个媒体流并将它们发送到vss30,例如其视频流服务器31。

在一个方面,gfp10包括电影导演设备12,电影导演设备12可以被视为实现(自动)执行电影制作的电影导演的任务的虚拟人的设备。电影导演设备12可以被配置为从用户(例如电影导演)接收输入用于编辑媒体流,或者电影导演设备12可以自动执行电影导演任务,比如编辑等。电影导演设备12可以从其用户和/或从虚拟摄像机装置cm1、cm2、...、cmm和/或从观看者v1、v2、...、vk和/或从gcs20的任何设备(例如游戏引擎21)接收输入流。电影导演设备12可以处理输入流以便创建所需的输出流。该处理可以包括选择特定媒体流,编辑所选的媒体流,切换,混合等。再次注意,处理可以被用户(例如电影导演)控制,或者处理可以被配置和自动化。

gfp10还可以包括从虚拟摄像机vc1、vc2、...、vcn接收媒体流的虚拟摄像机设备cm1、cm2、...、cmm11。虚拟摄像机设备的数量m可以但不必等于虚拟摄像机的数量n.一个虚拟摄像机设备11可以用于控制一个或多个虚拟摄像机并从它们接收媒体流。

虚拟摄像机设备cm1、cm2、...、cmm,11可以被视为实现与电影制作的摄像师的功能相对应的功能。因此,虚拟摄像机设备cm1、cm2、...、cmm可以被视为虚拟摄像师,或者被视为基于游戏事件来制作电影的一个或多个人(例如摄像师)的输入装置。虚拟摄像机设备11,cm1、cm2、...、cmm可以包括处理单元,例如服务器。虚拟摄像机设备11,cm1、cm2、...、cmm可以包括用于接收用户输入(例如,定义要请求或要删除的某个虚拟摄像机)的输入设备。虚拟摄像机设备11,cm1、cm2、...、cmm还可以被配置为与导演设备12通信,例如从其接收指令。因此,虚拟摄像机设备11,cm1、cm2、...、cmm可以被视为是从导演设备12接收指令和/或从用户(例如摄像师)接收输入的自动摄像师,而用户又相应地从电影导演接收命令。虚拟摄像机设备11,cm1、cm2、...、cmm可以控制在gcs20中提供的多个虚拟摄像机。

gfp10还可以包括附加的处理装置,例如一个或多个服务器13和诸如交换机的设备(如附图标记14所示)。这些附加的处理装置可以被配置为从观看者v1、v2、...、vk接收输入,例如稍后描述的投票输入。

图2示出了根据本公开的方面来实现的特征。gfp10可以从gcs20接收游戏的游戏竞技场或游戏世界的各种类型的特殊图形表示。这种特殊的图形表示(例如通过网页来实现)允许导演容易地看到、选择和控制gcs20的虚拟摄像机。图2示出了用于控制虚拟摄像机的界面25看起来是什么样子的示例。例如,gfp10可以接收游戏中的虚拟摄像机cam-1、cam-2、cam-3、cam-4、cam-5、cam-6、cam-7的2d地图,如图2所示。使用界面25,导演可以容易地移动虚拟摄像机,选择摄像机使得其可以转动、倾斜、缩放等,改变它们的方向,添加新摄像机,移除旧摄像机,点击摄像机以查看并修改其设置等。这提供了一种容易且全面的控制虚拟摄像机的方式。

gfp10(例如其导演设备12)可以执行诸如运行重放、添加图形、修改图形和应用审查的任务。此外,gfp10可以接收从gcs20接收的所有虚拟摄像机信号的马赛克视图。例如,所有相应虚拟摄像机信号的小视图可以同时显示在屏幕上。这有助于用户控制虚拟摄像机。

对于通过在本地或在gcs20中运行游戏引擎来跟踪游戏事件的观看者v1、v2、...、vk,gfp10还可以控制这些观看者的游戏引擎。一个示例是gfp10影响观看者从哪个位置跟踪游戏的能力(例如,选择虚拟观众席的位置)。

在一个方面,摄像师可以是自动化的,并且游戏引擎21可以向gfp10(例如其导演设备12)发送来自多个不同角度的媒体流(例如视频流),所述视频由游戏引擎21选择。导演设备12的用户(导演)可以被提供有界面并且看到马赛克布局,并且可以选择向观看者广播哪一个摄像机。导演可以能够动态地新的虚拟摄像机,并且还可以通过转动、倾斜和缩放来控制任何单个虚拟摄像机。游戏引擎21可以生成特殊视图(例如在网页上呈现),所述特殊视图示出了游戏竞技场上的虚拟摄像机的位置,从而允许导演例如选择和调整任何摄像机。注意,在该上下文中,导演可以通过使用用于向导演设备12输入指令的输入设备来进行这样的动作。在其他实施例中,导演的功能是自动化的;导演可以被视为预编程的虚拟导演。

在电影制作中,由电影导演来选择摄像机角度、摄像机位置等,这通常不由演员来选择。与此一致,根据本公开的一个方面,允许电影导演通过创建在gcs20中运行的虚拟摄像机来指挥“表演”,其中,根据经由导演设备12输入的导演命令,所述虚拟摄像机可以被控制摄像机设备cm1、cm2、...、cmm的摄像师来控制。

游戏引擎21可以保持过去几分钟期间在游戏中发生的情况的记录。这允许导演回放在游戏中发生的事件,甚至从最初没有虚拟摄像机的角度来回放。导演还可以从物理摄像机(例如玩家p1、p2、...、pn的网络摄像机)接收媒体流。然后,导演可以在广播视频流的角落里添加在小窗口中显示玩家面部的真实视频。

另一个网络摄像头相关特征包括来自玩家的网络摄像头的视频流,以用于识别玩家的面部表情。然后,可以将玩家的面部表情反映在游戏中的角色的脸上。此特征允许导演例如在回放期间聚焦到角色的脸。为了实现该特征,gfp10可以直接从玩家(图1中未示出)接收相应玩家的视频流。然后,导演可以(通过导演设备12)添加和/或修改gcs20的游戏引擎21通过使用玩家的视频流呈现和发送到gfp10的图形。作为具体示例,导演可以修改角色的面部表情以进行重放,使情境更有戏剧性。如果已知有儿童在观看游戏事件,则导演还可以能够审查一些暴力动作。导演还可以创建针对儿童的特定媒体流,例如,省略某些动作。

以下,描述由本公开提供的一些控制信道。一个或多个示例性控制信道可以以任何组合方式使用,以实现本公开的各种实施例。

例如,控制信道可以采取以下形式:

·用户设备2和在gcs20内运行的web服务器22之间的websocket连接。此选项假定用户正在使用web浏览器。

·web实时通信(webrtc)数据信道连接。此选项也假定用户正在使用web浏览器。

·例如使用http长轮询实现的双向超文本传输协议(http)连接。此选项也假定用户使用web浏览器。

·常规传输控制协议(tcp)、用户数据报文协议(udp)或流控制传输协议(sctp)连接。该替代方案通常可以由原生应用(即不基于web的应用)来使用。

在控制信道内使用的信令协议例如可以包括会话发起协议(sip)、可扩展消息和呈现协议(xmpp)、http或私有协议。

控制信道协议消息的有效载荷可以使用任何合适的格式,其示例包括javascript对象符号(json)和可扩展标记语言(xml)。为了简单起见,在说明书的剩余部分中,假设使用http和json,但是已认识到可以替代地使用其他格式。

本发明提供至少以下控制信道:

·gfp/gcs信道,这是gfp10和gcs20之间的信道。gfp/gcs信道可以用于控制虚拟摄像机和图形引擎。

·cmx/gcs信道,这是虚拟摄像机设备11和gcs20之间的信道。cmx/gcs通道可以用于控制虚拟摄像机。

·gfp/观看者信道,这是gfp10(例如其导演设备12)和观看者vx之间的信道。gfp/观看者信道可以用于控制观看者的基于本地/基于云的游戏引擎。gfp/观看者信道适用于在游戏引擎内跟随游戏的那些观看者。

·观看者/gfp信道,这是观看者和gfp10(例如其导演设备12)之间的信道。观看者/gfp信道可以被观看者用于向gfp10发送反馈和与gfp10交互。

接下来给出可以包括在以上所例示的控制信道的控制信道消息中的数据。以下给出在控制信道消息中交换的数据的具体示例,但是应当注意,可以交换其他数据,并且本公开不限于以下示例。

gfp/gcs信道

·与添加、删除、改变虚拟摄像机有关的数据

·与设置虚拟摄像机的位置、方向和/或设置(如焦距、镜头等)相关的数据

·与其他呈现选项相关的数据,例如视频分辨率,呈现和编码帧速率,类型:2d、3d、高动态范围(hdr)、游戏时间(用于回放)等。hdr成像是在成像和摄影中使用的一组技术,用于再现比使用标准数字成像或照相技术所能实现的更大的亮度动态范围。

·与其他游戏选项相关的数据,例如要显示的图形等。如上所述,导演可以修改角色的面部表情以进行回放,使情境更有戏剧性。如果导演知道有儿童在观看事件,则导演还可以审查一些暴力动作。

以下给出将新的虚拟摄像机添加到游戏竞技场的控制信道消息的示例。该示例假设使用json作为有效载荷的格式,使用超文本传输协议(http)作为控制信道协议,以及gcs20提供用于操纵虚拟摄像机的restful应用编程接口(api)。表示状态转移(rest)是万维网(www)的抽象,并且如果符合一些约束(包括例如客户端-服务器、无状态、可高速缓存的约束,这些都是本领域技术人员已知的),web服务可以被表示为restful。

上述用于添加新的虚拟摄像机的控制信道消息的示例:

上述示例将具有用户指定标识符“john′scamera”的虚拟摄像机添加到游戏竞技场的三维坐标空间中的特定坐标(x,y,z)。添加的虚拟摄像机使用缩放等级3,指向水平轴上的30度方向,并且在竖直轴上向上倾斜10度。此外,在示例中指定了一些附加选项(帧率、编解码器、分辨率)。

gcs/gfp信道

·gfp10可以接收媒体流、马赛克视频流、特殊图形表示、来自玩家的流等。

·通常,gcs20以非常高的质量(原始或轻度压缩的视频)将虚拟摄像机的视频流发送到gfp10。然而,如果gfp10和gcs20之间的网络带宽有限,也可以通过实时传输协议(rtp)发送常规压缩的视频。

cmx/gcs通道

在cmx(cameraman-x)和gcs20之间的控制信道上承载的消息中交换的数据可以包括但不限于:

·虚拟摄像机位置、方向和设置(焦距、镜头等)

·其他呈现选项(大小、呈现和编码帧率、类型:(2d、3d、hdr等))

gfp/观看者频道

在gfp/观看者控制信道消息中交换的数据可以包括但不限于:

·第一用例:使用gcs20传播gfp设置:gfp10控制gcs中的云呈现选项,并且gcs20将这些选项发送到本地游戏呈现引擎(ge)。

·第二用例:绕过gcs/vx并在gfp10和本地游戏引擎(即用户设备2)之间创建直接数据信道。

观看者/gfp信道

在控制信道消息中交换的数据可以包括但不限于:

·投票、评论等

以下举例说明一些控制逻辑。

添加/移除虚拟摄像机

为了添加和移除虚拟摄像机,游戏引擎21可以提供gfp10可用来在游戏的游戏竞技场内添加和控制虚拟摄像机的api(参见例如图2的示例和相关文本)。当导演添加新的摄像机时,游戏引擎21发起新的视频流并开始将其发送给导演。视频流的参数在gfp/gcs控制信道上协商。

选择回放

gfp10发送针对来自所选虚拟摄像机的视频流的具有选定时间和速度(例如可以是慢动作)的回放请求。gfp10(例如,其导演设备12或虚拟摄像机设备11)可以预先或在回放期间即时地指定摄像机位置。然后,gcs20创建gfp10可以广播或提供由例如vss30进行广播的流。为此,gcs20需要存储某一时间段期间的游戏状态,例如最后30秒,并且考虑gcs20的的可用存储器、存储装置和其他容量限制,如果可能的话存储更多。

下面的示例假定gfp/gcs控制通道使用http上的json作为协议,并且假定gcs向gfp提供restfulapi。该示例示出了请求从时刻456秒开始、0.2x倍速的5秒慢动作回放的控制信道消息可以是什么样子。

图3是示出了游戏事件的各个方面的序列图。具体地,图3是示出了提供用于广播的游戏事件的方面的序列图。

gcs20(例如其游戏引擎21)可以向gfp10(例如其虚拟摄像机设备11)提供(箭头100)游戏世界中的虚拟摄像机的特殊图形表示。在提供特殊图形表示之前,可以有从gfp10到gcs20的针对这种表示的请求(未示出)。

gfp10管理(101)虚拟摄像机,例如使用接收到的图形表示。已经给出了这种管理的示例,并且包括例如移除虚拟摄像机、添加虚拟摄像机、改变虚拟摄像机的设置等。

gfp10可以确定,为了给接收游戏事件的广播的观看者创造更好的观看者体验,需要对现有虚拟摄像机进行新的设置或者添加新的虚拟摄像机。然后,为了实现这种愿望,gfp10(例如其虚拟摄像机设备11)可以向gcs20(例如其游戏引擎21)发送(箭头102)包括相关虚拟摄像机数据的控制消息。

作为响应,gcs20呈现所请求的虚拟摄像机并开始向gfp10发送媒体流。此外,gfp10可以从玩家设备2接收(箭头104)媒体流。

gfp10处理(箭头105)媒体流,以产生适于向观看者广播的游戏事件电影。

产生的游戏事件电影可以被提供(箭头106)到vss30,vss30向观看者设备3广播(箭头107)游戏事件电影。还可以想到,gfp10处理(箭头108)针对观看者设备3的广播。

gfp10可以从使用观看者设备3的观看者接收(箭头109)输入,例如投票给玩家礼物。

图4示出了在根据本公开的系统10中的方法的步骤的流程图。已描述的特征可以以不同的方式组合,以下给出其示例。

提供了方法40,其可以在用于处理与游戏云系统20提供的在线游戏相关的媒体流的系统10中执行。系统10可以例如包括已经例如结合图1描述的游戏电影制作。系统10包括至少一个节点11、12,例如一个或多个虚拟摄像机设备cm1、cm2、...、cmm和/或一个或多个导演设备12。

方法40包括向游戏云系统20发送41包括与至少一个虚拟摄像机相关的数据的消息。

方法40包括从游戏云系统20接收42由至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流。

根据方法40,想制作与在线游戏相关的电影的用户可以使用虚拟摄像机设备cm1、cm2、...、cmm来发送包括与虚拟摄像机相关的数据的消息,消息数据定义新的虚拟摄像机。然后,作为响应,用户可以接收由所述消息定义的虚拟摄像机捕获的与游戏相关的媒体流。

在一个实施例中,系统10包括虚拟摄像机设备cm1、cm2、...、cmm。在其他实施例中,系统10包括一个或多个虚拟摄像机设备cm1、cm2、...、cmm和一个或多个导演设备12。

方法40能够改善观看者的体验,并且由于可以进行选择,例如导演或电影制作人通过发送与虚拟摄像机有关的数据来选择观看方向和位置,使得更容易跟踪游戏广播。

在一个实施例中,方法40包括:

-选择43至少一个第一媒体流中的一个或多个,以及

-编辑44至少一个第一媒体流中所选择的一个或多个,创建至少一个第二媒体流。

实现该实施例的系统10可以包括虚拟摄像机设备11和导演设备12,其中,发送41和接收42的步骤在虚拟摄像机设备11中执行,并且选择43和编辑44在导演设备12中执行。导演设备12可以从虚拟摄像机设备11接收所有第一媒体流,然后选择43第一媒体流中一个或多个,对其进行编辑44。通过配置导演设备12以某种方式处理第一媒体流(例如,基于诸如投票的观看者输入,和/或通过添加图形以突出显示媒体流中示出的对象)来将这种编辑44自动化,这仅是一些示例。在其他实施例中,这种编辑44包括在导演设备12中接收来自用户(导演)的输入并基于该输入执行编辑。例如,用户可以输入用于修改图形、添加事件等的一组指令。在另一实施例中,导演设备12和虚拟摄像机设备11是集成单元。

借助该方法,通过提供用于添加交互性特征、回放、慢动作等的装置,使得游戏事件呈现得更具吸引力。此外,方法40为所要广播的游戏电影的制作人提供了控制虚拟摄像机、添加事件、修改图形等的手段。观看者不再如现有技术那样只是看到每个单独玩家正在做或看什么,本公开使得能够用不同的摄像机角度等提供更好的视图、回放/慢动作,以便理解整个游戏进程并因此改善观看者体验。

在各种实施例中,编辑44包括以下一项或多项:修改图形,添加事件,添加事件的慢动作回放,添加以选定的时间和速度从选择的虚拟摄像机捕获的事件的重放,混合,切换,添加与在线游戏玩家相关的视频流,审查所述至少一个第一媒体流的部分。如上所述,该编辑动作可以基于用户输入来实现或者通过被编程到导演设备12中的某些动作来自动化。

在上述实施例的变型中,方法40包括提供45所创建的至少一个第二媒体流用于广播。系统10(例如导演设备12)可以向视频流服务30提供与由至少一个虚拟摄像机捕获的与在线游戏相关的一个或多个第一媒体流,和/或创建的至少一个第二媒体流。视频流服务30可以以任何已知的方式广播接收的媒体流。

在各种实施例中,方法40包括从游戏云系统20请求一个或多个附加的虚拟摄像机并接收相应的第一媒体流,和/或请求对现有虚拟摄像机的改变。

在各种实施例中,方法40包括从游戏云系统20接收配置的虚拟摄像机的图形表示25。

在上述实施例的变型中,方法40包括提供图形表示25作为用于从用户接收输入的接口。该实施例可以例如如参考图2所示和所描述的来实现。

在各种实施例中,至少一个第一媒体流包括捕获在线游戏的事件的至少一个虚拟摄像机信号。

在各种实施例中,与至少一个虚拟摄像机相关的数据包括以下各项中的一个或多个:虚拟摄像机的添加,虚拟摄像机的删除,虚拟摄像机的设置的改变,在线游戏内的虚拟摄像机的位置的设置,在线游戏内的虚拟摄像机的方向的设置,所请求事件的时间和回放速度的设置,虚拟摄像机的设置,焦距,镜头类型,第一媒体流的帧的大小,选择要或不要由游戏云系统20呈现的图形组件,呈现帧速率,编码帧速率,包括二维、三维或高动态范围在内的呈现类型。

图5示意性地示出了用于实现本公开的实施例的系统10,具体示出了装置11、12。系统10(例如如前所述的gfc)包括至少一个节点11、12,例如虚拟摄像机设备11和/或导演设备12。如前所述,系统10还可以包括附加的节点,并且还要注意,这些功能可以集成到单个节点中。在下文中,用单个节点描述和示出系统10的特征,但是应当理解,系统10提供的各种特征和功能可以分布在系统10的不同节点11、12上。

节点11、12包括至少一个处理器60,该处理器包括能够执行存储在存储器61中的软件指令(因而可以是计算机程序产品61)的中央处理单元(cpu)、多处理器、微控制器、数字信号处理器(dsp)、专用集成电路等中的一个或多个的任何组合。处理器60可以被配置为执行例如结合图4所描述的方法的各种实施例中的任一个。

节点11、12包括一个或多个输入/输出装置63(在图5中表示为in/out)。当系统10包括多个节点时,例如一个虚拟摄像机设备11和一个导演设备12,这两个节点包括用于相互通信的装置。该装置可以例如包括接口、协议、线缆等。节点11、12还可以包括用于与游戏云系统20的游戏引擎21通信的接口。附加地,输入装置可以包括用于从用户接收输入的装置,例如,键盘、鼠标、触摸板、轨迹点等的形式。

节点11、12还可以包括显示器64,显示器64可以包括图形用户界面。显示器还可以是用户输入装置,例如触摸屏。显示器64上可以显示用户界面,例如参考图2描述的用户界面。

节点11、12还可以包括虚拟摄像机管理装置70,所述虚拟摄像机管理装置70可以例如包括用于提供消息的装置,该消息包括与要以某种方式呈现、移除或改变的虚拟摄像机相关的数据。虚拟摄像机管理装置70还可以包括用于以上述方式编辑接收到的媒体流的装置,例如处理电路。

存储器61可以例如是随机存取存储器(ram)、只读存储器(rom)、闪存、磁带、压缩盘(cd)-rom、数字通用盘(dvd)、蓝光盘等的任何组合。存储器61还可以包括持久存储设备,其例如可以是磁存储器、光存储器、固态存储器或甚至远程安装存储器中的任意单独一个或组合。

还提供用于在处理器60中软件指令的执行期间读取和/或存储数据的数据存储器(未示出)。数据存储器可以是随机访问存储器(ram)和只读存储器(rom)的任意组合。

系统10可以被实现为单个节点或多个节点,并且系统10可以使用功能模块和/或软件指令(例如在处理器中执行的计算机程序)来实现,和/或可以使用硬件(例如专用集成电路、现场可编程门阵列、离散逻辑组件等)来实现。

提供了一种用于处理与由游戏云系统20提供的在线游戏相关的媒体流的系统10,系统10包括至少一个节点11、12。系统10被配置为:

-向游戏云系统20发送包括与至少一个虚拟摄像机相关的数据的消息,以及

-从游戏云系统20接收由至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流。

系统10被配置为:例如,通过包括一个或多个处理器和存储器,执行参考图4在各种实施例中描述的方法40,其中,存储器包含可由处理器执行,从而系统10可操作为执行所述方法的指令。

在一个实施例中,系统10被配置为选择至少一个第一媒体流中的一个或多个,并编辑至少第一媒体流中所选择的一个或多个,从而创建至少一个第二媒体流。

在上述实施例的变型中,系统10被配置为通过执行以下操作中的一个或多个来进行编辑:修改图形,添加事件,添加事件的慢动作回放,添加以选定的时间和速度从选择的虚拟摄像机捕获的事件的重放,混合,切换,添加与在线游戏玩家相关的视频流,审查所述至少一个第一媒体流的部分。

在一个实施例中,系统10被配置为提供所创建的至少一个第二媒体流用于广播。

在一个实施例中,系统10被配置为从游戏云系统20请求一个或多个附加的虚拟摄像机和接收相应的第一媒体流,和/或请求对现有虚拟摄像机的改变。

在一个实施例中,系统10被配置为从游戏云系统20接收配置的虚拟摄像机的图形表示25。

在上述实施例的变型中,系统10被配置为提供图形表示25作为用于从用户接收输入的接口。

在一个实施例中,至少一个第一媒体流包括捕获在线游戏的事件的至少一个虚拟摄像机信号。

在各种实施例中,与至少一个虚拟摄像机相关的数据包括以下各项中的一个或多个:虚拟摄像机的添加,虚拟摄像机的删除,虚拟摄像机的设置的改变,在线游戏内的虚拟摄像机的位置的设置,在线游戏内的虚拟摄像机的方向的设置,所请求事件的时间和回放速度的设置,虚拟摄像机的设置,焦距,镜头类型,第一媒体流的帧的大小,选择要或不要由游戏云系统20呈现的图形组件,呈现帧速率,编码帧速率,包括二维、三维或高动态范围在内的呈现类型。

本公开还包括用于实现上述方法的计算机程序62。计算机程序62可以用在系统10的至少一个节点11、12中,用于处理与由游戏云系统20提供的在线游戏相关的媒体流,计算机程序62包括计算机程序代码,所述计算机程序代码当在至少一个节点11、12的至少一个处理器60上执行时使得节点11、12执行如例如结合图4所描述的方法40。

本公开还包括计算机程序产品61,所述计算机程序产品81包括上述计算机程序62和有存储计算机程序62的计算机可读装置。

在一个方面中,本公开提供了一种用于处理与由游戏云系统20提供的在线游戏相关的媒体流的系统10(包括一个或多个节点)。系统10包括至少一个节点11、12,所述至少一个节点包括用于向游戏云系统20发送包括与至少一个虚拟摄像机有关的数据的消息的第一装置。这种第一装置可以例如通过虚拟摄像机管理装置70和/或针对游戏云系统20的接口装置(例如输入/输出装置63)来实现。这种第一装置可以包括各种处理电路,例如,用于发送消息的处理电路。

系统10包括用于从游戏云系统20接收由至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流的第二装置。这种第二装置可以通过接口装置(例如输入/输出装置63)和/或通过用于接收至少一个这样的第一媒体流的处理电路来实现。

系统10还可以包括用于选择至少一个第一媒体流中的一个或多个的第三装置。这种第三装置可以例如通过适于选择的处理电路(例如虚拟摄像机管理装置70)来实现。在其他情况下,这种第三装置可以包括适于接收和处理用户输入的处理电路,其中,用户输入与对特定第一媒体流的选择相关。

系统10还可以包括用于编辑至少一个第一媒体流中所选择的一个或多个,创建至少一个第二媒体流的第四装置。这种第四装置可以例如通过适于编辑的处理电路(例如虚拟摄像机管理装置70)来实现。

系统10可以还包括用于实现本公开的各种实施例的附加装置。

例如,如所述,本公开提供新的控制信道和架构,其使得直播游戏流事件的专业制作得到实现。由本公开实现和提供的虚拟摄像机允许电影导演看到他想要的,以他想要的方式拍摄,并且因此创建他自己的节目,专注在游戏的不同部分并改变呈现设置。本公开还实现了诸如回放、慢动作、游戏图形的操纵和观看者交互的附加特征。所描述的控制信道的引入和使用允许实现这些新特征。

图6示出了在根据本公开的游戏引擎21中的方法的步骤的流程图。已描述的特征可以以不同的方式组合,以下给出其示例。

方法50可以在游戏引擎21中执行,用于提供与在线游戏相关的媒体流。方法50包括从节点11、12接收51包括与至少一个虚拟摄像机相关的数据的消息。

方法50包括基于接收到的数据提供52至少一个虚拟摄像机。

方法50包括呈现53由至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流。

方法50包括向节点11、12发送54至少一个第一媒体流。

在一个实施例中,方法50包括向节点11、12提供配置的虚拟摄像机的图形表示25。

图7示意性地示出了用于实现本公开的实施例的游戏引擎21、22。游戏引擎21、22可以例如包括服务器或其他处理设备。因此,游戏引擎21被提供用于提供与在线游戏相关的媒体流。游戏引擎21被配置为:

-从节点11、12接收包括与至少一个虚拟摄像机相关的数据的消息,

-基于接收到的数据提供至少一个虚拟摄像机,

-呈现由所述至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流,以及

-向节点11、12发送至少一个第一媒体流。

游戏引擎21被配置为:例如,通过包括一个或多个处理器和存储器,执行参考图6在各种实施例中描述的方法50,其中,存储器包含可由处理器执行,从而游戏引擎21可操作为执行所述方法的指令。

在实施例中,游戏引擎21被配置为向节点11、12提供配置的虚拟摄像机的图形表示25。

游戏引擎21包括至少一个处理器80,所述处理器包括能够执行存储在存储器81中的软件指令(因而可以是计算机程序产品81)的中央处理单元(cpu)、多处理器、微控制器、数字信号处理器(dsp)、专用集成电路等中的一个或多个的任何组合。处理器80可以被配置为执行例如结合图6所描述的方法的各种实施例中的任一个。

存储器81可以例如是随机存取存储器(ram)、只读存储器(rom)、闪存、磁带、压缩盘(cd)-rom、数字通用盘(dvd)、蓝光盘等的任何组合。存储器61还可以包括持久存储设备,其例如可以是磁存储器、光存储器、固态存储器或甚至远程安装存储器中的任意单独一个或组合。

还提供用于在处理器80中软件指令的执行期间读取和/或存储数据的数据存储器(未示出)。数据存储器可以是随机访问存储器(ram)和只读存储器(rom)的任意组合。

游戏引擎21包括一个或多个输入/输出装置83(在图7中表示为in/out)。该装置可以例如包括接口、协议、线缆等。游戏引擎21还可以包括用于与游戏云系统20的一个或多个节点11、12通信的接口。附加地,输入装置可以包括用于从用户接收输入的装置,例如,键盘、鼠标、触摸板、轨迹点等的形式。

游戏引擎21还可以包括虚拟摄像机管理器85,所述虚拟摄像机管理器85可以例如包括用于根据接收到的数据呈现虚拟摄像机和/或移除现有的虚拟摄像机,或根据接收到的数据改变虚拟摄像机的设置的装置,例如处理电路。

游戏引擎21还可以包括用于呈现的图形处理单元(gpu)84,也称为图形引擎。也就是说,通过计算机程序从所谓场景文件中的一个或多个2d或3d模型生成图像的处理。这种模型的结果也可以称为呈现。使用实时应用和摄像机规格发送的当前环境的动画参数和描述来呈现场景。摄像机规格基于对当前事件的描述加上动画的现状来产生。gpu84的功能和实现是已知的,不再更详细地描述。

游戏引擎21还可以包括用于向玩家提供游戏的附加的装置,该装置是已知的,这里不再描述。

本公开还包括用于实现上述方法的计算机程序82。计算机程序82可以在游戏引擎21中使用,用于提供与在线游戏相关的媒体流。计算机程序82包括计算机程序代码,所述计算机程序代码当在游戏引擎21的至少一个处理器80上执行时,使得游戏引擎21执行如上结合图6所述的方法50。

本公开还包括计算机程序产品81,所述计算机程序产品81包括上述计算机程序82和有存储计算机程序82的计算机可读装置。

在一方面中,本公开提供了一种用于提供与在线游戏相关的媒体流的游戏引擎21。游戏引擎21包括用于从节点11、12接收包括与至少一个虚拟摄像机相关的数据的消息的第一装置。这种第一装置可以例如通过接口装置(例如输入/输出装置83)来实现。这种第一装置可以包括各种处理电路,例如,用于接收的处理电路。

游戏引擎21可以包括用于基于接收到的数据提供至少一个虚拟摄像机的第二装置。这种第二装置可以例如包括虚拟摄像机管理器85,所述虚拟摄像机管理器85例如包括适于通过使用存储在存储器中的程序代码、基于接收到的数据来提供这种虚拟摄像机的处理电路。

游戏引擎21可以包括用于呈现由至少一个虚拟摄像机捕获的与在线游戏相关的至少一个第一媒体流的第三装置。这种第三装置可以例如通过图形处理单元84、和/或虚拟摄像机管理器85、和/或适于通过使用存储在存储器中的程序代码来执行这样呈现的处理电路来实现。

游戏引擎21可以包括用于向节点11、12发送至少一个第一媒体流的第四装置。这种第四装置可以例如通过用于发送这种媒体流的接口装置(例如输入/输出装置83)和/或处理电路来实现。

游戏引擎21可以包括用于向节点11、12提供配置的虚拟摄像机的图形表示25的第五装置。这种第五装置同样可以包括虚拟摄像机管理器85,所述虚拟摄像机管理器85例如包括适于通过使用存储在存储器中的程序代码来提供这种图形表示的处理电路和/或用于与节点11、12通信的输入/输出装置83。

游戏引擎21还可以包括用于实现本公开的各种实施例的附加装置。

上文中已参考一些实施例主要地描述了本发明。然而,本领域技术人员应理解,本文公开之外的在如由所附权利要求限定的本发明的范围之内的其它实施例同样是可能的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1