掌桥专利:专业的专利平台
掌桥专利
首页

三维场景的生成方法和装置、存储介质和电子装置

文献发布时间:2023-06-19 09:52:39


三维场景的生成方法和装置、存储介质和电子装置

技术领域

本申请涉及数据处理领域,尤其涉及一种三维场景的生成方法和装置、存储介质和电子装置。

背景技术

在回合制游戏中,玩家可以控制自己的虚拟角色在事件场景(例如,回合制战斗场景)中与对战方进行对战。在一局回合制游戏中,多个参战的虚拟对象可以按照一定顺序轮流自己的回合,只有轮到自己的回合,才能够进行操作。

相关技术中的回合制游戏在开启时,服务器会为该回合制对战生成一个战斗场景,从而在玩家的屏幕上显示回合制战斗场景的画面中。然而,由于回合制战斗场景一般是特定的事件场景,在显示上过于单调,导致用户视觉体验较差。

因此,相关技术中的事件场景的生成方式,存在由于生成的事件场景过于单调导致的用户视觉体验差的问题。

发明内容

本申请提供了一种三维场景的生成方法和装置、存储介质和电子装置,以至少解决相关技术中的事件场景的生成方式存在由于生成的事件场景过于单调导致的用户视觉体验差的问题。

根据本申请实施例的一个方面,提供了一种三维场景的生成方法,包括:确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,所述第一位置为所述第一对象组在目标三维场景中所处的位置,所述第二位置为所述第二对象组在所述目标三维场景中所处的位置;根据所述第一位置和所述第二位置,计算所述目标三维场景中与所述目标事件的事件场景所对应的目标区域范围;通过物理检测获得所述目标区域范围内的目标物件集合,其中,所述目标物件集合为所述目标区域范围内绑定有碰撞体的物理体物件的集合;按照所述目标区域范围和所述目标物件集合,生成所述事件场景,其中,所述事件场景为覆盖所述目标区域范围的三维场景,所述事件场景中包含有战场物件集合,所述战场物件集合中的战场物件与所述目标物件集合中的物理体物件一一对应。

可选地,所述根据所述第一位置和所述第二位置,计算所述目标三维场景中与所述目标事件的事件场景对应的目标区域范围包括:根据所述第一位置和所述第二位置,确定所述事件场景的目标中心点和目标方向;根据所述目标中心点和所述目标方向,计算所述目标三维场景中与所述目标事件的所述事件场景对应的所述目标区域范围。

可选地,所述根据所述第一位置和所述第二位置,确定所述事件场景的目标中心点和目标方向包括:根据所述第一位置和所述第二位置,计算所述事件场景的多个候选参数对,其中,所述多个候选参数对中的一个候选参数对包含一个候选中心点和一个候选方向;计算与所述多个候选参数对对应的多个候选区域范围,其中,所述多个候选参数对与所述多个候选区域范围一一对应;计算与所述多个候选区域范围中的每个候选区域范围对应的目标区域参数,其中,所述目标区域参数用于表示所述每个候选区域范围与所述目标事件的匹配程度;按照所述目标区域参数,从所述多个候选参数对中选取出目标参数对,其中,所述目标参数对包括所述目标中心点和所述目标方向。

可选地,所述根据所述第一位置和所述第二位置,计算出所述事件场景的多个候选参数对包括:计算第一中心点和第一方向,其中,所述第一中心点为所述第一位置和所述第二位置的中心点,所述第一方向为所述第一位置到所述第二位置的方向;计算所述第一位置和所述第二位置之间的目标距离;在所述目标距离大于或者等于第一距离阈值、且小于或者等于第二距离阈值的情况下,计算所述第一中心点按照第一方向平移第一长度后所对应的第二中心点、以及所述第一中心点按照第二方向平移所述第一长度后所对应的第三中心点,其中,所述第二方向为所述第一方向的反方向;确定包含所述第一中心点和所述第一方向的第一参数对、包含所述第二中心点和所述第一方向的第二参数对、以及包含所述第三中心点和所述第一方向的第三参数对,得到所述多个候选参数对。

可选地,在所述计算所述第一位置和所述第二位置之间的目标距离之后,所述方法还包括:在所述目标距离小于第一距离阈值、或者大于第二距离阈值的情况下,计算所述第二位置沿着所述第二方向移动第二长度后对应的第四中心点、所述第二位置沿着所述第一方向移动所述第二长度后对应的第五中心点、所述第二位置沿着第三方向移动所述第二长度后对应的第六中心点、以及所述第二位置沿着第四方向移动所述第二长度后对应的点第七中心点,其中,所述第四方向为所述第一方向沿着第一坐标轴旋转第一角度后对应的方向,所述第三方向是所述第四方向的反方向;确定包含所述第四中心点和所述第一方向的第四参数对、包含所述第五中心点和所述第二方向的第五参数对、包含所述第六中心点和所述第四方向的第六参数对、包含所述第七中心点和所述第三方向的第七参数对,得到所述多个候选参数对。

可选地,在所述根据所述第一位置和所述第二位置,计算所述事件场景的多个候选参数对之前,所述方法还包括以下至少之一:在所述第一位置和所述第二位置之间的目标距离小于第一距离阈值的情况下,按照目标步长控制所述第一位置沿着第二方向逐步移动,直到所述第一位置不满足允许移动条件,其中,所述第二方向为所述第二位置到所述第一位置的方向;按照所述目标步长控制所述第二位置沿着第一方向逐步移动,直到所述第二位置不满足允许移动条件,其中,所述第一方向为所述第一位置到所述第二位置的方向;其中,所述允许移动条件为:移动前的位置高度与移动后的位置高度之间的高度差值的绝对值大于或者等于目标高度差阈值、或者移动后的所述目标距离大于或者等于所述第一距离阈值。

可选地,所述计算与所述多个候选参数对对应的多个候选区域范围包括:从所述多个候选参数对中依次选取各个候选参数对,得到当前候选参数对,其中,所述当前候选参数对包含当前候选中心点和当前候选方向;根据所述当前候选中心点和所述当前候选方向,计算出四个当前参考顶点,其中,所述四个当前参考顶点包括:所述当前候选中心点沿着所述当前候选方向移动第三长度后所对应的第一参考顶点,所述当前候选中心点沿着所述当前候选方向的反方向移动所述第三长度后所对应的第二参考顶点,所述当前候选中心点沿着第五方向移动所述第三长度后所对应的第三参考顶点,所述当前候选中心点沿着第五方向的反方向移动所述第三长度后所对应的第四参考顶点,所述第五方向为所述当前候选方向沿着第二坐标轴旋转第二角度后所对应的方向;按照所述四个当前参考顶点,计算出以所述四个当前参考顶点作为顶点的当前参考矩形区域;将所述当前参考矩形区域投射到所述目标三维场景中,得到与所述当前候选参数对所对应的当前候选区域范围,其中,所述多个候选区域范围包括所述当前候选区域范围。

可选地,所述计算与所述多个候选区域范围中的每个候选区域范围对应的目标区域参数包括:计算所述每个候选区域范围的区域可用比例,其中,所述区域可用比例用于表示所述每个候选区域范围中允许用于所述事件场景的范围占所述每个候选区域范围的比例;计算所述每个候选区域范围的区域可视比例,其中,所述区域可视比例用于表示所述每个候选区域范围中与所述目标事件的摄像机所在的位置之间没有阻挡的区域占所述每个候选区域范围的比例;其中,所述目标区域参数包括所述区域可用比例和所述区域可视比例。

可选地,所述计算所述每个候选区域范围的区域可用比例包括:将所述每个候选区域范围分割成多个区域网格;通过物理检测计算出所述多个区域网格中的每个区域网格的最大高度;记录所述多个区域网格中的可用网格的数量,其中,所述可用网格内为所述多个区域网格中,对应的最大高度处于所述事件场景的可用高度范围的区域网格;将所述可用网格的数量与所述多个区域网格的数量之间的比例,确定为所述区域可用比例。

可选地,所述计算所述每个候选区域范围的区域可视比例包括:以所述每个候选区域范围的候选中心点和候选方向进入所述目标事件之后所述目标事件的所述摄像机所在的位置;对所述每个候选区域范围进行多次采样,得到所述每个候选区域范围的多个采样点;通过射线检测的方式确定所述多个采样点中与所述摄像机所在的位置之间没有阻挡的可视采样点;将所述可视采样点的数量与多个采样点的数量之间的比例,确定为所述区域可视比例。

可选地,所述按照所述目标区域参数,从所述多个候选参数对中选取出目标参数对包括:从所述多个候选参数对中选取所述多个候选参数对中区域可用比例最大、且区域可视比例大于或者等于目标比例阈值的候选参数对,得到所述目标参数对。

可选地,所述目标事件为所述第一对象组和所述第二对象组之间的回合制战斗,所述事件场景为所述回合制战斗的战斗场景;在所述按照所述目标区域范围和所述目标物件集合,生成所述事件场景之后,所述方法还包括:在所述回合制战斗的过程中,检测到在所述回合制战斗中所释放的目标技能;根据所述目标技能的技能配置范围和所述战斗场景的边界范围,确定所述目标技能的技能释放范围,其中,所述技能释放范围处于所述战斗场景的边界范围以内。

可选地,在所述根据所述目标技能的技能配置范围和所述战斗场景的边界范围,确定所述目标技能的技能释放范围之后,所述方法还包括:对所述技能释放范围执行范围检测,确定所述目标技能的攻击目标和目标战场物件,其中,所述目标战场物件为所述战场物件集合中处于所述释放范围内的战场物件;对所述攻击目标执行与所述目标技能对应的第一攻击操作,以及对所述目标战场物件执行与所述目标技能对应的第二攻击操作。

可选地,所述对所述技能释放范围执行范围检测,确定所述目标技能的攻击目标和目标战场物件包括:在所述目标技能包含战场投射物的情况下,对所述技能释放范围执行射线检测,确定所述战场投射物的所述攻击目标、以及处于所述战场投射物的投射路线上的所述目标战场物件。

可选地,在所述对所述攻击目标执行与所述目标技能对应的第一攻击操作之后,所述方法还包括:对所述攻击目标执行碰撞检测,计算所述第一攻击操作对所述攻击目标所产生的目标位移;在所述攻击目标在所述目标位移之后处于悬空状态的情况下,计算所述攻击目标由所述悬空状态坠落后所处的第三位置;控制所述攻击目标由所述悬空状态坠落到所述第三位置。

可选地,在对所述目标战场物件执行与所述目标技能对应的第二攻击操作之后,所述方法还包括:在所述第二攻击操作为所述目标技能的战场投射物对所述目标战场物件执行的攻击操作、且所述目标战场物件配置为具有目标控制操作的属性的情况下,计算在所述目标战场物件对所述战场投射物执行所述目标控制操作之后所述战场投射物的目标属性信息;按照所述目标属性信息控制所述战场投射物在所述战斗场景中进行投射。

根据本申请实施例的另一个方面,提供了一种三维场景的生成装置,包括:第一确定单元,用于确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,所述第一位置为所述第一对象组在目标三维场景中所处的位置,所述第二位置为所述第二对象组在所述目标三维场景中所处的位置;第一计算单元,用于根据所述第一位置和所述第二位置,计算所述目标三维场景中与所述目标事件的事件场景所对应的目标区域范围;获取单元,用于通过物理检测获得所述目标区域范围内的目标物件集合,其中,所述目标物件集合为所述目标区域范围内绑定有碰撞体的物理体物件的集合;生成单元,用于按照所述目标区域范围和所述目标物件集合,生成所述事件场景,其中,所述事件场景为覆盖所述目标区域范围的三维场景,所述事件场景中包含有战场物件集合,所述战场物件集合中的战场物件与所述目标物件集合中的物理体物件一一对应。

可选地,所述第一计算单元包括:确定模块,用于根据所述第一位置和所述第二位置,确定所述事件场景的目标中心点和目标方向;计算模块,用于根据所述目标中心点和所述目标方向,计算所述目标三维场景中与所述目标事件的所述事件场景对应的所述目标区域范围。

可选地,所述确定模块包括:第一计算子模块,用于根据所述第一位置和所述第二位置,计算所述事件场景的多个候选参数对,其中,所述多个候选参数对中的一个候选参数对包含一个候选中心点和一个候选方向;第二计算子模块,用于计算与所述多个候选参数对对应的多个候选区域范围,其中,所述多个候选参数对与所述多个候选区域范围一一对应;第三计算子模块,用于计算与所述多个候选区域范围中的每个候选区域范围对应的目标区域参数,其中,所述目标区域参数用于表示所述每个候选区域范围与所述目标事件的匹配程度;选取子模块,用于按照所述目标区域参数,从所述多个候选参数对中选取出目标参数对,其中,所述目标参数对包括所述目标中心点和所述目标方向。

可选地,所述第一计算子模块包括:第一计算子单元,用于计算第一中心点和第一方向,其中,所述第一中心点为所述第一位置和所述第二位置的中心点,所述第一方向为所述第一位置到所述第二位置的方向;第二计算子单元,用于计算所述第一位置和所述第二位置之间的目标距离;第三计算子单元,用于在所述目标距离大于或者等于第一距离阈值、且小于或者等于第二距离阈值的情况下,计算所述第一中心点按照第一方向平移第一长度后所对应的第二中心点、以及所述第一中心点按照第二方向平移所述第一长度后所对应的第三中心点,其中,所述第二方向为所述第一方向的反方向;确定子单元,用于确定包含所述第一中心点和所述第一方向的第一参数对、包含所述第二中心点和所述第一方向的第二参数对、以及包含所述第三中心点和所述第一方向的第三参数对,得到所述多个候选参数对。

可选地,所述装置还包括:第二计算单元,用于在所述计算所述第一位置和所述第二位置之间的目标距离之后,在所述目标距离小于第一距离阈值、或者大于第二距离阈值的情况下,计算所述第二位置沿着所述第二方向移动第二长度后对应的第四中心点、所述第二位置沿着所述第一方向移动所述第二长度后对应的第五中心点、所述第二位置沿着第三方向移动所述第二长度后对应的第六中心点、以及所述第二位置沿着第四方向移动所述第二长度后对应的点第七中心点,其中,所述第四方向为所述第一方向沿着第一坐标轴旋转第一角度后对应的方向,所述第三方向是所述第四方向的反方向;第二确定单元,用于确定包含所述第四中心点和所述第一方向的第四参数对、包含所述第五中心点和所述第二方向的第五参数对、包含所述第六中心点和所述第四方向的第六参数对、包含所述第七中心点和所述第三方向的第七参数对,得到所述多个候选参数对。

可选地,所述装置还包括以下至少之一:第一控制单元,用于在所述根据所述第一位置和所述第二位置,计算所述事件场景的多个候选参数对之前,在所述第一位置和所述第二位置之间的目标距离小于第一距离阈值的情况下,按照目标步长控制所述第一位置沿着第二方向逐步移动,直到所述第一位置不满足允许移动条件,其中,所述第二方向为所述第二位置到所述第一位置的方向;第二控制单元,用于在所述根据所述第一位置和所述第二位置,计算所述事件场景的多个候选参数对之前,按照所述目标步长控制所述第二位置沿着第一方向逐步移动,直到所述第二位置不满足允许移动条件,其中,所述第一方向为所述第一位置到所述第二位置的方向;其中,所述允许移动条件为:移动前的位置高度与移动后的位置高度之间的高度差值的绝对值大于或者等于目标高度差阈值、或者移动后的所述目标距离大于或者等于所述第一距离阈值。

可选地,所述第二计算子模块包括:第一选取子单元,用于从所述多个候选参数对中依次选取各个候选参数对,得到当前候选参数对,其中,所述当前候选参数对包含当前候选中心点和当前候选方向;第四计算子单元,用于根据所述当前候选中心点和所述当前候选方向,计算出四个当前参考顶点,其中,所述四个当前参考顶点包括:所述当前候选中心点沿着所述当前候选方向移动第三长度后所对应的第一参考顶点,所述当前候选中心点沿着所述当前候选方向的反方向移动所述第三长度后所对应的第二参考顶点,所述当前候选中心点沿着第五方向移动所述第三长度后所对应的第三参考顶点,所述当前候选中心点沿着第五方向的反方向移动所述第三长度后所对应的第四参考顶点,所述第五方向为所述当前候选方向沿着第二坐标轴旋转第二角度后所对应的方向;第五计算子单元,用于按照所述四个当前参考顶点,计算出以所述四个当前参考顶点作为顶点的当前参考矩形区域;投射子单元,用于将所述当前参考矩形区域投射到所述目标三维场景中,得到与所述当前候选参数对所对应的当前候选区域范围,其中,所述多个候选区域范围包括所述当前候选区域范围。

可选地,所述第三计算子模块包括:第六计算子单元,用于计算所述每个候选区域范围的区域可用比例,其中,所述区域可用比例用于表示所述每个候选区域范围中允许用于所述事件场景的范围占所述每个候选区域范围的比例;第七计算子单元,用于计算所述每个候选区域范围的区域可视比例,其中,所述区域可视比例用于表示所述每个候选区域范围中与所述目标事件的摄像机所在的位置之间没有阻挡的区域占所述每个候选区域范围的比例;其中,所述目标区域参数包括所述区域可用比例和所述区域可视比例。

可选地,所述第六计算子单元包括:第一计算次子单元,用于将所述每个候选区域范围分割成多个区域网格;第二计算次子单元,用于通过物理检测计算出所述多个区域网格中的每个区域网格的最大高度;记录次子单元,用于记录所述多个区域网格中的可用网格的数量,其中,所述可用网格内为所述多个区域网格中,对应的最大高度处于所述事件场景的可用高度范围的区域网格;第一确定次子单元,用于将所述可用网格的数量与所述多个区域网格的数量之间的比例,确定为所述区域可用比例。

可选地,所述第七计算子单元包括:第三计算次子单元,用于以所述每个候选区域范围的候选中心点和候选方向进入所述目标事件之后所述目标事件的所述摄像机所在的位置;采样次子单元,用于对所述每个候选区域范围进行多次采样,得到所述每个候选区域范围的多个采样点;第二确定次子单元,用于通过射线检测的方式确定所述多个采样点中与所述摄像机所在的位置之间没有阻挡的可视采样点;第三确定次子单元,用于将所述可视采样点的数量与多个采样点的数量之间的比例,确定为所述区域可视比例。

可选地,所述选取子模块包括:第二选取子单元,用于从所述多个候选参数对中选取所述多个候选参数对中区域可用比例最大、且区域可视比例大于或者等于目标比例阈值的候选参数对,得到所述目标参数对。

可选地,所述目标事件为所述第一对象组和所述第二对象组之间的回合制战斗,所述事件场景为所述回合制战斗的战斗场景;所述装置还包括:第一检测单元,用于在所述按照所述目标区域范围和所述目标物件集合,生成所述事件场景之后,在所述回合制战斗的过程中,检测到在所述回合制战斗中所释放的目标技能;第三确定单元,用于根据所述目标技能的技能配置范围和所述战斗场景的边界范围,确定所述目标技能的技能释放范围,其中,所述技能释放范围处于所述战斗场景的边界范围以内。

可选地,所述装置还包括:第二检测单元,用于在所述根据所述目标技能的技能配置范围和所述战斗场景的边界范围,确定所述目标技能的技能释放范围之后,对所述技能释放范围执行范围检测,确定所述目标技能的攻击目标和目标战场物件,其中,所述目标战场物件为所述战场物件集合中处于所述释放范围内的战场物件;执行单元,用于对所述攻击目标执行与所述目标技能对应的第一攻击操作,以及对所述目标战场物件执行与所述目标技能对应的第二攻击操作。

可选地,所述第二检测单元包括:检测模块,用于在所述目标技能包含战场投射物的情况下,对所述技能释放范围执行射线检测,确定所述战场投射物的所述攻击目标、以及处于所述战场投射物的投射路线上的所述目标战场物件。

可选地,所述装置还包括:第三检测单元,用于在所述对所述攻击目标执行与所述目标技能对应的第一攻击操作之后,对所述攻击目标执行碰撞检测,计算所述第一攻击操作对所述攻击目标所产生的目标位移;第三计算单元,用于在所述攻击目标在所述目标位移之后处于悬空状态的情况下,计算所述攻击目标由所述悬空状态坠落后所处的第三位置;第三控制单元,用于控制所述攻击目标由所述悬空状态坠落到所述第三位置。

可选地,所述装置还包括:第四计算单元,用于在对所述目标战场物件执行与所述目标技能对应的第二攻击操作之后,在所述第二攻击操作为所述目标技能的战场投射物对所述目标战场物件执行的攻击操作、且所述目标战场物件配置为具有目标控制操作的属性的情况下,计算在所述目标战场物件对所述战场投射物执行所述目标控制操作之后所述战场投射物的目标属性信息;第四控制单元,用于按照所述目标属性信息控制所述战场投射物在所述战斗场景中进行投射。

根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。

根据本申请实施例的又一个方面,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在本申请实施例中,采用根据事件关联对象组的位置以及事件所在三维场景的场景信息生成事件场景的方式,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;通过物理检测获得目标区域范围内的目标物件集合,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;按照目标区域范围和目标物件集合,生成事件场景,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应,由于根据事件关联对象组(例如,回合制战斗的参与方,对战方)在三维场景(例如,游戏场景)中所处的位置生成事件场景,并在三维场景的目标区域范围上显示事件场景(例如,回合制战斗的战斗场景),事件场景与目标区域范围内的场景一致,可以实现对对象组中的各个对象(例如,玩家控制的虚拟角色)原地、无缝进入到事件场景的目的,而三维场景一般是跨地形的,因此,事件场景可以是跨地形事件,而不是一个平面内发生的事件,事件场景中显示的信息更加丰富,达到了丰富事件场景的视觉信息、提高用户的视觉体验的技术效果,进而解决了相关技术中的事件场景的生成方式存在由于生成的事件场景过于单调导致的用户视觉体验差的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的一种可选的三维场景的生成方法的硬件环境的示意图;

