动画的播放方法和装置、存储介质、电子装置与流程

文档序号:15612850发布日期:2018-10-09 20:47阅读:251来源:国知局

本发明涉及互联网领域,具体而言,涉及一种动画的播放方法和装置、存储介质、电子装置。



背景技术:

游戏特效指游戏中特殊的效果,通常是由后期渲染出的现实中一般不会出现的特殊效果,能够给玩家带来的最直接的感受就是游戏中的光影效果等,它在游戏中所分的类型比较多,比如说人物技能特效、场景中的瀑布、落叶、ui特效等,特效一般是指视觉特效,能够在产品宣传推广中有推波助澜的效果,特效起着提高产品美术水准,烘托大作氛围的作用,好的特效还能吸引玩家眼球,增加战斗体验,拉进玩家互动。

例如,在使用虚幻引擎等引擎制作的生存竞技游戏中,存在投掷物系统,投掷物的过程中需要配置一个闪光弹效果,该闪光弹效果可使用虚幻引擎的屏幕后处理,屏幕后处理的性能开销太大,在手机等低性能的设备上运行大型游戏,会导致gpu开销太大,帧率下降,功耗过高导致耗电严重,会严重影响游戏体验,类似地,在其他类型的特效中也存在类似的缺陷。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种动画的播放方法和装置、存储介质、电子装置,以至少解决相关技术中进行特效处理时对gpu的资源消耗量较大的技术问题。

根据本发明实施例的一个方面,提供了一种动画的播放方法,包括:在第一客户端上检测到目标事件,其中,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;在第一客户端上播放目标动画。

根据本发明实施例的另一方面,还提供了一种动画的播放装置,包括:检测单元,用于在第一客户端上检测到目标事件,其中,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;采集单元,用于响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;播放单元,用于在第一客户端上播放目标动画。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,在第一客户端上检测到目标事件,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;在第一客户端上播放目标动画,可见,可以直接通过面片(即信息层)展示出需要的特效效果,而不用通过后期图形处理器gpu进行大量的数据计算来在第二动画信息增加特效,可以解决相关技术中进行特效处理时对gpu的资源消耗量较大的技术问题,进而达到降低进行特效处理时对gpu的资源消耗的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的动画的播放方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的动画的播放方法的流程图;

图3是根据本发明实施例的一种可选的组件配置界面的示意图;

图4是根据本发明实施例的一种可选的组件配置界面的示意图;

图5是根据本发明实施例的一种可选的组件配置界面的示意图;

图6是根据本发明实施例的一种可选的虚拟摄像机的示意图;

图7是根据本发明实施例的一种可选的面片区域的示意图;

图8是根据本发明实施例的一种可选的动画的播放方法的流程图;

图9是根据本发明实施例的一种可选的游戏画面的示意图;

图10是根据本发明实施例的一种可选的游戏画面的示意图;

图11是根据本发明实施例的一种可选的游戏画面的示意图;

图12是根据本发明实施例的一种可选的动画的播放装置的示意图;

以及

图13是根据本发明实施例的一种终端的结构框图。

具体实施方式

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

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

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

3d游戏:是以三维计算机图形为基础制作的立体电子游戏,包括但不限于多人在线联机的网络3d游戏、单人进行游戏的单人3d游戏,可基于3d游戏系统建立的虚拟现实游戏系统实现,对平台具有通用适用属性,如游戏主机平台、手机游戏平台、pc端游戏平台内的3d游戏都属于3d游戏。

第一人称射击类游戏fps(first-personshootinggame),第一人称射击游戏属于动作类游戏act的一个分支,顾名思义,第一人称视角射击游戏就是以玩家的主观视角来进行射击游戏。

第三人称射击游戏tps(third-personshootinggame),是射击游戏的一种,与第一人称射击游戏的区别在于第一人称射击游戏里屏幕上显示的只有主角的视野,而第三人称射击游戏更加强调动作感,主角在游戏屏幕上是可见的。

虚幻引擎:unrealengine,简称为ue,当前的版本有ue3、ue4等,是一个面向下一代游戏机和个人电脑的完整的游戏开发平台,提供了游戏开发者需要的大量的核心技术、数据生成工具和基础支持。

根据本发明实施例的一方面,提供了一种动画的播放方法的方法实施例。

