游戏的显示控制方法及装置、可读存储介质、电子设备与流程

    专利2022-07-08  101


    本公开涉及游戏技术领域,特别涉及一种游戏的显示控制方法、游戏的显示控制装置、计算机可读存储介质及电子设备。



    背景技术:

    在游戏中,游戏场景中的游戏对象和目标物体通过游戏相机投影矩阵映射渲染到显示区域上,如何组织游戏场景在显示区域上的构图,以及如何将玩家感兴趣的内容全部呈现在显示区域上是游戏相机控制亟需解决的问题。

    在现有技术中,通常是控制玩家操纵的游戏对象处于显示区域的中间位置,并保证被游戏对象影响到的目标出现在画面内。但现有的游戏相机控制过于死板,不能够实现灵活控制。

    鉴于此,本领域亟需开发一种新的游戏的显示控制方法及装置。

    需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



    技术实现要素:

    本公开的目的在于提供一种显示控制方法、显示控制装置、计算机可读存储介质及电子设备,进而至少在一定程度上实现了对游戏相机的灵活控制。

    本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

    根据本公开的一个方面,提供一种游戏的显示控制方法,所述方法包括:响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;根据所述目标朝向计算所述游戏相机的旋转矩阵;根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置;计算所述终端的显示界面中包含的空闲区域,并根据所述空闲区域计算所述游戏相机的注视距离;根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,并根据所述目标空间位置和所述目标朝向控制所述游戏相机的移动。

    在本公开的一些示例性实施例中,根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置,包括:根据所述目标游戏对象的所述当前位置和所述当前技能确定所述当前技能的影响区域,并获取所述影响区域中的一个或多个游戏对象;根据所述游戏对象的对象位置确定所述游戏相机的注视位置。

    在本公开的一些示例性实施例中,根据所述游戏对象的对象位置确定所述游戏相机的注视位置,包括:判断当前游戏场景是否属于战斗场景;若是,则根据所述对象位置确定与所述对象位置对应的最小外接圆,并将所述最小外接圆的圆心作为所述注视位置;若否,则根据所述对象位置确定与所述对象位置对应的重心点,并将所述重心点所在的位置作为所述注视位置。

    在本公开的一些示例性实施例中,所述方法还包括:根据所述对象位置和所述注视位置确定所述游戏对象到所述注视位置的最大距离。

    在本公开的一些示例性实施例中,所述空闲区域包括一区域中心和多个区域顶点;根据所述空闲区域计算所述游戏相机的注视距离,包括:获取所述游戏相机的相机位置,计算所述相机位置到所述区域中心的中心向量和中心距离;根据所述相机位置和所述区域顶点形成一棱锥,计算所述区域中心与所述棱锥上多个平面之间的最小距离;根据所述中心距离、所述最大距离和所述最小距离计算所述注视距离。

    在本公开的一些示例性实施例中,根据所述中心距离、所述最大距离和所述最小距离计算所述注视距离,包括:利用所述最大距离除以所述最小距离得到距离比例,并将所述距离比例与所述中心距离相乘,以获取所述注视距离。

    在本公开的一些示例性实施例中,所述空闲区域包括一区域中心;根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,包括:将所述旋转矩阵、中心向量的单位向量和所述注视距离相乘得到中间数值,将所述注视位置与所述中间数值相减,以得到所述目标空间位置,其中,所述中心向量为所述游戏相机的相机位置到所述区域中心的向量。

    在本公开的一些示例性实施例中,计算游戏相机的目标朝向,包括:根据所述视角调整操作确定所述游戏相机的朝向变化,获取游戏场景中上一帧的相机朝向,根据所述朝向变化和所述上一帧的相机朝向计算所述目标朝向。

    根据本公开的一个方面,提供一种游戏的显示控制,所述游戏的显示控制包括:响应操作模块,用于响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;计算旋转矩阵模块,用于根据所述目标朝向计算所述游戏相机的旋转矩阵;确定注视位置模块,用于根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置;确定注视距离模块,用于计算所述终端的显示界面中包含的空闲区域,并根据所述空闲区域计算所述游戏相机的注视距离;控制相机移动模块,用于根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,并根据所述目标空间位置和所述目标朝向控制所述游戏相机的移动。

    根据本公开的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的游戏的显示控制方法。

    根据本公开的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的游戏的显示控制方法。

    由上述技术方案可知,本公开示例性实施例中的游戏的显示控制方法及装置、计算机可读存储介质、电子设备至少具备以下优点和积极效果:

    本公开的游戏的显示控制方法,首先,能够响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;根据目标朝向计算游戏相机的旋转矩阵;接着,根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置;然后,计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离;最后,根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。本公开中的游戏的显示控制方法一方面能够通过自动计算游戏相机的目标空间位置和相机朝向,降低了玩家的操作难度,并充分展示了游戏场景,提升了游戏场景的画面表现;另一方面能够通过计算显示界面的空闲区域,使游戏场景显示在空闲区域,在避免显示区域上的图形对游戏场景遮挡的同时,还可以实现根据显示界面的空闲区域控制游戏相机。

    本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

    附图说明

    此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1示意性示出了根据本公开的一实施例的游戏的显示控制方法的流程示意图;

    图2示意性示出了根据本公开的一实施例的确定注视位置的流程示意图;

    图3示意性示出了根据本公开的一实施例的确定注视距离的流程示意图;

    图4示意性示出了根据本公开的一实施例的游戏的显示控制装置的框图;

    图5示意性示出了根据本公开的一实施例的电子设备的模块示意图;

    图6示意性示出了根据本公开的一实施例的程序产品示意图。

    具体实施方式

    现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

    此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。

    附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

    附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

    在本公开的一个实施例中提出了一种游戏的显示控制方法。图1示出了游戏的显示控制方法,如图1所示,该游戏的显示控制方法至少包括以下步骤:

    步骤s110:响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;

    步骤s120:根据目标朝向计算游戏相机的旋转矩阵;

    步骤s130:根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置;

    步骤s140:计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离;

    步骤s150:根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。

    本公开实施例中的游戏的显示控制方法一方面能够通过自动计算游戏相机的目标空间位置和相机朝向,降低了玩家的操作难度,并充分展示了游戏场景,提升了游戏场景的画面表现;另一方面能够通过计算显示界面的空闲区域,使游戏场景显示在空闲区域,在避免显示区域上的图形对游戏场景遮挡的同时,还可以实现根据显示界面的空闲区域控制游戏相机。

    需要说明的是,本公开示例性实施方式的游戏的显示控制方法可以由服务器执行游戏的显示控制方法对应的游戏的显示控制也可以被配置在该服务器中。此外,应当理解的是,终端设备(例如,手机、平板等)也可以实现游戏的显示控制方法的各个步骤,对应的装置也可以配置在终端设备中。当本公开的游戏的显示控制方法运行于服务器中时,可以为云游戏。

    在本公开的示例性实施例中,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,游戏的显示控制方法的储存与运行是在云游戏服务器上完成的,云游戏客户端的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏场景等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏场景。

    在本公开的游戏的显示控制方法中,游戏相机的姿态可以拆解为游戏相机的空间位置pcamera(x,y,z)、相机朝向orientation(yaw,pitch,roll)6个自由度。其中,游戏相机的空间位置指的是游戏相机在游戏地图中的坐标,相机朝向指的是以游戏相机为圆心,游戏相机在游戏相机上方旋转时的旋转角度为yaw,游戏相机在游戏相机右方旋转时的旋转角度为pitch,游戏相机在游戏相机面向的方向的旋转角度为roll。通常情况下,游戏相机在游戏相机面向的方向上不旋转,roll为0。针对玩家的旋转操作可以把游戏相机的空间位置扩展为注视位置和注视距离,游戏相机可以以注视位置为旋转中心进行旋转,注视距离包括游戏相机到注视位置的距离。

    为了使本公开的技术方案更清晰,接下来对游戏的显示控制方法的各步骤进行说明。

    在步骤s110中,响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向。

    在本公开的示例性实施例中,终端可以包括显示区域,玩家在终端上的视角调整操作可以是玩家在显示区域上的操作。其中,该视角调整操作可以是玩家在显示区域上的触发操作,该触发操作包括接触式触发操作或非接触式触发操作,其中,该非接触式触发操作可以是悬浮触控操作,悬浮触控是一种可以利用电容式触摸感应,或通过触控终端中携带的传感器(例如感光传感器或超声波传感器)来检测操作介质在触控终端屏幕前方操作的技术。当然,非接触式触发操作也可以是其他方式的非接触操作,可以让玩家在不接触终端设备的情况下实现与终端设备的交互功能,本公开对非接触操作的方式不作具体限定。另外,触发操作的操作介质可以为玩家的手指,也可以为触控笔等,本公开对此不作具体限定。

    在本公开的示例性实施例中,玩家的视角调整操作包括玩家对游戏相机的操作,具体地,视角调整操作包括玩家对游戏相机的相机朝向产生的旋转信息,旋转信息包括视角调整操作对游戏相机的旋转造成的朝向变化。

    在本公开的示例性实施例中,根据视角调整操作计算游戏相机的目标朝向,包括:根据视角调整操作获取游戏相机的朝向变化,获取游戏中中上一帧游戏场景的相机朝向,并根据朝向变化和上一帧的相机朝向确定目标朝向。

    具体地,可以将朝向变化与上一帧的相机朝向相加确定游戏相机的目标朝向。举例而言,上一帧的相机朝向可以是(yaw,pitch,roll),由于玩家操作对游戏相机造成的朝向变化分别是,游戏相机的相机朝向在yaw方向上增加yaw_delta,在pitch方向上增加pitch_delta,在roll方向上不变,则游戏相机的目标朝向是(yaw yaw_delta,pitch pitch_delta,roll)。

    步骤s120中,根据目标朝向计算游戏相机的旋转矩阵。

    在本公开的示例性实施例中,根据目标朝向计算游戏相机的旋转矩阵,可以通过右手笛卡尔坐标中的主动旋转矩阵计算游戏相机的旋转矩阵,依据“z-y-x”欧拉角,在右手笛卡尔坐标中的主动旋转矩阵可以表达为公式(1),公式(1)如下所示:

    m(α,β,γ)=rz(α)ry(β)rx(γ)(1)

    进行乘法运算可以生成公式(2):

    其中,m(α,β,γ)表示主动旋转矩阵,α,β,γ分别表示三个欧拉角,在本公开的实施例中,β可以表示游戏相机的目标朝向的yaw yaw_delta,γ可以表示游戏相机的目标朝向的pitch pitch_delta,α可以表示游戏相机的目标朝向的roll。当然,还可以用其它的方法计算游戏相机的旋转矩阵,本公开对此不作具体限定。

    在步骤s130中,根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置。

    在本公开的示例性实施例中,目标游戏对象包括玩家在当前游戏中对应的游戏角色。获取目标游戏对象的当前位置和当前技能,目标游戏对象的当前位置包括当前时刻该目标游戏对象在游戏场景中的位置,当前技能包括当前时刻目标游戏对象在游戏中的游戏技能。

    根据当前位置和当前技能确定游戏相机的注视位置,可以包括:根据当前位置和当前技能确定当前技能的影响区域,并获取影响区域中的一个或多个目标游戏对象;根据各目标游戏对象的对象位置确定游戏相机的注视位置。

    其中,目标游戏对象的当前位置可以是根据预设规则设定的游戏角色的位置,预设规则可以是根据游戏角色的不同,对不同的游戏角色设定不同的预设位置,具体地,可以在设计游戏中,制作游戏角色模型时将预设位置绑定在游戏角色骨骼上,并根据不同的游戏角色体型或功能进行调整。比如,对于超大型的游戏角色,可以将当前位置设置在游戏角色的腰部,充分突出大型角色的压迫感,也可以将当前位置设置在游戏角色的头顶,本公开对此不作具体限定。

    另外,可以根据当前技能的影响范围和当前位置确定当前技能的影响区域,具体可以将当前位置作为中心按照影响范围进行扩展,最终得到当前技能的影响区域。确定了影响区域之后,获取游戏场景中在影响区域内的一个或多个游戏对象,该游戏对象可以是游戏角色也可以是游戏道具或其它游戏物体,本公开对此不作具体限定。

    在本公开的示例性实施例中,图2示出了确定注视位置的流程示意图,如图2所示,该流程至少包括步骤s210至步骤s230,详细介绍如下:

    在步骤s210中,判断当前游戏场景是否属于战斗场景。

    在本公开的示例性实施例中,战斗场景包括游戏场景中存在游戏角色之间的打斗,实施技能等场景。

    在步骤s220中,若当前游戏场景属于战斗场景,则根据各对象位置确定与各对象位置对应的最小外接圆,并将最小外接圆的圆心作为注视位置。

    在本公开的示例性实施例中,根据各对象位置确定与各对象位置对应的最小外接圆的过程可以是如下具体步骤:

    步骤一,根据当前位置与各对象位置所在游戏场景中的坐标点形成位置点集。

    步骤二,获取位置点集中在x轴和y轴方向上坐标最大和最小的点,比如,在x轴和y轴方向上坐标最大和最小的点可以是pxmax,pxmin,pymax,pymin。

    步骤三,获取坐标最大和最小的点之间距离较远的一对点p0、p1,将p0、p1所形成的线段作为直径r1,并在位置点集中剔除位于由直径r1构成的圆内的位置点。其中,将直径r1的中心作为圆心o1。

    步骤四,更新位置点集,获取位置点集中距离圆心o1最远的点p2,获取由p0、p1、p2构成的外接圆。

    其中,若由p0、p1、p2构成的三角形是钝角三角形,则将钝角的对边pa、pb作为直径确定外接圆;若由p0、p1、p2构成的三角形不是钝角三角形,则计算任意两条边的中垂线,交点即为外接圆的圆心,圆心到三角形任一顶点的距离为外接圆半径。

    步骤五,在位置点集中剔除位于外接圆内的位置点,更新位置点集,获取更新后的位置点集中与外接圆的圆心距离最远的点pn。

    步骤六,判断更新后的位置点集中是否存在位置点,若更新后的位置点集中不存在位置点,则表示步骤四中的外接圆为最小外接圆;若更新后的位置点集中存在位置点,则根据更新后的位置点集重新计算外接圆,直到获取最小外接圆。

    其中,计算p0、p1、p2、pn四个点的最小外接圆,可以依次排除p0、p1、p2,计算剩余三点的外接圆,并检查被排除的点是否在此外接圆内,如果在外接圆内则重复步骤五。

    在步骤s230中,若当前游戏场景不属于战斗场景,则根据各对象位置确定与各对象位置对应的重心点,并将重心点所在的位置作为注视位置。

    在本公开的示例性实施例中,获取各对象位置的位置坐标,则将各对象位置的各方向上的坐标分别求各方向的坐标平均值,将各方向的坐标平均值作为中心点坐标。

    举例而言,假设存在n个对象位置,n个对象位置分别为p1、p2、p3...pn,那么,该重心点的位置坐标如公式(3)所示:

    其中,pcenter表示重心点的位置坐标。

    在本公开的示例性实施例中,在确定注视位置之后,根据对象位置和注视位置确定游戏对象到注视位置的最大距离。具体地,分别根据各对象位置的位置坐标和注视位置的位置坐标计算各对象位置与注视位置之间的距离,并获取各对象位置与注视位置的距离中最大的距离作为游戏对象到注视位置的最大距离。

    在步骤s140中,计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离。

    在本公开的示例性实施例中,获取终端的显示界面和在显示界面上的控件位置,根据显示界面和控件位置计算空闲区域。该终端的显示界面可以包括图形用户界面,在显示界面上的控件可以包括可供玩家点击的控件图形,也可以包括起到提示用户作用的标识图形,还可以包括在显示界面上除过游戏场景之外的所有图形,控件位置包括该控件在显示界面上的位置。将显示界面内的所有像素点位置减去控件位置,以得到显示界面包含的空闲区域。

    在本公开的示例性实施例中,该空闲区域可以是任意形状的多边形区域,空闲区域可以包括一区域中心和多个区域顶点,比如,若空闲区域为矩形,则可以包括一区域中心和四个区域顶点,本公开对此不做具体限定。

    在本公开的示例性实施例中,图3示出了确定注视距离的流程示意图,如图3所示,该流程至少包括步骤s310至步骤s330,详细介绍如下:

    在步骤s310中,获取游戏相机的相机位置,计算相机位置到区域中心的中心向量和中心距离。

    在本公开的示例性实施例中,游戏相机的相机位置可以是游戏相机在相机空间中的位置,相机空间可以以游戏相机位置为中心,以游戏相机面向的方向为z轴正方向,以游戏相机上方为y轴正方向,以游戏相机右侧为x轴正方向。

    在本公开的示例性实施例中,游戏相机的相机位置和显示区域的相对位置是通过游戏系统进行设定的,在设定游戏系统后,游戏相机的相机位置和显示区域的相对位置便可以确定,本公开对此不作具体限定。

    在步骤s320中,根据相机位置和区域顶点形成一棱锥,计算区域中心与棱锥上多个平面之间的最小距离。

    在本公开的示例性实施例中,根据相机位置和多个区域顶点通过平面方程可以计算得到形成的棱锥的棱锥平面方程,棱锥包括多个平面,根据平面方程可以分别计算区域中心到棱锥上的多个平面的距离,从而得到区域中心与棱锥上多个平面之间的最小距离。

    举例而言,相机空间可以是笛卡尔坐标系,游戏相机位于原点,游戏相机到显示区域的向量为z轴正方向,显示区域的竖直方向向上为y轴正方向,显示区域的水平方向向右为x轴正方向。在游戏系统中,游戏相机到显示区域的距离(即游戏相机的焦距)和显示区域的大小已知,而显示区域的多个区域顶点在显示区域中的位置也可以通过人工标注的方式确定。比如,显示区域为矩形,矩形显示区域四个顶点的坐标分别为pr1、pr2、pr3和pr4,游戏相机的相机位置为原点pcam。

    由于空间中三个点可以确定一个平面,以pr1、pr2、pcam为例:棱锥中由点pr1、pr2和pcam构成的平面的平面方程可以是公式(4),公式(4)如下所示:

    ax by cz d=0(4)

    其中,因为该平面的一个点为原点,则d=0。(a,b,c)组成的向量为垂直平面的法向量,(a,b,c)可由向量pcam与pr1和pcam与pr2叉乘得到。根据上述方法依次可以得到pr2、pr3、pcam构成的平面,pr3、pr4、pcam构成的平面和pr1、pr4、pcam构成的平面的平面方程。

    在分别获得了棱锥上的四个平面的平面方程之后,通过点到平面的距离计算公式(5)可以得到区域中心与棱锥上多个平面的距离。点到平面的距离计算公式假设三维区域中心的坐标为(x0,y0,z0),棱锥上的平面的平面方程为ax by cz d=0,那么区域中心到棱锥上的平面的距离如公式(5)所示:

    其中,d为区域中心到棱锥上的平面的距离。

    在步骤s330中,根据中心距离、最大距离和最小距离计算注视距离。

    在本公开的示例性实施例中,利用最大距离除以最小距离得到距离比例,并将距离比例与中心距离相乘,以获取注视距离。具体地,可以根据公式(6)计算注视距离,公式(6)如下所示:

    l=dcenter×dmax/dmin(6)

    其中,l为注视距离,dcenter为中心距离,dmax为最大距离,dmin为最小距离。

    在步骤s150中,根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。

    在本公开的示例性实施例中,可以将旋转矩阵、中心向量的单位向量和注视距离相乘得到中间数值,利用注视位置与中间数值相减,以得到目标空间位置,其中,中心向量为游戏相机的相机位置到区域中心的向量。具体地,可以根据公式(7)计算目标空间位置,公式(7)如下所示:

    pcamera=pcenter–mcam×vcenter×l(7)

    其中,pcamera为游戏相机的目标空间位置,mcam为旋转矩阵,vcenter为中心向量的单位向量。

    在本公开的示例性实施例中,在得到游戏相机的目标空间位置和目标朝向之后,可以使用简化贝塞尔曲线插值移动游戏相机。

    具体地,可以使用简化的三阶贝塞尔曲线插值移动游戏相机。标准的三阶贝塞尔曲线如公式(8)所示:

    p(t)=a(1-t)3 b×3(1-t)2t c×3(1-t)3 d×t3(8)

    其中,t为时间,a、b、c、d为四个控制点,为了简化计算,令a=(0,0),b=(0,a),b∈(0,1),c=(0,b),c∈(0,1),d=(1,1)。

    在将三阶贝塞尔曲线用作插值时,x轴表示时间进度,y轴表示逼近进度,以游戏相机的目标空间位置为例:

    设在t0时刻,游戏相机的目标空间位置为p0,需要在t1时刻使游戏相机移动到p1位置,那么在任意时刻tcur,则在tcur时刻游戏相机的目标空间位置的计算如公式(9)所示:

    pcur=p0 (p1-p0)×y(9)

    其中,在tcur时刻的逼近进度y的计算如公式(10)所示:

    其中,在tcur时刻的时间进度x的计算如公式(11)所示:

    在实际应用中,p1可能是一个变化的值,那么就需要动态的计算游戏相机的目标空间位置,动态计算游戏相机的目标空间位置的过程可以为:

    假设在上一帧游戏场景(tlast时刻)中,游戏相机的目标空间位置为plast,在当前帧游戏场景(即tcur时刻)中,游戏相机的目标空间位置pcur可以由公式(12)计算得到,公式(12)如下所示:

    其中,ylast表示由上述公式(10)计算得到的tlast时刻的逼近进度,ycur表示由上述公式(10)计算得到的tcur时刻的逼近进度。

    在本公开的示例性实施例中,在得到游戏相机的目标空间位置和目标朝向之后,还可以使用基于指数逼近的插值方式移动游戏相机。

    具体地,假设游戏相机的步进倍率为r∈(0-1),步进倍率可根据实际情况进行调整,本公开对此不作具体限定。上一帧游戏场景中游戏相机的目标空间位置在plast,注视位置为p1,那么当前帧游戏场景的目标空间位置pcur可以根据公式(13)计算得到,公式(13)如下所示:

    pcur=plast (p1-plast)×r(13)

    本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

    此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

    以下介绍本公开的装置实施例,可以用于执行本公开上述的游戏的显示控制方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的游戏中的显示控制方法的实施例。

    图4示意性示出了根据本公开的一个实施例的游戏的显示控制的框图。

    参照图4所示,根据本公开的一个实施例的游戏的显示控制400,游戏的显示控制400包括:响应操作模块401、计算旋转矩阵模块402、确定注视位置模块403、确定注视距离模块404和控制相机移动模块405,具体地:

    响应操作模块401,用于响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;

    计算旋转矩阵模块402,用于根据目标朝向计算游戏相机的旋转矩阵;

    确定注视位置模块403,用于根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置;

    确定注视距离模块404,用于计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离;

    控制相机移动模块405,用于根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。

    在本公开的示例性实施例中,确定注视位置模块403还可以用于根据目标游戏对象的当前位置和当前技能确定当前技能的影响区域,并获取影响区域中的一个或多个游戏对象;根据游戏对象的对象位置确定游戏相机的注视位置。

    在本公开的示例性实施例中,确定注视位置模块403还可以用于判断当前游戏场景是否属于战斗场景;若是,则根据各对象位置确定与对象位置对应的最小外接圆,并将最小外接圆的圆心作为注视位置;若否,则根据对象位置确定与对象位置对应的重心点,并将重心点所在的位置作为注视位置。

    在本公开的示例性实施例中,控制相机移动模块405还可以用于获取游戏相机的相机位置,计算相机位置到区域中心的中心向量和中心距离;根据相机位置和区域顶点形成一棱锥,计算区域中心与棱锥上多个平面之间的最小距离;根据中心距离、最大距离和最小距离计算注视距离。

    上述各游戏的显示控制的具体细节已经在对应的游戏的显示控制方法中进行了详细的描述,因此此处不再赘述。

    应当注意,尽管在上文详细描述中提及了用于执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

    在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。

    所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

    下面参照图5来描述根据本发明的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

    如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540。

    其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图1中所示的步骤s110:响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;步骤s120:根据目标朝向计算游戏相机的旋转矩阵;步骤s130:根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置;步骤s140:计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离;步骤s150:根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。

    存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(rom)5203。

    存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

    总线530可以表示为几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

    电子设备500也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得观众能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

    通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

    在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

    参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

    所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

    计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

    可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

    可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

    此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

    本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

    应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。


    技术特征:

    1.一种游戏的显示控制方法,其特征在于,包括:

    响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;

    根据所述目标朝向计算所述游戏相机的旋转矩阵;

    根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置;

    计算所述终端的显示界面中包含的空闲区域,并根据所述空闲区域计算所述游戏相机的注视距离;

    根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,并根据所述目标空间位置和所述目标朝向控制所述游戏相机移动。

    2.根据权利要求1所述的显示控制方法,其特征在于,根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置,包括:

    根据所述目标游戏对象的所述当前位置和所述当前技能确定所述当前技能的影响区域,并获取所述影响区域中的一个或多个游戏对象;

    根据所述游戏对象的对象位置确定所述游戏相机的注视位置。

    3.根据权利要求2所述的显示控制方法,其特征在于,根据所述游戏对象的对象位置确定所述游戏相机的注视位置,包括:

    判断当前游戏场景是否属于战斗场景;

    若是,则根据所述对象位置确定与所述对象位置对应的最小外接圆,并将所述最小外接圆的圆心作为所述注视位置;

    若否,则根据所述对象位置确定与所述对象位置对应的重心点,并将所述重心点所在的位置作为所述注视位置。

    4.根据权利要求2所述的显示控制方法,其特征在于,所述方法还包括:

    根据所述对象位置和所述注视位置确定所述游戏对象到所述注视位置的最大距离。

    5.根据权利要求4所述的显示控制方法,其特征在于,所述空闲区域包括一区域中心和多个区域顶点;

    根据所述空闲区域计算所述游戏相机的注视距离,包括:

    获取所述游戏相机的相机位置,计算所述相机位置到所述区域中心的中心向量和中心距离;

    根据所述相机位置和所述区域顶点形成一棱锥,计算所述区域中心与所述棱锥上多个平面之间的最小距离;

    根据所述中心距离、所述最大距离和所述最小距离计算所述注视距离。

    6.根据权利要求5所述的显示控制方法,其特征在于,根据所述中心距离、所述最大距离和所述最小距离计算所述注视距离,包括:

    利用所述最大距离除以所述最小距离得到距离比例,并将所述距离比例与所述中心距离相乘,以获取所述注视距离。

    7.根据权利要求1所述的显示控制方法,其特征在于,所述空闲区域包括一区域中心;根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,包括:

    将所述旋转矩阵、中心向量的单位向量和所述注视距离相乘得到中间数值,将所述注视位置与所述中间数值相减,以得到所述目标空间位置,其中,所述中心向量为所述游戏相机的相机位置到所述区域中心的向量。

    8.根据权利要求1所述的显示控制方法,其特征在于,计算游戏相机的目标朝向,包括:

    根据所述视角调整操作确定所述游戏相机的朝向变化,获取游戏场景中上一帧的相机朝向,根据所述朝向变化和所述上一帧的相机朝向计算所述目标朝向。

    9.一种显示控制装置,其特征在于,包括:

    响应操作模块,用于响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;

    计算旋转矩阵模块,用于根据所述目标朝向计算所述游戏相机的旋转矩阵;

    确定注视位置模块,用于根据目标游戏对象的当前位置和当前技能确定所述游戏相机的注视位置;

    确定注视距离模块,用于计算所述终端的显示界面中包含的空闲区域,并根据所述空闲区域计算所述游戏相机的注视距离;

    控制相机移动模块,用于根据所述注视距离、所述旋转矩阵和所述注视位置确定所述游戏相机的目标空间位置,并根据所述目标空间位置和所述目标朝向控制所述游戏相机的移动。

    10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至8中任一项所述的显示控制方法。

    11.一种电子设备,其特征在于,包括:

    一个或多个处理器;

    存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的显示控制方法。

    技术总结
    本公开涉及游戏技术领域,提供了一种游戏的显示控制方法、装置、可读存储介质及电子设备,该方法包括:响应玩家在终端上的视角调整操作,计算游戏相机的目标朝向;根据目标朝向计算游戏相机的旋转矩阵;根据目标游戏对象的当前位置和当前技能确定游戏相机的注视位置;计算终端的显示界面中包含的空闲区域,并根据空闲区域计算游戏相机的注视距离;根据注视距离、旋转矩阵和注视位置确定游戏相机的目标空间位置,并根据目标空间位置和目标朝向控制游戏相机的移动。本公开能够通过自动计算相机的目标空间位置和相机朝向,降低玩家的操作难度,实现自动控制游戏相机。

    技术研发人员:孔菁
    受保护的技术使用者:网易(杭州)网络有限公司
    技术研发日:2020.12.10
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-15390.html

    最新回复(0)