图2是根据本申请实施例的一种可选的三维场景的生成方法的流程图;

图3是根据本申请实施例的一种可选的创建物理场景的流程图;

图4是根据本申请实施例的另一种可选的三维场景的生成方法的流程图;

图5是根据本申请实施例的一种可选的三维场景的生成装置的结构框图;

图6是根据本申请实施例的一种可选的电子装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例的一个方面,提供了一种三维场景的生成方法。可选地,在本实施例中,上述三维场景的生成方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端102并不限定于PC、手机、平板电脑等。本申请实施例的三维场景的生成方法可以由服务器104来执行,也可以由终端102来执行,还可以是由服务器104和终端102共同执行。其中,终端102执行本申请实施例的三维场景的生成方法也可以是由安装在其上的客户端来执行。

以运行在服务器侧为例,图2是根据本申请实施例的一种可选的三维场景的生成方法的流程图,如图2所示,该方法的流程可以包括以下步骤:

步骤S202,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置。

本实施例中的三维场景的生成方法可以应用于三维场景中的至少两个对象组在事件场景中执行同一事件的场景,该事件场景独立于该三维场景。上述三维场景可以是游戏场景(例如,回合制游戏的游戏场景),至少两个对象组可以是至少两个对战方,执行的同一事件可以是游戏场景中的战斗(例如,回合制战斗)。

本实施例中以回合制游戏中的回合制战斗的战斗场景的生成过程为例说明上述三维场景的生成方法,对应地,目标三维场景为目标游戏场景,目标事件为回合制战斗,第一对象组和第二对象组分别为第一对战方(或者,第一对战组)和第二对战方(或者,第二对战组)。对于其他类似的场景,本实施例中的三维场景的生成方法同样适用。

以回合制游戏为例,用户(玩家,对应于一个对象)的终端设备上可以运行有回合制游戏应用的客户端,该客户端可以与服务器进行通信连接,该服务器为回合制游戏的后台服务器。用户可以使用帐号和密码、动态密码、关联应用登录等方式登录到其终端设备上运行的上述客户端,并控制其创建的、或者为其生成的虚拟角色(玩家角色)在游戏场景中执行游戏操作,例如,在游戏地图中移动、执行游戏任务、与其他玩家交互等等。

用户在回合制游戏中可以控制一个虚拟角色(例如,主控角色,玩家角色),还可以控制该虚拟角色的一个或多个关联角色。主控角色和主控角色的关联角色可以均属于该用户。上述主控角色或关联角色可以是虚拟人形角色、虚拟兽形角色等,本实施例中对此不作限定。

用户可以在阵容配置界面中配置战斗时出战角色的阵容(哪些角色出战)、出战角色之间的位置关系(阵型)等。出战角色的数量可以小于或者等于目标数量阈值,出战角色的数量阈值可以随玩家角色等级的提升阶段式增加,本实施例中对此不作限定。

可选地,在本实施例中,用户也可以仅允许控制回合制游戏中的一个虚拟角色,不同玩家的虚拟角色之间可以通过组队、加入同一阵营、加入同一工会等方式成为同一个对战方。

回合制游戏中可以具有多个游戏场景,例如,主游戏场景,副本游戏场景。主游戏场景可以有一个或多个,不同的游戏场景之间可以通过传送门连接。用户可以通过传送门由一个游戏场景传送到另一个游戏场景,也可以通过使用传送道具(例如,传送卷轴等)或者传送权限(例如,通过点击“工会”按钮等传送到工会场景)由一个游戏场景传送到另一个游戏场景,本实施例中对此不作限定。

目标对象(对应于目标用户,可以通过目标帐号标识)在使用其终端设备上运行的回合制游戏的客户端进行游戏的过程中,可以通过对该客户端上显示的目标游戏场景(目标三维场景的一种示例)执行触发操作,触发启动回合制战斗(目标事件的一种示例),进入到与回合制战斗对应的战斗场景(事件场景的一种示例)。

触发操作可以是对目标游戏场景中的NPC(Non-Player Character,非玩家角色,例如,BOSS怪等)、道具物品、怪物、其他用户控制的虚拟角色等执行的触发操作。触发操作可以包括但不限于以下之一:点击,双击,点击情景对话等,本实施例中对此不作限定。

服务器可以检测到上述触发操作,确定启动回合制战斗。回合制战斗一般具有两个对战方,上述两个对战方的任一对战方可以包括以下至少之一:包含玩家角色的对战方;不包含玩家角色的对战方。对应地,回合制战斗可以是玩家与玩家之间的战斗,也可以是玩家与非玩家之间的战斗。

对于包含玩家角色的对战方,同一个对战方的多个对战角色可以属于同一玩家(同一对象),即,同一个对战方的多个对战角色是属于同一玩家的多个虚拟角色。同一个对战方的多个对战角色也可以属于多个玩家,即,同一个对战方的多个对战角色是属于多个玩家的多个虚拟角色,每个玩家可以拥有一个或多个虚拟角色。

同一个对战方的多个对战角色还可以均为非玩家角色(非玩家对战方),例如,同种类型或者不同类型的多个怪物。玩家角色可以在多种场景下触发与非玩家角色之间的战斗,例如,在副本地图或者野外地图中,通过与非玩家角色之间的战斗执行某些任务,例如,满足进入某些区域的条件,获取任务道具等;或者,通过与非玩家角色之间的战斗获取游戏资源(例如,虚拟货币,游戏装备,装备材料等),又或者,其他需要与非玩家角色之间进行战斗的场景,本实施例中对此不作限定。

每个对战方可以对应于一个对战组,例如,攻击者组(触发进入回合制战斗的对战组),受击者组(被动进入回合制战斗的对战组)。对于各个对战方,服务器可以从各个对战方中选取出待出战的一个或多个对战角色,得到与该对战方对应的对战组。参与回合制战斗的每一个对战角色可以属于回合制战斗的某一个对战方,每个对战方出战的对战角色可以有一个或多个。

各个对战方的对战角色可以是根据配置信息选取,例如,根据玩家配置的出战阵容选取,根据系统配置的非玩家对战方的出战阵容选取,从可出战角色中随机或者通过其他方式选取出一定数量的对战角色。确定回合制战斗的多个对战角色的方式,本实施例中不作限定。

在启动回合制战斗之前,服务器可以首先生成回合制战斗的战斗场景。相关技术中,回合制战斗的战斗场景一般是平面场景,背景加入一张底图或者四周增加一些不影响战斗的装饰性静态物件,也就是说,在回合制战斗中,战斗地图和游戏地图是不相关的两个地图,战斗地图是一个纯粹的平面,战斗中没有空间维度的显示,显示的信息量少,视觉效果较差。

为了丰富战斗场景中所显示的素材信息,可以控制战斗场景表现和入战前的场景表现一致或基本一致,入战前的位置和环境可以继承到战斗中,实现玩家角色原地无缝入战。

为了生成回合制战斗的战斗场景,服务器可以首先确定回合制战斗的第一对战方(第一对象组的一种示例)在目标游戏场景中所处的第一位置,以及第二对战方(第二对象组的一种示例)在目标游戏场景中所处的第二位置,回合制战斗的战斗场景(目标事件的事件场景的一种示例)是根据第一位置和第二位置确定的。第一对战方和第二对战方的其中一个为攻击方,另一个为受击方,攻击方是指主动发起战斗的一方,受击方为被动进入战斗的一方。

不同的对战方的位置可以是相同的,也可以是不同的。对于一个对战方,该对战方的对战角色可以有一个或多个,不同的战斗角色的位置可以是相同的,也可以是不同的。某一对战方在目标游戏场景中的位置可以是该对战方的特定对战角色的位置,也可以是该对战方的多个对战角色的位置的加权平均等。本实施例中以攻击者的位置作为攻击方的位置、受击者的位置作为受击方的位置为例进行说明,对于其他确定对战方位置的方式,本实施例中的三维场景的生成方法同样适用。

需要说明的是,第一位置为第一对象组在目标三维场景中所处的位置,即,第一对象组在目标三维场景下的三维空间坐标系中所处的位置坐标,第二位置为第二对象组在目标三维场景中所处的位置,即,第二对象组在目标三维场景下的三维空间坐标系中所处的位置坐标。

步骤S204,根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围。

根据第一位置和第二位置,服务器可以计算出目标三维场景中与目标事件的事件场景所对应的目标区域范围,该目标区域范围可以是覆盖第一位置和第二位置的区域范围,或者,可以是与第一位置和/或第二位置的最近距离在目标距离阈值范围内的区域范围。

以目标三维场景为前述目标游戏场景为例,为了确定目标区域范围,服务器可以根据第一位置和第二位置确定出回合战斗的战斗场景的战场中心点(事件场景的中心点的一种示例)、战场方向(事件场景的方向的一种示例)、战场范围(目标区域范围的一种示例)等,然后按照战场中心点、战场方向、战场范围等确定战斗场景在目标游戏场景中所覆盖到的区域范围,即,目标区域范围。

战场中心点、战场方向和/或战场范围与目标位置(第一位置和第二位置)的对应关系可以使用配置信息进行预先配置,例如,可以预先配置战场中心点与目标位置的对应关系,战场方向与目标位置的对应关系,或者,战场范围与目标位置的对应关系。或者,战场方向可以从穿过战场中心点的各个方向上中选取出,战场范围的区域形状(例如,圆形,正方形,椭圆形等等)、区域大小等可以预先设定。又或者,战场中心点和战场方向可以根据目标位置、触发道具的位置等进行确定,战场范围可以根据对战角色的数量、目标位置、触发道具的位置、场景半径、场景的边界与战场中心点之间的关联关系等进行确定。

需要说明的是,对于非玩家角色的对战方,如果该对战方是在触发道具被触发之后出现的,则可以将触发道具的位置作为该对战方的位置。目标区域范围是目标三维场景中的目标区域地形范围,也就是说,该范围是三维场景中的地形范围,不仅包含了区域边界,还包含了该区域范围内的三维地形信息。

步骤S206,通过物理检测获得目标区域范围内的目标物件集合,其中,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合。

事件场景中除了显示有目标区域范围的地形等信息以外,还可以显示有与目标区域范围中绑定有碰撞体的物理体物件所对应的战场物件。

以目标三维场景为前述目标游戏场景为例,回合制战斗的战斗场景中可以显示有战场物件集合,一个战场物件可以与位于目标区域范围内、并且绑定有碰撞体的一个物理体物件(即,一个目标物件)匹配,即,战斗场景中的战场物件集合与目标区域范围内的目标物件集合匹配。战场物件与目标物件匹配可以是指:目标物件的类型和形态属性与对应的战场物件的类型和形态属性一致;目标物件在目标区域范围内的位置坐标与对应的战场物件在战斗场景中的位置坐标一致。

可选地,在创建回合制战斗的战斗场景时,服务器可以确定目标游戏场景中位于目标区域范围内的目标物件集合,也就是,目标区域范围内绑定有碰撞体的物理体物件的集合,例如,通过物理检测的方式获得战场范围内(目标区域范围)内的物理体物件,得到目标物件集合。

目标物件集合中包含一个或多个物理体物件,每个物理体物件均为绑定有碰撞体的物件。上述物理体物件可以是由相关人员在进行游戏制作时创建的。

例如,如图3所示,美术制作人员可以制作游戏场景(例如,目标游戏场景),并为场景物件绑定相应的碰撞体,场景物件是指游戏场景中的全部或者部分物件,例如,地形,石头,桌子,凳子,树木等。

对于制作的游戏场景,美术制作人员可以使用其终端设备将碰撞体的详细数据(Position,Rotation,Scale,Size等)导出,并对物理体进行编号。物理体是指带有碰撞体的物件,例如,可以站上去的石头、桌子、木箱等,可以不包括不能造成阻挡的物件,比如,草,水等。

服务器开服时可以加载数据并在服务器创建出与客户端相同的碰撞场景,碰撞场景是指使用场景中的物理体在物理引擎中模拟出一个和客户端资源相同的场景,可以用于检测角色站立点高度、技能射线检测等物理操作。

为了确定目标物件集合,服务器可以根据目标游戏场景中的每个物理体物件的位置信息,确定位于目标区域范围内的目标物件,得到目标物件集合。例如,服务器可以确定整个目标游戏场景中绑定有碰撞体的物理体物件。绑定有碰撞体的物理体物件可以通过物理体物件列表进行记录,并在回合制游戏运行的过程中进行维护。对于副本场景,可以为每个进入了该副本场景的玩家角色或者玩家角色组生成一个副本场景的副本,并分别记录各个副本场景中包含的物理体物件列表。物理体物件列表可以用于表示物理体物件的物件标识与物件属性之间的对应关系,物件属性可以包括但不限于以下之一:物件类型,物件形态属性,位置属性等等。

一个游戏场景中具有碰撞体的物理体物件可以是服务器根据与本游戏场景对应的物理体物件列表(或者,其他能够记录物理体物件的数据形式)确定的,也可以服务器通过物理检测的方式实时确定的,还可以通过其他方式确定的,本实施例中对此不作限定。

在确定出目标游戏场景中的一个或多个物理体物件之后,服务器可以确定各个物理体物件的位置信息,物理体物件的位置信息用于表示物理体物件在目标游戏场景中的位置。根据每个物理体物件的位置信息,服务器可以确定位于目标区域范围内的一个或多个目标物件,得到目标物件集合。

除了位置属性外,服务器还可以获取各个目标物件的物件类型、形态属性、碰撞体属性(碰撞体的类型,碰撞体在目标物件中的位置等)等,以便在创建战斗场景时生成战场物件集合。

步骤S208,按照目标区域范围和目标物件集合,生成事件场景,其中,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应。

按照目标区域范围和目标物件集合,服务器可以生成目标事件的事件场景,事件场景为覆盖目标区域范围的三维场景,也就是,事件场景是三维场景,该三维场景的地形信息等与目标区域范围的地形信息等一致,并且,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应,上述一一对应是指战场物件与对应的物理体物件在类型、形态属性、位置坐标等数据上是一样的。

以目标三维场景为前述目标游戏场景为例,在确定出目标区域范围和目标物件集合之后,服务器可以按照目标区域范围创建与回合制战斗对应的战斗场景,创建的战斗场景可以与目标区域范围的场景一致(完全一致,或者,基本一致),例如,至少战斗场景的地形信息与目标区域范围的地形信息匹配,并且,战斗场景中包含有战场物件集合,战场物件集合中的一个战场物件与目标物件集合中的一个目标物件匹配。

在创建出战斗场景之后,服务器可以将创建的战斗场景发送至目标对象的客户端进行显示。如果回合制战斗涉及到多个玩家角色,则服务器可以分别向各个玩家角色的客户端同步回合制战斗的战斗场景,以控制在目标游戏场景的目标区域范围上显示战斗场景。

除了战斗场景以外,服务器还可以计算出战斗场景中所有的站位点,并确定战斗场景中多个对战角色中的每个对战角色的入战位置,每个对战角色可以通过角色标识来表示,每个对战角色的入战位置可以通过位置标识(例如,位置坐标)来表示。上述站位点是指:进入回合制战斗后,角色起始允许站到的位置。

服务器可以获取每个对战方的对战角色列表。例如,第一对战方可以对应于包含多个对战角色中属于第一对战方的对战角色的第一角色列表,第二对战方可以对应于包含多个对战角色中属于第二对战方的对战角色的第二角色列表。服务器可以分别计算出第一角色列表中各个对战角色的第一入站位置和第二角色列表中各个对战角色的第二入站位置,并通知客户端第一角色列表以及对应的第一入站位置和第二角色列表以及对应的第二入站位置,客户端可以将第一角色列表中的对战角色和第二角色列表中的对战角色进行入战预表现。

可选地,在本实施例中,由服务器执行回合制游戏的游戏处理逻辑,计算回合制游戏的游戏数据,而客户端利用服务器计算的数据进行游戏表现(例如,展示生成战场的动画)。对于由客户端单独计算游戏数据并进行游戏表现的场景、以及客户端和服务器共同计算游戏数据、并由客户端进行游戏表现的场景,本实施例中的三维场景的生成方法同样适用。

目标对象的客户端可以对多个对战角色进行入战预表现,并显示回合制战斗的战斗场景,以及回合制战斗的游戏画面。多个对战角色可以采用回合制的方式进行对战,直到某一个对战方的所有对战角色处于死亡状态,回合制战斗结束,退出战斗场景,并重新回到目标游戏场景。

需要说明的是,事件场景是独立于目标三维场景的一个场景,对于参与目标事件的对象的客户端,事件场景显示在目标三维场景的目标区域范围之上(覆盖目标三维场景中的一定区域范围),从而实现原地、无缝进入到事件场景,而对于目标三维场景中的其他对象的客户端,则不会显示出该事件场景。

还需要说明的是,目标对象的客户端的屏幕游戏画面(2D)所显示的游戏画面除了回合制战斗的战斗区域(可以显示全部或者部分的战斗区域),还包含了目标游戏场景中的其他区域,显示的战斗区域和目标游戏场景中的其他区域无缝衔接。此外,在战场区域生成后,视角可以有旋转,屏幕游戏画面会显示出目标游戏场景中之前看不到的区域。本实施例中对此不作限定。

通过上述步骤S202至步骤S208,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;通过物理检测获得目标区域范围内的目标物件集合,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;按照目标区域范围和目标物件集合,生成事件场景,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应,解决了相关技术中的事件场景的生成方式存在由于生成的事件场景过于单调导致的用户视觉体验差的问题,丰富了事件场景的视觉信息,提高了用户的视觉体验。

作为一种可选的实施例,根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景对应的目标区域范围包括:

S11,根据第一位置和第二位置,确定事件场景的目标中心点和目标方向;

S12,根据目标中心点和目标方向,计算目标三维场景中与目标事件的事件场景对应的目标区域范围。

目标区域范围可以是根据区域中心点(事件中心点)和区域方向(事件场景方向)确定的,服务器可以根据第一位置和第二位置,确定事件场景的目标中心点和目标方向(目标区域方向),并根据目标中心点和目标方向,计算目标三维场景中与目标事件的事件场景对应的目标区域范围。

以目标三维场景为前述目标游戏场景为例,为了生成战斗场景,服务器可以根据第一位置和第二位置,确定战斗场景的目标战场中心点(目标中心点的一种示例)和目标战场方向(目标方向的一种示例)。上述目标战场中心可以是第一位置或第二位置,或者,根据第一位置和第二位置所确定的一个位置,例如,上述目标战场方向可以是一个对战方到另一个对战方的方向,也可以是根据该方向确定的方向,还可以是从穿过目标战场中心点的各个方向中选取出的,选取的方式可以是战场可用比例,和战场可视比例等等。

可选地,服务器可以将以下至少之一的位置确定为目标战场中心点:第一位置,第二位置,第一位置和第二位置的中心点,根据第一位置、第二位置、和/或第一位置和第二位置的中心点所确定的位置。服务器可以将以下至少之一的方向确定为目标战场方向:第一位置到第二位置的第一方向,第一方向沿某一坐标轴旋转一定角度后对应的方向,第二位置到第一位置的第二方向,第二方向沿某一坐标轴旋转一定角度后对应的方向,从穿过战场中心点的各个方向上中选取出的一个方向,选取的依据可以是战场可用比例、战场可视比例等等。

例如,目标事件为攻击方组和受击方组(被攻击方组)之间的回合制战斗,攻击方组的位置为P1和受击方组的位置为P2,可以根据P1和P2确定战斗场景的战场中心和战场方向。

根据目标战场中心点和目标战场方向,服务器可以确定战斗场景在目标游戏场景中所覆盖到的目标区域范围。战斗场景的战场范围可以是以目标战场中心点为中心,以目标战场方向为一个轴、或者对角线的多边形,例如,正方形、梯形等等,而目标区域范围可以是该战场范围在目标游戏场景中所覆盖到的区域范围。

通过本实施例,根据战斗双方的位置确定战斗场景的战场中心点和战场方向,可以简化战斗场景的确定流程,同时提高战斗场景确定的准确性。

作为一种可选的实施例,根据第一位置和第二位置,确定事件场景的目标中心点和目标方向包括:

S21,根据第一位置和第二位置,计算事件场景的多个候选参数对,其中,多个候选参数对中的一个候选参数对包含一个候选中心点和一个候选方向;

S22,计算与多个候选参数对对应的多个候选区域范围,其中,多个候选参数对与多个候选区域范围一一对应;

S23,计算与多个候选区域范围中的每个候选区域范围对应的目标区域参数,其中,目标区域参数用于表示每个候选区域范围与目标事件的匹配程度;

S24,按照目标区域参数,从多个候选参数对中选取出目标参数对,其中,目标参数对包括目标中心点和目标方向。

以目标三维场景为前述目标游戏场景为例,为了确定回合制战斗的战斗场景的战场中心点和战场方向,服务器可以首先根据第一位置和第二位置计算出战斗场景的多个候选参数对,每一个候选参数对可以包含一个候选中心点(例如,候选战场中心点)和一个候选方向(例如,候选战场方向),不同候选参考对的候选中心点可以相同,也可以不同,不同候选参考对中的候选方向可以相同,也可以不同,本实施例中对此不作限定。