可选地,在本实施例中,上述动画的播放方法可以应用于如图1所示的由终端101所构成的硬件环境中。硬件环境中还可包括服务器103,如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于pc、手机、平板电脑等。

图2是根据本发明实施例的一种可选的动画的播放方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,终端在第一客户端上检测到目标事件,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件。

上述的第一客户端以及后文中提及的第二客户端即为同一游戏应用的客户端,如第一人称射击类游戏fps或第三人称射击游戏tps的客户端;虚拟场景即该游戏的游戏场景,上述第一对象和后文提及的第二对象即游戏中的玩家所操控的游戏角色,例如,第一对象为通过第一客户端所操作的对象,或者是与第一客户端操控的对象位于同一战队的对象;攻击事件即场景中的另一对象向第一对象发起攻击的事件或游戏逻辑造成的使得第一对象受到攻击的事件,如向第一对象投掷道具、射击等,再如游戏逻辑中缩小游戏角色的生存范围(此时若第一对象位于生存区外则相当于受到攻击)、释放毒气等事件。

可选地,游戏引擎可为上述第一人称射击类游戏fps或第三人称射击游戏tps的游戏引擎,如虚幻游戏引擎、unity3d游戏引擎、cocos游戏引擎等。

步骤s204,响应于目标事件,终端使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,也即添加的特效效果,第二动画信息为目标区域上显示的动画信息,即原始的游戏视频。

上述的虚拟摄像机在游戏引擎中使用的摄像机,游戏引擎是一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件,这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始,大部分都支持多种操作平台,游戏引擎可包含以下组件:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等。

上述的信息层可以为游戏的虚拟场景中的面片,换言之,可以通过虚拟场景中的面片来配置出特效所需的动画信息(如前述的后处理得到的动画信息),在角色(即上述的对象)的虚拟摄像机的减震杆springarm前面增加面片,可以用更低的功耗实现屏幕效果,在游戏运行中,特别是在第三人称的视角中,如果转动摄像机时,当前摄像机的位置与地形等发生了物理碰撞,如果希望此时摄像机不进入障碍物内部(比如仰视地面上的角色,且摄像机和角色距离很远时,不希望摄像机进入地下,而是自动缩小摄像机和角色之前的距离),此时就可通过使用springarm组件实现。

步骤s206,终端在第一客户端上播放目标动画。

在上述实施例中,以本发明实施例的动画的播放方法由终端101来执行为例进行说明,本申请的方法也可以由服务器103来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本发明实施例的信息的展示方法也可以是由安装在其上的客户端来执行。

通过上述步骤s202至步骤s206,在第一客户端上检测到目标事件,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;在第一客户端上播放目标动画,可见,可以直接通过面片(即信息层)展示出需要的特效效果,而不用通过后期图形处理器gpu进行大量的数据计算来在第二动画信息增加特效,可以解决相关技术中进行特效处理时对gpu的资源消耗量较大的技术问题,进而达到降低进行特效处理时对gpu的资源消耗的技术效果。

需要说明的是,本申请的技术方案不同于通过虚幻引擎等引擎中的广告板材质,用材质上的着色器shader来实现屏幕效果,使用广告板材质时,因为虚幻引擎等引擎的摄像机挂载在springarm上,广告板屏幕效果会在角色晃动时候出现忽大忽小的情况,甚至出现人物和广告板屏幕效果之间的穿插问题;也不同于通过虚幻引擎等引擎中的uiimage元素上使用材质来实现屏幕效果,在uiimage元素上使用ui材质shader实现屏幕效果时,因为虚幻引擎的ui控件不能网络共享,当多人对战时候无法共享该屏幕效果,需要额外标记需要共享的玩家和维护更多的网络逻辑,实现起来过于复杂。

本申请的技术方案在角色的摄像机的springarm前面增加面片,可用更低的功耗实现屏幕效果;通过在面片和摄像机springarm之间保持固定相对距离,避免了直接用广告板屏幕效果中出现的忽大忽小问题;因为虚幻引擎中的3d场景面片,可以直接在其配置中配置需要网络同步,就可以避免使用ui屏幕效果时候需要维护额外的网络同步逻辑的问题,可以轻易实现多人共享屏幕的效果。下面结合步骤s202至步骤s206详述本申请的实施例:

在步骤s202提供的技术方案中,使用虚幻引擎等引擎制作的生存竞技游戏,存在投掷物系统,在投掷道具时往往需要一个闪光弹效果,再如,在地图上缩减生存范围时,也需要生成一个起雾的效果,当然一些其它场景也可能存在类似的需求,此时,对于第一客户端而言,当第一客户端中显示的虚拟场景中的第一对象受到攻击,那么在第一客户端上就会检测到目标事件,从而触发以上特效的展示。

如,在闪光弹投掷出去后,如果将人物与投掷的闪光弹连线得到一个向量,人物朝向为另一向量,这两个向量之间夹角小于90度,那么可以给人物增加一段时间的渐入渐出的白屏效果;如果周围也有其它网络中玩家,若这些玩家朝向也满足上述条件,那么也可为这些玩家增加渐入渐出的白屏效果,在实现上述白屏效果时无论虚幻引擎的摄像机springarm如何晃动,都不影响屏幕效果的表现。

如果玩家受到攻击而死亡了,那么该玩家的屏幕要逐渐暗下来,让玩家的死亡表现更加生动形象,若有其它玩家观战该玩家,那么观战玩家的屏幕也要产生逐渐暗下来的效果,若玩家受到攻击被扣血了,则可表现溅出红色血滴的屏幕效果。

在步骤s204提供的技术方案中,响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息。

在本申请的实施例中,主要涉及的引擎中的组件包括:虚拟摄像机、信息层(或称为面片)以及着色器。可选地,可在第一客户端上检测到目标事件之前,创建这些组件。

在一个可选的实施例中,创建摄像机的方式如下:

可以在引擎中建立工程项目,在工程项目的代码中利用相关应用程序编程接口api来创建虚拟摄像机camera。

在又一个可选的实施例中,在第一客户端上检测到目标事件之前,可按照如下方式创建着色器,在着色器中配置有信息层的材质、透明度以及第一动画信息。

步骤1,如图3所示,在人物主角(如前述的第一对象)的摄像机springarm组件下的摄像机camera节点下,添加一个面片组件“staticmeshcomponnet”,如图3中的sm_plane_01面片。

步骤2,如图4所示,勾选人物主角的replication网络同步属性配置界面中的网络同步选项replicates和客户端配置选项的netloadonclient,这样该摄像机actor和sm_plane_01面片组件,会在地图加载的时候在网络的客户端中生成。

步骤3,创建信息层,也即面片,并将面片与虚拟摄像机之间的关系配置为目标位置关系,如图5所示,制作并导入一个面片静态fbx网格,将该面片网格设置到步骤1中添加的面片sm_plane_01的静态网格staticmesh属性中,调整sm_plane_01的位置、旋转和缩放,这里参数如下:x、y、z轴是相对于场景中渲染人物的主摄像机的x、y、z轴。平移使得面片位置在主摄像机和主角中间,旋转使得面片和主摄像机裁剪面宽高对齐,缩放使得面片大小略大于主摄像机裁剪面。

使得sm_plane_01下的fbx网格大小和在主角摄像机前的位置大概如图6所示。

步骤4,配置信息层,也即面片在虚拟场景中的状态,其中,信息层在虚拟场景中的状态包括隐藏状态和由目标事件触发的可视状态。如将添加的sm_plane_01面片的visible设置为false,即将面片的状态设置为隐藏状态(也即默认状态),当有需要显示屏幕效果的时候才通过程序动态设置为true,即将状态配置为可视状态。

步骤5,在ue4的内容浏览器中制作面片material属性需要的材质和材质实例,其中材质内的shader表达式可以复用ue4原来在屏幕后处理中的表达式,也可根据需要重新进行配置。

以闪光弹白屏效果为例,制作如下:

打开用来表示闪光弹白屏效果的m_concussive_postprocess_02_inst材质实例,在其中设置关联材质,如对于m_concussive_postprocess_02材质内的表达式而言,将其连接到相应位置,如本申请的前述的面片,从而可以在面片中实现闪光弹白屏效果;如果是死亡黑屏、角色扣血等屏幕效果,也制作相应的材质和材质实例即可。

步骤6,将材质实例赋值到sm_plane_01面片组件的静态fbx网格的材质属性中,如在静态fbx网格的材质属性界面,选择好之前的关联材质,如上述的m_concussive_postprocess_02材质。

可选地,也可使用uiimage上挂载ui材质的方式来实现屏幕效果,因为虚幻的ui控件不支持同步,需要维护额外的网络同步处理逻辑,故可重新编写网络同步处理逻辑。

可选地,在上述步骤中,对于摄像机而言,可将玩家摄像机的“cameracache.pov.rotation”中存储的四元数作为当前摄像机旋转方位,将“cameracache.pov.location”存储的位置为摄像机的位置,将“fvector::onevector”中存储的数据作为摄像机的缩放量,合成为cameratransform变换矩阵。

对于特效面片而言,特效面片定义了相对于摄像机的变换矩阵为“appearancemeshrelativetransform”,包含了相对摄像机的旋转,平移和缩放。

在实现平面和摄像机恒定的操作时,面片对象调用setworldtransform方法,参数是两个变换矩阵的乘积:appearancemeshrelativetransform*cameratransform。

如果有多摄像机情况下,有玩家锁定的目标且用了不同的摄像机,那么面片可调用attachtocomponent方法附加到新的摄像机上面,且面片调用setrelativetransform方法,设置参数为:appearancemeshrelativetransform。

上述变换操作在有面片特效时可每帧更新,这样无论弹簧臂怎么摇晃,都实现面片永远是和当前摄像机位置相对固定的。

在完成上述配置之后,即可使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画。

可选地,在使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画之前,在第一客户端上检测到目标事件的情况下,可将信息层在虚拟场景中的状态由默认的隐藏状态切换为可视状态,以便于在信息层中呈现特效动画信息。

在上述实施例中,目标区域为虚拟场景中按照第一对象的视角确定的区域,在使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画时,可按照下述步骤1-步骤2实现:

步骤1,对信息层在虚拟场景中的位置进行设定,并按照着色器的指示对信息层进行配置,在信息层上展示出第一动画信息,其中,设定后的信息层在目标区域内与虚拟摄像机之间保持目标位置关系。

可选地,对信息层在虚拟场景中的位置进行设定包括:游戏引擎实时检测虚拟摄像机的位置是否发生变化;在虚拟摄像机的位置发生变化的情况下,根据第一位置将信息层从第三位置调整至第二位置,第一位置为虚拟摄像机位置从第四位置发生变化后所在的位置,第一位置与第二位置之间的位置关系满足目标位置关系,第四位置与第三位置之间的位置关系满足目标位置关系,此处的目标位置关系为相对位置关系,如信息层始终位于摄像机正前方且距离摄像机制定距离(如1米、50厘米等)的位置。

可选地,按照着色器的指示对信息层进行配置,在信息层上展示出第一动画信息,可以是展示多帧第一动画信息,通过这多帧第一动画信息(或称为动画帧)来表现需要展示的特效:如在第一时刻从着色器中获取第一指示信息,按照第一指示信息指示的透明度对信息层进行配置、并在信息层上展示出第一指示信息所指示的第一动画信息;在第二时刻从着色器中获取第二指示信息,按照第二指示信息的指示对信息层的透明度进行配置、并在信息层上展示出第二指示信息所指示的第一动画信息,第二时刻为第一时刻之后的时刻。第一指示信息指示的透明度与第二指示信息指示的透明度不同,和/或,第一指示信息所指示的第一动画信息与第二指示信息所指示的第一动画信息不同。换言之,上述的第二时刻为至少有透明度或者动画帧内容发生变化的时刻,对于透明度或者动画帧内容均未发生变化的时刻,可以不用重新使用着色器进行配置,而继续显示前一时刻的动画帧。

步骤2,控制虚拟摄像机透过信息层对目标区域进行图像采集得到目标动画。

对于摄像机而言,所采集的动画信息包括两个部分,其一是在信息层中显示的第一动画信息,其二是被信息层遮挡的目标区域的第二动画信息,对于第二动画信息而言,其清晰度等取决于信息层的透明度,若信息层透明度越高,那么第二动画信息越清晰。

