CN109939438B - 轨迹显示方法和装置、存储介质及电子装置 - Google Patents
轨迹显示方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN109939438B CN109939438B CN201910135593.5A CN201910135593A CN109939438B CN 109939438 B CN109939438 B CN 109939438B CN 201910135593 A CN201910135593 A CN 201910135593A CN 109939438 B CN109939438 B CN 109939438B
- Authority
- CN
- China
- Prior art keywords
- bullet
- shooting
- event
- end point
- starting point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000010304 firing Methods 0.000 claims abstract description 35
- 230000003993 interaction Effects 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 29
- 238000009877 rendering Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种轨迹显示方法和装置、存储介质及电子装置。其中,该方法包括:在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在第一射击事件中射出的子弹对应的起点和终点;为第一射击事件中射出的子弹生成第一网格模型,其中,第一网格模型的长度根据第一射击事件射出的子弹对应的起点和终点之间的距离确定;在第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示子弹的移动轨迹。本发明解决了相关技术提供的显示方法中存在显示轨迹会失真的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种轨迹显示方法和装置、存储介质及电子装置。
背景技术
为了在射击类游戏应用提供的虚拟场景中,模拟出子弹真实的射击效果,应用开发商通常会根据子弹的属性信息,来计算该子弹在上述虚拟场景的每一个画面帧中的显示位置,以呈现出该子弹的飞行轨迹。
然而,受到显示终端设备的显示帧率和网络环境的影响,在虚拟场景中采用上述方式进行显示时,常常会出现子弹的显示位置呈非规律性跳跃的现象。也就是说,目前相关技术所提供的显示方法中存在显示轨迹会失真的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种轨迹显示方法和装置、存储介质及电子装置,以至少解决相关技术提供的显示方法中存在显示轨迹会失真的技术问题。
根据本发明实施例的一个方面,提供了一种轨迹显示方法,包括:在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在所述第一射击事件中射出的子弹对应的起点和终点;为所述第一射击事件中射出的所述子弹生成第一网格模型,其中,所述第一网格模型的长度根据所述第一射击事件射出的所述子弹对应的所述起点和所述终点之间的距离确定;在所述第一网格模型中播放所述子弹的贴图从所述起点移动到所述终点的动画,以显示所述子弹的移动轨迹。
根据本发明实施例的另一方面,还提供了一种轨迹显示装置,包括:确定单元,用于在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在上述第一射击事件中射出的子弹对应的起点和终点;生成单元,用于为上述第一射击事件中射出的上述子弹生成第一网格模型,其中,上述第一网格模型的长度根据上述第一射击事件射出的上述子弹对应的上述起点和上述终点之间的距离确定;显示单元,用于在上述第一网格模型中播放上述子弹的贴图从上述起点移动到上述终点的动画,以显示上述子弹的移动轨迹。
作为一种可选的示例,上述第二确定模块包括:第三获取子模块,用于从上述射击装备的属性参数中,获取为上述射击设备的上述子弹所配置的生命周期;第四获取子模块,用于获取上述子弹在纹理坐标系中的移动距离与上述生命周期之间的比值,作为上述子弹的贴图在上述虚拟游戏场景中的上述移动速度。
作为一种可选的示例,上述控制模块包括:控制子模块,用于控制图形处理器在上述子弹的上述生命周期内,重复渲染上述子弹的贴图按照上述移动速度在上述第一网格模型中从上述起点移动到上述终点的画面,以生成上述动画。
作为一种可选的示例,上述装置还包括:清除单元,用于在上述第一网格模型中播放上述子弹的贴图从上述起点移动到上述终点的动画的过程中,在检测到上述第一射击事件中上述子弹的上述生命周期达到结束时刻的情况下,清除上述第一网格模型;或者,处理单元,用于在上述第一射击事件中上述子弹的上述生命周期未达到结束时刻,但检测到第二射击事件的情况下,清除上述第一网格模型,并为上述第二射击事件射出的子弹生成第二网格模型,其中,上述第二网格模型的长度根据上述第二射击事件射出的子弹对应的起点和终点之间的第二距离确定;在上述第二网格模型中播放上述第二射击事件中的上述子弹的贴图从上述起点移动到上述终点的动画。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述轨迹显示方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的轨迹显示方法。
在本发明实施例中,在本实施例提供的方法中,根据第一射击事件中射出的子弹对应的起点和终点之间的距离来拉伸第一网格模型的长度,以生成用于播放子弹移动的动画的第一网格模型,并在该第一网格模型中播放子弹从起点移动到终点的动画,从而实现真实准确地还原出非第一人称视角下的射击事件所射出的子弹在虚拟场景中形成的移动轨迹,进而避免显示设备的显示帧率对移动轨迹显示过程的影响所造成的失真问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的轨迹显示方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的轨迹显示方法的流程图;
图3是根据本发明实施例的一种可选的轨迹显示方法的示意图;
图4是根据本发明实施例的另一种可选的轨迹显示方法的流程图;
图5是根据本发明实施例的另一种可选的轨迹显示方法的示意图;
图6是根据本发明实施例的又一种可选的轨迹显示方法的示意图;
图7是根据本发明实施例的又一种可选的轨迹显示方法的流程图;
图8是根据本发明实施例的一种可选的轨迹显示装置的结构示意图;
图9是根据本发明实施例的另一种可选的轨迹显示装置的结构示意图;
图10是根据本发明实施例的又一种可选的轨迹显示装置的结构示意图;
图11是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种轨迹显示方法,可选地,作为一种可选的实施方式,上述轨迹显示方法可以但不限于应用于如图1所示的硬件环境中。假设在用户设备102中运行有射击类游戏应用客户端,其中,用户设备102中包括存储器104、处理器106及显示器108,显示器108用于通过人机交互界面呈现虚拟游戏场景,存储器104用于存储游戏应用客户端中的事件数据,处理器106用于对游戏客户端触发的事件进行处理。在该游戏应用客户端的人机交互界面所呈现的虚拟游戏场景(如图1左侧虚线框所示)中,检测到目标角色对象(如图1所示对象A)正在执行第一射击事件(如对象A向对象B发起射击)的情况下,确定在该第一射击事件中射出的子弹对应的起点和终点,并根据上述第一射击事件射出的子弹对应的起点和终点之间的距离,来为该第一射击事件中射出的子弹生成第一网格模型。然后,在该第一网格模型中播放子弹的贴图从起点移动到终点的动画,以真实地还原显示出上述子弹在虚拟游戏场景中的移动轨迹。
需要说明的是,上述第一网格模型可以但不限于由服务器112生成,如图1所示步骤S102-S110,用户设备102将上述对象A向对象B发起射击的第一射击事件通过网络110发送给服务器112。然后,服务器112利用处理引擎116根据上述第一射击事件中携带的子弹对应的起点和终点为该子弹生成第一网格模型。进一步,调用数据库114中存储的该子弹的动画数据,将二者一起返回用户设备102,以使用户设备可以在第一网格模型上播放动画,从而真实准确地显示出该子弹的移动轨迹。
此外,上述第一网格模型还可以但不限于由用户设备102独立生成,而无需与服务器112进行数据交互。也就是说,用户设备102在确定出第一射击事件中对象A射出的子弹对应的起点和终点之后,可以独立为该子弹生成第一网格模型,并调用对应的动画数据,来完成上述图1所示的处理过程。其中,上述用户设备可以但不限于为集成多种数据处理功能的一台独立的终端设备中。上述仅是示例,本实施例中对此不作任何限定。
可选地,上述轨迹显示方法可以但不限于应用于可以计算数据的用户设备上,例如手机、平板电脑、笔记本电脑、PC机等终端上,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器可以包括但不限于任何可以进行计算的硬件设备。
可选地,作为一种可选的实施方式,如图2所示,上述轨迹显示方法包括:
S202,在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在第一射击事件中射出的子弹对应的起点和终点;
S204,为第一射击事件中射出的子弹生成第一网格模型,其中,第一网格模型的长度根据第一射击事件射出的子弹对应的起点和终点之间的距离确定;
S206,在第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示子弹的移动轨迹。
可选地,在本实施例中,上述轨迹显示方法可以但不限于应用于射击类游戏应用客户端中,用于显示射击事件所射出的子弹的移动轨迹。例如其中,上述射击事件可以但不限于为虚拟游戏场景中目标角色对象执行的射击操作所生成的事件。这里目标角色对象可以但不限于为登录该游戏应用客户端的当前玩家对象,如在第三人称射击游戏(ThirdPerson Shooting Game,简称TPS)中的当前玩家对象。此外,还可以但不限于为除当前玩家对象之外的第三方角色对象,如在第一人称射击游戏(First Person Shooting Game,简称FPS),如假设所呈现的虚拟游戏场景是以第一角色对象的视角显示,则目标角色对象可以为虚拟游戏场景中除上述第一角色对象之外的其他角色对象。
其中,上述射击类游戏应用可以为多人在线战术竞技游戏(Multiplayer OnlineBattle Arena简称为MOBA)或者为单人游戏(Single-Player Game简称为SPG)。射击类游戏应用的呈现方式可以包括但不限于以下至少之一:二维(Two Dimension,简称2D)游戏应用、三维(Three Dimension,简称3D)游戏应用、虚拟现实(Virtual Reality,简称VR)游戏应用、增强现实(Augmented Reality,简称AR)游戏应用、混合现实(Mixed Reality,简称MR)游戏应用。以上只是一种示例,本实施例对此不作任何限定。
需要说明的是,在本实施例中,在人机交互界面所呈现的虚拟游戏场景中检测到目标角色对象正在执行第一射击事件之后,确定该第一射击事件中射出的子弹对应的起点和终点,并根据上述起点和终点之间的距离为该子弹生成第一网格模型,然后在该第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示该子弹的移动轨迹。也就是说,在本实施例提供的方法中,根据第一射击事件中射出的子弹对应的起点和终点之间的距离来拉伸第一网格模型的长度,以生成用于播放子弹移动的动画的第一网格模型,并在该第一面皮中播放子弹从起点移动到终点的动画,从而实现真实准确地还原出非第一人称视角下的射击事件所射出的子弹在虚拟场景中形成的移动轨迹(也可称作枪线),进而避免显示设备的显示帧率对移动轨迹显示过程的影响所造成的失真问题。
进一步,下文将以第一人称射击游戏FPS提供的虚拟游戏场景为例来解释说明本实施例中提供的轨迹显示方法。需要说明的是,在虚拟游戏场景中,可以但不限于将为X轴-Y轴-Z轴的三维空间定义为世界坐标系。如X轴的正方向定义为“右方向”、Y轴的正方向定义为“上方向”、Z轴的正方向定义为“前方向”。上述虚拟游戏场景中所涉及的全部的角色对象和道具对象都在上述世界坐标系提供的空间中呈现。其中,重力方向为负Y轴方向,角色对象和道具对象可以确定为在X-Z平面进行移动。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,上述第一网格模型可以但不限于为一种用于在虚拟游戏场景中呈现子弹的Mesh单面网格模型(也可简称Mesh面片)。在3D游戏场景中可以但不限于使用三角形网格来呈现虚拟游戏场景中配置的对象。该网格模型可以但不限于包括定点和三角形网格模型。可选地,在本实施例中,上述子弹的贴图可以但不限于一种材质贴图,也可称纹理贴图,用于把计算机存储在内存里的位图映射到3D渲染物体的表面,从而达到在虚拟游戏场景中呈现出立体的对象的效果。
需要说明的是,在虚拟游戏场景中为每一种角色对象和道具对象所生成的Mesh面片都具有初始规格/尺寸。如为子弹生成的Mesh面片也设置有初始规格,如初始长度可以但不限于为单位长度。
可选地,在本实施例中,为第一射击事件中射出的子弹生成第一网格模型可以包括但不限于:根据第一射击事件射出的子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数;按照该拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。
需要说明的是,在射击类游戏应用的相关技术提供的显示过程中,通常会为所射出的子弹生成多个Mesh面片,如为每一个画面帧生成一个Mesh面片,以利用这些Mesh面片渲染显示出子弹的移动轨迹(也可称作枪线)。然而由于不同的显示设备的显示帧率不同,使得在使用显示帧率较低的显示设备来显示上述轨迹时,会出现一颗射出的子弹在画面中呈非规律性跳跃状显示,或出现子弹射出数量少、速度慢等现象,从而导致子弹轨迹显示失真的问题。为了克服该问题,本实施例中提供的技术方案通过将初始网格模型拉伸为一个长度与起点和终点之间的距离相等的第一网格模型,来代替相关技术中的多个网格模型,并在该第一网格模型上显示子弹移动的动画,从而减少子弹在移动过程中出现的画面损失,保证真实还原出子弹移动的轨迹。
可选地,在本实施例中,上述第一网格模型始终面向用于呈现虚拟游戏场景的虚拟摄像机。也就是说,上述第一网格模型可以但不限于用于朝向作为主视角的第一角色对象所对应的摄像头,以使第一角色对象始终可以看到第一网格模型(尽可能大的面)上播放的子弹移动的动画。例如,如图3所示,通过四元数计算旋转至,以使第一角色对象的摄像机302可以看到第一网格模型(如图3所示Mesh面片304)上所呈现的子弹从起点移动至终点的动画。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,在第一网格模型中播放子弹的贴图从起点移动到终点的动画可以包括但不限于:获取目标角色对象在第一射击事件中所使用的射击装备的属性参数;根据该属性参数确定上述子弹的贴图的移动速度,并控制该子弹的贴图按照该移动速度进行移动,以通过动画展示所形成的子弹的移动轨迹。
需要说明的是,在本实施例中,上述射击装备的属性参数中可以包括但不限于该射击装备所射出的子弹的生命周期。例如,类似冲锋枪类的射击装备需要较快的射击速度,生命周期较短。而对于类似炮类的射击装备需要较慢的射击速度,生命周期较长。其中,上述生命周期是根据射击装备的类型预先配置的参数。
可选地,在本实施例中,在用于渲染子弹的贴图的uv坐标系中,上述子弹在uv坐标系中的移动距离是既定距离,如在0-1之间的移动范围。根据该移动距离及上述生命周期的比值,则可确定出该子弹的移动速度。也就是说,上述子弹在虚拟游戏场景中的移动速度是预先根据其生命周期确定的。
需要说明的是,在子弹的生命周期达到结束时刻时,则该子弹的第一网格模型也将随之被清除,即从虚拟游戏场景所显示的画面中消失。而在子弹的生命周期未达到结束时刻,但检测到下一颗子弹被射出时,则清除当前的第一网格模型,重新生成与下一颗子弹相匹配的第二网格模型,并在第二网格模型中播放下一颗子弹对应的移动动画。
进一步,在本实施例中,在播放上述子弹的贴图在第一网格模型上移动所生成的动画的过程中,可以但不限于根据上述移动速度及移动时间确定出该子弹在第一网格模型上的移动偏移。也就是说,根据子弹的射出时间至当前时间之间的时差,得到该子弹的移动时间,然后利用移动速度和移动时间确定出该子弹在当前时间,在第一网格模型中距离起点移动后的偏移位置。从而实现准确地在虚拟渲染场景中射击事件的起点与终点之间,定位出该子弹的贴图所在的偏移位置,并进行对应的画面渲染,以保证子弹的移动轨迹显示的真实性和准确性。
需要说明的是,上述在虚拟渲染场景中渲染出的子弹的移动轨迹是一种在虚拟游戏场景中呈现的枪线特效。利用uv坐标系下的uv贴图动画来播放子弹的飞行过程,以在人机交互页面中表现出子弹快速移动的展示效果。进一步,利用子弹的线状贴图来呈现子弹的移动轨迹,将避免显示设备显示帧率较低所导致的子弹显示轨迹失真的问题。
具体结合图4所示示例进行说明。假设在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行的第一射击事件,如步骤S402,则执行步骤S404-S406,确定该第一射击事件射出的子弹对应的起点和终点,并确定当前时刻是否已存在与上述子弹匹配的第一网格模型。在确定不存在与上述子弹匹配的第一网格模型的情况下,执行步骤S408,生成第一网格模型,再执行步骤S410更新该第一网格模型的生命周期;而在确定存在与上述子弹匹配的第一网格模型的情况下,则直接执行步骤S410,更新当前存在的第一网格模型的生命周期。需要说明的是,在本示例中,上述更新生命周期用于表示开始按照第一网格模型的生命周期进行计时,从而实现控制在虚拟游戏场景中,在与子弹对应的生命周期内播放子弹的动画,以保证子弹移动轨迹的真实性。
进一步,在子弹的生命周期内播放子弹的贴图从起点移动到终点的动画,如步骤S412。在虚拟游戏场景中按照上述动画在第一网格模型上渲染子弹的贴图的过程中,还可以如步骤S414,判定当前时刻是否达到该子弹的生命周期,如果未达到,则继续执行步骤S412,如果达到,则执行步骤S416,停止播放动画,并清除为子弹生成的第一网格模型,以使该子弹的移动轨迹从虚拟游戏场景中消失。
通过本申请提供的实施例,根据第一射击事件中射出的子弹对应的起点和终点之间的距离来拉伸第一网格模型的长度,以生成用于播放子弹移动的动画的第一网格模型,并在该第一网格模型中播放子弹从起点移动到终点的动画,从而实现真实准确地还原出非第一人称视角下的射击事件所射出的子弹在虚拟场景中形成的移动轨迹,进而避免显示设备的显示帧率对移动轨迹显示过程的影响所造成的失真问题。
作为一种可选的方案,为第一射击事件中射出的子弹生成第一网格模型包括:
S1,根据子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数;
S2,按照拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。
需要说明的是,在本实施例中,在射击类游戏应用的相关技术提供的轨迹显示过程中,通常会为所射出的子弹生成多个Mesh面片,如为每一个画面帧生成一个Mesh面片,以利用这些Mesh面片渲染显示出子弹的移动轨迹(也可称作枪线)。而在本实施例中,在确定出第一射击事件射出的子弹对应的起点和终点之后,将获取起点和终点之间的距离,并将为子弹生成的初始网格模型拉伸为一个长度与上述距离相等的第一网格模型,来代替相关技术中的多个网格模型(多个Mesh面片),从而实现在该拉伸后的第一网格模型上显示子弹移动的动画。
可选地,在本实施例中,步骤S1中根据子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数包括:
S11,获取第一射击事件中射出的子弹对应的起点和终点之间的第一距离;
S12,获取初始网格模型的初始长度;
S11,将第一距离与初始长度之间的比值,确定为拉伸系数。
具体结合图5所示示例进行说明:假设第一角色对象(如图所示左手持导航仪,右手持枪)视角下的虚拟游戏场景的画面如图5所示,检测到目标角色对象正在执行第一射击事件,该第一射击事件指示向目标房屋后隐藏的非玩家角色(Non-Player Character,简称NPC)对象进行射击,第一射击事件中射出的子弹对应的起点O和终点P为图中所示交叉十字所在位置。进一步,为该子弹生成初始网格模型,并利用以下公式计算该子弹的拉伸系数Scale:
进一步,根据该拉伸系数Scale对初始长度L进行长度拉伸,以生成子弹的第一网格模型,如图5所示起点和终点之间的加粗线(也可称作枪线)。
通过本申请提供的实施例,在根据子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数之后,按照该拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。从而实现将相关技术中为子弹生成的多个网格模型合并为一个长网格模型(第一网格模型),以便于在该第一网格模型上播放子弹的贴图进行移动的动画,从而保证真实还原子弹射出时的移动轨迹。
作为一种可选的方案,在第一网格模型中播放子弹的贴图从起点移动到终点的动画包括:
S1,获取第一射击事件的射击数据,其中,射击数据包括目标角色对象在第一射击事件中所使用的射击装备的属性参数;
S2,根据射击装备的属性参数确定子弹的贴图的移动速度;
S3,控制子弹的贴图按照移动速度在第一网格模型中从起点移动到终点,以生成所要播放的动画。
需要说明的是,在本实施例中,上述第一射击事件的射击数据可以包括但不限于:目标角色对象的对象标识、射击时间、射击起点位置及终点位置、射击装备的属性参数等。其中,上述射击装备的属性参数可以包括但不限于射击装备的类型,可以为连发类射击装备,例如类似冲锋枪的装备。也可以为慢发类射击装备,例如类似手持炮的装备。不同类型的射击装备具有不同的生命周期,对应具有不同的移动速度。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,步骤S2中根据射击装备的属性参数确定子弹的贴图的移动速度包括:
S21,从射击装备的属性参数中,获取为射击设备的子弹所配置的生命周期;
S22,获取子弹在纹理坐标系中的移动距离与生命周期之间的比值,作为子弹的贴图在虚拟游戏场景中的移动速度。
需要说明的是,上述子弹的生命周期可以但不限于是根据射击装备的类型来确定的。例如,类似冲锋枪类的射击装备需要较快的射击速度,生命周期较短。而对于类似炮类的射击装备需要较慢的射击速度,生命周期较长。其中,上述生命周期是根据射击装备的类型预先配置的参数。也就是说,在虚拟游戏场景中,当确定出目标角色对象所使用的射击装备的情况下,第一射击事件中射出的子弹的生命周期也将随之确定。
进一步,上述子弹的贴图是在uv坐标系中生成,子弹在uv坐标系中的移动距离是既定距离,如在0-1之间的移动范围。则子弹的贴图在虚拟游戏场景中的移动速度可以但不限于通过以下方式计算出:
其中,S用于表示在uv坐标系中的移动距离,T用于表示子弹配置的生命周期,v用于表示子弹的贴图在虚拟游戏场景中的移动速度。
例如,如图6所示,在从起点拉伸至终点的长Mesh面片中,子弹的贴图将按照上述计算出的移动速度v从起点移动到终点,以生成所要播放的子弹移动的动画,从而达到真实地呈现出子弹在虚拟游戏场景中飞过的移动轨迹。
通过本申请提供的实施例,在获取第一射击事件的射击数据中所包括的目标角色对象在第一射击事件中所使用的射击装备的属性参数之后,根据射击装备的属性参数确定子弹的贴图的移动速度,从而实现控制该子弹的贴图按照移动速度在第一网格模型中从起点移动到终点,以生成所要播放的子弹移动的动画。这种利用子弹的线状贴图来呈现子弹的移动轨迹的方式,将避免由于显示设备显示帧率较低所导致的子弹显示轨迹失真的问题。进而真实还原出子弹射出的真实效果。
作为一种可选的方案,控制子弹的贴图按照移动速度在第一网格模型中从起点移动到终点,以生成所要播放的动画包括:
S1,控制图形处理器在子弹的生命周期内,重复渲染子弹的贴图按照移动速度在第一网格模型中从起点移动到终点的画面,以生成动画。
可选地,在本实施例中,可以但不限于利用终端设备中的中央处理器(CentralProcessing Unit,简称CPU),来生成上述第一网格模型,并计算得到子弹的贴图的移动速度。进一步,在本实施例中,可以但不限于利用终端设备中的图形处理器(GraphicsProcessing Unit,简称GPU)来控制在第一网格模型上渲染子弹的贴图来生成动画。也就是说,通过本实施例中提供的方案,利用CPU执行一次计算过程,而利用GPU按照计算结果,在第一网格模型中重复执行子弹的贴图渲染过程。从而克服相关技术中需要分别生成多个Mesh面片,分别为每个Mesh面片执行多次渲染过程所导致的显示操作复杂度较高的问题,进而简化子弹的轨迹显示操作,提高渲染显示的效率。
具体结合图6所示示例进行说明,图像处理器可以但不限于按照以下公式在第一网格模型对应的偏移位置上渲染子弹的贴图:
R=v*t (3)
其中,R用于表示子弹在虚拟游戏场景中的偏移位置,v用于表示子弹的贴图在虚拟游戏场景中的移动速度,t用于表示子弹从起点射出后流逝的时间。
也就是说,利用移动速度及子弹从起点射出后流逝的时间,可以准确确定出子弹当前所在的偏移位置,以使图形处理器可以在该偏移位置渲染出对应的子弹贴图,以此类推,将在第一网格模型上起点到终点之间,渲染出子弹移动的动画。
通过本申请提供的实施例,通过控制图形处理器在子弹的生命周期内,重复渲染子弹的贴图按照移动速度在第一网格模型中从起点移动到终点的画面,以生成动画。也就是说,无需中央处理器重复计算移动轨迹,执行一次轨迹计算过程后,利用图形处理器按照计算结果,在第一网格模型中重复执行子弹的贴图渲染过程。简化了子弹移动轨迹的渲染操作,提高了轨迹渲染显示的效率。
作为一种可选的方案,在第一网格模型中播放子弹的贴图从起点移动到终点的动画的过程中,还包括:
1)在检测到第一射击事件中子弹的生命周期达到结束时刻的情况下,清除第一网格模型;或者
2)在第一射击事件中子弹的生命周期未达到结束时刻,但检测到第二射击事件的情况下,清除第一网格模型,并为第二射击事件射出的子弹生成第二网格模型,其中,第二网格模型的长度根据第二射击事件射出的子弹对应的起点和终点之间的第二距离确定;在第二网格模型中播放第二射击事件中的子弹的贴图从起点移动到终点的动画。
需要说明的是,在本实施例中,每个射出的子弹都有生命周期,当到达生命周期的结束时刻,子弹对应的第一网格模型也将被清除,从虚拟游戏场景的显示画面中消失。
例如,假设目标角色对象的状态包括:开火状态、非开火状态,当从开火状态转到非开火状态时,则确定该目标角色对象射出的子弹的生命周期已达到结束时刻,该子弹对应的网格模型将随生命周期的结束而消失。
此外,在本实施例中,目标角色对象还可以在第一射击事件之后执行第二射击事件,假设在第一射击事件中子弹的生命周期未达到结束时刻,就检测到第二射击事件,则可以但不限于利用第二射击事件射出的子弹来更新子弹移动的动画。其中,第二射击事件射出的子弹将对应生成第二网格模型,并在第二网格模型上播放第二射击事件中的子弹的贴图从起点移动到终点的动画,该第二网格模型的长度可以但不限于根据第二射击事件射出的子弹对应的起点和终点之间的第二距离确定。也就是说,当目标角色对象每发出一颗子弹,都将更新对应的Mesh面片,并重新计算生命周期,调整更新后的Mesh面片的朝向,以使其尽可能将最大的面朝向第一角色对象的摄像机。
具体结合图7所示示例进行说明。假设在人机交互界面所呈现的FPS游戏应用客户端的虚拟游戏场景中,如步骤S702,检测到目标角色对象正在执行的第一射击事件,则执行步骤S704,确定该第一射击事件射出的子弹对应的起点和终点。然后执行步骤S706-S708,检查FPS游戏应用客户端中当前存在的Mesh面片数量,并根据数量确定是否已存在Mesh面片。在Mesh面片数量为0的情况下,确定不存在与上述子弹匹配的Mesh面片,则执行步骤S710,生成新的Mesh面片,再执行步骤S712更新该Mesh面片的生命周期;而在Mesh面片数量为1的情况下,确定存在与上述子弹匹配的Mesh面片,则直接执行步骤S712,更新当前存在的Mesh面片的生命周期。
进一步,在子弹的生命周期内播放子弹的贴图从起点移动到终点的动画,如步骤S714,根据确定出的移动速度和流逝的事件,确定出该子弹在Mesh面片中的偏移位置坐标,并调整该Mesh面片的朝向,以使其始终朝向第一角色对象的摄像机。然后,如步骤S716,判定当前时刻是否达到该子弹的生命周期,如果未达到,则继续执行步骤S714,如果达到,则执行步骤S718,停止播放动画,并清除为子弹生成的已达到生命周期的Mesh面片,以使该子弹的移动轨迹从虚拟游戏场景中消失。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述轨迹显示方法的轨迹显示装置。如图8所示,该装置包括:
1)确定单元802,用于在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在第一射击事件中射出的子弹对应的起点和终点;
2)生成单元804,用于为第一射击事件中射出的子弹生成第一网格模型,其中,第一网格模型的长度根据第一射击事件射出的子弹对应的起点和终点之间的距离确定;
3)显示单元806,用于在第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示子弹的移动轨迹。
可选地,在本实施例中,上述轨迹显示装置可以但不限于应用于射击类游戏应用客户端中,用于显示射击事件所射出的子弹的移动轨迹。例如其中,上述射击事件可以但不限于为虚拟游戏场景中目标角色对象执行的射击操作所生成的事件。这里目标角色对象可以但不限于为登录该游戏应用客户端的当前玩家对象,如在第三人称射击游戏(ThirdPerson Shooting Game,简称TPS)中的当前玩家对象。此外,还可以但不限于为除当前玩家对象之外的第三方角色对象,如在第一人称射击游戏(First Person Shooting Game,简称FPS),如假设所呈现的虚拟游戏场景是以第一角色对象的视角显示,则目标角色对象可以为虚拟游戏场景中除上述第一角色对象之外的其他角色对象。
其中,上述射击类游戏应用可以为多人在线战术竞技游戏(Multiplayer OnlineBattle Arena简称为MOBA)或者为单人游戏(Single-Player Game简称为SPG)。射击类游戏应用的呈现方式可以包括但不限于以下至少之一:二维(Two Dimension,简称2D)游戏应用、三维(Three Dimension,简称3D)游戏应用、虚拟现实(Virtual Reality,简称VR)游戏应用、增强现实(Augmented Reality,简称AR)游戏应用、混合现实(Mixed Reality,简称MR)游戏应用。以上只是一种示例,本实施例对此不作任何限定。
需要说明的是,在本实施例中,在人机交互界面所呈现的虚拟游戏场景中检测到目标角色对象正在执行第一射击事件之后,确定该第一射击事件中射出的子弹对应的起点和终点,并根据上述起点和终点之间的距离为该子弹生成第一网格模型,然后在该第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示该子弹的移动轨迹。也就是说,在本实施例提供的装置中,根据第一射击事件中射出的子弹对应的起点和终点之间的距离来拉伸第一网格模型的长度,以生成用于播放子弹移动的动画的第一网格模型,并在该第一面皮中播放子弹从起点移动到终点的动画,从而实现真实准确地还原出非第一人称视角下的射击事件所射出的子弹在虚拟场景中形成的移动轨迹(也可称作枪线),进而避免显示设备的显示帧率对移动轨迹显示过程的影响所造成的失真问题。
进一步,下文将以第一人称射击游戏FPS提供的虚拟游戏场景为例来解释说明本实施例中提供的轨迹显示装置。需要说明的是,在虚拟游戏场景中,可以但不限于将为X轴-Y轴-Z轴的三维空间定义为世界坐标系。如X轴的正方向定义为“右方向”、Y轴的正方向定义为“上方向”、Z轴的正方向定义为“前方向”。上述虚拟游戏场景中所涉及的全部的角色对象和道具对象都在上述世界坐标系提供的空间中呈现。其中,重力方向为负Y轴方向,角色对象和道具对象可以确定为在X-Z平面进行移动。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,上述第一网格模型可以但不限于为一种用于在虚拟游戏场景中呈现子弹的Mesh单面网格模型(也可简称Mesh面片)。在3D游戏场景中可以但不限于使用三角形网格来呈现虚拟游戏场景中配置的对象。该网格模型可以但不限于包括定点和三角形网格模型。可选地,在本实施例中,上述子弹的贴图可以但不限于一种材质贴图,也可称纹理贴图,用于把计算机存储在内存里的位图映射到3D渲染物体的表面,从而达到在虚拟游戏场景中呈现出立体的对象的效果。
需要说明的是,在虚拟游戏场景中为每一种角色对象和道具对象所生成的Mesh面片都具有初始规格/尺寸。如为子弹生成的Mesh面片也设置有初始规格,如初始长度可以但不限于为单位长度。
可选地,在本实施例中,为第一射击事件中射出的子弹生成第一网格模型可以包括但不限于:根据第一射击事件射出的子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数;按照该拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。
需要说明的是,在射击类游戏应用的相关技术提供的显示过程中,通常会为所射出的子弹生成多个Mesh面片,如为每一个画面帧生成一个Mesh面片,以利用这些Mesh面片渲染显示出子弹的移动轨迹(也可称作枪线)。然而由于不同的显示设备的显示帧率不同,使得在使用显示帧率较低的显示设备来显示上述轨迹时,会出现一颗射出的子弹在画面中呈非规律性跳跃状显示,或出现子弹射出数量少、速度慢等现象,从而导致子弹轨迹显示失真的问题。为了克服该问题,本实施例中提供的技术方案通过将初始网格模型拉伸为一个长度与起点和终点之间的距离相等的第一网格模型,来代替相关技术中的多个网格模型,并在该第一网格模型上显示子弹移动的动画,从而减少子弹在移动过程中出现的画面损失,保证真实还原出子弹移动的轨迹。
可选地,在本实施例中,上述第一网格模型始终面向用于呈现虚拟游戏场景的虚拟摄像机。也就是说,上述第一网格模型可以但不限于用于朝向作为主视角的第一角色对象所对应的摄像头,以使第一角色对象始终可以看到第一网格模型(尽可能大的面)上播放的子弹移动的动画。例如,如图3所示,通过四元数计算旋转至,以使第一角色对象的摄像机302可以看到第一网格模型(如图3所示Mesh面片304)上所呈现的子弹从起点移动至终点的动画。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,在第一网格模型中播放子弹的贴图从起点移动到终点的动画可以包括但不限于:获取目标角色对象在第一射击事件中所使用的射击装备的属性参数;根据该属性参数确定上述子弹的贴图的移动速度,并控制该子弹的贴图按照该移动速度进行移动,以通过动画展示所形成的子弹的移动轨迹。
需要说明的是,在本实施例中,上述射击装备的属性参数中可以包括但不限于该射击装备所射出的子弹的生命周期。例如,类似冲锋枪类的射击装备需要较快的射击速度,生命周期较短。而对于类似炮类的射击装备需要较慢的射击速度,生命周期较长。其中,上述生命周期是根据射击装备的类型预先配置的参数。
可选地,在本实施例中,在用于渲染子弹的贴图的uv坐标系中,上述子弹在uv坐标系中的移动距离是既定距离,如在0-1之间的移动范围。根据该移动距离及上述生命周期的比值,则可确定出该子弹的移动速度。也就是说,上述子弹在虚拟游戏场景中的移动速度是预先根据其生命周期确定的。
需要说明的是,在子弹的生命周期达到结束时刻时,则该子弹的第一网格模型也将随之被清除,即从虚拟游戏场景所显示的画面中消失。而在子弹的生命周期未达到结束时刻,但检测到下一颗子弹被射出时,则清除当前的第一网格模型,重新生成与下一颗子弹相匹配的第二网格模型,并在第二网格模型中播放下一颗子弹对应的移动动画。
进一步,在本实施例中,在播放上述子弹的贴图在第一网格模型上移动所生成的动画的过程中,可以但不限于根据上述移动速度及移动时间确定出该子弹在第一网格模型上的移动偏移。也就是说,根据子弹的射出时间至当前时间之间的时差,得到该子弹的移动时间,然后利用移动速度和移动时间确定出该子弹在当前时间,在第一网格模型中距离起点移动后的偏移位置。从而实现准确地在虚拟渲染场景中射击事件的起点与终点之间,定位出该子弹的贴图所在的偏移位置,并进行对应的画面渲染,以保证子弹的移动轨迹显示的真实性和准确性。
需要说明的是,上述在虚拟渲染场景中渲染出的子弹的移动轨迹是一种在虚拟游戏场景中呈现的枪线特效。利用uv坐标系下的uv贴图动画来播放子弹的飞行过程,以在人机交互页面中表现出子弹快速移动的展示效果。进一步,利用子弹的线状贴图来呈现子弹的移动轨迹,将避免显示设备显示帧率较低所导致的子弹显示轨迹失真的问题。
通过本申请提供的实施例,根据第一射击事件中射出的子弹对应的起点和终点之间的距离来拉伸第一网格模型的长度,以生成用于播放子弹移动的动画的第一网格模型,并在该第一面皮中播放子弹从起点移动到终点的动画,从而实现真实准确地还原出非第一人称视角下的射击事件所射出的子弹在虚拟场景中形成的移动轨迹,进而避免显示设备的显示帧率对移动轨迹显示过程的影响所造成的失真问题。
作为一种可选的方案,如图9所示,生成单元804包括:
1)第一确定模块902,用于根据子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数;
2)生成模块904,用于按照拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。
需要说明的是,在本实施例中,在射击类游戏应用的相关技术提供的轨迹显示过程中,通常会为所射出的子弹生成多个Mesh面片,如为每一个画面帧生成一个Mesh面片,以利用这些Mesh面片渲染显示出子弹的移动轨迹(也可称作枪线)。而在本实施例中,在确定出第一射击事件射出的子弹对应的起点和终点之后,将获取起点和终点之间的距离,并将为子弹生成的初始网格模型拉伸为一个长度与上述距离相等的第一网格模型,来代替相关技术中的多个网格模型(多个Mesh面片),从而实现在该拉伸后的第一网格模型上显示子弹移动的动画。
可选地,在本实施例中,第一确定模块902包括:
(1)第一获取子模块,用于获取第一射击事件中射出的子弹对应的起点和终点之间的第一距离;
(2)第二获取子模块,用于获取初始网格模型的初始长度;
(3)确定子模块,用于将第一距离与初始长度之间的比值,确定为拉伸系数。
具体结合图5所示示例进行说明:假设第一角色对象(如图所示左手持导航仪,右手持枪)视角下的虚拟游戏场景的画面如图5所示,检测到目标角色对象正在执行第一射击事件,该第一射击事件指示向目标房屋后隐藏的非玩家角色(Non-Player Character,简称NPC)对象进行射击,第一射击事件中射出的子弹对应的起点O和终点P为图中所示交叉十字所在位置。进一步,为该子弹生成初始网格模型,并利用以下公式计算该子弹的拉伸系数Scale:
进一步,根据该拉伸系数Scale对初始长度L进行长度拉伸,以生成子弹的第一网格模型,如图5所示起点和终点之间的加粗线(也可称作枪线)。
通过本申请提供的实施例,在根据子弹对应的起点和终点之间的距离,确定用于生成第一网格模型的拉伸系数之后,按照该拉伸系数对为子弹生成的初始网格模型进行长度拉伸,以生成第一网格模型。从而实现将相关技术中为子弹生成的多个网格模型合并为一个长网格模型(第一网格模型),以便于在该第一网格模型上播放子弹的贴图进行移动的动画,从而保证真实还原子弹射出时的移动轨迹。
作为一种可选的方案,如图10所示,显示单元806包括:
1)获取模块1002,用于获取第一射击事件的射击数据,其中,射击数据包括目标角色对象在第一射击事件中所使用的射击装备的属性参数;
2)第二确定模块1004,用于根据射击装备的属性参数确定子弹的贴图的移动速度;
3)控制模块1006,用于控制子弹的贴图按照移动速度在第一网格模型中从起点移动到终点,以生成所要播放的动画。
需要说明的是,在本实施例中,上述第一射击事件的射击数据可以包括但不限于:目标角色对象的对象标识、射击时间、射击起点位置及终点位置、射击装备的属性参数等。其中,上述射击装备的属性参数可以包括但不限于射击装备的类型,可以为连发类射击装备,例如类似冲锋枪的装备。也可以为慢发类射击装备,例如类似手持炮的装备。不同类型的射击装备具有不同的生命周期,对应具有不同的移动速度。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,在本实施例中,第二确定模块1004包括:
(1)第三获取子模块,用于从射击装备的属性参数中,获取为射击设备的子弹所配置的生命周期;
(2)第四获取子模块,用于获取子弹在纹理坐标系中的移动距离与生命周期之间的比值,作为子弹的贴图在虚拟游戏场景中的移动速度。
需要说明的是,上述子弹的生命周期可以但不限于是根据射击装备的类型来确定的。例如,类似冲锋枪类的射击装备需要较快的射击速度,生命周期较短。而对于类似炮类的射击装备需要较慢的射击速度,生命周期较长。其中,上述生命周期是根据射击装备的类型预先配置的参数。也就是说,在虚拟游戏场景中,当确定出目标角色对象所使用的射击装备的情况下,第一射击事件中射出的子弹的生命周期也将随之确定。
进一步,上述子弹的贴图是在uv坐标系中生成,子弹在uv坐标系中的移动距离是既定距离,如在0-1之间的移动范围。则子弹的贴图在虚拟游戏场景中的移动速度可以但不限于通过以下方式计算出:
其中,S用于表示在uv坐标系中的移动距离,T用于表示子弹配置的生命周期,v用于表示子弹的贴图在虚拟游戏场景中的移动速度。
例如,如图6所示,在从起点拉伸至终点的长Mesh面片中,子弹的贴图将按照上述计算出的移动速度v从起点移动到终点,以生成所要播放的子弹移动的动画,从而达到真实地呈现出子弹在虚拟游戏场景中飞过的移动轨迹。
通过本申请提供的实施例,在获取第一射击事件的射击数据中所包括的目标角色对象在第一射击事件中所使用的射击装备的属性参数之后,根据射击装备的属性参数确定子弹的贴图的移动速度,从而实现控制该子弹的贴图按照移动速度在第一网格模型中从起点移动到终点,以生成所要播放的子弹移动的动画。这种利用子弹的线状贴图来呈现子弹的移动轨迹的方式,将避免由于显示设备显示帧率较低所导致的子弹显示轨迹失真的问题。进而真实还原出子弹射出的真实效果。
作为一种可选的方案,控制模块包括:
1)控制子模块,用于控制图形处理器在子弹的生命周期内,重复渲染子弹的贴图按照移动速度在第一网格模型中从起点移动到终点的画面,以生成动画。
可选地,在本实施例中,可以但不限于利用终端设备中的中央处理器(CentralProcessing Unit,简称CPU),来生成上述第一网格模型,并计算得到子弹的贴图的移动速度。进一步,在本实施例中,可以但不限于利用终端设备中的图形处理器(GraphicsProcessing Unit,简称GPU)来控制在第一网格模型上渲染子弹的贴图来生成动画。也就是说,通过本实施例中提供的方案,利用CPU执行一次计算过程,而利用GPU按照计算结果,在第一网格模型中重复执行子弹的贴图渲染过程。从而克服相关技术中需要分别生成多个Mesh面片,分别为每个Mesh面片执行多次渲染过程所导致的显示操作复杂度较高的问题,进而简化子弹的轨迹显示操作,提高渲染显示的效率。
具体结合图6所示示例进行说明,图像处理器可以但不限于按照以下公式在第一网格模型对应的偏移位置上渲染子弹的贴图:
R=v*t (6)
其中,R用于表示子弹在虚拟游戏场景中的偏移位置,v用于表示子弹的贴图在虚拟游戏场景中的移动速度,t用于表示子弹从起点射出后流逝的时间。
也就是说,利用移动速度及子弹从起点射出后流逝的时间,可以准确确定出子弹当前所在的偏移位置,以使图形处理器可以在该偏移位置渲染出对应的子弹贴图,以此类推,将在第一网格模型上起点到终点之间,渲染出子弹移动的动画。
通过本申请提供的实施例,通过控制图形处理器在子弹的生命周期内,重复渲染子弹的贴图按照移动速度在第一网格模型中从起点移动到终点的画面,以生成动画。也就是说,无需中央处理器重复计算移动轨迹,执行一次轨迹计算过程后,利用图形处理器按照计算结果,在第一网格模型中重复执行子弹的贴图渲染过程。简化了子弹移动轨迹的渲染操作,提高了轨迹渲染显示的效率。
作为一种可选的方案,装置还包括:
1)清除单元,用于在第一网格模型中播放子弹的贴图从起点移动到终点的动画的过程中,在检测到第一射击事件中子弹的生命周期达到结束时刻的情况下,清除第一网格模型;或者
2)处理单元,用于在第一射击事件中子弹的生命周期未达到结束时刻,但检测到第二射击事件的情况下,清除第一网格模型,并为第二射击事件射出的子弹生成第二网格模型,其中,第二网格模型的长度根据第二射击事件射出的子弹对应的起点和终点之间的第二距离确定;在第二网格模型中播放第二射击事件中的子弹的贴图从起点移动到终点的动画。
需要说明的是,在本实施例中,每个射出的子弹都有生命周期,当到达生命周期的结束时刻,子弹对应的第一网格模型也将被清除,从虚拟游戏场景的显示画面中消失。
例如,假设目标角色对象的状态包括:开火状态、非开火状态,当从开火状态转到非开火状态时,则确定该目标角色对象射出的子弹的生命周期已达到结束时刻,该子弹对应的网格模型将随生命周期的结束而消失。
此外,在本实施例中,目标角色对象还可以在第一射击事件之后执行第二射击事件,假设在第一射击事件中子弹的生命周期未达到结束时刻,就检测到第二射击事件,则可以但不限于利用第二射击事件射出的子弹来更新子弹移动的动画。其中,第二射击事件射出的子弹将对应生成第二网格模型,并在第二网格模型上播放第二射击事件中的子弹的贴图从起点移动到终点的动画,该第二网格模型的长度可以但不限于根据第二射击事件射出的子弹对应的起点和终点之间的第二距离确定。也就是说,当目标角色对象每发出一颗子弹,都将更新对应的Mesh面片,并重新计算生命周期,调整更新后的Mesh面片的朝向,以使其尽可能将最大的面朝向第一角色对象的摄像机。
根据本发明实施例的又一个方面,还提供了一种用于实施上述轨迹显示方法的电子装置,如图11所示,该电子装置包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在第一射击事件中射出的子弹对应的起点和终点;
S2,为第一射击事件中射出的子弹生成第一网格模型,其中,第一网格模型的长度根据第一射击事件射出的子弹对应的起点和终点之间的距离确定;
S3,在第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示子弹的移动轨迹。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本发明实施例中的轨迹显示方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的轨迹显示方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储目标角色对象正在执行的第一射击事件的射击数据,及子弹的移动轨迹等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述轨迹显示装置中的确定单元802、生成单元804、显示单元806。此外,还可以包括但不限于上述轨迹显示装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1108,用于显示虚拟游戏场景、目标角色对象及子弹对应的移动的动画;和连接总线1110,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在第一射击事件中射出的子弹对应的起点和终点;
S2,为第一射击事件中射出的子弹生成第一网格模型,其中,第一网格模型的长度根据第一射击事件射出的子弹对应的起点和终点之间的距离确定;
S3,在第一网格模型中播放子弹的贴图从起点移动到终点的动画,以显示子弹的移动轨迹。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上上述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种轨迹显示方法,其特征在于,包括:
在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在所述第一射击事件中射出的子弹对应的起点和终点;
根据所述子弹从射出的所述起点到所述终点之间的距离,确定对初始网格模型进行长度拉伸的拉伸系数,其中,所述初始网格模型是为所述子弹生成的网格模型;
在按照所述拉伸系数生成的第一网格模型中播放所述子弹的贴图从所述起点移动到所述终点的动画,以显示所述子弹的移动轨迹。
2.根据权利要求1所述的方法,其特征在于,所述根据所述子弹对应的所述起点和所述终点之间的距离,确定用于生成所述第一网格模型的拉伸系数包括:
获取所述第一射击事件中射出的所述子弹对应的所述起点和所述终点之间的第一距离;
获取所述初始网格模型的初始长度;
将所述第一距离与所述初始长度之间的比值,确定为所述拉伸系数。
3.根据权利要求1所述的方法,其特征在于,所述在所述第一网格模型中播放所述子弹的贴图从所述起点移动到所述终点的动画包括:
获取所述第一射击事件的射击数据,其中,所述射击数据包括所述目标角色对象在所述第一射击事件中所使用的射击装备的属性参数;
根据所述射击装备的属性参数确定所述子弹的贴图的移动速度;
控制所述子弹的贴图按照所述移动速度在所述第一网格模型中从所述起点移动到所述终点,以生成所要播放的所述动画。
4.根据权利要求3所述的方法,其特征在于,所述根据所述射击装备的属性参数确定所述子弹的贴图的移动速度包括:
从所述射击装备的属性参数中,获取为所述射击设备的所述子弹所配置的生命周期;
获取所述子弹在纹理坐标系中的移动距离与所述生命周期之间的比值,作为所述子弹的贴图在所述虚拟游戏场景中的所述移动速度。
5.根据权利要求4所述的方法,其特征在于,所述控制所述子弹的贴图按照所述移动速度在所述第一网格模型中从所述起点移动到所述终点,以生成所要播放的所述动画包括:
控制图形处理器在所述子弹的所述生命周期内,重复渲染所述子弹的贴图按照所述移动速度在所述第一网格模型中从所述起点移动到所述终点的画面,以生成所述动画。
6.根据权利要求5所述的方法,其特征在于,在所述第一网格模型中播放所述子弹的贴图从所述起点移动到所述终点的动画的过程中,还包括:
在检测到所述第一射击事件中所述子弹的所述生命周期达到结束时刻的情况下,清除所述第一网格模型;或者
在所述第一射击事件中所述子弹的所述生命周期未达到结束时刻,但检测到第二射击事件的情况下,清除所述第一网格模型,并为所述第二射击事件射出的子弹生成第二网格模型,其中,所述第二网格模型的长度根据所述第二射击事件射出的子弹对应的起点和终点之间的第二距离确定;在所述第二网格模型中播放所述第二射击事件中的所述子弹的贴图从所述起点移动到所述终点的动画。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一网格模型始终面向用于呈现所述虚拟游戏场景的虚拟摄像机。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述虚拟游戏场景以第一角色对象的视角显示,所述目标角色对象为所述虚拟游戏场景中除所述第一角色对象之外的角色对象。
9.一种轨迹显示装置,其特征在于,包括:
确定单元,用于在人机交互界面所呈现的虚拟游戏场景中,检测到目标角色对象正在执行第一射击事件的情况下,确定在所述第一射击事件中射出的子弹对应的起点和终点;
生成单元,用于根据所述子弹从射出的所述起点到所述终点之间的距离,确定对初始网格模型进行长度拉伸的拉伸系数,其中,所述初始网格模型是为所述子弹生成的网格模型;
显示单元,用于在按照所述拉伸系数生成的第一网格模型中播放所述子弹的贴图从所述起点移动到所述终点的动画,以显示所述子弹的移动轨迹。
10.根据权利要求9所述的装置,其特征在于,所述生成单元包括:
第一获取子模块,用于获取所述第一射击事件中射出的所述子弹对应的所述起点和所述终点之间的第一距离;
第二获取子模块,用于获取所述初始网格模型的初始长度;
确定子模块,用于将所述第一距离与所述初始长度之间的比值,确定为所述拉伸系数。
11.根据权利要求9所述的装置,其特征在于,所述显示单元包括:
获取模块,用于获取所述第一射击事件的射击数据,其中,所述射击数据包括所述目标角色对象在所述第一射击事件中所使用的射击装备的属性参数;
第二确定模块,用于根据所述射击装备的属性参数确定所述子弹的贴图的移动速度;
控制模块,用于控制所述子弹的贴图按照所述移动速度在所述第一网格模型中从所述起点移动到所述终点,以生成所要播放的所述动画。
12.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135593.5A CN109939438B (zh) | 2019-02-19 | 2019-02-19 | 轨迹显示方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135593.5A CN109939438B (zh) | 2019-02-19 | 2019-02-19 | 轨迹显示方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109939438A CN109939438A (zh) | 2019-06-28 |
CN109939438B true CN109939438B (zh) | 2022-09-13 |
Family
ID=67007691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910135593.5A Active CN109939438B (zh) | 2019-02-19 | 2019-02-19 | 轨迹显示方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109939438B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110917619B (zh) * | 2019-11-18 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 互动道具控制方法、装置、终端及存储介质 |
CN110930484B (zh) * | 2019-11-21 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 动画配置方法和装置、存储介质及电子装置 |
CN111084986B (zh) * | 2019-12-17 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 显示控制方法、装置、存储介质及电子装置 |
CN111111171B (zh) * | 2019-12-17 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 操作控制方法、装置、存储介质及电子装置 |
CN111265869B (zh) * | 2020-01-14 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 虚拟对象的检测方法、装置、终端及存储介质 |
CN111617471A (zh) * | 2020-06-08 | 2020-09-04 | 浙江商汤科技开发有限公司 | 虚拟射击的展示方法、装置、电子设备及存储介质 |
CN111773682B (zh) * | 2020-08-04 | 2023-11-17 | 网易(杭州)网络有限公司 | 射击方向的提示方法、装置、电子设备和存储介质 |
CN111973986B (zh) * | 2020-08-27 | 2024-08-06 | 网易(杭州)网络有限公司 | 攻击动效显示方法、装置、电子设备和存储介质 |
CN112138379B (zh) * | 2020-09-25 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 不同应用模式之间的交互方法和装置及存储介质 |
CN112156462B (zh) * | 2020-10-14 | 2024-06-25 | 网易(杭州)网络有限公司 | 一种游戏技能的动画处理方法和装置 |
CN112619163B (zh) * | 2020-12-22 | 2023-05-02 | 上海米哈游天命科技有限公司 | 一种飞行路径控制方法、装置、电子设备及存储介质 |
CN112619134B (zh) * | 2020-12-22 | 2023-05-02 | 上海米哈游天命科技有限公司 | 发射目标飞行距离的确定方法、装置、设备及存储介质 |
CN113209626B (zh) * | 2021-05-21 | 2023-03-21 | 珠海金山数字网络科技有限公司 | 一种游戏画面渲染方法及装置 |
CN113713382B (zh) * | 2021-09-10 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 虚拟道具控制方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109224439A (zh) * | 2018-10-22 | 2019-01-18 | 网易(杭州)网络有限公司 | 游戏瞄准的方法及装置、存储介质、电子装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3662435B2 (ja) * | 1998-12-17 | 2005-06-22 | コナミ株式会社 | 射的ビデオゲーム装置 |
JP4673570B2 (ja) * | 2004-03-31 | 2011-04-20 | 株式会社セガ | 画像生成装置、画像表示方法及びプログラム |
CN106611436A (zh) * | 2016-12-30 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种动画中资源的显示处理方法及装置 |
CN108404406A (zh) * | 2018-03-22 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 虚拟环境中的弹道轨迹的显示方法、装置、设备及可读介质 |
CN108635858B (zh) * | 2018-05-18 | 2019-10-01 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、电子装置及计算机可读存储介质 |
-
2019
- 2019-02-19 CN CN201910135593.5A patent/CN109939438B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109224439A (zh) * | 2018-10-22 | 2019-01-18 | 网易(杭州)网络有限公司 | 游戏瞄准的方法及装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109939438A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109939438B (zh) | 轨迹显示方法和装置、存储介质及电子装置 | |
CN111638793B (zh) | 飞行器的展示方法、装置、电子设备及存储介质 | |
CN111408132B (zh) | 一种游戏画面显示方法、装置、设备和存储介质 | |
CN109966738B (zh) | 信息处理方法、处理装置、电子设备和存储介质 | |
CN110548288B (zh) | 虚拟对象的受击提示方法、装置、终端及存储介质 | |
CN109821238B (zh) | 游戏中的瞄准方法及装置、存储介质、电子装置 | |
CN112148189A (zh) | 一种ar场景下的交互方法、装置、电子设备及存储介质 | |
US9878244B2 (en) | Storage medium having stored therein game program, game apparatus, game system, and game processing method | |
JP2024522972A (ja) | ビデオフレームのレンダリング方法、装置、機器及びコンピュータプログラム | |
CN113559504A (zh) | 信息处理方法、装置、存储介质及电子设备 | |
CN111617471A (zh) | 虚拟射击的展示方法、装置、电子设备及存储介质 | |
WO2021143290A1 (zh) | 虚拟道具的显示方法和装置、存储介质及电子装置 | |
US10029180B2 (en) | Storage medium having stored therein game program, game apparatus, game system, and game processing method | |
CN111330278B (zh) | 基于虚拟环境的动画播放方法、装置、设备及介质 | |
CN111773682A (zh) | 射击方向的提示方法、装置、电子设备和存储介质 | |
CN110898430B (zh) | 音源定位方法和装置、存储介质及电子装置 | |
CN111054065A (zh) | 虚拟道具的控制方法和装置、存储介质及电子装置 | |
CN113117332A (zh) | 一种镜头视角的调整方法、装置、电子设备及存储介质 | |
CN111632377A (zh) | 射击轨迹的展示方法、装置、电子设备及存储介质 | |
CN111569414A (zh) | 虚拟飞行器的飞行展示方法、装置、电子设备及存储介质 | |
CN113230654B (zh) | 虚拟枪械的射击显示方法、装置、计算机设备及存储介质 | |
CN111650953B (zh) | 飞行器避障处理方法、装置、电子设备及存储介质 | |
CN111097170B (zh) | 吸附框的调整方法和装置、存储介质及电子装置 | |
US20240286039A1 (en) | Method of controlling virtual object, apparatus, computer device, and storage medium | |
CN113256710B (zh) | 游戏中准星的显示方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |