CN108379841B - 游戏特效的处理方法、装置和终端 - Google Patents
游戏特效的处理方法、装置和终端 Download PDFInfo
- Publication number
- CN108379841B CN108379841B CN201810214472.5A CN201810214472A CN108379841B CN 108379841 B CN108379841 B CN 108379841B CN 201810214472 A CN201810214472 A CN 201810214472A CN 108379841 B CN108379841 B CN 108379841B
- Authority
- CN
- China
- Prior art keywords
- model
- current
- sub
- transformation matrix
- special effect
- 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
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/663—Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种游戏特效的处理方法、装置和终端。其中,该方法包括:获取目标对象的当前移动向量;根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示更新后的特效模型。本发明解决了现有技术中尾迹的显示效果差的技术问题。
Description
技术领域
本发明涉及游戏开发领域,具体而言,涉及一种游戏特效的处理方法、装置和终端。
背景技术
为了丰富日常生活,人们在日常生活中经常通过玩游戏以消遣时光,尤其是一些网络游戏,由于游戏场景逼真、游戏情节丰富,收到了广大游戏爱好者的欢迎。人们在玩游戏,尤其是大型网络游戏时,一些细节上的游戏特效可以给玩家带来不一样的体验。因此,在游戏开发的过程中,开发人员会考虑游戏细节上的特效,例如,拖尾特效。其中,拖尾为游戏中飞行物体的尾迹,例如,炮弹、飞机飞越云层时的尾迹。
在现有技术中,开发人员一般采用大量的定向喷射粒子来模拟飞行物体的尾迹。该方法需要大量的粒子,由此对***的性能提出了要求,尤其对于移动设备,大量的粒子喷射可能会造成移动设备出现卡机的现象。
针对上述现有技术中生成尾迹的方法占用过多处理资源的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种游戏特效的处理方法、装置和终端,以至少解决现有技术中生成尾迹的方法占用过多处理资源的问题。
根据本发明实施例的一个方面,提供了一种游戏特效的处理方法,包括:获取目标对象的当前移动向量;根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示更新后的特效模型。
根据本发明实施例的另一方面,还提供了一种游戏特效的处理装置,包括:第一获取模块,用于获取目标对象的当前移动向量;第二获取模块,用于根据目标对象的当前移动向量更新特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;确定模块,用于根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示模块,用于显示更新后的特效模型。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,程序执行游戏特效的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行游戏特效的处理方法。
根据本发明实施例的另一方面,还提供了一种游戏特效的处理终端,包括:显示器;处理器,处理器运行程序,其中,程序运行时对于从显示器输出的数据执行如下处理步骤:获取目标对象的当前移动向量;根据目标对象的移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示更新后的特效模型。
在本发明实施例中,采用多个相互交叉的平面组成特效模型的方式,通过获取目标对象的当前移动向量,并根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,然后根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置,显示更新后的特效模型,其中,特效模型包括多个交叉的平面,达到了使尾迹具有立体效果的目的,从而实现了增强尾迹的显示效果的技术效果,进而解决了现有技术中尾迹的显示效果差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种游戏特效的处理方法流程图;
图2是根据本发明实施例的一种可选的特效模型的结构示意图;
图3是根据本发明实施例的一种可选的平面的结构示意图;
图4是根据本发明实施例的一种可选的特效模型的截面的示意图;
图5是根据本发明实施例的一种可选的平面一的示意图;
图6是根据本发明实施例的一种可选的更新后的特效模型;
图7是根据本发明实施例的一种游戏特效的处理装置结构示意图;以及
图8为本公开实施例的其中一种存储介质的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
尾迹,指物体与流体发生相对运动时,物体后面的压强与流体其他部分的压强显著不同的区域,在本申请中,指游戏场景中所模拟的物体在移动时所产生的尾迹。
实施例1
根据本发明实施例,提供了一种显示尾迹的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的游戏特效的处理方法流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取目标对象的当前移动向量。
需要说明的是,上述目标对象为游戏中可移动并能产生尾迹的对象,例如,飞机、火箭、炮弹等。其中,目标对象的当前移动向量即为目标对象从位置A移动至位置B时所产生的向量。
步骤S104,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;
需要说明的是,上述特效模型为游戏开发人员构建的目标对象移动时所产生的尾迹的模型,如图2所示的一种可选的特效模型的结构示意图,其中,图2中的特效模型由4个交叉的平面(即平面一、平面二、平面三和平面四)组成,每个平面又由多个几何网格构成,在本实施方式中,几何网格为三角形网格,在其他实施方式中,也可以根据需要选择合适的几何网格,如图3所示的一种可选的平面的结构示意图。在本实施方式中,子模型可以通过如下方式进行确定:根据固定距离对特效模型确定为N等份,举例而言,当基于Z0所在的竖直平面得到特效模型的子模型的截面时,可以得到图4所示的子模型的截面的示意图,此时,预设位置为ZO。同样,当基于Z1所在的竖直平面得到特效模型的子模型的截面时,预设位置为Z1。其中,ZO与Z1之间的模型为特效模型的子模型。在其他实施方式中,根据其他规则确定固特效模型中的子模型参数。
此外,还需要说明的是,上述当前变换矩阵用于调整子模型的方位。由于在当前变换矩阵是根据目标对象的当前移动向量得到的,而通过当前变换矩阵可以对特效模型的子模型进行调整,因此,通过对当前变换矩阵进行更新可以达到使子模型跟随目标对象移动的效果。
步骤S106,根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置。
在本实施方式中,当前变换矩阵包含旋转矩阵,通过旋转矩阵确定子模型的朝向,此时,需要当前移动向量来确定子模型的位置。在其他实施方式中,当前变换矩阵还包括平移矩阵,其中,旋转矩阵用于调整子模型的朝向,而平移矩阵用于调整子模型的位置,即,当上述当前变换矩阵包含旋转矩阵和平移矩阵时,根据当前变换矩阵即可确定子模型的朝向和位置。在其他实施方式中,当前变换矩阵也可以包含其他的辅助信息,以实现调整子模型的朝向和/或位置的目的。
在本实施方式中,当前子模型的参数至少包括如下之一:当前子模型的顶点坐标、当前子模型的中心坐标、子模型的UV坐标,根据子模型的参数即可确定子模型的位置和朝向。其中,子模型的UV坐标为三维坐标轴中,包含z轴的平面中的坐标,U对应的方向为竖直方向,V对应的方向为水平方向。如图5所示的一种可选的平面一的示意图,十个顶点在xyz坐标轴的坐标分别为:P000(X00,Y00,Z0)、P001(X00,Y00,Z1)、P002(X00,Y00,Z2)、P003(X00,Y00,Z3)、P004(X00,Y00,Z4)、P010(X01,Y01,Z0)、P011(X01,Y01,Z1)、P012(X01,Y01,Z2)、P013(X01,Y01,Z3)、P014(X01,Y01,Z4),则对应的UV坐标为P000(U00,V00)、P001(U10,V10)、P002(U20,V20)、P003(U30,V30)、P004(U40,V40)、P010(U01,V01)、P011(U11,V11)、P012(U12,V12)、P013(U13,V13)、P014(U14,V14)。具体的,在得到当前变换矩阵之后,基于当前变换矩阵对子模型的初始参数进行更新即可得到子模型的当前参数。
此外,还需要说明的是,特效模型包括多个截面。其中,可以每隔固定距离获取特效模型的截面,如图5所示,分别在Z0、Z1、Z2、Z3、Z4处得到特效模型的截面,其中,ZOZ1=Z1Z2=Z2Z3=Z3Z4。另外,可以在关键位置处得到截面,例如,在Z0、Z2和Z3处得到特效模型的截面。在确定特效模型的截面之后,即可根据截面的相关参数来对子模型进行更新,即可得到更新后的特效模型。
步骤S108,显示更新后的特效模型。
需要说明的是,图6示出了一种更新后的特效模型,在得到更新后的特效模型之后,对更新后的模型通过渲染的方式对特效模型进行美化,可以得到形象逼真的尾迹。另外,在得到更新后的特效模型之后,不会再对历史的子模型进行更新,只会更新最新的子模型。例如,当前的特效模型由三个子模型组成,在通过目标对象的当前移动向量确定了第四个子模型的位置和朝向之后,只对第四个子模型的位置和朝向进行更新,而不会再对前三个子模型进行更新。
此外,还需要说明的是,由于特效模型是由多个相互交叉的平面组成,因此,本申请所生成的特效模型具有较好的立体效果,拟真度高,从任何方向都不会有违和感。
基于上述步骤S102至步骤S108所限定的步骤,可以获知,通过获取目标对象的当前移动向量,并根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,然后根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置,并显示更新后的特效模型,其中,特效模型包括多个交叉的平面。
容易注意到的是,由于特效模型的子模型的当前变换矩阵、子模型的位置和朝向与目标对象的当前移动向量有关,因此,基于当前移动向量得到的更新后的特效模型可以跟随目标对象移动,进而实现了尾迹跟随目标对象的移动自动变化的效果。另外,由于特效模型是由多个平面交叉组成,从而使得尾迹具有立体效果。并且,由于通过平面交叉的方式生成尾迹的方式简单,对***的性能要求较低,从而克服了采用粒子***生成尾迹增加***负担的问题。
由上述内容可知,本申请所提供的游戏特效的处理方法可以达到使尾迹具有立体效果的目的,从而实现了增强尾迹的显示效果的技术效果,进而解决了现有技术中尾迹的显示效果差的技术问题。
需要说明的是,在获取目标对象的当前移动向量之前,需要设置特效模型的初始参数,具体步骤如下包括:
步骤S10,构建特效模型;
步骤S12,获取特效模型的参数,其中,特效模型的参数至少包括如下之一:特效模型的分段数、特效模型的长度;
步骤S14,根据特效模型的参数确定子模型的初始参数,其中,初始参数至少包括如下之一:子模型的初始顶点坐标、子模型的初始中心坐标。
具体的,以四个平面组成的特效模型为例进行说明。首先设置特效模型的参数,包括特效模型的高度、宽度、长度、分段数,其中,特效模型的分段数可以为对特效模型进行均匀分段所得到的分段数,也可以为按照预定规则对特效模型进行分段所得到的分段数。根据特效模型的参数可计算出每个子模型的初始参数,如图4所示的子模型的截面,在该截面中包含八个顶点(即为子模型的顶点),分别为P00(X00,Y00)、P10(X10,Y10)、P20(X20,Y20)、P30(X30,Y30)、P01(X01,Y01)、P11(X11,Y11)、P21(X21,Y21)、P31(X31,Y31)。其中,X00=Width*0.5,Y00=0;X01=-Width*0.5,Y01=0;X10=Width*0.5*0.7071,Y10=Height*0.5*0.7071;X11=-Width*0.5*0.7071,Y11=-Height*0.5*0.7071;X20=0,Y20=Height*0.5;X21=0,Y21=-Height*0.5;X30=-Width*0.5*0.7071,Y30=Height*0.5*0.7071;X31=Width*0.5*0.7071,Y31=-Height*0.5*0.7071。其中,Width为特效模型的宽度,Height为特效模型的高度。
另外,每个子模型的截面在z轴方向的坐标的计算公式为:
在上式中,zn为第n个子模型的截面的z坐标,Length为特效模型的长度,Segment为分段数。
每个子模型的截面对应的UV坐标的计算公式为:
此外,需要说明的是,根据每个子模型的顶点坐标可确定每个子模型的截面的中心坐标。
在一种可选的实施例中,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵包括:
步骤S1020,判断当前移动向量对应的移动距离是否大于预设距离。
具体的,在本实施方式中,当前移动向量对应的移动距离为构成该当前移动向量的多个历史移动向量对应的多个移动距离的累计值,通过该累计值判断是否大于预设距离,其中,预先设定获取移动向量的预设时间间隔,举例而言,该时间间隔可以为帧间隔值,即,每一帧获取一次移动向量对应的移动距离并进行保存,当累计得到的移动距离总数大于预设距离时,则判定移动向量对应的移动距离是否大于预设距离。需要说明的是,也可以通过其他的方式获取当前移动向量对应的移动距离。
步骤S1022,当移动距离大于预设距离时,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵。
需要说明的是,上述预设距离可以为但不限于特效模型的一个分段的长度。具体的,可通过如下程序确定是否对子模型进行更新:
Vector3v_diff=PosTarget–PosPrev
if v_diff.Length<Length/Segment then
return;
end
其中,Vector3表示定义一个三维向量,即v_diff为三维向量,v_diff表示目标对象的移动向量;PosTarget为目标对象移动后位置;PosPrev为目标对象移动前的位置;v_diff.Length表示移动向量对应的移动距离;Segment为特效模型的分段数,Length为特效模型的长度。
需要说明的是,当移动距离大于预设距离时,才会根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵。其中,可通过如下方法获取当前变换矩阵:
步骤S10220,确定当前移动向量对应的方向信息发生变化;
步骤S10222,获取子模型的初始变换矩阵;
步骤S10224,根据移动向量确定更新矩阵;
步骤S10226,基于初始变换矩阵和更新矩阵确定当前变换矩阵;或
步骤S10228,确定当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则当前变换矩阵为根据上一次获得的移动向量确定的变换矩阵。
需要说明的是,子模型的初始变换矩阵可以为对特效模型进行初始化时的变换矩阵,也可以为在对特效模型进行更新的过程中,上一次更新之后所对应的变换矩阵。
具体的,首先确定目标对象的初始移动向量,其中,根据初始移动向量可确定目标对象的初始移动方向。然后根据目标对象的当前移动向量可确定目标对象的当前移动距离和当前移动方向,通过计算目标对象的当前移动向量与初始移动向量的差异,即可得到更新矩阵。目标对象移动的过程中,更新矩阵也在不断的发生变化。另外,特效模型中所有子模型的初始变换矩阵均相同,可以为但不限于单位矩阵。在根据当前移动向量得到更新矩阵之后,通过更新矩阵与初始变换矩阵计算,即可得到子模型的当前变换矩阵,在本实施方式中,通过更新矩阵与初始变换矩阵相乘以确定当前变换矩阵。即满足下式:
M=MR
其中,M为当前变换矩阵,R为更新矩阵。
在一种可选的实施例中,可通过如下程序确定目标对象的初始移动方向和移动后的方向是否一致:
Vector3v_move_dir=v_diff.Normalize()
Vector3v_dir_diff=Dirprev–v_move_dir
if v_dir_diff.Length==0then
return;
end
其中,v_move_dir表示对当前移动向量进行归一化后所得到的三维向量;Dirprev为目标对象移动前的方向向量。
需要说明的是,在确定目标对象的移动方向发生变化之后才会对当前变换矩阵进行更新。其中,可通过下式计算目标对象的旋转角度:
Vector3v_rot=Cross(DirPrev,v_dir)
f_angle=ACos(Clamp(Dot(DirPrev,v_dir),-1,1))
其中,函数Cross(A,B)表示求三维向量A和B的叉积,Dot(A,B)表示求三维向量A和B的点积,函数Clamp(x,a,b)表示将x的值限定在a和b之间,函数ACos(X)表示求X的反余弦的值,即得到X对应的角度。
在得到目标对象的旋转角度之后,在结合目标对象的中心坐标,即可得到更新矩阵R,如下:
在上式中,θ即为通过反余弦函数求得的角度,x、y为目标对象的中心坐标值。在得到更新矩阵之后,根据M=MR即可得到更新后的当前变换矩阵M。
在一种可选的实施例中,根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置,包括:
步骤S1060,获取子模型的初始中心坐标以及子模型的初始顶点坐标;
步骤S1062,根据当前变换矩阵对子模型的初始中心坐标以及子模型的初始顶点坐标进行更新,得到子模型的朝向,其中,当前变换矩阵包含旋转矩阵;
步骤S1064,根据当前移动向量对应的移动距离,确定子模型的位置。
需要说明的是,上述步骤SS1062和S1064的顺序可以进行互换,在此不做限定。
具体的,通过子模型顶点初始中心坐标与当前移动向量和固定距离更新子模型中心坐标的位置,在本实施方式中,可以通过如下公式对子模型的初始中心坐标进行更新:
Vector3v_center=PosPrev+v_move_dir*Length/Segment
在得到子模型的中心坐标以及当前变换矩阵之后,通过当前变换矩阵与子模型顶点的坐标获得变换朝向后的子模型顶点坐标信息,再根据更新后的子模型的中心坐标和变换朝向后的子模型顶点坐标信息,以获得改变朝向和方向后的子模型信息,在本实施方式中,通过如下公式可对子模型的顶点坐标进行更新:
Vector3v_final=v_center+M*v_add
其中,v_add为初始顶点坐标所组成的矩阵,以图4为例,v_add为包含八个顶点坐标的矩阵。至此,便完成了对子模型的更新。
在另一可选的实施例中,根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置,包括:
步骤S1061,获取子模型的初始中心坐标以及子模型的初始顶点坐标;
步骤S1063,根据当前变换矩阵对子模型的初始中心坐标以及子模型的初始顶点坐标进行更新,得到子模型的朝向和位置,其中,当前变换矩阵包含旋转矩阵和平移矩阵,通过旋转矩阵和平移矩阵分别对初始中心坐标和初始顶点坐标进行更新,以得到更新后的子模型。
需要说明的是,在得到更新后的子模型之后,可通过如下至少任意一种方式显示子模型:
确定特效模型中所有需要更新的子模型,在所有的子模型更新完之后再显子效模型;或者在确定特效模型中需要更新的任意一个子模型之后,即显示更新好的子模型。
需要说明的是,在显示更新后的特效模型之后,需要判断当前移动向量对应的移动距离是否大于预设阈值;若移动距离大于预设阈值,则继续执行根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置的步骤,直至移动距离小于等于预设阈值为止。
此外,还需要说明的是,在显示更新后的特效模型之前,确定子模型处于隐藏状态;显示更新后的特效模型之后,确定子模型处于显示状态。具体的,在需要对特效模型进行更新时,设置子模型的每个顶点为不可见状态,或者透明状态,而在完成对特效模型的更新之后,使子模型的每个顶点为可见状态,即将顶点的透明度设置为1。在***对特效模型进行更新的过程中,用户不会感知到特效模型中的某个截面的更新,进而保证更新特效模型的过程中用户的视觉体验。
实施例2
根据本发明实施例,还提供了一种游戏特效的处理装置实施例,其中,图7是根据本发明实施例的游戏特效的处理装置结构示意图,如图7所示,该装置包括:第一获取模块701、第二获取模块703、确定模块705以及显示模块707。
其中,第一获取模块701,用于获取目标对象的当前移动向量;第二获取模块703,用于根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;确定模块705,用于根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示模块707,用于显示更新后的特效模型。
需要说明的是,上述第一获取模块701、第二获取模块703、确定模块705以及显示模块707对应于实施例1中的步骤S102至步骤S108,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,游戏特效的处理装置还包括:构建模块、第三获取模块以及第一确定模块。其中,构建模块,用于构建特效模型;第三获取模块,用于获取特效模型的参数,其中,特效模型的参数至少包括如下之一:特效模型的分段数、特效模型的长度;第一确定模块,用于根据特效模型的参数确定子模型的初始参数,其中,初始参数至少包括如下之一:子模型的初始顶点坐标、子模型的初始中心坐标。
需要说明的是,上述构建模块、第三获取模块以及第一确定模块对应于实施例1中的步骤S10至步骤S14,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,第二获取模块包括:第一判断模块以及第四获取模块。其中,第一判断模块,用于判断当前移动向量对应的移动距离是否大于预设距离;第四获取模块,用于当移动距离大于预设距离时,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵。
需要说明的是,上述第一判断模块以及第四获取模块对应于实施例1中的步骤S1020至步骤S1022,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,第四获取模块包括:第二确定模块、第五获取模块、第三确定模块、第五确定模块以及第六确定模块。其中,第二确定模块,用于确定当前移动向量对应的方向信息发生变化;第五获取模块,用于获取子模型的初始变换矩阵;第三确定模块,用于根据当前移动向量确定更新矩阵;第五确定模块,用于基于初始变换矩阵和更新矩阵确定当前变换矩阵;或第六确定模块,用于确定当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则当前变换矩阵为根据上一次获得的移动向量确定的变换矩阵。
需要说明的是,上述第二确定模块、第五获取模块、第三确定模块、第五确定模块以及第六确定模块对应于实施例1中的步骤S10220至步骤S10228,五个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,确定模块包括:第六获取模块、更新模块以及第四确定模块。其中,第六获取模块,用于获取子模型的初始中心坐标以及子模型的初始顶点坐标;更新模块,用于根据当前变换矩阵对子模型的初始中心坐标以及子模型的初始顶点坐标进行更新,得到子模型的朝向;第四确定模块,用于根据当前移动向量对应的移动距离,确定子模型的位置。
需要说明的是,上述第六获取模块、更新模块以及第四确定模块对应于实施例1中的步骤S1060至步骤S1064,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,游戏特效的处理装置还包括:第二判断模块以及执行模块。其中,第二判断模块,用于判断移动向量对应的移动距离是否大于预设阈值;执行模块,用于若移动距离大于预设阈值,则继续执行根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置的步骤,直至移动距离小于等于预设阈值为止。
在一种可选的实施例中,在显示更新后的特效模型之前,确定子模型处于隐藏状态;显示更新后的特效模型之后,确定子模型处于显示状态。
实施例3
根据本发明实施例的另一方面,还提供了一种存储介质。如图8所示,该存储介质包括存储的程序产品1100,其中,程序执行如下步骤:获取目标对象的当前移动向量;根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型包括多个交叉的平面;根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示更新后的特效模型。
可选的,在获取目标对象的当前移动向量之前,上述程序还执行如下步骤:构建特效模型;获取特效模型的参数,其中,特效模型的参数至少包括如下之一:特效模型的分段数、特效模型的长度;根据特效模型的参数确定子模型的初始参数,其中,初始参数至少包括如下之一:子模型的初始顶点坐标、子模型的初始中心坐标。
可选的,上述程序还执行如下步骤:判断当前移动向量对应的移动距离是否大于预设距离;当移动距离大于预设距离时,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵。
可选的,当移动距离大于预设距离时,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵包括至少之一:确定当前移动向量对应的方向信息发生变化;获取子模型的初始变换矩阵;根据当前移动向量确定更新矩阵;
基于初始变换矩阵和更新矩阵确定当前变换矩阵;或确定当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则当前变换矩阵为根据上一次获得的移动向量确定的变换矩阵。
可选的,上述程序还执行如下步骤:获取子模型的初始中心坐标以及子模型的初始顶点坐标;根据当前变换矩阵对子模型的初始中心坐标以及子模型的初始顶点坐标进行更新,得到子模型的朝向;根据当前移动向量对应的移动距离,确定子模型的位置。
可选的,显示更新后的特效模型之后,上述程序还执行如下步骤:判断当前移动向量对应的移动距离是否大于预设阈值;若移动距离大于预设阈值,则继续执行根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置的步骤,直至移动距离小于等于预设阈值为止。
可选的,在显示更新后的特效模型之前,上述程序还执行如下步骤:确定子模型处于隐藏状态;显示更新后的特效模型之后,确定子模型处于显示状态。
实施例4
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中的显示尾迹的方法。
实施例5
根据本发明实施例,还提供了一种游戏特效的处理终端实施例。其中,该终端包括:显示器和处理器。
其中,处理器运行程序,程序运行时对于从显示器输出的数据执行如下处理步骤:获取目标对象的当前移动向量;根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,特效模型至少包括多个交叉的平面;根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置;显示更新后的特效模型。
可选的,在获取目标对象的当前移动向量之前,处理器还用于:构建特效模型;获取特效模型的参数,其中,特效模型的参数至少包括如下之一:特效模型的分段数、特效模型的长度;根据特效模型的参数确定子模型的初始参数,其中,初始参数至少包括如下之一:子模型的初始顶点坐标、子模型的初始中心坐标。
可选的,处理器还用于判断当前移动向量对应的移动距离是否大于预设距离;当移动距离大于预设距离时,根据目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵。
可选的,当移动距离大于预设距离时,处理器还用于确定当前移动向量对应的方向信息发生变化;获取子模型的初始变换矩阵;根据当前移动向量确定更新矩阵;
基于初始变换矩阵和更新矩阵确定当前变换矩阵;或确定当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则当前变换矩阵为根据上一次获得的移动向量确定的变换矩阵。
可选的,处理器还用于包括:获取子模型的初始中心坐标以及子模型的初始顶点坐标;根据当前变换矩阵对子模型的初始中心坐标以及子模型的初始顶点坐标进行更新,得到子模型的朝向;根据当前移动向量对应的移动距离,确定子模型的位置。
可选的,显示更新后的特效模型之后,处理器还用于判断当前移动向量对应的移动距离是否大于预设阈值;若移动距离大于预设阈值,则继续执行根据当前变换矩阵和/或当前移动向量确定子模型的朝向和/或位置的步骤,直至移动距离小于等于预设阈值为止。
可选的,在显示更新后的特效模型之前,处理器还用于确定子模型处于隐藏状态;显示更新后的特效模型之后,确定子模型处于显示状态。
上述实施方式达到了降低终端在生成尾迹时的计算压力,同时具有提高了尾迹立体效果的目的,从而实现了增强尾迹的显示效果的技术效果,进而解决了现有技术中尾迹的显示效果差的技术问题。
通过本申请提供的终端,使得用户在看到其他虚拟对象时,无需将当前的游戏场景画面切换到原朝向所对应的游戏场景画面,而是可以直接将停留在当前的游戏场景画面,继续后续的游戏操作,这样可以有效的减少用户输入的交互指令,提升用户体验,使游戏过程更加流畅,减少玩家的频繁切换屏幕的不适感,减少玩家的记忆与操作负担,同时,减少了游戏场景画面的渲染负担。
在可选的实施方式中,终端其进一步可以包括一个或多个处理器,以及由存储器所代表的存储器资源,用于存储可由处理组件执行的指令,例如应用程序。存储器中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件被配置为执行指令,以执行上述的信息处理方法。
该终端还可以包括:一个电源组件,电源组件被配置成对执行终端进行电源管理;一个有线或无线网络接口,被配置成将终端连接到网络;以及一个输入输出(I/O)接口。该终端可以操作基于存储在存储器的操作***,例如Android、iOS、Windows,Mac OS X,Unix,Linux,FreeBSD或类似。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种游戏特效的处理方法,其特征在于,包括:
获取目标对象的当前移动向量;
根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,所述特效模型包括多个交叉的平面;
根据所述当前变换矩阵和/或所述当前移动向量确定所述子模型的朝向和/或位置;
显示更新后的特效模型;
其中,根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,包括:
判断所述当前移动向量对应的移动距离是否大于预设距离;
当所述移动距离大于所述预设距离时,根据所述目标对象的当前移动向量获得所述特效模型的子模型对应的当前变换矩阵;
其中,当所述移动距离大于所述预设距离时,根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,包括至少下述方法之一:
确定所述当前移动向量对应的方向信息发生变化;
获取所述子模型的初始变换矩阵;
根据所述当前移动向量确定更新矩阵;
基于所述初始变换矩阵和所述更新矩阵确定所述当前变换矩阵;或
确定所述当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则所述当前变换矩阵为根据所述上一次获得的移动向量确定的变换矩阵。
2.根据权利要求1所述的方法,其特征在于,在获取目标对象的当前移动向量之前,所述方法还包括:
构建所述特效模型;
获取所述特效模型的参数,其中,所述特效模型的参数至少包括如下之一:所述特效模型的分段数、所述特效模型的长度;
根据所述特效模型的参数确定所述子模型的初始参数,其中,所述初始参数至少包括如下之一:所述子模型的初始顶点坐标、所述子模型的初始中心坐标。
3.根据权利要求1所述的方法,其特征在于,根据所述当前变换矩阵和/或所述当前移动向量确定所述子模型的朝向和/或位置,包括:
获取所述子模型的初始中心坐标以及所述子模型的初始顶点坐标;
根据所述当前变换矩阵对所述子模型的初始中心坐标以及所述子模型的初始顶点坐标进行更新,得到所述子模型的朝向;
根据所述当前移动向量对应的移动距离,确定所述子模型的位置。
4.根据权利要求1所述的方法,其特征在于,显示更新后的特效模型之后,所述方法还包括:
判断所述当前移动向量对应的移动距离是否大于预设阈值;
若所述移动距离大于所述预设阈值,则继续执行根据所述当前变换矩阵和/或所述当前移动向量确定所述子模型的朝向和/或位置的步骤,直至所述移动距离小于等于所述预设阈值为止。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在显示更新后的特效模型之前,确定所述子模型处于隐藏状态;显示更新后的特效模型之后,确定所述子模型处于显示状态。
6.一种游戏特效的处理装置,其特征在于,包括:
第一获取模块,用于获取目标对象的当前移动向量;
第二获取模块,用于根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,所述特效模型包括多个交叉的平面;
确定模块,用于根据所述当前变换矩阵和/或所述当前移动向量确定所述子模型的朝向和/或位置;
显示模块,用于显示更新后的特效模型;
其中,所述第二获取模块包括:第一判断模块以及第四获取模块;其中,第一判断模块,用于判断所述当前移动向量对应的移动距离是否大于预设距离;第四获取模块,用于当所述移动距离大于所述预设距离时,根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵;
其中,第四获取模块包括:第二确定模块、第五获取模块、第三确定模块、第五确定模块以及第六确定模块, 其中,第二确定模块,用于确定当前移动向量对应的方向信息发生变化;第五获取模块,用于获取子模型的初始变换矩阵;第三确定模块,用于根据当前移动向量确定更新矩阵;第五确定模块,用于基于初始变换矩阵和更新矩阵确定当前变换矩阵;或第六确定模块,用于确定当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则当前变换矩阵为根据上一次获得的移动向量确定的变换矩阵。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至5中任意一项所述的游戏特效的处理方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的游戏特效的处理方法。
9.一种游戏特效的处理终端,其特征在于,包括:
显示器;
处理器,所述处理器运行程序,其中,所述程序运行时对于从所述显示器输出的数据执行如下处理步骤:
获取目标对象的当前移动向量;
根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,其中,所述特效模型包括多个交叉的平面;
根据所述当前变换矩阵和/或所述当前移动向量确定所述子模型的朝向和/或位置;
显示更新后的特效模型;
其中,根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,包括:
判断所述当前移动向量对应的移动距离是否大于预设距离;
当所述移动距离大于所述预设距离时,根据所述目标对象的当前移动向量获得所述特效模型的子模型对应的当前变换矩阵;
其中,当所述移动距离大于所述预设距离时,根据所述目标对象的当前移动向量获得特效模型的子模型对应的当前变换矩阵,包括至少下述方法之一:
确定所述当前移动向量对应的方向信息发生变化;
获取所述子模型的初始变换矩阵;
根据所述当前移动向量确定更新矩阵;
基于所述初始变换矩阵和所述更新矩阵确定所述当前变换矩阵;或
确定所述当前移动向量对应的方向信息与上一次获得的移动向量对应的方向信息相同,则所述当前变换矩阵为根据所述上一次获得的移动向量确定的变换矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810214472.5A CN108379841B (zh) | 2018-03-15 | 2018-03-15 | 游戏特效的处理方法、装置和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810214472.5A CN108379841B (zh) | 2018-03-15 | 2018-03-15 | 游戏特效的处理方法、装置和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108379841A CN108379841A (zh) | 2018-08-10 |
CN108379841B true CN108379841B (zh) | 2021-10-29 |
Family
ID=63067762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810214472.5A Active CN108379841B (zh) | 2018-03-15 | 2018-03-15 | 游戏特效的处理方法、装置和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108379841B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110930484B (zh) * | 2019-11-21 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 动画配置方法和装置、存储介质及电子装置 |
CN111111177A (zh) * | 2019-12-23 | 2020-05-08 | 北京像素软件科技股份有限公司 | 游戏特效扰动背景的方法、装置和电子设备 |
CN112473138B (zh) * | 2020-12-10 | 2023-11-17 | 网易(杭州)网络有限公司 | 游戏的显示控制方法及装置、可读存储介质、电子设备 |
CN114708290A (zh) * | 2022-03-28 | 2022-07-05 | 北京字跳网络技术有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542610A (zh) * | 2010-12-30 | 2012-07-04 | 福建星网视易信息***有限公司 | 一种基于OpenGL ES的图像特效实现方法 |
CN104091019A (zh) * | 2014-07-09 | 2014-10-08 | 无锡梵天信息技术股份有限公司 | 一种模型绑定特效的方法 |
CN105468358A (zh) * | 2015-11-17 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种移动游戏的数据处理方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003044720A1 (en) * | 2001-11-15 | 2003-05-30 | Nintendo Software Technology Corporation | System and method of simulating and imaging realistic water surface |
-
2018
- 2018-03-15 CN CN201810214472.5A patent/CN108379841B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542610A (zh) * | 2010-12-30 | 2012-07-04 | 福建星网视易信息***有限公司 | 一种基于OpenGL ES的图像特效实现方法 |
CN104091019A (zh) * | 2014-07-09 | 2014-10-08 | 无锡梵天信息技术股份有限公司 | 一种模型绑定特效的方法 |
CN105468358A (zh) * | 2015-11-17 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种移动游戏的数据处理方法以及装置 |
Non-Patent Citations (2)
Title |
---|
Unity3D研究院之与根据动态的两个轨迹点绘制面详解(二十);雨松MOMO;《https://www.xuanyusong.com/archives/780》;20120506;正文1-12页 * |
武器拖尾的实现;茶向;《https://blog.csdn.net/sgnyyy/article/details/41621305》;20141130;正文1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108379841A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108379841B (zh) | 游戏特效的处理方法、装置和终端 | |
WO2022001652A1 (zh) | 虚拟角色控制方法、装置、计算机设备和存储介质 | |
US9839844B2 (en) | Sprite strip renderer | |
US20140078144A1 (en) | Systems and methods for avatar creation | |
WO2016142787A1 (en) | System, method and device for three-dimensional voxel-based modeling | |
CN111773686A (zh) | 动画的生成方法和装置、存储介质、电子装置 | |
CN106204713B (zh) | 静态合并处理方法和装置 | |
CN108245890B (zh) | 控制虚拟场景中物体运动的方法和装置 | |
US10762682B2 (en) | Skinning weights and underlying object suppression of three-dimensional images | |
US20240037839A1 (en) | Image rendering | |
US10748350B1 (en) | Modification of animated characters | |
CN111292402B (zh) | 数据处理的方法、装置、设备及计算机可读存储介质 | |
US9056247B2 (en) | System and method for efficient character animation | |
CN111714880A (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
CN111773688B (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
JP2008090498A (ja) | 画像処理方法、画像処理装置 | |
CN112843704B (zh) | 动画模型处理方法、装置、设备及存储介质 | |
WO2017167167A1 (zh) | 模型对象构建的方法、服务器及*** | |
JP2002222435A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
CN116228951B (zh) | 一种数字虚拟对象的表情数据处理方法和装置 | |
CN113101666A (zh) | 游戏角色模型方法、装置、计算机设备及存储介质 | |
WO2017174006A1 (zh) | 图片处理的方法和装置 | |
CN113313796B (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
CN108499109B (zh) | 一种基于ue引擎实现物品可实时单侧缩放的方法 | |
CN113041616A (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 |