一种可选的信息层如图7所示,其中包括区域1(即区域2外侧的区域)和区域2,信息层的透明度是可以整体配置的,即信息层上面每个像素点的透明度均相同;信息层的透明度是可以动态配置的,如区域1内的透明度与区域2内的透明度不同,如区域1内的透明度为一固定值(如0.1),区域1内的透明度为另一固定值(如1),再如可以将区域2的边界的透明度配置为一固定值(如0.5),朝内(即方向2)的像素点透明度逐渐减小,朝外(即方向1)的像素点的透明度逐渐增大。从而可以实现更好的特效效果。

可选地,在使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画之后,可以将第一动画信息发送给第二客户端,通过第二客户端播放第一动画信息,第二客户端用于控制虚拟场景中的第二对象,第二对象与第一对象属于同一对象组,需要说明的是,若第二对象是正在游戏中的对象,那么可以将第一动画信息叠加到第二客户端本地采集的动画信息中播放,而不用第二客户端重新进行第一动画信息的渲染,可以降低第一客户端的本地硬件消耗;若第二对象是正在观战的对象,那么可以将第一动画信息和第二动画信息同时发送个第二客户端,以在第二客户端上播放第一客户端上的游戏画面。

当特效完成之后,或特征触发之前,即在第一客户端上检测到目标事件之前,可通过虚拟摄像机直接对虚拟场景中的目标区域进行图像采集得到待在第一客户端上播放的动画,此时,虚拟场景中的信息层处于隐藏状态,换言之,摄像机采集的动画即相当于仅有上述的第二动画信息,可见,本申请的在摄像机前方增加面片并不会对已有游戏逻辑造成干扰,且相对于相关技术中的后处理能够更有效的利用gpu资源,图像后处理可用于实现各种特殊的镜头特效以及整体调节渲染的效果,但是它通常是在所有场景渲染结束后才执行,如采用将脚本组件添加到相机上实现,因此,每添加一个图像后处理脚本,就会多至少一次全屏幕的渲染通道pass。可见,采用图像后处理需要消耗较多的gpu资源,且会造成一定的延迟。

在步骤s206提供的技术方案中,在第一客户端上播放目标动画。

采用本申请的技术方案,可以在虚幻引擎等引擎制作的游戏上实现屏幕效果,如闪光弹导致整个屏幕逐渐白屏,死亡逐渐黑屏效果,且不同于相关技术中使用虚幻引擎丰富的后处理效果功能,在手机上使用后处理性能开销太大,本申请是在虚幻引擎的摄像机前面增加shader面片,用很少的性能开销来实现网络游戏中显示和共享屏幕效果的通用方案,可满足手机等低性能的设备上实现各种屏幕效果的需求。

本申请的方案的有益效果主要体现在:在大型手机游戏上用较少的性能开销来实现屏幕效果;在虚幻引擎等引擎中,即使基于springarm的摄像机来回晃动的时候,也能够避免出现使用广告板时的屏幕效果忽大忽小以及人物角色和效果面片之间出现的穿插问题;在基于虚幻引擎等引擎实现的多人实时游戏中,只要简单的勾选面片可网络复制,就能够多人共享该面片的屏幕效果,避免ui材质不支持网络共享的问题;同时,可支持游戏收到多个屏幕效果时的先后播放。

作为一种可选的实施例,下面结合图8所示的步骤进一步详述本申请的技术方案:

步骤s802,检测到特定的玩家行为,进而触发产生一个屏幕特效。

基于虚幻引擎的摄像机shader面片实现的屏幕效果的使用场景包括但不局限于:

如图9所示,在游戏场景中使用闪光弹后,若玩家被命中,可在该玩家的屏幕中出现中间镂空的渐入渐出的白屏效果,该白屏效果的渐入时间和渐出时间是可以配置的,如配置0.5秒的渐入时间,中间白屏停顿2秒,渐出时间也是2秒,如果有其它玩家也被闪光弹命中或者有队友玩家在观战该玩家,那么这些玩家也会有渐入渐出的白屏效果;

如图10所示,若玩家被攻击而死亡,该玩家屏幕会出现渐入的黑屏效果,逐渐变黑和保持黑屏的时间是可以控制的,如屏幕的效果是用1秒的逐渐变黑,然后保持黑屏效果,如果有队友观战,那么网络中的队友观看到的界面也要进行同样的屏幕效果表现;

再如图11所示,如果玩家受到伤害,那么玩家会产生扣血(即掉血,如图11中1101所示),扣血时候屏幕也可出现零散的绿色血迹效果(或红色的血迹效果),绿色血迹效果在屏幕上一段时间播放一下,观战的玩家屏幕上也可有该效果。

步骤s804,读取该屏幕效果的配置信息。

步骤s806,产生一个屏幕效果实例。

步骤s808,将屏幕效果实例传入屏幕效果管理器。

步骤s810,判断当前时刻是否有屏幕效果实例处于播放状态,若是则执行步骤s812,否则执行步骤s814。

步骤s812,将前述屏幕效果实例压入屏幕效果管理器的等待播放列表中保存,以等待播放。

步骤s814,根据配置关键词key查询是否生成过该配置的着色器shader的配置实例(或称为材质实例),若是则执行步骤s818,否则执行步骤s816。

步骤s816,根据屏幕效果配置信息生成一个该效果的shader材质实例。

步骤s818,得到屏幕效果的shader材质实例。

步骤s820,获取摄像机前的面片对象,并将其属性设置为可视。

步骤s822,将fbx材质实例设置到面片的材质属性上,建立fbx材质与面片之间的关联。

步骤s824,根据配置信息生成播放实例,且赋值到管理器的当前播放对象上。

步骤s826,在管理器的更新update设置中设置面片到摄像机之间的距离恒定,避免sprintarm导致的穿插问题。

步骤s828,调用屏幕效果实例的更新update逻辑,并执行。

步骤s830,屏幕效果实例获取shader暴露的参数(即美术或者程序开发所配置的参数,如顶点位置、顶点颜色等)。

步骤s832,动态传入参数的取值,实现屏幕效果。

步骤s834,屏幕效果管理器通过效果实例的参数(如用于表示是否结束的参数isfinish)来判断是否移除当前播放实例,若是则执行步骤s810,否则定时或者实时执行步骤s834。

采用本申请的技术方案,可以实现如下有益效果:能用更小的性能开销,替代虚幻引擎通用制作屏幕效果的后处理方法,在手机等设备上得到廉价的屏幕处理效果;可避免广告板屏幕效果因为虚幻引擎中存在springarm的摄像机,而导致屏幕效果存在近大远小,以及角色和屏幕效果之间的穿插问题;支持网络游戏中收到多个屏幕效果需要播放时候,按照顺序依次播放;给业内用虚幻引擎的美术制作开发和其它程序开发提供了制作适合手机上的屏幕效果的有效方法。

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

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

根据本发明实施例的另一个方面,还提供了一种用于实施上述动画的播放方法的动画的播放装置。图12是根据本发明实施例的一种可选的动画的播放装置的示意图,如图12所示,该装置可以包括:检测单元1201、采集单元1203以及播放单元1205。

检测单元1201,用于在第一客户端上检测到目标事件,其中,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件。

上述的第一客户端以及后文中提及的第二客户端即为同一游戏应用的客户端,如第一人称射击类游戏fps或第三人称射击游戏tps;虚拟场景即该游戏的游戏场景,上述第一对象和后文提及的第二对象即游戏中的玩家所操控的游戏角色,例如,第一对象为通过第一客户端所操作的对象,或者是与第一客户端操控的对象位于同一战队的对象;攻击事件即场景中的另一对象或游戏逻辑向第一对象发起攻击的事件,如向第一对象投掷道具、射击等,再如游戏逻辑中缩小生存范围(此时若第一对象位于生存区外则相当于受到攻击)、释放毒气等。

可选地,游戏引擎可为上述第一人称射击类游戏fps或第三人称射击游戏tps的游戏引擎,如虚幻游戏引擎、unity3d游戏引擎、cocos游戏引擎等。

采集单元1203,用于响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息。

上述的虚拟摄像机在游戏引擎中使用的摄像机,游戏引擎是一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件,这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始,大部分都支持多种操作平台,游戏引擎可包含以下组件:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等。

上述的信息层可以为游戏的虚拟场景中的面片,换言之,可以通过虚拟场景中的面片来配置出特效所需的动画信息(如前述的后处理得到的动画信息),在角色(即上述的对象)的虚拟摄像机的springarm前面增加面片,可以用更低的功耗实现屏幕效果,在游戏运行中,特别是在第三人称的视角中,如果转动摄像机时,当前摄像机的位置与地形等发生了物理碰撞,如果希望此时摄像机不进入障碍物内部(比如仰视地面上的角色,且摄像机和角色距离很远时,不希望摄像机进入地下,而是自动缩小摄像机和角色之前的距离),此时就可通过使用springarm组件实现。

播放单元1205,用于在第一客户端上播放目标动画。

需要说明的是,该实施例中的检测单元1201可以用于执行本申请实施例中的步骤s202,该实施例中的采集单元1203可以用于执行本申请实施例中的步骤s204,该实施例中的播放单元1205可以用于执行本申请实施例中的步骤s206。

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

通过上述模块,在第一客户端上检测到目标事件,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;在第一客户端上播放目标动画,可见,可以直接通过面片(即信息层)展示出需要的特效效果,而不用通过后期图形处理器gpu进行大量的数据计算来在第二动画信息增加特效,可以解决相关技术中进行特效处理时对gpu的资源消耗量较大的技术问题,进而达到降低进行特效处理时对gpu的资源消耗的技术效果。

需要说明的是,本申请的技术方案不同于通过虚幻引擎等引擎中的广告板材质,用材质上的着色器shader来实现屏幕效果,使用广告板材质时,因为虚幻引擎等引擎的摄像机挂载在springarm上,广告板屏幕效果会在角色晃动时候出现忽大忽小的情况,甚至出现人物和广告板屏幕效果之间的穿插问题;也不同于通过虚幻引擎等引擎中的uiimage元素上使用材质来实现屏幕效果,在uiimage元素上使用ui材质shader实现屏幕效果时,因为虚幻引擎的ui控件不能网络共享,当多人对战时候无法共享该屏幕效果,需要额外标记需要共享的玩家和维护更多的网络逻辑,实现起来过于复杂。

本申请的技术方案使用在角色的摄像机的springarm前面增加面片,用更低的功耗实现屏幕效果;通过在面片和摄像机springarm之间保持固定相对距离,避免了直接用广告板屏幕效果中出现的忽大忽小问题;因为虚幻引擎中的3d场景面片,可以直接在其配置中配置需要网络同步,就可以避免使用ui屏幕效果时候需要维护额外的网络同步逻辑的问题,可以轻易实现多人共享屏幕的效果。

可选地,上述目标区域可为虚拟场景中按照第一对象的视角确定的区域,上述采集单元可包括:设定模块,用于对信息层在虚拟场景中的位置进行设定,并按照着色器的指示对信息层进行配置,在信息层上展示出第一动画信息,其中,设定后的信息层在目标区域内与虚拟摄像机之间保持目标位置关系;采集模块,用于控制虚拟摄像机透过信息层对目标区域进行图像采集得到目标动画。

可选地,设定模块可包括:检测子模块,用于检测虚拟摄像机的位置是否发生变化;调整子模块,用于在虚拟摄像机的位置发生变化的情况下,根据第一位置将信息层调整至第二位置,其中,第一位置为虚拟摄像机位置发生变化后所在的位置,第一位置与第二位置之间的位置关系满足目标位置关系。

上述设定模块可包括:第一设定子模块,用于在第一时刻从着色器中获取第一指示信息,按照第一指示信息指示的透明度对信息层进行配置、并在信息层上展示出第一指示信息所指示的第一动画信息;第二设定子模块,用于在第二时刻从着色器中获取第二指示信息,按照第二指示信息的指示对信息层的透明度进行配置、并在信息层上展示出第二指示信息所指示的第一动画信息,其中,第二时刻为第一时刻之后的时刻,第一指示信息指示的透明度与第二指示信息指示的透明度不同和/或第一指示信息所指示的第一动画信息与第二指示信息所指示的第一动画信息不同。

可选地,本申请的采集单元还可包括:状态切换模块用于,在使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画之前,将信息层在虚拟场景中的状态由隐藏状态切换为可视状态。

可选地,本申请的采集单元还可用于:在第一客户端上检测到目标事件之前,通过虚拟摄像机直接对虚拟场景中的目标区域进行图像采集得到待在第一客户端上播放的动画,其中,虚拟场景中的信息层处于隐藏状态。

可选地,本申请的装置还可包括:同步单元,用于在使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画之后,将第一动画信息发送给第二客户端,通过第二客户端播放第一动画信息,第二客户端用于控制虚拟场景中的第二对象,第二对象与第一对象属于同一对象组。