服务器中可以预先配置战场区域的区域范围与战场中心点和战场方向之间的对应关系,即,根据战场中心点和战场方向确定战场范围的规则。对于每个候选参数对,服务器可以确定与该候选参数对对应的候选战场范围(候选区域范围的一种示例),从而得到与多个候选参数对对应的多个候选战场范围,每个候选参数对对应于一个候选战场范围。

对于多个候选战场范围中的每个候选战场范围,服务器可以确定与各个候选战场范围对应的目标区域参数,该目标区域参数可以用于表示该候选战场范围与回合制战斗的匹配程度,即,用于表示该候选战场范围作为目标回合制战斗的战斗场景的适宜程度。

按照目标区域参数,服务器可以从多个候选参数对中选取出目标参数对,也就是,目标战场中心点(目标中心点的一种示例)和目标战场方向(目标方向的一种示例)。选取目标参数对的方式可以是:选取与回合制战斗的匹配程度最高的候选参数对作为目标参数对,也可以是从与回合制战斗的匹配程度高于一定阈值的一个或多个候选参数中选取一个作为目标参数对。

通过本实施例,通过确定事件场景的多个候选中心点和候选方向的组合、并按照目标区域参数选取出目标中心点和目标方向,可以提高事件中心点和事件场景方向确定的合理性,提高对象对于目标事件的事件体验。

作为一种可选的实施例,根据第一位置和第二位置,计算出事件场景的多个候选参数对包括:

S31,计算第一中心点和第一方向,其中,第一中心点为第一位置和第二位置的中心点,第一方向为第一位置到第二位置的方向;

S32,计算第一位置和第二位置之间的目标距离;

S33,在目标距离大于或者等于第一距离阈值、且小于或者等于第二距离阈值的情况下,计算第一中心点按照第一方向平移第一长度后所对应的第二中心点、以及第一中心点按照第二方向平移第一长度后所对应的第三中心点,其中,第二方向为第一方向的反方向;

S34,确定包含第一中心点和第一方向的第一参数对、包含第二中心点和第一方向的第二参数对、以及包含第三中心点和第一方向的第三参数对,得到多个候选参数对。

以目标三维场景为前述目标游戏场景为例,在确定多个候选参数对时,服务器可以首先确定第一位置(P1)和第二位置(P2)的中心点,即,第一中心点(C),并计算第一位置到第二位置的第一方向(P2-P1,V)以及第一位置与第二位置之间的目标距离。

如果目标距离大于或者等于第一距离阈值(例如,战场允许的最小距离值)、且小于或者等于第二距离阈值(例如,战场允许的最大距离值),服务器可以将第一中心点沿着第一方向移动第一长度后对应的点,作为第二中心点(C1),将第一中心点沿着第一方向的反方向(P1-P2,-V)移动第一长度后对应的点,作为第三中心点(C2)。

在确定出第一中心点、第二中心点和第三中心点之后,服务器可以将第一中心点、第二中心点和第三中心点分别作为战场中心点,第一方向为战场方向,得到三个候选参数对。

例如,服务器可以通过P2-P1(P1为攻击者的位置;P2为受击者的位置)计算出自身(P1)到目标(P2)的向量D,并计算出向量D的模值|D|以及单位向量V。

服务器可以计算P1和P2的中心点坐标C,将C按V平移一个固定长度(第一长度)得到C1,以及,将C按照-V平移一个固定长度得到C2,将C、C1和C2作为战场中心点,V作为战场方向,得到三个候选参数对:(C,V)、(C1,V)、(C2,V),并分别生成对应的战场区域范围(即,候选战场范围)。

通过本实施例,如果事件双方的距离大于一个距离阈值、且小于另一个距离阈值,根据事件双方位置的中心点以及一个对象组到另一个对象组的方向为事件场景方向获取多个候选参数对,可以提高候选参数对获取的便捷性和合理性。

作为一种可选的实施例,在计算第一位置和第二位置之间的目标距离之后,上述方法还包括:

S41,在目标距离小于第一距离阈值、或者大于第二距离阈值的情况下,计算第二位置沿着第二方向移动第二长度后对应的第四中心点、第二位置沿着第一方向移动第二长度后对应的第五中心点、第二位置沿着第三方向移动第二长度后对应的第六中心点、以及第二位置沿着第四方向移动第二长度后对应的点第七中心点,其中,第四方向为第一方向沿着第一坐标轴旋转第一角度后对应的方向,第三方向是第四方向的反方向;

S42,确定包含第四中心点和第一方向的第四参数对、包含第五中心点和第二方向的第五参数对、包含第六中心点和第四方向的第六参数对、包含第七中心点和第三方向的第七参数对,得到多个候选参数对。

以目标三维场景为前述目标游戏场景为例,如果目标距离小于第一距离阈值、或者大于第二距离阈值,服务器可以基于某一个对战方的位置(例如,第一位置,第二位置)按照预设规则确定出多个候选战场中心点。

可选地,服务器可以将第二位置(P2)沿着第二方向(-V)移动第二长度后对应的点作为第四中心点(C3),将第二位置沿着第一方向(V)移动第二长度后对应的点作为第五中心点(C4)。

服务器还可以将第一方向沿着第一坐标轴旋转第一角度(例如,沿y旋转90°)后对应的方向作为第四方向(V1),将第四方向的反方向作为第三方向(-V1)。服务器可以将第二位置沿着第三方向移动第二长度后对应的点作为第六中心点(C5),将第二位置沿着第四方向移动第二长度后对应的点作为第七中心点(C6)。

服务器可以将第四中心点(C3)作为候选战场中心点、将第一方向(V)作为候选战场方向,得到一个候选参数对(第四参数对),将第五中心点(C4)作为候选战场中心点、将第二方向(-V)作为候选战场方向,得到一个候选参数对(第五参数对),将第六中心点(C5)作为候选战场中心点、将第四方向(-V1)作为候选战场方向,得到一个候选参数对(第六参数对),将第七中心点(C6)作为候选战场中心点、将第三方向(V1)作为候选战场方向,得到一个候选参数对(第七参数对),进而得到四个候选参数对。

例如,如果对战双方的距离|D|小于战场允许的最小距离值、或者大于战场允许的最大距离值,服务器可以以P2为起始点,分别计算:C3=P2-V*k,C4=P2+V*k。服务器可以将V沿y轴旋转90°后得到V1,以P2为起始点,分别计算:C5=P2-V1*k,C6=P2+V1*k,其中,k为一个固定值,将C3、C4、C5和C6作为战场中心点,将V、-V、V1、-V1作为战场方向,得到四个候选参数对,并生成对应的战场区域范围。

通过本实施例,如果事件双方的距离小于一个距离阈值、或者大于另一个距离值,根据某一个事件方的位置以及一个事件方到另一个事件方的方向为事件场景方向获取多个候选参数对,可以提高候选参数对获取的便捷性和合理性。

作为一种可选的实施例,在根据第一位置和第二位置,计算事件场景的多个候选参数对之前,上述方法还包括以下至少之一:

S51,在第一位置和第二位置之间的目标距离小于第一距离阈值的情况下,按照目标步长控制第一位置沿着第二方向逐步移动,直到第一位置不满足允许移动条件,其中,第二方向为第二位置到第一位置的方向;

S52,按照目标步长控制第二位置沿着第一方向逐步移动,直到第二位置不满足允许移动条件,其中,第一方向为第一位置到第二位置的方向;

其中,允许移动条件为:移动前的位置高度与移动后的位置高度之间的高度差值的绝对值大于或者等于目标高度差阈值、或者移动后的目标距离大于或者等于第一距离阈值。

以目标三维场景为前述目标游戏场景为例,如果第一位置和第二位置之间的距离(即,目标距离)小于第一距离阈值,服务器可以尝试控制第一位置(第一位置点)和/或第二位置(第二位置点)进行移动,确定是否可以将两者之间的距离调整到大于或者等于第一距离阈值。

服务器可以预先配置位置移动的允许移动条件,即,移动前的位置高度和移动后的位置高度的高度差值的绝对值小于一个高度差阈值(目标高度差阈值);移动后的目标距离小于或者等于第一距离阈值。

服务器还可以预先配置每次位置移动的步长,即,目标步长。服务器可以控制至少一个位置按照远离另一个位置的方向移动,每次移动的步长为目标步长,如果满足允许移动条件,则可以移动,直到某次移动不满足允许移动条件。

两个位置的移动可以是分别进行的,即,某一个位置按照目标步长一直移动,直到某次移动不满足允许移动条件。如果一个位置移动完成之后,两个位置的距离仍小于(或者等于)第一距离阈值,则可以控制另一个位置按照同样的方式移动,直到某次移动不满足允许移动条件。

两个位置的移动可以是同时或者轮流进行的,即,同时或者轮流移动两个位置,直到某次移动不满足允许移动条件。

可选地,服务器可以按照目标步长控制第一位置沿着第二方向移动,直到某次移动不满足允许移动条件,也可以按照目标步长控制第二位置沿着第一方向移动,直到某次移动不满足允许移动条件。上述第一位置的移动和第二位置的移动可以是先后执行的,也可以是同时或者轮流执行的。

例如,服务器如果判断|D|小于战场允许的最小距离值,可以先将攻击方组的位置(P1)沿-V方向逐步移动一小段距离,计算出移动之后的高度值与移动之前的高度值的高度差。如果高度差小于单步最大增加的高度值(目标高度差阈值),则将攻击方组的位置P1设置到移动之后的位置,并继续判断新的|D|值,如果依然小于战场允许的最小距离值,则继续后移。如果后移增加的高度大于单步最大增加高度值,则开始用同样的方式后移受击方组的位置(P2),直到某次后移增加的高度大于单步最大增加高度值,或者,双方的距离大于战场允许的最小距离值。

通过本实施例,通过控制事件至少一方的位置后移,以满足双方的距离大于事件场景允许的最小距离值,可以提高事件场景生成的合理性,进而提高用户的使用体验。

作为一种可选的实施例,计算与多个候选参数对对应的多个候选区域范围包括:

S61,从多个候选参数对中依次选取各个候选参数对,得到当前候选参数对,其中,当前候选参数对包含当前候选中心点和当前候选方向;

S62,根据当前候选中心点和当前候选方向,计算出四个当前参考顶点,其中,四个当前参考顶点包括:当前候选中心点沿着当前候选方向移动第三长度后所对应的第一参考顶点,当前候选中心点沿着当前候选方向的反方向移动第三长度后所对应的第二参考顶点,当前候选中心点沿着第五方向移动第三长度后所对应的第三参考顶点,当前候选中心点沿着第五方向的反方向移动第三长度后所对应的第四参考顶点,第五方向为当前候选方向沿着第二坐标轴旋转第二角度后所对应的方向;

S63,按照四个当前参考顶点,计算出以四个当前参考顶点作为顶点的当前参考矩形区域;

