一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电子游戏中摄像机视图的调整方法与流程

2022-04-02 04:54:13 来源:中国专利 TAG:


1.本技术总体上涉及基于计算机的游戏,并且更具体地但非排他性的涉及在电子游戏中呈现摄像机视图的方法、系统和计算机可读介质。


背景技术:

2.一些在线游戏平台允许用户(例如,玩家)在三维(three-dimensional,3d)世界中导航他们的化身。用户可以通过客户端设备上提供的鼠标、键盘或其他输入机制,控制化身在建筑、田野、森林、公园、山脉以及其它3d世界的环境中奔跑、行走、攀爬、飞行等,并且各种元素如树木、墙壁、柱子、云和其他结构/对象在3d世界中被渲染为可视化图形呈现。
3.通常,3d世界以摄像机视图呈现,就好像当化身从一个点穿过3d世界到另一点时,实况摄像机正在跟随化身。然而,许多电子游戏中的摄像机视图往往充满了令人不快的不连续性和破坏性的视觉效果,这让许多用户感到烦恼。


技术实现要素:

4.根据第一种实施方式,一种方法用于调整在电子游戏中呈现的三维3d世界的摄像机视图。所述方法包括:确定在所述3d世界中呈现的第一图形对象的速度和行进方向;识别沿着所述行进方向布置的第二图形对象;确定所述第二图形对象是否以至少阈值水平在当前摄像机视图中遮挡所述第一图形对象在所述第一图形对象沿着所述行进方向的行进期间;响应于确定所述第一图形对象的来自所述第二图形对象的遮挡超出所述阈值水平,通过朝着所述第一图形对象向前移动所述摄像机视图来调整所述第一图形对象的所述当前摄像机视图从而避免来自所述第二图形对象的遮挡;和响应于确定来自所述第二图形对象的遮挡小于所述阈值水平,保持所述当前摄像机视图。
5.根据另一种实施方式,一种非暂时性计算机可读介质,其上存储有指令,响应于处理器的执行,使得所述处理器执行或控制运行操作。该操作包括:确定在所述3d世界中呈现的第一图形对象的速度和行进方向;识别沿着所述行进方向布置的第二图形对象;确定所述第二图形对象是否以至少阈值水平在当前摄像机视图中遮挡所述第一图形对象在所述第一图形对象沿着所述行进方向的行进期间;响应于确定所述第一图形对象的来自所述第二图形对象的遮挡超出所述阈值水平,通过朝着所述第一图形对象向前移动所述摄像机视图来调整所述第一图形对象的所述当前摄像机视图从而避免来自所述第二图形对象的遮挡;和响应于确定来自所述第二图形对象的遮挡小于所述阈值水平,保持所述当前摄像机视图。
6.根据另一种实施方式,一种装置,包括:用户界面;和耦合到所述用户界面和存储器的处理器,该存储器上存储游戏应用程序,该游戏应用程序响应于被所述处理器执行使得所述处理器将电子游戏的3d世界的摄像机视图呈现在所述用户界面,其中所述游戏应用程序还被所述处理器执行以使得所述处理器执行或控制运行操作。该操作包括:确定在所述3d世界中呈现的第一图形对象的速度和行进方向;识别沿着所述行进方向布置的第二图
形对象;确定所述第二图形对象是否以至少阈值水平在当前摄像机视图中遮挡所述第一图形对象在所述第一图形对象沿着所述行进方向的行进期间;响应于确定所述第一图形对象的来自所述第二图形对象的遮挡超出所述阈值水平,通过朝着所述第一图形对象向前移动所述摄像机视图来调整所述第一图形对象的所述当前摄像机视图从而避免来自所述第二图形对象的遮挡;和响应于确定来自所述第二图形对象的遮挡小于所述阈值水平,保持所述当前摄像机视图。
附图说明
7.图1a是在3d世界行进的化身的摄像机视图示例,其中摄像机视图没有向前移动。
8.图1b是在图1a所示的3d世界行进的化身的俯视图。
9.图2a是在3d世界行进的化身的摄像机视图的另一示例,其中摄像机视图已经向前移动然后又向后移动。
10.图2b是在图2a所示的3d世界行进的化身的俯视图。
11.图3是根据一些实施方式的可用于确定是否调整电子游戏中的摄像机视图的示例参数的示意图。
12.图4是可提供图1a、图1b、图2a和图2b的摄像机视图的用于在线游戏的示例系统架构的示意图。
13.图5是根据一些实施方式的在电子游戏中调整摄像机视图的方法的流程示意图。
14.图6是根据一些实施方式的示例计算设备的框图。
具体实施方式
15.在以下详细描述中,参考了构成其一部分的附图。在附图中相似的符号通常标识相似的组件,除非上下文另有说明。详细描述、附图和权利要求中描述的说明性实施例并不意味着限制。在不背离本文提出的主题的精神或范围的情况下,可以使用其他实施例,并且可以进行其他调整。如本文大体描述并在附图中图解说明的本公开的各方面可以被布置、替换、组合、分离和设计成多种不同的配置,所有这些都在本公开的范围内。
16.说明书中对“一个实施例”、“一种实施例”、“一个示例实施例”等的引用表明,所描述的实施例可以包括特定的特征、结构或特性,但每个实施例不一定都包括特定的特征、结构或特性。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,可以结合其他实施例来实现这种特征、结构或特性,无论是否明确描述。
17.本公开解决了电子游戏中的上述缺点,通过根据将发生的遮挡程度有选择地将摄像机视图向前移向化身(以避免摄像机视图中化身的遮挡)。是否保持摄像机视图静止、向前移动摄像机视图还是向后移动摄像机视图可能取决于几个因素,例如化身在电子游戏的3d世界中行进的速度和方向、遮挡是否为硬遮挡、遮挡是否为软遮挡,或其他因素。
18.例如,硬遮挡(如墙壁或其他不透明图形对象)可能会导致摄像机视图向前移动,从而将墙壁从摄像机视图中移除,因此不会遮挡化身的摄像机视图。软遮挡(例如透明窗口或仅部分遮挡化身的其他至少半透明的结构/对象)可能导致摄像机视图保持静止(如摄像机视图不向前移动),使得可以看到该化身在软遮挡后面移动。
19.化身的方向和速度,当该化身行进在3d世界时,可以用来决定是否调整摄像机视
图。例如,如果由游戏应用程序确定,行进速度将导致化身从硬遮挡后面通过,则摄像机视图朝着化身向前移动,在垂直于行进方向的方向上(为了提供一个非遮挡的化身的摄像机视图)。作为另一个示例,如果确定,例如通过游戏应用程序,行进的方向和速度将导致化身经过软遮挡,则游戏应用程序可以控制摄像机视图保持静止(不向前朝着化身移动,在垂直于行进方向的方向上),因此当化身穿过软遮挡后面时摄像机视图呈现出化身被部分遮挡。
20.化身行进的速度和/或可能的遮挡的量可以用作因素/阈值来确定是否调整摄像机视图。作为一个示例,游戏应用程序可以确定化身将在硬遮挡(例如墙壁)后面快速穿过。因此,即使墙壁可能以高达100%的遮挡遮挡化身,化身也可能以足够的速度移动从而使得100的遮挡可能会在短时间窗口(例如少于几秒)内发生。在这种情况下,可以确定总遮挡的持续时间是可以接受的,如为了保持平滑的视图而不是以高速移动摄像机,因此游戏应用程序可能不会向前移动摄像机视图以避免遮挡。在另一个示例中,化身可以在仅部分遮挡(例如仅10%遮挡)化身的软遮挡(例如窄杆)之后暂停/停止。在这种情况下,部分遮挡的持续时间可能发生超过几秒钟,因此游戏应用程序可能会向前移动摄像机视图以提供化身的完整(非遮挡)视图。
21.上述和其他方面的细节可以通过参考图1a、图1b、图2a和图2b。首先,图1a是在电子游戏中的3d世界行进的化身102的示例摄像机视图100。例如,摄像机视图100可以是在客户端设备的用户界面上呈现的侧视图,以便跟随(例如平移)化身102在3d世界中的移动。此处所示和描述的摄像机视图可以由“虚拟摄像机”提供,该“虚拟摄像机”可以定位在3d世界中的任何位置以生成摄像机视图并生成不同的视图。虚拟摄像机的位置也可以更新/更改。
22.在一些实施方式中,化身102可以是表示正在操作客户端设备以便玩电子游戏的玩家/用户的图形对象。在玩电子游戏的过程中,化身102在3d世界中从右侧行进(例如行走或奔跑),如一个或多个箭头104所展示。随着化身102在视图100中从左侧行进到右侧,化身102的后续位置在图1a(以及其他图中)由化身102的多个虚线表示。
23.摄像机视图100显示化身102最初在从左到右的方向上沿着基本平坦的路径106行进。平坦路径106可以位于3d世界中的平面区域(可以由x和y的坐标表示)。随着化身102继续从左向右行进,化身102还可以改变高度以爬上3d世界中的斜坡108(其可以由x和y和z的坐标表示)。
24.除了化身102之外,可以在3d世界中呈现多个图形对象。例如,图形对象可以是沿着路径106和斜坡108存在的树110、112和114。树110、112和114可以具有各自的树干116、118和120。另一个图形对象可以是斜坡108顶端的墙122(例如建筑物的墙壁)。
25.树110、112和114可以具有相应的树干116、118和120,它们具有相对薄的轮廓,使得树干116、118和120不会完全遮挡化身102当化身在每个树干116、118和120后面经过。因此,每个树干116、118和120可以被认为是“软”遮挡,其使得化身102的至少一部分是可见的。因此,例如在图1a中,化身102的身体的部分(例如头部、四肢或躯干的部分)可以在摄像机视图100中保持可见,而化身102的身体的其他部分被树干116、118和120遮挡。图3下面进一步详细说明,遮挡的量和/或持续时间可以确定是否保持摄像机视图100精致(如图1a所示,其中树干116、118和120在摄像机视图100中遮挡化身102的部分),或者可以确定是否移动摄像机视图100向前在化身102和树干116、118和120之间,从而呈现化身102的非遮挡的视图当化身102行进到树干116、118和120之后时。
26.图1b是化身102行进图1a所示的3d世界的俯视图。在一个实施例中,图1b的俯视图可以是电子游戏中呈现的摄像机视图150,例如如果用户在玩电子游戏时选择了俯视图或者鸟瞰图。对应于图1a的摄像机视图100中示出的图形对象,图1b的摄像机视图150以虚线展示了化身102和其后续位置,其中箭头104描述了化身102的行进方向,树110、112和114,以及墙122。
27.图1b示出了树110具有悬垂的分支124,化身102从其下方经过。类似于图1a中的摄像机视图100,图1b中的摄像机视图150保持静止以使得分支124被视为软遮挡,其当化身102在分支124下方穿过时遮挡化身102的某些部分而化身102的其他部分在分支124下方仍然可见。如果存在具有比分支124(例如较粗的分支、云、高速公路立交桥等)更大的轮廓的图形对象,其会遮挡化身102的更重要部分(和/或更长的遮挡持续时间),摄像机视图150可以被调整以在这样的图形对象和化身102之间移动摄像机视图,从而使得化身102在摄像机视图中不被遮挡。
28.如图1a和图1b所示,化身102在接近墙122。如果当化身102在墙122后面行进时摄像机视图100保持不变,则化身102将被墙122完全遮挡。因此,在一种实施方式中,摄像机视图被调整以使得墙122不遮挡化身102当该化身102布置于墙122之后是。图2a和图2b对此做出更详细说明。
29.具体地,图2a是化身102在墙122后面行进(如箭头102和化身102的虚线表示所描述的)的摄像机视图200,其中摄像机视图200已经相对于图1a的摄像机视图100向前移动。因此,在图2a中,呈现摄像机视图200的摄像机向前(朝向化身102并且在垂直于箭头104的方向上)移动到墙122和化身102之间的位置(例如已经移动更靠近化身102)。以这种方式,墙122从摄像机视图200中消失(例如,被移除)并且因此不再遮挡化身102。在图2a中,化身102也被显示为以放大的尺寸呈现,这表示摄像机视图200已经放大到更靠近化身102。
30.如图2b所示的俯视图中化身102的对应位置所示,墙122本身仍然存在并且化身102仍然在墙122后面穿过。如上所述,且与图1a所示进行比较,摄像机视图200现在由于向前移动经过墙122而排除墙122,从而防止墙122遮挡摄像机视图200中的化身102。
31.在图2a和图2b所示的示例中,化身102继续在墙122后面行进并到达墙122的一部分,该部分包括安装在窗框206上的窗202和窗204。窗202和窗204以及窗框206被理解为软遮挡,其可以当化身102在窗202和窗204以及窗框206后面行进时允许化身102的一部分可见。例如,窗202和窗204可以是透明的或半透明的,并且窗框206可以具有相对于化身102的轮廓更窄的轮廓。
32.图2a进一步描绘了生成摄像机视图250的摄像机,其已经相对于摄像机视图200向后移动(远离化身102并且在垂直于行进方向的方向上)。也就是说,生成摄像机视图250的摄像机现在已经移回到它的原始位置,以便位于窗202和窗204以及窗框206的前面。化身102现在相对于摄像机视图200中的放大尺寸在尺寸上更小(回到它的原始尺寸),并且当化身102在窗202和窗204以及窗框206后面行进时化身102部分可见或部分被遮挡。
33.图3是根据一些实施方式的可用于确定是否调整电子游戏中的摄像机视图的示例参数的示意图。图3所示的各种图形元素和其他信息,以类似于图1a、图1b、图2a和图2b的方式的标注,以便进一步帮助理解和保持一致性。
34.与图1b和图2b类似,图3展示了3d世界的俯视图。作为一个示例,可以根据x-y-z坐
标系统300布置3d世界和其中包含的图形元素,尽管在不同的实施例中可以使用能识别图形元素的相对位置和位置的其他类型的坐标系统和技术。在图3中,x-y坐标轴位于图像平面上,而z坐标位于垂直于图像平面的轴上。为了便于解释,化身102在下文中被示出和描述为在箭头104的方向上仅沿着x轴行进,而不是沿着y坐标和z坐标脱离x轴行进。应当理解的是,化身102在3d世界中的这种单维度的行进仅仅是一个示例,并且玩家/用户可以在坐标系统300中的任何方向上导航化身102。以下关于化身102的沿着x轴的单维度的运动也可以用于化身102沿y轴和z轴的其他运动。
35.化身102以特定速度v沿着x轴行进,该速度可以按照每秒像素跨过显示屏或其他测量单位来测量。在任何给定的时间实例,化身102的位置可以在坐标系300中的点a、a1、a2、a3、a4等处被识别。点a、a1、a2、a3、a4等可以对应于贯穿化身102的中心轴、化身的边缘(例如指尖)、或化身102的身体的图形表示上足以识别出化身102在坐标系300中的即时位置的其他部位。其他图形元素在3d世界中的位置也可以由坐标系300中的一个或多个点b-h来表示。例如,树114的树干120的位置可沿树干120的中心z轴在点c处定义。可替代地或附加地,在点b和点d处识别树干120的边缘边界。仍然可替代地或附加地,沿着树干120的z轴的点c可用于识别树干120的位置,以及其他配置信息可用于指定树干120的固定或变化的边缘(例如以像素为单位的半径,从点c和沿树干120的z轴的其他点测量)。
36.以类似的方式,墙122的边缘可以定位在点e和点f,窗202的边缘可以定位在点f和点g,并且窗框206的边缘可以定位在点g和点h。对应于点a-h的特定坐标和其他大小/位置信息可以存储为3d世界中每个图形元素的属性/配置信息。
37.图1a和图2a的摄像机视图100、摄像机视图200及摄像机视图250也用虚线表示在图3中。从关于摄像机视图100开始,已确定化身102从点a朝着点a1然后朝着点a2行进。在对应点b和点c的x坐标之前的区域(例如在其左侧),游戏应用程序确定不存在图形对象会遮挡化身102,并且因此摄像机视图100保持不变。
38.当化身102接近对应于点b或点c的x坐标时,例如由游戏应用程序(或游戏引擎)确定图形对象(例如树114)靠近化身102的行进路径并且会遮挡化身102。但是,游戏应用程序还确定化身102何时到达点a1(对应于可能存在最大遮挡量的点c的x坐标),化身102不会被完全遮挡和/或只会暂时被遮挡。例如,最大遮挡量可以小于化身102的轮廓的50%,或者小于某个其他阈值水平。例如,树干120的直径b点和d点之间的长度可以明显小于化身102的可见轮廓的长度,因此最大遮挡量可以小于化身102的可见轮廓的50%。这里50%的阈值量是示例,并且可以配置为电子游戏的其他阈值量或范围。可以使用其他阈值或其组合。例如,用于确定是否调整摄像机视图的阈值可以基于持续时间(例如,0.5秒或更短的遮挡持续时间),或者时间和遮挡量的组合(例如超过0.5秒存在60%或更多的遮挡量等)。在此示例中,由于遮挡量不符合用于调整摄像机视图的阈值,因此游戏应用程序保持了摄像机试图100不变(例如不向前移动摄像机视图)。
39.在一些实施例中,遮挡的持续时间可以用作附加的或替代的参数来确定是否调整摄像机视图。例如,在一些实施方式中,树干120可以足够的宽从而遮挡化身102的轮廓的50%以上,甚至可能高达100%的遮挡。然而,如果化身102的速度v足够高,则使得遮挡将小于1秒或电子游戏可设置的其他阈值时间水平,则游戏应用程序可能不会调整摄像机视图100(例如,摄像机视图100保持静止并且不朝前移动)。这是因为,遮挡的持续时间在时间上
足够的短,相比于在向前和向后的方向上快速移动摄像机,后者造成了摄像机视图的高水平运动并且在用户界面上比起短暂的遮挡更不让人愉快。
40.在另一个示例中,由树干120(或其他图形对象)引起的遮挡量可以是50%或更少,除非用户已决定暂停或减慢化身102的速度v而同时化身被部分遮挡。因此,遮挡的持续时间可能超过1秒或在电子游戏中设置的其他阈值时间量。在这种情况下,游戏应用程序可以调整摄像机视图来使得摄像机视图朝着化身102向前运动,从而在化身102停止或者缓慢运动时提供化身102的非遮挡视图。
41.继续参阅图3,化身102继续行进并到达点a2点。点a2可以刚好在点e的x坐标之前,正好在点e的x坐标处,或者刚好超过点e的x坐标。在这种情况下,游戏应用程序确定速度v和化身102的行进方向将化身102放置在墙122的后面。游戏应用程序还从配置信息中知道墙122提供了将在点e和点f之间完全遮挡化身102的硬遮挡。因此,游戏应用程序调整摄像机的位置从而调整摄像机视图从摄像机视图100到摄像机视图200,进而移动摄像机视图到墙122和化身102之间当化身102行进在对应点e和点f的x坐标之间(例如当化身102位于点a3处)。
42.随后,当化身102接近点f的x坐标,正好在点f的x坐标,或者刚刚经过点f的x坐标时,游戏应用程序确定其行进方向和速度将导致化身102经过窗202和窗框206的后面,这些是软遮挡。相应地,游戏应用程序可以调整摄像机位置从摄像机视图200到摄像机视图250,从而向后移动摄像机视图到其原始位置。化身102因此将会完全可见在点f和点g之间的窗202之后,并且在点g和点h之间部分地被遮挡。摄像机朝前和朝后的移动提供了摄像机视图100、摄像机视图150、摄像机视图250等,可能是在过渡期间避免渲染遮挡图形对象的“急速缩放”,或者可能是相对平滑的过渡并让摄像机视图滑过遮挡中图形对象。根据开发人员和/或玩家配置的设定,过渡的类型可能因不同实现方式而异。
43.摄像机视图250可以类似于下面提及的摄像机视图100,包括可能根据化身102停止或减缓在因为在点g和点h之间的窗框206而导致的软遮挡来调整摄像机视图250。
44.虽然图1a、图1b、图2a、图2b和图3示出了沿x方向的运动,但应当理解的是,化身可以沿任何方向移动,例如沿x-y方向、沿y-z方向或沿x-y-z方向,基于用户输入。例如,横向运动(如由在键盘上按下的单个箭头键、在单个方向上的手势输入等指示)可以包括沿单个方向的运动。在另一示例中,组合运动(例如由两个垂直的箭头键,如向左和向上,同时被按下,通过“跳跃”手势等指示)可以包括在两个或更多个方向上的运动。在不同的实施方式中,生成摄像机视图的摄像机可以被定位在垂直于运动的主要方向的方向上,例如当化身在用户界面上从左到右移动时,摄像机可以被定位在垂直于显示化身的屏幕的方向上。在不同的实施方式中,化身在3d世界中的移动可以由游戏开发者指定的规则来管理。在一些实施方式中,游戏中的每个图形对象可以存储在具有相应属性的数据存储器中,例如尺寸、透明度级别、颜色、纹理等。
45.图4是可提供图1a、图1b、图2a和图2b的摄像机视图的用于在线游戏的示例系统架构的示意图。在线游戏平台(也称为“用户生成内容平台”或“用户生成内容系统”)为用户提供了多种交互方式,例如在用户玩电子游戏时。例如,在线游戏平台的用户可以朝着共同目标一起工作、共享各种虚拟游戏项目、彼此发送电子消息等。在线游戏平台的用户可以使用诸如上述化身102之类的角色来玩游戏,用户可以在电子游戏中呈现的3d世界中导航这些
角色。
46.在线游戏平台还可以允许平台的用户创建化身和为化身制作动画,以及允许用户创建其他图形对象以放置在3d世界中。例如,在线游戏平台的用户可以被允许创建、设计和定制化身102,以及在3d世界中创建、设计和插入墙122、窗202和其他图形对象。
47.请参阅图4,示例系统架构400(在本文中也称为“系统”)包括在线游戏平台402、第一客户端设备410(在本文中通常称为“客户端设备410”)和至少一个第二客户端设备416。在线游戏平台402可以包括游戏引擎404和一个或多个电子游戏406。提供系统架构400是为了说明一种可能的实施方式。在其他实施方式中,系统架构400可以包括以与图4所示相同或不同的方式配置的相同、更少、更多或不同的元件。
48.通信网络422可以用于在线游戏平台402和客户端设备410/416之间和/或系统架构400中的其他元件之间的通信。网络422可以包括公共网络(例如互联网)、专用网络(例如局域网(lan)或广域网(wan))、有线网络(例如以太网)、无线网络(例如802.11网络、wi-fi网络)或无线lan(wlan))、蜂窝网络(例如长期演进(lte)网络)、路由器、集线器、交换机、服务器计算机或它们的组合。
49.客户端设备410可以包括游戏应用程序412和一个或多个用户接口414(例如,音频/视频输入/输出设备)。客户端设备416可以包括游戏应用420和用户界面418(例如,音频/视频输入/输出设备)。音频/视频输入/输出设备可以包括麦克风、扬声器、耳机、显示设备等中的一个或多个。
50.系统架构400还可以包括一个或多个存储设备424。存储设备404可以是例如位于在线游戏平台402内或经由网络422通信地耦合到在线游戏平台402的存储设备(如图4所示)。存储设备404可以存储例如由游戏引擎404或由游戏应用程序412/420在游戏406中渲染的图形对象,以及图形对象的配置/属性信息(例如上面提及的坐标信息、尺寸维度等)。在一些实施例中,存储设备404可以是提供在游戏406中呈现的图形对象的单独内容交付网络的一部分。例如,游戏应用程序412可以拉出(或已经推入)存储在存储设备424中的图形对象,用于在玩游戏的过程中呈现。
51.在一种实施方式中,存储设备424可以是非瞬态计算机可读存储器(例如随机存取存储器)、高速缓存、驱动器(例如硬盘驱动器)、闪存驱动器、数据库系统或另一种能够存储数据和其他内容的组件或设备。存储设备424还可以包括能够跨越多个计算设备(例如多个服务器计算机)的多个存储组件(例如,多个驱动器或多个数据库)。
52.在一些实施方式中,在线游戏平台402可以包括具有一个或多个计算设备的服务器(例如,云计算系统、机架式服务器、服务器计算机、物理服务器集群等)。在一些实施方式中,服务器可以包括于在线游戏平台402中,作为独立系统,或者是另一个系统或平台的一部分。
53.在一些实施方式中,在线游戏平台402可以包括一个或多个计算设备(例如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)、数据存储器(例如,硬盘、存储器、数据库)、网络、软件组件和/或硬件组件,这些可用于在线游戏平台402上执行操作并向用户提供对在线游戏平台402的访问。在线游戏平台402还可以包括网站(例如,网页)或应用程序后端软件,其可以用于向用户提供对在线游戏平台402提供的内容的访问。例如,用户可以使用客户端设备410上的游戏应用
程序412访问在线游戏平台402。
54.在一些实施方式中,在线游戏平台402可以是一种在用户之间提供连接的社交网络,或者是一种允许用户(例如,终端用户或消费者)在网络上与其他用户通信的用户生成内容系统。在线游戏平台402,其中通信可以包括语音聊天(例如,同步和/或异步语音通信)、视频聊天(例如,同步和/或异步视频通信)或文本聊天(例如,同步和/或异步的基于文本的通信)。在本公开的一些实施方式中,“用户”可以表示为单个个体。然而,本公开的其他实施方式包括“用户”(例如,创建用户)是由一组用户或自动源控制的实体。例如,在用户生成内容系统中联合为社区或组的一组个人用户可以被视为“用户”。
55.在一些实施方式中,在线游戏平台402可以是虚拟游戏平台。例如,游戏平台可以向能通过网络422使用客户端设备410访问游戏或与游戏交互的用户社区提供单人游戏或多人游戏。在一些实施方式中,游戏(也称为“视频游戏”,“在线游戏”或“虚拟游戏”等)可以是二维(2d)游戏、三维(3d)游戏(例如3d用户生成游戏)、虚拟现实(vr)游戏或增强现实(ar)游戏。在一些实施方式中,用户可以与其他用户一起参与游戏。在一些实施方式中,可以与游戏的其他用户实时玩游戏。
56.在一些实施方式中,游玩可以指一个或多个玩家在游戏(例如游戏406)内使用客户端设备(例如,客户端设备410和/或416)的交互,或者将交互呈现在客户端设备410或416的显示器或其他用户界面(例如用户界面414/418)上。
57.在一些实施方式中,游戏406可以包括能使用被配置为将游戏内容(如数字媒体项目)呈现给实体的软件、固件或硬件来执行或加载的电子文件。在一些实施方式中,可以执行游戏应用程序412并且结合游戏引擎404渲染游戏406。在一些实施方式中,游戏406可以具有共同的规则集或共同目标,并且游戏406的环境共享一套共同的规则或共同的目标。在一些实施方式中,不同的游戏可能具有彼此不同的规则或目标。
58.在一些实施方式中,游戏可以具有一个或多个环境(在本文中也称为“游戏环境”或“虚拟环境”),其中可以链接多个环境。环境的示例可以是3d环境。游戏406的一个或多个环境在本文中可统称为“世界”或“游戏世界”或“虚拟世界”或“宇宙”。世界的示例可以是游戏406的3d世界,例如在图1a、图1b、图2a、图2b和图3上面示出的那些。例如,用户可以构建链接到由另一个用户创建的另一个虚拟环境的虚拟环境。虚拟游戏的角色可以跨越虚拟边界进入相邻的虚拟环境。
59.可以注意到,3d环境或3d世界使用了能表示游戏内容的几何数据的三维表示的图形(或至少呈现游戏内容以作为3d内容出现,无论几何数据的3d表示是否用过)。2d环境或2d世界使用了能表示游戏内容的几何数据的二维表示的图形。
60.在一些实施方式中,在线游戏平台402可以托管一个或多个游戏406并且可以允许用户使用客户端设备410的游戏应用412与游戏406交互。在线游戏平台402的用户可以玩,创建、与之交互或构建游戏406,与其他用户通信,和/或创建和构建游戏406的对象(例如,也称为“项目”或“游戏对象”或“虚拟游戏项目”或“图形对象”)。例如,在生成用户生成的虚拟项目时,用户可以创建角色、角色的动画化、角色的装饰、交互式游戏的一个或多个虚拟环境,或构建在游戏406中使用的结构等。在一些实施方式中,用户可以与在线游戏平台402的其他用户购买、出售或交易游戏虚拟游戏对象,例如平台内货币(例如,虚拟货币)。在一些实施方式中,在线游戏平台402可以传输游戏内容到游戏应用程序(例如,游戏应用程序
412)。在一些实施方式中,游戏内容(本文也称为“内容”)可以指与在线游戏平台402或者游戏应用程序相关的任何数据或软件指令(例如,游戏对象、游戏、用户信息、视频、图像、命令、媒体项等)。在一些实施方式中,游戏对象(例如,在本文中也称为“项目”或“对象”或“虚拟游戏项目”)可以指代对象,该对象被使用、创建、共享或以其他方式描述于客户端设备410/416的在线游戏平台402或者游戏应用程序412或420的游戏406中。例如,游戏对象可以包括零件、模型、角色或其组成部分(如面部、手臂、嘴唇等)、工具、武器、服装、建筑物、车辆、货币、植物群、动物群、上述的组成部分(例如,建筑物的窗户)等。
61.可以注意到,提供托管游戏406的在线游戏平台406是为了说明的目的。在一些实施方式中,在线游戏平台402可以托管一个或多个媒体项目,该媒体项目可以包括从一个用户到一个或多个其他用户的通信消息。媒体项目可以包括但不限于数字视频、数字电影、数字照片、数字音乐、音频内容、旋律、网站内容、社交媒体更新、电子书、电子杂志、数字报纸、数字有声读物、电子期刊、网络博客、简易信息聚合(rss)提要、电子漫画书、软件应用程序等。在一些实施方式中,媒体项目可以是能使用被配置为将数字媒体项目呈现给实体的软件、固件或硬件来执行或加载的电子文件。
62.在一些实施方式中,游戏406可以与特定用户或特定用户组相关联(例如私人游戏),或者使在线游戏平台402的用户广泛可用(例如公共游戏)。在一些实施方式中,在线游戏平台402将一个或多个游戏406与特定用户或用户组相关联,在线游戏平台402可以通过用户账号信息(例如用户名和密码等用户账号标识符)将特定用户与游戏402相关联。
63.在一些实施方式中,在线游戏平台402或客户端设备410/416可以包括游戏引擎404或游戏应用程序412/420。在一些实施方式中,游戏引擎404可用于游戏406的开发或执行。例如,游戏引擎406可包括用于2d、3d、vr或ar图形的渲染引擎(“渲染器”)、物理引擎、碰撞检测引擎(和碰撞响应)、声音引擎、脚本功能、动画引擎、人工智能引擎、网络功能、流功能、内存管理功能、线程功能、场景图功能或对过场动画的视频支持等功能。游戏引擎404的组件可以生成帮助计算和渲染游戏的命令(例如渲染命令、碰撞命令、动画命令、物理命令等)。在一些实施方式中,客户端设备410/416的游戏应用程序412/418分别可以独立工作,与在线游戏平台402的游戏引擎404协作,或两者的组合。
64.在一些实施方式中,在线游戏平台402和客户端设备410/416都执行游戏引擎或游戏应用程序(分别为404、412、420)。使用游戏引擎404的在线游戏平台402可以执行部分或全部的游戏引擎功能(例如,生成物理命令、动画命令、渲染命令等,包括控制对上述摄像机视图的调整),或卸载一些或全部游戏引擎功能到客户端设备410的游戏应用程序412。在一些实施方式中,每个游戏406可以具有于在线游戏平台402上执行的游戏引擎功能和于客户端设备410和416上执行的游戏引擎功能之间的不同比率。
65.例如,在线游戏平台402的游戏引擎404可用于在至少两个游戏对象之间存在碰撞的情况下生成物理命令,而附加的游戏引擎功能(例如,生成渲染命令,包括调整摄像机视图)可以卸载到客户端设备410。在一些实施方式中,在线游戏平台402和客户端设备410上执行的游戏引擎功能的比率可以是基于游玩条件(如动态地)调整。例如,如果参与特定游戏406的游玩的用户数量超过阈值数量,则在线游戏平台402可以执行先前由客户端设备410或416执行的一个或多个游戏引擎功能。
66.例如,用户可能正在客户端设备410和416上玩游戏406,并且可以发送控制指令
(例如,用户输入,如右、左、上、下、用户选择或角色位置和速度信息等)到在线游戏平台402。在从客户端设备410和416接收控制指令之后,在线游戏平台402可以基于控制指令发送游戏指令(例如,参与组游戏的角色的位置和速度信息或命令,例如渲染命令、碰撞命令等)给客户端设备410和416。例如,在线游戏平台402可以对控制指令执行一个或多个逻辑操作(例如,使用游戏引擎404)以生成用于客户端设备410和416的游玩指令。在其他情况下,在线游戏平台402可以通过一个或多个或控制指令从一个客户端设备410到参与游戏406的其他客户端设备(例如客户端设备416)。客户端设备410和416可以使用游玩指令并使得游玩以呈现在客户端设备410和416的显示器上,包括上面提及的摄像机视图。
67.在一些实施方式中,控制指令指的是指示了用户角色的游戏中动作的指令。例如,控制指令可以包括用于控制游戏中动作的用户输入,例如右、左、上、下、用户选择、陀螺仪位置和方向数据、力传感器数据等。控制指令可以包括角色位置和速度信息。在一些实施方式中,控制指令被直接发送到在线游戏平台402。在其他实施方式中,控制指令可以从客户端设备410发送到另一个客户端设备(例如,客户端设备416),其中另一个客户端设备使用本地游戏引擎应用程序420生成游玩指令。控制指令可以包括在音频设备(例如扬声器、耳机等)上播放语音通信消息或来自另一用户的其他声音的指令,例如语音通信或其他使用如本文所述的音频空间化技术生成的声音。
68.在一些实施方式中,游玩指令可以指允许客户端设备110呈现游戏例如多人游戏的游玩的指令。游玩指令可以包括用户输入(例如,控制指令)、角色位置和速度信息或命令(例如,物理命令、动画命令、渲染命令、碰撞命令等)中的一项或多项。
69.在一些实施方式中,客户端设备410或416可以各自包括计算设备,例如个人计算机(pc)、移动设备(例如膝上型电脑、移动电话、智能电话、平板计算机或上网本计算机)、网络电视、游戏控制台等。在一些实施方式中,客户端设备410或416也可以称为“用户设备”。在一些实施方式中,一个或多个客户端设备410或416可以在任何给定时刻连接到在线游戏平台402。可以注意到,所提到的客户端设备410或416的数量是为了说明而非限制。在一些实施方式中,可以使用任意数量的客户端设备410或416。
70.在一些实施方式中,每个客户端设备410或416可以分别包括游戏应用程序412或420的实例。在一种实施方式中,游戏应用程序412或420可以允许用户使用在线游戏平台402并与之交互,例如控制在线游戏平台402托管的虚拟游戏中的虚拟角色,或者查看或上传内容,诸如游戏406、图像、视频项目、网页、文档等。在一个示例中,游戏应用程序可以是能访问、检索、呈现或导航内容(例如,虚拟环境中的虚拟角色等)的网络应用程序(例如,结合网络浏览器操作的应用程序)并且由网络服务器提供服务。在另一个示例中,游戏应用程序可以是本地应用程序(例如,移动应用程序、应用程序或游戏程序),其在客户端设备410或416本地安装和执行并且允许用户与在线游戏平台102交互。游戏应用程序可以向用户呈现、显示或呈现内容(例如,网页、媒体查看器)。在一个实施方式中,游戏应用程序还可以包括嵌入在网页中的嵌入式媒体播放器(例如flash播放器)。
71.根据本公开的各个方面,游戏应用程序412/420可以是在线游戏平台应用程序,供用户构建、创建、编辑、上传内容到在线游戏平台402以及与在线游戏平台402交互(例如,玩由在线游戏平台402托管的游戏406)。如此,游戏应用程序412/420可以由在线游戏平台402提供给客户端设备410或416。在另一个示例中,游戏应用程序可以是从服务器下载的应用
程序。
72.在一些实施方式中,用户可以通过游戏应用程序登录到在线游戏平台402。用户可以通过提供用户账号信息(例如,用户名和密码)来访问用户账号,其中用户账号与可用于参与在线游戏平台402的一个或多个游戏406的一个或多个角色相关联。
73.一般而言,在一种实施方式中描述为由在线游戏平台402执行的功能也可以在其他实施方式中由客户端设备410或416或服务器执行,如果合适的话。此外,归属于特定组件的功能可以由不同或多个组件一起操作来执行。在线游戏平台402也可以作为通过适当的应用程序编程接口(api)提供给其他系统或设备的服务来访问,因此不限于在网站中使用。
74.图5是根据一些实施方式的在电子游戏中调整摄像机视图的方法500的流程示意图。为了简单起见,方法500中的各种操作将在游戏应用程序412执行操作的上下文中进行描述。然而,并且如前文关于图4所描述的,一些操作可替代地或附加地全部或部分地由游戏平台402处的游戏引擎404执行。示例方法500可包括由一个或多个块所示出的一个或多个操作,例如块502到块514。方法500和/或本文描述的任何其他过程的各种块可以组合成更少的块、划分成额外的块、补充有另外的块和/或基于期望的实施方式来去除。
75.图5的方法500可以在本文中参考图1a、图1b、图2a、图2b和图3中所示的元件来解释。在一个实施例中,方法500的操作可以流水线顺序方式执行。在其他实施例中,一些操作可以无序地、并行地等执行。
76.在块502(“确定化身的行进方向和速度”),用户正在玩电子游戏,包括在3d世界中移动诸如化身102之类的图形对象。游戏应用程序412识别化身102在3d世界中的行进速度(例如每秒像素)和方向(例如沿着坐标系统300的特定方向)。块502之后可以是块504。
77.在块504(“识别沿着所述行进方向的图形对象”),游戏应用程序412将化身102的行进方向与电子游戏的设置/属性信息进行比较,以识别沿着行进方向布置的图形对象。例如,在图1a和图3,图形对象可以是树干120或墙122,其具有坐标系通300中的坐标并且被游戏应用程序412确定为沿着化身102的行进方向布置。块504之后可以是块506。
78.在块506(“所述图形对象是否以超过阈值水平遮挡所述化身?”),游戏应用程序412确定图形对象是否会在当前摄像机视图中遮挡所述化身102,并且如果是的话,遮挡多少。例如,游戏应用程序412可以确定所述化身102将会在图形对象(例如图1a和图2a所示的)后面行进,因此该图形对象将在当前摄像机视图中遮挡所述化身102。如果存在潜在的遮挡,则游戏应用程序412确定遮挡水平,通过将该遮挡水平与阈值水平比较。
79.例如,阈值水平可以是量阈值,例如在上面提供的示例中阈值水平被设置为50%遮挡(或一些其他阈值水平)。小于50%的遮挡可以认为是软遮挡,而大于50%的遮挡可以认为是硬遮挡。游戏应用程序412比较的阈值也可以是时间阈值,例如化身的行进速度是否会导致遮挡仅在较短的持续时间或相对较长的持续时间发生。
80.如果在块506,游戏应用程序412确定不会超过阈值水平(在块506为“否”),则游戏应用程序412在块507处不调整该摄像机视图(“保持所述当前摄像机视图”)。例如,摄像机视图不会朝着化身102朝前移动从而导致该图形对象从摄像机视图中移除。块507之后可以是块502。
81.如果,但是在块506,游戏应用程序412确定将超过阈值水平(在块506为“是”),则游戏应用程序412在块508处调整摄像机视图(“通过朝着所述化身向前移动所述摄像机视
图,调整所述摄像机视图来避免遮挡”)。例如及如图2a所示,摄像机视图被向前移动到某个位置在墙122和化身102之间,从而使得墙122从摄像机视图中被移除以及放大后的非遮挡的化身102被呈现在摄像机视图中。块508之后可以是块510。
82.在块510处(“仍然超过阈值水平?”),游戏应用程序412确定遮挡是否仍将保持在阈值以上,如果摄像机视图被向后移动到原始位置。例如,当化身102仍在墙122之后行进,阈值仍将被超过(在块510为“是”)如果摄像机视图被返回(向后移动)到先前摄像机视图,以及因此游戏应用程序保持当前摄像机视图不变在块512(“保持所述当前摄像机视图”)。在另一个示例中,化身102也许经过墙122并马上遇到另一个图形对象,其可能导致阈值之上的遮挡(在块510的另一个“是”)。这种情况下,游戏应用程序412将继续保持当前摄像机视图从而将该另一个图形对象从摄像机视图中排除,而不是移动摄像机视图向后远离化身102。块512之后可以是块510。
83.如果,但是在块510,用于遮挡的阈值水平不再被超过(在块510为“否”),则摄像机视图可以被再次调整从而向后移动远离化身102在块514处(“通过远离所述化身向后移动所述摄像机视图,返回到先前摄像机视图”)。例如,化身102也许现在经过了墙122并沿着某条路径行进且该条路径上没有图形对象或者存在图形对象但是不达到遮挡的阈值水平。在这种情况下,摄像机视图可以返回到摄像机视图没有朝着化身102向前移动的先前位置。
84.方法500接着返回到块502来继续监控化身102的行进方向和速度。方法500可以重复直到化身102继续在3d世界中移动穿行。
85.图6是能用于实现这里提及的一个或者多个特征的示例计算设备600的框图。图4的客户端设备410和416和/或游戏平台402可以用图6的计算设备600的形式提供。在一个示例中,计算设备600可用于执行本文所述的方法。计算设备600可以是任何合适的计算机系统、服务器或其他电子或硬件设备。例如,计算设备600可以是大型计算机、台式计算机、工作站、便携式计算机、或电子设备(便携式设备、移动设备、手机、智能手机、平板电脑、电视、电视机顶盒、个人数字助理(pda)、媒体播放器、游戏设备、可穿戴设备等)。在一些实施方式中,设备600包括处理器602、存储器606、输入/输出(i/o)接口606和音频/视频输入/输出设备614。
86.处理器602可以是一个或多个处理器和/或处理电路以执行程序代码和控制计算设备600的基本操作。“处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或组件。处理器可以包括具有通用中央处理单元(cpu)、多个处理单元、用于实现功能的专用电路或其他系统的系统。处理不必局限于特定的地理位置,或具有时间限制。例如,处理器可以“实时”、“离线”、“批处理模式”等执行其功能。处理的部分可以在不同时间和不同位置由不同(或相同)处理系统来执行。计算机可以是与存储器通信的任何处理器。
87.存储器604可以提供在计算设备600中以供处理器602访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(ram)、只读存储器(rom)、电可擦读只读存储器(eeprom)、闪存等,适用于存储由处理器执行的指令,并且与处理器602分离和/或与其集成。存储器604可以存储由处理器602在计算设备600上可执行的软件,包括操作系统608、一个或多个应用程序610及其相关数据612。应用程序610可以用于体现游戏应用程序412/420或游戏引擎404。在一些实施方式中,应用程序610可以包括指令,响应于被处理器602执行,
使处理器602能够执行或控制运行这里描述的关于的确定是否调整摄像机视图和接着相应调整摄像机视图的操作。
88.存储器604中的任何软件可以备选地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器604(和/或其他连接的存储设备)可以存储在本文描述的特征中使用的指令和数据。存储器604和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储”或“存储设备”。
89.i/o接口606可以提供使计算设备600能够与其他系统和设备接口的功能。例如,网络通信设备、存储设备和输入/输出设备可以通过i/o接口606与计算设备600进行通信。在一些实施方式中,i/o接口606可以连接到包括输入设备(键盘、指点设备、触摸屏、麦克风、照相机、扫描仪等)和/或输出设备(显示设备、扬声器设备、打印机、电机等),它们统称为至少一个音频/视频输入/输出设备614。
90.音频/视频输入/输出设备614可包括能用于接收音频消息作为输入的音频输入设备(例如麦克风等)、音频输出设备(例如扬声器、耳机等)和/或显示设备,其可用于提供例如上述示例摄像机视图的图形和视觉的输出。
91.为了便于说明,图6示出了处理器602、存储器604、i/o接口606、应用程序610等中的每一个的一个块。这些块可以表示一个或多个处理器或处理电路、操作系统、存储器、i/o接口、应用程序和/或软件模块。在其他实施方式中,设备600可以不具有所示的所有组件和/或可以具有包括其他类型的元件的其他元件来代替或附加于本文中示出的那些。
92.用户设备还可以实现和/或与本文描述的特征一起使用。示例用户设备可以是包括一些与计算设备600类似的组件的计算机设备,例如处理器602、存储器604和i/o接口606。可以提供适用于客户端设备的操作系统、软件和应用程序在内存中并由处理器使用。客户端设备的i/o接口可以连接到网络通信设备,也可以连接到输入和输出设备,例如用于捕捉声音的麦克风、用于捕捉图像或视频的相机、用于输出声音的音频扬声器设备、用于输出图像或视频的显示设备,或其他输出设备。例如,音频/视频输入/输出设备614内的显示设备可以连接到(或包括在)设备600以显示如本文所述的预处理和后处理的图像,其中这种显示设备可以包括任何合适的显示设备,例如lcd、led或等离子显示屏、crt、电视机、监视器、触摸屏、3d显示屏、投影仪或其他视觉显示设备。一些实施方式可以提供音频输出设备,例如语音输出或阅读文本的合成音。
93.本文描述的一种或多种方法(例如方法500)可以通过能在计算机上执行的计算机程序指令或代码来实现。例如,代码可以由一个或多个数字处理器(例如微处理器或其他处理电路)实现,并且可以存储在包括非暂时性计算机可读介质(例如存储介质)的计算机程序产品上,例如磁性、光学、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(ram)、只读存储器(rom)、闪存、硬磁盘、光盘、固态存储驱动器等。程序指令还可以包含在电子信号中并作为电子信号提供,例如以从服务器交付的软件即服务(saas)的形式(例如,分布式系统和/或云计算系统)。或者,一种或多种方法可以用硬件(逻辑门等)或硬件和软件的组合来实现。示例硬件可以是可编程处理器(例如现场可编程门阵列(fpga)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(asic)等。一种或多种方法可以作为在系统上运行的应用程序的一部分或组件来执行,或者作为与其他应用程序和操作系统一起运行的应用程序或软件来执行。
94.本文所述的一种或多种方法可以在能在任何类型的计算设备上运行的独立程序、在网络浏览器上运行的程序、在移动计算设备(例如,手机、智能手机、平板电脑、可穿戴设备(手表、臂章、首饰、头饰、护目镜、眼镜等)、笔记本电脑等)上运行的移动应用程序(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收最终输出数据以用于输出(例如,用于显示)。在另一个示例中,可以在移动计算设备上的移动应用程序(和/或其他应用程序)内执行所有计算。在另一示例中,可以在移动计算设备和一个或多个服务器设备之间拆分计算。
95.尽管已经针对其特定实施方式描述了描述,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中说明的概念可以应用于其他示例和实现。
96.应当注意的是,本公开中描述的功能块、操作、特征、方法、设备和系统可以集成或划分为本领域技术人员已知的系统、设备和功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实现的例程。可以采用不同的编程技术,例如,面向过程式或面向对象式的。例程可以在单个处理设备或多个处理器上执行。尽管可以按照特定顺序呈现步骤、操作或计算,但是可以在不同的特定实施方式中调整该顺序。在一些实施方式中,在本说明书中显示为顺序的多个步骤或操作可以同时执行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献