可选地,本申请的装置还可包括:创建单元,用于在第一客户端上检测到目标事件之前,创建信息层,并将信息层与虚拟摄像机之间的关系配置为目标位置关系;配置单元,用于配置信息层在虚拟场景中的状态,其中,信息层在虚拟场景中的状态包括隐藏状态和由目标事件触发的可视状态。

可选地,本申请的创建单元还可用于在第一客户端上检测到目标事件之前,创建着色器,其中,在着色器中配置有信息层的材质、透明度以及第一动画信息。

采用本申请的技术方案,可以实现如下有益效果:能用更小的性能开销,替代虚幻引擎通用制作屏幕效果的后处理方法,在手机等设备上得到廉价的屏幕处理效果;可避免广告板屏幕效果因为虚幻引擎中存在springarm的摄像机,而导致屏幕效果存在近大远小,以及角色和屏幕效果之间的穿插问题;支持网络游戏中收到多个屏幕效果需要播放时候,按照顺序依次播放;给业内用虚幻引擎的美术制作开发和其它程序开发提供了制作适合手机上的屏幕效果的有效方法。

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

根据本发明实施例的另一个方面,还提供了一种用于实施上述动画的播放方法的服务器或终端。

图13是根据本发明实施例的一种终端的结构框图,如图13所示,该终端可以包括:一个或多个(图13中仅示出一个)处理器1301、存储器1303、以及传输装置1305(如上述实施例中的发送装置),如图13所示,该终端还可以包括输入输出设备1307。

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

上述的传输装置1305用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1305包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1305为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1303用于存储应用程序。

处理器1301可以通过传输装置1305调用存储器1303存储的应用程序,以执行下述步骤:

在第一客户端上检测到目标事件,其中,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;

响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;

在第一客户端上播放目标动画。

处理器1301还用于执行下述步骤:

在第一时刻从着色器中获取第一指示信息,按照第一指示信息指示的透明度对信息层进行配置、并在信息层上展示出第一指示信息所指示的第一动画信息;

在第二时刻从着色器中获取第二指示信息,按照第二指示信息的指示对信息层的透明度进行配置、并在信息层上展示出第二指示信息所指示的第一动画信息,其中,第二时刻为第一时刻之后的时刻,第一指示信息指示的透明度与第二指示信息指示的透明度不同和/或第一指示信息所指示的第一动画信息与第二指示信息所指示的第一动画信息不同。

采用本发明实施例,在第一客户端上检测到目标事件,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;在第一客户端上播放目标动画,可见,可以直接通过面片(即信息层)展示出需要的特效效果,而不用通过后期图形处理器gpu进行大量的数据计算来在第二动画信息增加特效,可以解决相关技术中进行特效处理时对gpu的资源消耗量较大的技术问题,进而达到降低进行特效处理时对gpu的资源消耗的技术效果。

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

本领域普通技术人员可以理解,图13所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图13其并不对上述电子装置的结构造成限定。例如,终端还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。

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

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行动画的播放方法的程序代码。

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

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

s12,在第一客户端上检测到目标事件,其中,目标事件为第一客户端中显示的虚拟场景中的第一对象受到攻击的事件;

s14,响应于目标事件,使用第一客户端中的虚拟摄像机透过信息层对虚拟场景中的目标区域进行图像采集得到目标动画,其中,目标动画为第一动画信息和第二动画信息叠加所得到的动画,第一动画信息为信息层上显示的动画信息,第二动画信息为目标区域上显示的动画信息;

s16,在第一客户端上播放目标动画。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s22,在第一时刻从着色器中获取第一指示信息,按照第一指示信息指示的透明度对信息层进行配置、并在信息层上展示出第一指示信息所指示的第一动画信息;

s24,在第二时刻从着色器中获取第二指示信息,按照第二指示信息的指示对信息层的透明度进行配置、并在信息层上展示出第二指示信息所指示的第一动画信息,其中,第二时刻为第一时刻之后的时刻,第一指示信息指示的透明度与第二指示信息指示的透明度不同和/或第一指示信息所指示的第一动画信息与第二指示信息所指示的第一动画信息不同。

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

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

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

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

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

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

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1