S64,将当前参考矩形区域投射到目标三维场景中,得到与当前候选参数对所对应的当前候选区域范围,其中,多个候选区域范围包括当前候选区域范围。

以目标三维场景为前述目标游戏场景为例,为了确定各个候选参数对的候选战场范围(候选区域范围的一种示例),服务器可以从多个候选参数对中依次选取候选参数对作为当前候选参数对,当前候选参数对包含当前候选中心点和当前候选战场方向(当前候选方向的一种示例)。

当前候选参数对与当前候选战场范围(当前候选区域范围的一种示例)对应。服务器可以但不限于通过以下方式确定当前候选战场范围的四个当前参考顶点:

将当前候选中心点沿着当前候选战场方向移动第三长度(r)后所对应的点,作为第一当前参考顶点;

将当前候选中心点沿着当前候选战场方向的反方向移动第三长度后对应的点,作为第二当前参考顶点;

将当前候选中心点沿着第五方向移动第三长度后对应的点,作为第三当前参考顶点,而第五方向为当前候选战场方向沿着第二坐标轴旋转第二角度(例如,沿y轴旋转90°)后对应的方向;

将当前候选中心点沿着第五方向的反方向移动第三长度后对应的点,作为第四当前参考顶点。

在得到四个当前参考顶点之后,服务器可以按照四个当前参考顶点,计算出以四个当前参考顶点作为顶点的当前参考矩形区域,将当前参考矩形区域投射到目标三维场景中,得到与当前候选参数对所对应的当前候选区域范围。

例如,对于回合制战斗的战斗场景,生成战场区域范围(例如,候选区域范围,目标区域范围)的方式可以是:将战场方向V沿y轴旋转90°获得V1,通过战场中心点C以及战场对角线半长x计算出战场矩形的4个顶点,即,R1=C+x*V,R2=C+x*V1,R3=C-x*V,R4=C-x*V1。战场的形状可以是一个旋转了45度的矩形(例如,当前参考矩形区域),对角线x是指矩形的对角线长度,该值可以预先设定,也可以根据第一位置和第二位置确定。

通过本实施例,通过将候选区域范围设定为矩形区域在目标三维场景上的投射,可以提高候选区域范围确定的效率,进而提升目标事件的处理效率。

作为一种可选的实施例,计算与多个候选区域范围中的每个候选区域范围对应的目标区域参数包括:

S71,计算每个候选区域范围的区域可用比例,其中,区域可用比例用于表示每个候选区域范围中允许用于事件场景的范围占每个候选区域范围的比例;

S72,计算每个候选区域范围的区域可视比例,其中,区域可视比例用于表示每个候选区域范围中与目标事件的摄像机所在的位置之间没有阻挡的区域占每个候选区域范围的比例;

其中,目标区域参数包括区域可用比例和区域可视比例。

目标区域参数包括以下至少之一:区域可用比例和区域可视比例,服务器可以按照候选区域范围的区域可用比例和/或区域可视比例,从所述多个候选参数对中选取出目标参数对。

服务器可以分别计算每个候选区域范围的区域可用比例,区域可用比例用于表示每个候选区域范围中允许用于事件场景的范围占每个候选区域范围的比例。以目标三维场景为前述目标游戏场景为例,对于一个候选战场范围,服务器可以计算该候选战场范围的战场可用比例(区域可用比例的一种示例),战场可用比例用于表示该候选战场范围中允许用于回合制战斗的战斗场景的范围占该候选区域范围的比例。

服务器可以分别计算每个候选区域范围的区域可视比例,区域可视比例用于表示每个候选区域范围中与目标事件的摄像机所在的位置之间没有阻挡的区域占每个候选区域范围的比例。以目标三维场景为前述目标游戏场景为例,对于一个候选战场范围,服务器可以计算该候选战场范围的战场可视比例(区域可视比例的一种示例),战场可用比例用于表示该候选战场范围中与回合制战斗的摄像机所在的位置之间没有阻挡的区域占该候选战场范围的比例。

通过本实施例,通过区域可用比例和区域可视比例作为选取事件场景的中心点和方向的依据,可以提高事件场景的中心点和方向选取的合理性,进而提高事件场景生成的合理性。

作为一种可选的实施例,计算每个候选区域范围的区域可用比例包括:

S81,将每个候选区域范围分割成多个区域网格;

S82,通过物理检测计算出多个区域网格中的每个区域网格的最大高度;

S83,记录多个区域网格中的可用网格的数量,其中,可用网格内为多个区域网格中,对应的最大高度处于事件场景的可用高度范围的区域网格;

S84,将可用网格的数量与多个区域网格的数量之间的比例,确定为区域可用比例。

以目标三维场景为前述目标游戏场景为例,对于一个候选战场范围,服务器可以将该候选战场范围分割成多个区域网格(例如,方形网格等)。对于每个区域网格,服务器可以通过物理检测计算出多个区域网格中的每个区域网格的最大高度。区域网格的形状和数量可以根据需要进行配置,例如,战场可用比例的精度要求越高,划分的区域网格的形状越小,区域网格的数量越多,反之,划分的区域网格的形状越大,区域网格的数量越少,本实施例中对此不作限定。

服务器可以将区域网格的最大高度与候选战场中心点之间的高度差值的绝对值小于或者等于一个高度差阈值(第一高度差阈值)的区域网格,记录为可用网格,并记录多个区域网格中的所有可用网格的数量,并将可用网格的数量与多个区域网格的总数量之间的比例,确定为该候选战场范围的战场可用比例(区域可用比例的一种示例)。

例如,计算战场可用比例的方式可以是:以战场中心点(例如,C)为原点,计算出战场高度的可用范围,可以将战场中心的高度值加减一个固定数值作为战场高度的可用范围。可以将战场(例如,候选战场范围)中的范围分割成一定大小的格子(区域网格),并通过物理检测计算出该格子的最大高度h,判断该格子是否在此范围内,如果在则记录为可用格子,最终计算出:战场可用比例=可用格子数÷总格子数×100%。

通过本实施例,通过将候选区域范围划分为多个区域网格,并根据可用区域网格的数量与多个区域网格的总数量确定区域可用比例,可以提高区域可用比例计算的灵活性,提升区域可用比例计算的效率。

作为一种可选的实施例,计算每个候选区域范围的区域可视比例包括:

S91,以每个候选区域范围的候选中心点和候选方向进入目标事件之后目标事件的摄像机所在的位置;

S92,对每个候选区域范围进行多次采样,得到每个候选区域范围的多个采样点;

S93,通过射线检测的方式确定多个采样点中与摄像机所在的位置之间没有阻挡的可视采样点;

S94,将可视采样点的数量与多个采样点的数量之间的比例,确定为区域可视比例。

以目标三维场景为前述目标游戏场景为例,对于一个候选战场范围,服务器可以以该候选战场范围的候选中心点和候选战场方向计算入战后回合制战斗的摄像机所在的位置,计算的方式可以参考相关技术,本实施例中对此不作赘述。

服务器可以对该候选战场范围进行多次采样,得到该候选战场范围的多个采样点。采样点可以是对候选战场范围进行均匀采样得到的,均匀采样是指:采样点在候选战场范围中的分布是均匀的。采样点的数量可以根据需要进行配置,例如,战场可视比例的精度要求越高,采样点的数量越多,反之,采样点的数量越少,本实施例中对此不作限定。

对于一个采样点,服务器可以通过射线检测的方式确定该采样点中与摄像机所在的位置之间是否有阻挡,并将没有阻挡采样点记录为可视采样点,并记录多个采样点中的所有可视采样点的数量,并将可视采样点的数量与多个采样点的总数量之间的比例,确定为该候选战场范围的战场可视比例(区域可视比例的一种示例)。

例如,计算战场可视比例的方式可以是:以当前战场中心点(例如,当前候选战场中心点)和战场方向(例如,当前候选战场方向)计算出入战后摄像机(回合制战斗的摄像机)所在的默认位置,并在战场内(当前候选战场范围)采样若干点,使用射线检测判断摄像机位置到战场采样点是否有阻挡,如果没有阻挡则记录为可视点,最终计算出:战场可视比例=可视点数÷总采样点数×100%。

通过本实施例,通过对候选区域范围内的多个采样点进行射线检测,确定多个采样点中的可视采样点,可以提高区域可视比例计算的灵活性,提升区域可视比例计算的效率。

作为一种可选的实施例,按照目标区域参数,从多个候选参数对中选取出目标参数对包括:

S101,从多个候选参数对中选取多个候选参数对中区域可用比例最大、且区域可视比例大于或者等于目标比例阈值的候选参数对,得到目标参数对。

以目标三维场景为前述目标游戏场景为例,对于多个候选参数对,服务器可以按照目标区域参数,从多个候选参数对中选取出战场可用比例最大、并且战场可视比例大于或者等于目标比例阈值(例如,80%,90%等)的候选参数对,作为目标参数对,从而得到回合制战斗的战斗场景的目标战场中心点和目标战场方向。

例如,可以取战场可用比例最大并且可视比例大于一个阈值的战场中心点和战场方向,作为将要生成战场的战场中心点和战场方向。

可选地,也可以将战场可用比例和战场可视比例进行加权求和,得到与每个候选参数对对应的匹配程度值,按照匹配程度值从多个候选参数对中选取出目标参数对,例如,选取匹配程度值最大的候选参数对作为目标参数对,或者,选取匹配程度值大于或者等于匹配程度阈值的候选参数对作为目标参数对,本实施例中对此不作限定。

通过本实施例,通过选取区域可用比例最大并且区域可视比例大于一个阈值的候选中心点和候选方向,作为将要生成事件场景的中心点和方向,可以在保证事件场景具有一定可视程度的同时,具有较高的可用性,从而提高事件处理过程的流畅性。

可选地,在本实施例中,在选取目标中心点和目标方向时,已经计算过各个候选中心点和候选方向所对应的候选区域范围,因此,在按照目标中心点和目标方向确定目标区域范围时,可以将已经计算出的与目标中心点和目标方向对应的候选区域范围,作为与目标事件对应的目标区域范围,本实施例中对此不作具体限定。

可选地,在本实施例中,目标三维场景可以是目标游戏场景,目标事件可以为第一对象组(第一对战方)和第二对象组(第二对战方)之间的回合制战斗,事件场景可以为回合制战斗的战斗场景,前述已经进行过描述的,在此不做赘述。

作为一种可选的实施例,在按照目标区域范围和目标物件集合,生成事件场景之后,上述方法还包括:

S111,在回合制战斗的过程中,检测到在回合制战斗中所释放的目标技能;

S112,根据目标技能的技能配置范围和战斗场景的边界范围,确定目标技能的技能释放范围,其中,技能释放范围处于战斗场景的边界范围以内。

在回合制战斗的过程中,在轮到某一对战角色(例如,玩家控制的角色,NPC等)释放技能时,该对战角色可以释放出技能(例如,目标技能),释放的技能可以具有配置的默认技能范围,即,技能配置范围,服务器可以检测到在回合制战斗中所释放的目标技能,并计算出该目标技能的技能配置范围。

需要说明的是,技能配置范围可以是以技能攻击点为中心的一定区域范围(半径为r的区域范围),或者,也可以是其他的技能配置范围的确定方式,本实施例中对此不作限定。

在回合制战斗中释放的技能需要保证不超出回合制战斗的战斗场景的边界范围,服务器可以根据目标技能的技能配置范围和战斗场景的边界范围,确定目标技能的技能释放范围,该技能释放范围处于战斗场景的边界范围以内,即,不超出战斗场景的边界范围。

通过本实施例,根据目标技能的技能配置范围和战斗场景的边界范围确定目标技能的技能释放范围,以保证技能释放范围不超出战斗场景的边界范围,可以保证技能释放的合理性,避免回合制战斗的过程中出现错误响应。

作为一种可选的实施例,在根据目标技能的技能配置范围和战斗场景的边界范围,确定目标技能的技能释放范围之后,上述方法还包括:

S121,对技能释放范围执行范围检测,确定目标技能的攻击目标和目标战场物件,其中,目标战场物件为战场物件集合中处于释放范围内的战场物件;

S122,对攻击目标执行与目标技能对应的第一攻击操作,以及对目标战场物件执行与目标技能对应的第二攻击操作。

如果目标技能为攻击技能,在确定出目标技能的技能释放范围之后,服务器可以对该技能释放范围执行范围检测,确定该技能释放范围是否有对战角色,是否有战场物件等。

如果检测到该技能释放范围内包含非本对战方的战斗角色,可以将其确定为目标技能的攻击目标,并对该攻击目标执行与目标技能对应的第一攻击操作。攻击目标在受到第一攻击操作之后,服务器可以计算第一攻击操作对攻击目标所产生的攻击效果,例如,击退,掉血,掉蓝,等等,并将计算出的游戏数据同步到各个客户端上进行显示,以在客户端上显示对应的游戏画面。

如果检测到该技能释放范围内包含战场物件(例如,箱子,石头等),可以将其确定为目标战场物件,并对该目标战场物件执行与目标技能对应的第二攻击操作。目标战场物件在受到第二攻击操作之后,服务器可以计算第二攻击操作对目标战场物件所产生的攻击效果,例如,晃动,碎裂,等等,并将计算出的游戏数据同步到各个客户端上进行显示,以在客户端上显示对应的游戏画面。

通过本实施例,通过确定目标技能的攻击目标以及所攻击到的战场物件,并分别对攻击目标和战场物件执行对应的攻击操作,可以提高战斗模拟的真实性,提高用户的视觉体验。

作为一种可选的实施例,对技能释放范围执行范围检测,确定目标技能的攻击目标和目标战场物件包括:

S131,在目标技能包含战场投射物的情况下,对技能释放范围执行射线检测,确定战场投射物的攻击目标、以及处于战场投射物的投射路线上的目标战场物件。

如果目标技能包含战场投射物,服务器可以根据目标技能的技能方向,投射物的物体信息(例如,形状,重量等)计算出战场投射物的技能轨迹,并对技能轨迹进行检测,确定该技能轨迹上的非本对战方的对战角色,将其确定目标技能的攻击目标,还可以确定该技能轨迹上的战场物件,并将其确定为目标战场物件。

例如,战场投射物的技能轨迹为射线,服务器可以对技能释放范围执行射线检测,确定战场投射物的攻击目标、以及处于战场投射物的投射路线上的目标战场物件。

需要说明的是,处于战场投射物的投射路线上的战场物件会对战场投射物和/或投射路线造成影响,例如,改变投射路线,减弱攻击效果等等,本实施例中对此不作限定。

通过本实施例,通过对战场投射物的投射轨迹执行射线检测,确定战场投射物的攻击目标及处于战场投射物的投射轨迹上的战场物件,可以提高战场场景的拟真程度,提高用户的视觉体验。

作为一种可选的实施例,在对攻击目标执行与目标技能对应的第一攻击操作之后,上述方法还包括:

S141,对攻击目标执行碰撞检测,计算第一攻击操作对攻击目标所产生的目标位移;

S142,在攻击目标在目标位移之后处于悬空状态的情况下,计算攻击目标由悬空状态坠落后所处的第三位置;

S143,控制攻击目标由悬空状态坠落到第三位置。

在本实施例中,回合制战斗是跨地形战斗,即,不在一个平面战斗,会有伤害加深,掉落会眩晕、坠崖等等的加成效果。

在对攻击目标执行与目标技能对应的第一攻击操作之后,服务器可以对攻击目标执行碰撞检测,计算第一攻击操作对攻击目标所产生的目标位移,例如,后移一定距离。

如果移动是沿技能方向向后平移,移动前后可能会有一定的高度差。如果移动前的位置高度与移动后的位置高度之间的高度差大于一个高度差阈值(例如,第二高度差阈值),则攻击目标在目标位移之后处于悬空状态,服务器可以计算攻击目标由悬空状态坠落后所处的第三位置,并控制攻击目标由悬空状态坠落到第三位置。

可选地,在控制攻击目标由悬空状态坠落到第三位置之后,可以控制在客户端上显示对应的坠落动画,还可以显示坠落后的眩晕动画。此外,为了便于执行后续的回合制战斗,服务器还可以控制攻击目标由第三位置恢复到其入战位置,本实施例中对此不作具体限定。

通过本实施例,根据战斗场景的场景地形计算攻击目标的坠落位置,可以提高回合制战斗的拟真程度,同时也可以增加回合制战斗的可玩性。

作为一种可选的实施例,在对目标战场物件执行与目标技能对应的第二攻击操作之后,上述方法还包括:

S151,在第二攻击操作为目标技能的战场投射物对目标战场物件执行的攻击操作、且目标战场物件配置为具有目标控制操作的属性的情况下,计算在目标战场物件对战场投射物执行目标控制操作之后战场投射物的目标属性信息;

S152,按照目标属性信息控制战场投射物在战斗场景中进行投射。

一些特殊的法门物件可以对技能操作(例如,技能投射物)的操作属性进行一些特定操作,例如,反弹,分裂,增加攻击等。

如果第二攻击操作为目标技能的战场投射物对目标战场物件执行的攻击操作,并且目标战场物件配置为具有目标控制操作(例如,反弹,分裂,增加攻击等)的属性,服务器可以计算在目标战场物件对战场投射物执行目标控制操作之后战场投射物的目标属性信息,例如,投射物的形状、大小、攻击方向、攻击力度、攻击速度等,又例如,分裂后的战场子投射物的数量,每个战场子投射物的形状、大小、攻击方向、攻击力度、攻击速度等。

通过本实施例,通过配置允许执行特定操作的战场物件,从而实现战场中的物件影响战斗逻辑,丰富回合制战斗的战斗表现,提高用户的游戏体验。

下面结合可选示例对本申请实施例中的三维场景的生成方法进行解释说明。在本示例中,该三维场景的生成方法由服务器执行,目标三维场景为目标游戏场景,目标事件是跨地形的回合制战斗,事件场景为回合制战斗的战斗场景。第一对象组为攻击方组,第一位置为攻击方组中攻击者的位置,第二对象组为被攻击方组,第二位置为受击者的位置,目标事件的中心点和方向为战场中心点和战场方向。

如图4所示,本示例中的三维场景的生成方法可以包括以下步骤:

步骤S402,确定攻击方组的位置P1和被攻击组的位置P2。

步骤S404,根据P1和P2生成战场的战场中心点和战场方向。

服务器可以通过P2-P1计算出自身到目标的向量D,并计算出向量D的模值|D|以及单位向量V;判断|D|是否小于战场允许的最小距离值,如果小于战场允许的最小距离值,执行以下步骤:

将P1沿-V方向逐步移动一小段距离,计算出移动后的高度值与移动之前的高度值的高度差,如果高度差满足允许移动条件(高度差小于单步最大增加的高度值),则将P1设置到移动后的位置,并继续判断新的|D|值,如果依然小于战场允许的最小距离值,则继续后移。如果后移增加的高度不满足允许移动条件,则开始用同样的方式后移P2,直到双方的距离大于战场允许的最小距离值。

如果双方的距离|D|大于战场允许的最小距离值、且小于战场允许的最大距离值,则执行以下步骤:

计算P1和P2的中心点坐标C,将C按V平移一个固定长度得到C1,将C按-V平移一个固定长度得到C2,将C、C1和C2作为战场中心点,V作为战场方向,生成战场区域范围,分别计算战场可用比例以及可视比例。

如果双方的距离|D|小于战场允许的最小距离值、或者双方的距离|D|大于战场允许的最大距离值,则执行以下步骤:

以P2为起始点,分别计算C3=P2-V*k,C4=P2+V*k,以及将V沿y轴旋转90°后得到V1,计算C5=P2-V1*k,C6=P2+V1*k,其中k为一个固定值,将C3、C4、C5、C6作为战场中心点,V、-V、V1、-V1作为战场方向,生成战场区域范围,分别计算战场可用比例以及可视比例。

取得战场可用比例最大并且可视比例大于一个阈值的战场中心点和战场方向,作为将要生成战场的战场中心点和战场方向。

步骤S406,计算出战场区域范围,通过物理检测获得战场范围内的物件集合,进而生成战斗场景。

步骤S408,计算出战场中所有的站位点,并确定入战分组列表(攻击方组的入战分组列表,被攻击组的入战分组列表)中的角色的入战位置。

步骤S410,控制入战分组列表中的角色进入到战场场景中对应的入战位置。

通过本示例,战斗场景和入战之前的场景表现一致,战场中的地形和物件会直接影响到战斗逻辑,战斗增加了空间维度的变化,丰富了战斗场景中显示的信息,提高玩家的游戏体验。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述三维场景的生成方法的三维场景的生成装置。图5是根据本申请实施例的一种可选的三维场景的生成装置的结构框图,如图5所示,该装置可以包括:

(1)第一确定单元502,用于确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;

(2)第一计算单元504,与第一确定单元502相连,用于根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;

(3)获取单元506,与第一计算单元504相连,用于通过物理检测获得目标区域范围内的目标物件集合,其中,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;

(4)生成单元508,与获取单元506相连,用于按照目标区域范围和目标物件集合,生成事件场景,其中,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应。

需要说明的是,该实施例中的第一确定单元502可以用于执行上述步骤S202,该实施例中的第一计算单元504可以用于执行上述步骤S204,该实施例中的获取单元506可以用于执行上述步骤S206,该实施例中的生成单元508可以用于执行上述步骤S208。

通过上述模块,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;通过物理检测获得目标区域范围内的目标物件集合,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;按照目标区域范围和目标物件集合,生成事件场景,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应,解决了相关技术中的事件场景的生成方式存在由于生成的事件场景过于单调导致的用户视觉体验差的问题,丰富了事件场景的视觉信息,提高了用户的视觉体验。

作为一种可选的实施例,第一计算单元504包括:

确定模块,用于根据第一位置和第二位置,确定事件场景的目标中心点和目标方向;

计算模块,用于根据目标中心点和目标方向,计算目标三维场景中与目标事件的事件场景对应的目标区域范围。

作为一种可选的实施例,确定模块包括:

第一计算子模块,用于根据第一位置和第二位置,计算事件场景的多个候选参数对,其中,多个候选参数对中的一个候选参数对包含一个候选中心点和一个候选方向;

第二计算子模块,用于计算与多个候选参数对对应的多个候选区域范围,其中,多个候选参数对与多个候选区域范围一一对应;

第三计算子模块,用于计算与多个候选区域范围中的每个候选区域范围对应的目标区域参数,其中,目标区域参数用于表示每个候选区域范围与目标事件的匹配程度;

选取子模块,用于按照目标区域参数,从多个候选参数对中选取出目标参数对,其中,目标参数对包括目标中心点和目标方向。

作为一种可选的实施例,第一计算子模块包括:

第一计算子单元,用于计算第一中心点和第一方向,其中,第一中心点为第一位置和第二位置的中心点,第一方向为第一位置到第二位置的方向;

第二计算子单元,用于计算第一位置和第二位置之间的目标距离;

第三计算子单元,用于在目标距离大于或者等于第一距离阈值、且小于或者等于第二距离阈值的情况下,计算第一中心点按照第一方向平移第一长度后所对应的第二中心点、以及第一中心点按照第二方向平移第一长度后所对应的第三中心点,其中,第二方向为第一方向的反方向;

确定子单元,用于确定包含第一中心点和第一方向的第一参数对、包含第二中心点和第一方向的第二参数对、以及包含第三中心点和第一方向的第三参数对,得到多个候选参数对。

作为一种可选的实施例,上述装置还包括:

第二计算单元,用于在计算第一位置和第二位置之间的目标距离之后,在目标距离小于第一距离阈值、或者大于第二距离阈值的情况下,计算第二位置沿着第二方向移动第二长度后对应的第四中心点、第二位置沿着第一方向移动第二长度后对应的第五中心点、第二位置沿着第三方向移动第二长度后对应的第六中心点、以及第二位置沿着第四方向移动第二长度后对应的点第七中心点,其中,第四方向为第一方向沿着第一坐标轴旋转第一角度后对应的方向,第三方向是第四方向的反方向;

第二确定单元,用于确定包含第四中心点和第一方向的第四参数对、包含第五中心点和第二方向的第五参数对、包含第六中心点和第四方向的第六参数对、包含第七中心点和第三方向的第七参数对,得到多个候选参数对。

作为一种可选的实施例,上述装置还包括以下至少之一:

第一控制单元,用于在根据第一位置和第二位置,计算事件场景的多个候选参数对之前,在第一位置和第二位置之间的目标距离小于第一距离阈值的情况下,按照目标步长控制第一位置沿着第二方向逐步移动,直到第一位置不满足允许移动条件,其中,第二方向为第二位置到第一位置的方向;

第二控制单元,用于在根据第一位置和第二位置,计算事件场景的多个候选参数对之前,按照目标步长控制第二位置沿着第一方向逐步移动,直到第二位置不满足允许移动条件,其中,第一方向为第一位置到第二位置的方向;

其中,允许移动条件为:移动前的位置高度与移动后的位置高度之间的高度差值的绝对值大于或者等于目标高度差阈值、或者移动后的目标距离大于或者等于第一距离阈值。

作为一种可选的实施例,第二计算子模块包括:

第一选取子单元,用于从多个候选参数对中依次选取各个候选参数对,得到当前候选参数对,其中,当前候选参数对包含当前候选中心点和当前候选方向;

第四计算子单元,用于根据当前候选中心点和当前候选方向,计算出四个当前参考顶点,其中,四个当前参考顶点包括:当前候选中心点沿着当前候选方向移动第三长度后所对应的第一参考顶点,当前候选中心点沿着当前候选方向的反方向移动第三长度后所对应的第二参考顶点,当前候选中心点沿着第五方向移动第三长度后所对应的第三参考顶点,当前候选中心点沿着第五方向的反方向移动第三长度后所对应的第四参考顶点,第五方向为当前候选方向沿着第二坐标轴旋转第二角度后所对应的方向;

第五计算子单元,用于按照四个当前参考顶点,计算出以四个当前参考顶点作为顶点的当前参考矩形区域;

投射子单元,用于将当前参考矩形区域投射到目标三维场景中,得到与当前候选参数对所对应的当前候选区域范围,其中,多个候选区域范围包括当前候选区域范围。

作为一种可选的实施例,第三计算子模块包括:

第六计算子单元,用于计算每个候选区域范围的区域可用比例,其中,区域可用比例用于表示每个候选区域范围中允许用于事件场景的范围占每个候选区域范围的比例;

第七计算子单元,用于计算每个候选区域范围的区域可视比例,其中,区域可视比例用于表示每个候选区域范围中与目标事件的摄像机所在的位置之间没有阻挡的区域占每个候选区域范围的比例;

其中,目标区域参数包括区域可用比例和区域可视比例。

作为一种可选的实施例,第六计算子单元包括:

第一计算次子单元,用于将每个候选区域范围分割成多个区域网格;

第二计算次子单元,用于通过物理检测计算出多个区域网格中的每个区域网格的最大高度;

记录次子单元,用于记录多个区域网格中的可用网格的数量,其中,可用网格内为多个区域网格中,对应的最大高度处于事件场景的可用高度范围的区域网格;

第一确定次子单元,用于将可用网格的数量与多个区域网格的数量之间的比例,确定为区域可用比例。

作为一种可选的实施例,第七计算子单元包括:

第三计算次子单元,用于以每个候选区域范围的候选中心点和候选方向进入目标事件之后目标事件的摄像机所在的位置;

采样次子单元,用于对每个候选区域范围进行多次采样,得到每个候选区域范围的多个采样点;

第二确定次子单元,用于通过射线检测的方式确定多个采样点中与摄像机所在的位置之间没有阻挡的可视采样点;

第三确定次子单元,用于将可视采样点的数量与多个采样点的数量之间的比例,确定为区域可视比例。

作为一种可选的实施例,选取子模块包括:

第二选取子单元,用于从多个候选参数对中选取多个候选参数对中区域可用比例最大、且区域可视比例大于或者等于目标比例阈值的候选参数对,得到目标参数对。

作为一种可选的实施例,目标事件为第一对象组和第二对象组之间的回合制战斗,事件场景为回合制战斗的战斗场景;

上述装置还包括:

第一检测单元,用于在按照目标区域范围和目标物件集合,生成事件场景之后,在回合制战斗的过程中,检测到在回合制战斗中所释放的目标技能;

第三确定单元,用于根据目标技能的技能配置范围和战斗场景的边界范围,确定目标技能的技能释放范围,其中,技能释放范围处于战斗场景的边界范围以内。

作为一种可选的实施例,上述装置还包括:

第二检测单元,用于在根据目标技能的技能配置范围和战斗场景的边界范围,确定目标技能的技能释放范围之后,对技能释放范围执行范围检测,确定目标技能的攻击目标和目标战场物件,其中,目标战场物件为战场物件集合中处于释放范围内的战场物件;

执行单元,用于对攻击目标执行与目标技能对应的第一攻击操作,以及对目标战场物件执行与目标技能对应的第二攻击操作。

作为一种可选的实施例,第二检测单元包括:

检测模块,用于在目标技能包含战场投射物的情况下,对技能释放范围执行射线检测,确定战场投射物的攻击目标、以及处于战场投射物的投射路线上的目标战场物件。

作为一种可选的实施例,上述装置还包括:

第三检测单元,用于在对攻击目标执行与目标技能对应的第一攻击操作之后,对攻击目标执行碰撞检测,计算第一攻击操作对攻击目标所产生的目标位移;

第三计算单元,用于在攻击目标在目标位移之后处于悬空状态的情况下,计算攻击目标由悬空状态坠落后所处的第三位置;

第三控制单元,用于控制攻击目标由悬空状态坠落到第三位置。

作为一种可选的实施例,上述装置还包括:

第四计算单元,用于在对目标战场物件执行与目标技能对应的第二攻击操作之后,在第二攻击操作为目标技能的战场投射物对目标战场物件执行的攻击操作、且目标战场物件配置为具有目标控制操作的属性的情况下,计算在目标战场物件对战场投射物执行目标控制操作之后战场投射物的目标属性信息;

第四控制单元,用于按照目标属性信息控制战场投射物在战斗场景中进行投射。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的又一个方面,还提供了一种用于实施上述三维场景的生成方法的电子装置,该电子装置可以是服务器、终端、或者其组合。

图6是根据本申请实施例的一种可选的电子装置的结构框图,如图6所示,该电子装置包括存储器602和处理器604,该存储器602中存储有计算机程序,该处理器604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;

S2,根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;

S3,通过物理检测获得目标区域范围内的目标物件集合,其中,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;

S4,按照目标区域范围和目标物件集合,生成事件场景,其中,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应。

其中,存储器602可用于存储软件程序以及模块,如本发明实施例中的三维场景的生成方法和装置对应的程序指令/模块,处理器604通过运行存储在存储器602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述三维场景的生成方法。存储器602可包括高速随机存储器,还可以包括非易失性存储器,如一个或多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器602可进一步包括相对于处理器604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器602可以但不限于用于存储游戏应用、资源数据等。

作为一种示例,如图6所示,上述存储器602中可以但不限于包括上述三维场景的生成装置中的第一确定单元502、第一计算单元504、获取单元506及生成单元508。此外,还可以包括但不限于上述三维场景的生成装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置606包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置606为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:连接总线608,用于连接上述电子装置中的各个模块部件。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述三维场景的生成方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,终端设备还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。

根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行三维场景的生成方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S1,确定目标事件的第一对象组的第一位置和第二对象组的第二位置,其中,第一位置为第一对象组在目标三维场景中所处的位置,第二位置为第二对象组在目标三维场景中所处的位置;

S2,根据第一位置和第二位置,计算目标三维场景中与目标事件的事件场景所对应的目标区域范围;

S3,通过物理检测获得目标区域范围内的目标物件集合,其中,目标物件集合为目标区域范围内绑定有碰撞体的物理体物件的集合;

S4,按照目标区域范围和目标物件集合,生成事件场景,其中,事件场景为覆盖目标区域范围的三维场景,事件场景中包含有战场物件集合,战场物件集合中的战场物件与目标物件集合中的物理体物件一一对应。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 三维场景的生成方法和装置、存储介质和电子装置
  • 三维场景的生成方法和装置、存储介质和电子装置
技术分类

06120112333449