CN104992462B - 一种动画播放方法、装置及终端 - Google Patents
一种动画播放方法、装置及终端 Download PDFInfo
- Publication number
- CN104992462B CN104992462B CN201510428270.7A CN201510428270A CN104992462B CN 104992462 B CN104992462 B CN 104992462B CN 201510428270 A CN201510428270 A CN 201510428270A CN 104992462 B CN104992462 B CN 104992462B
- Authority
- CN
- China
- Prior art keywords
- matrix
- animation
- superimposed
- posture
- intermediary
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种动画播放方法,包括:接收动画播放指令;根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;获取至少一个中间矩阵;根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;播放与所述目标矩阵对应的画面。本发明还提供一种动画播放装置及终端。本发明实施例可利用一个原始动画和待叠加姿态获得多种动画展示效果。
Description
技术领域
本发明涉及动画播放领域,尤其涉及一种动画播放方法、装置及终端。
背景技术
在游戏过程中,为了使玩家获得更真实体验,游戏中的虚拟角色经常需要针对场景的改变做一些动作变化。例如,对于一个虚拟角色头部朝前奔跑的动作,当在虚拟角色的左侧出现敌人时,需要将虚拟角色的动作调整为头部朝左奔跑,而当在虚拟角色的右侧出现敌人时,则需要将虚拟角色的动作调整为头部朝右奔跑的动作。
目前的方案是针对每个场景变化单独设计一套游戏动画,然后在场景发生改变的时候播放对应的游戏动画,然而这种方案需要美术人员针对每个场景重新设计虚拟角色的模型并制作播放动画,不仅增加了美术人员的工作量,且容易造成存储空间的大量占用,无法满足使用要求。
发明内容
针对上述问题,本发明的目的在于提供一种动画播放方法、装置及终端,其利用动画与各种姿态的叠加,可在减小美术工作量和动画资源存储空间的情况下,获得多种所需的动画播放效果。
第一方面,本发明实施例提供一种动画播放方法,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
播放与所述目标矩阵对应的画面。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述获取至少一个中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述获取至少一个中间矩阵,具体为:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括加法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
所述获取至少一个中间矩阵,具体为:获取第一中间矩阵,以及获取第二中间矩阵;
其中,所述获取第一中间矩阵的方法,具体为:
根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述获取第二中间矩阵的方法,具体为:
根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
第二方面,本发明实施例提供一种动画播放方法,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述获取至少一个中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述获取至少一个中间矩阵,具体为:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括加法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
所述获取至少一个中间矩阵,具体为:获取第一中间矩阵,以及获取第二中间矩阵;
其中,所述获取第一中间矩阵的方法,具体为:
根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述获取第二中间矩阵的方法,具体为:
根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
作为上述方案的改进,所述根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
作为上述方案的改进,所述根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai);
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第三方面,本发明实施例提供一种动画播放方法,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述第一叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第一目标矩阵;
根据所述第二叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第二目标矩阵;
根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述第一叠加指示为加法指示,所述第二叠加方式为减法指示;或者
所述第一叠加方式为减法指示,所述第二叠加方式为加法指示。
作为上述方案的改进,所述获取中间矩阵,具体为:
根据所述待叠加姿态的名称读取待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述中间矩阵;
或者,所述获取中间矩阵,具体为:
根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
作为上述方案的改进,所述根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第四方面,本发明实施例提供一种动画播放方法,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第一待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵;
根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵;
根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述第一叠加指示为加法指示或减法指示;所述第二叠加方式为加法指示或减法指示。
作为上述方案的改进,所述获取第一中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得对应的第一中间矩阵;
所述获取第二中间矩阵,具体为:
根据所述第二待叠加姿态的名称读取第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得对应的第二中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
作为上述方案的改进,所述根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第五方面,本发明实施例提供一种动画播放装置,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、叠加单元及播放单元:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述叠加单元,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
所述播放单元,用于播放与所述目标矩阵对应的画面。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括加法指示,则所述叠加单元具体用于:
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述叠加单元具体用于:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
作为上述方案的改进,作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则所述中间矩阵获取单元包括第一中间矩阵获取单元及第二中间矩阵获取单元,其中:
其中,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述第一中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,所述第二中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述叠加单元包括第一叠加单元及第二叠加单元,其中:
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
所述第二叠加单元,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
第六方面,本发明实施例提供一种动画播放装置,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、叠加单元、过渡单元及播放单元,其中:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述叠加单元,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括加法指示,则所述叠加单元具体用于,
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述叠加单元具体用于,
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
作为上述方案的改进,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
则所述中间矩阵获取单元包括第一中间矩阵获取单元及第二中间矩阵获取单元,其中:
其中,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述第一中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,所述第二中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述叠加单元包括第一叠加单元及第二叠加单元,其中:
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
所述第二叠加单元,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
作为上述方案的改进,所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
作为上述方案的改进,所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai);
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第七方面,本发明实施例提供一种动画播放装置,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、第一叠加单元、第二叠加单元、过渡单元及播放单元,其中:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第一目标矩阵;
所述第二叠加单元,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第二目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述第一叠加指示为加法指示,所述第二叠加方式为减法指示;或者
所述第一叠加方式为减法指示,所述第二叠加方式为加法指示。
作为上述方案的改进,所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述待叠加姿态的名称读取对应的待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
作为上述方案的改进,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第八方面,本发明实施例提供一种动画播放装置,包括指令接收单元、动画读取单元、第一中间矩阵获取单元、第二中间矩阵获取单元、刷新单元、第一叠加单元、第二叠加单元、过渡单元及播放单元:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第一待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述第一中间矩阵获取单元,用于获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述第二中间矩阵获取单元,用于获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵;
所述第二叠加单元,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
作为上述方案的改进,所述第一叠加指示为加法指示或减法指示;所述第二叠加方式为加法指示或减法指示。
作为上述方案的改进,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第一中间矩阵;
或者,所述第一中间矩阵获取单元,具体用于根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得对应的第一中间矩阵;
所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称读取第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第二中间矩阵;
或者,所述第二中间矩阵获取单元,具体用于根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得对应的第二中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
作为上述方案的改进,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
第九方面,本发明提供一种动画播放终端,包括上述的动画播放装置。
本发明的动画播放方法、装置及终端具有如下有益效果:
(1)、只需将一个原始动画与待叠加姿态进行叠加,即可获得同时具有原始动画和待叠加姿态的特征的动画播放效果,减少了美术的工作量及动画资源所需的存储空间。
(2)、通过逐步改变原始动画当前画面的权值,实现了动画播放过程中物体姿态的逐渐过渡,避免了画面的闪动,提高了动画真实度和用户的体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的动画播放方法的流程示意图。
图2是虚拟角色头部朝前看的画面示意图。
图3是虚拟角色在左侧出现敌人时头部朝左看的画面示意图。
图4是虚拟角色头部朝左看的画面示意图。
图5是本发明第二实施例提供的动画播放方法的流程示意图。
图6是本发明第三实施例提供的动画播放方法的流程示意图。
图7是本发明第四实施例提供的动画播放方法的流程示意图。
图8是本发明第五实施例提供的动画播放装置的模块示意图。
图9是图8所示的中间矩阵获取单元的一种模块示意图。
图10是图8所示的中间矩阵获取单元的另一种模块示意图。
图11是图10所示的第一中间矩阵获取单元的模块示意图。
图12是图10所示的第二中间矩阵获取单元的模块示意图。
图13是图8所示的叠加单元的一种模块示意图。
图14是本发明第六实施例提供的动画播放装置的模块示意图。
图15是图14所示的叠加单元的一种模块示意图。
图16是本发明第七实施例提供的动画播放装置的模块示意图。
图17是图16所示的中间矩阵获取单元的一种模块示意图。
图18是本发明第八实施例提供的动画播放装置的模块示意图。
图19是图18所示的第一中间矩阵获取单元的模块示意图。
图20是图18所示的第二中间矩阵获取单元的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提供一种动画播放方法,其中,所述动画播放方法由动画播放装置来实施,所述动画播放方法至少包括如下步骤:
S101,接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示。
在本发明实施例中,在游戏过程中,往往需要根据游戏场景的变化播放相应的动画,例如,一个处于向前跑且头朝前看的虚拟角色(如图2所示),在进入到其他场景(如战斗场景)时,如果在所述虚拟角色的左侧出现敌人或其他游戏角色时,为了提高游戏的真实度,需要将所述虚拟角色的姿态调整为向前跑且头朝左看(如图3所示),即需要播放一个虚拟角色向前跑且头朝左看的动画。
在本发明实施例中,为了实现将所述虚拟角色的头部从向前看调整为向左看,所述动画播放装置接收所述动画播放指令后,将执行所述动画播放指令。其中,所述动画播放指令可包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示。所述动画播放指令可由用户通过操作所述动画播放装置生成,也可以是所述动画播放装置根据游戏内部的逻辑自动生成,例如,当所述虚拟角色进入战斗场景时,根据所述战斗场景的实际情况,自动生成所述动画播放指令。
S102,根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
在本发明实施例中,所述动画播放装置根据所述动画播放指令中的原始动画的名称读取所述原始动画,根据所述动画播放指令中的待叠加姿态的名称读取所述待叠加姿态。其中,所述原始动画为一个骨骼蒙皮动画,具体地,所述原始动画包括用于展现物体姿态连续变化的多帧画面,例如,所述原始动画可包括展现虚拟角色向前跑且头朝前看的多帧连续画面。其中,每帧画面可包括一个模型。由于在骨骼蒙皮动画中,一个模型可视为一系列骨骼的组合,而一根骨骼可以用一个向量来描述,因而一个模型表示为一系列向量的组合,而向量的组合在数学上是一个矩阵,所以一个模型实际上可以用一个矩阵进行表示。
在本发明实施例中,所述待叠加姿态是所述物体的一个固定姿态的一帧画面,例如,所述待叠加姿态是虚拟角色头部向左看的一个静态画面(如图4所示),同样可用一个矩阵来表示。
S103,获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在本发明的一个实施例中,当所述待叠加姿态的数目为一个时,则所述中间矩阵的数目也为一个,此时,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵(所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵的计算规则满足一般的矩阵减法运算规则),其作用是得到所述待叠加姿态的矩阵与所述原始动画的第一帧画面的矩阵的差别。例如,当所述待叠加姿态为一个头部向左看的虚拟角色的画面,而所述原始动画的第一帧画面为一个头部向前看的虚拟角色的画面,则所述待叠加姿态与原始动画的第一帧画面只在头部的位置有差别,其他位置是大致相同的,因而所述中间矩阵表现为头部位置的矩阵元不为零,而其他位置的矩阵元大部分为0。
需要说明的是,在本发明的其他实施例中,所述待叠加姿态与所述原始动画的第一帧画面也可能是完全不同或者差异较大的两个姿态,此时,所述中间矩阵的每个矩阵元可能都不为零。
在本发明实施例中,所述动画播放装置在获取所述中间矩阵时,先根据所述原始动画的名称及所述待叠加姿态的名称查询矩阵数据库(所述矩阵数据库可设置在游戏数据包内,该矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联),判断所述矩阵数据库内是否存在与所述原始动画的名称及所述待叠加姿态的名称关联的中间矩阵,若所述矩阵数据库内存在所述中间矩阵时,所述动画播放装置直接读取所述中间矩阵。若所述矩阵数据库内不存在所述中间矩阵时,则所述动画播放装置依次根据所述待叠加姿态的名称读取待叠加姿态的矩阵,根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵,并将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述中间矩阵。
需要说明的是,在本发明实施例中,在通过计算获得所述中间矩阵后,所述动画播放装置保存所述中间矩阵(例如,将中间矩阵保存到所述矩阵数据库,并将所述中间矩阵与所述原始动画的名称及待叠加姿态的名称关联起来),此后,在运行过程中,只需根据所述原始动画的名称及所述待叠加姿态的名称调用所述中间矩阵,而不需要重新进行计算。
需要说明的是,在本发明的其他实施例中,由于所述待叠加姿态的数目可能不止为一个,则相应的中间矩阵也不止一个,例如,以所述待叠加姿态的数目为两个为例,此时,所述待叠加姿态包括第一待叠加姿态及第二待叠加姿态时,则相应的,所述第一待叠加姿态对应于第一中间矩阵,所述第二待叠加姿态对应第二中间矩阵,所述第一中间矩阵及第二中间矩阵的获取及计算过程与上述获取及计算中间矩阵的过程基本类似,在此不再赘述。
需要说明的是,在本发明实施例中,所述待叠加姿态的数目还可为3个、4个或其他数目,相应的,所述中间矩阵的数目也为3个、4个或其他数目,这些方案均在本发明的保护范围之内,在此不再赘述。
S104,根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
在本发明实施例中,所述原始动画在播放过程中,将按照时间轴的行进,刷新其当前画面,例如,假设所述原始动画每秒播放的帧数为30帧,则每经过1/30秒,所述原始动画刷新一帧,其中,所述动画播放装置在所述原始动画刷新时,获取所述原始动画的当前画面的矩阵。
S105,根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵。
在本发明的一个实施例中,当所述待叠加姿态的数目为一个时,所述叠加指示也为一个,此时,所述动画播放装置获得所述当前画面的矩阵后,根据所述叠加指示,对所述当前画面的矩阵和中间矩阵进行叠加运算,获得目标矩阵。其中,当所述叠加指示为加法指示时,所述动画播放装置对所述当前画面的矩阵和中间矩阵进行加法运算(满足一般的矩阵加法运算规则),获得所述目标矩阵。而当所述叠加指示为减法指示时,所述动画播放装置对所述当前画面的矩阵和中间矩阵进行减法运算(满足一般的矩阵加法运算规则),获得所述目标矩阵。
具体地,所述加法运算和减法运算的区别为:例如,所述当前画面的矩阵为虚拟角色头部向前看的一帧画面,而所述待叠加姿态为虚拟角色头部向左看的一帧画面,当所述当前画面的矩阵和中间矩阵进行加法运算时,则所述目标矩阵对应的画面为虚拟角色头部向左看的画面,而当所述当前画面的矩阵和中间矩阵进行减法运算时,则所述目标矩阵对应的画面为虚拟角色头部向右看的画面。
在本发明的其他实施例中,当所述待叠加姿态的数目为不止一个时,则所述叠加指示的数目也与所述待叠加姿态的数目保持一致。例如:所述待叠加姿态的数目为两个时,则所述叠加指示可包括第一叠加指示及第二叠加指示,此时,所述动画播放装置根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵,再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得所述目标矩阵。其中,所述第一叠加指示可为加法指示,也可为减法指示,同样的,所述第二叠加指示可为加法指示,也可为减法指示,本发明均不做具体限定。
S106,播放与所述目标矩阵对应的画面。
在本发明实施例中,所述动画播放装置播放与所述目标矩阵对应的画面,由于时间轴的不断行进,所述原始动画的当前画面也不断刷新,因而所述动画播放装置将播放出连续变化的多帧画面。例如,所述原始画面为虚拟角色向前跑且头部向前看的动画,而所述待叠加姿态为虚拟角色头部朝左看的一帧画面,当所述第一叠加指示为加法指示时,所述动画播放装置将播放虚拟角色头部向左且向前跑的动画,当所述第一叠加指示为减法指示时,则所述动画播放装置将播放虚拟角色头部向右且向前跑的动画。
需要说明的是,在本发明实施例中,所述原始动画可为各种动画,如人物走路的动画等,所述待叠加姿态也可为跳跃姿态,下蹲姿态等各种姿态,本发明不做具体限定。此外,所述原始动画还可同时与多个待叠加姿态同时进行叠加运算等,这些方案均在本发明的保护范围之内。
本发明实施例提供的动画播放方法,通过利用待叠加姿态与所述原始动画进行叠加运算,从而得到了特定场景所需的播放动画。由于只需要一个原始动画和多个待叠加姿态就可得到不同的动画播放效果,相比于针对每个场景制作一个播放动画,不仅可减小动画资源存储所需的空间,同时还可减少美工的工作量,节省了时间成本和制作成本。
请参阅图5,图5是本发明第二实施例提供的动画播放方法,所述动画播放方法由动画播放装置进行实施,其包括如下步骤:
S201,接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示。
S202,根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
S203,获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在一个实施方式中,所述获取中间矩阵,具体为:根据所述待叠加姿态的名称读取待叠加姿态的矩阵;根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;及,将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述中间矩阵。
在一个实施方式中,所述获取中间矩阵,具体为:根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
需要说明的是,由于所述待叠加姿态的数目可为一个或多个,相应的,上述的中间矩阵的数目可为一个或多个,每个中间矩阵的获取方式与第一实施例所述的基本一致,在此不再赘述。
S204,根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
S205,根据至少一个叠加指示,对所述当前画面的矩阵和中间矩阵进行叠加运算,获得目标矩阵。
S206,根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵;
具体实施时,在一个实施例中,当游戏中的一个虚拟角色需要从向前跑且头部朝前看的姿态调整到向前跑且头部朝左看的姿态,此时,如果直接将所述虚拟角色的头部朝向从向前变为向左,由于缺少中间过渡过程,有可能出现虚拟角色闪动的情况,造成游戏真实度不佳,因而需要实现头部朝向从向前看慢慢过渡到向左看。
在本发明实施例中,假设所述原始画面为虚拟角色向前跑且头部向前看的动画,而所述待叠加姿态为虚拟角色头部朝左看的一帧画面,所述第一叠加指示为加法指示。所述动画播放装置首先计算当前画面配置的权值ai,其中,ai=i/N表示所述原始动画的第i帧画面的权值,N为所述原始动画的总帧数,例如,设定所述原始动画的总帧数为30帧,则N=30。可以看出,随着帧数i的增加,ai也慢慢增加,特别地,在第一帧时a1=1/N,而在第N帧时,aN=1。
需要说明的是,本实施例中的“原始动画”可以是一个单独的完整的动画,该动画的全部画面均需要进行过渡。该“原始动画”也可以是一个动画中截取的需要过渡的那部分动画。
在本发明实施例中,所述动画播放装置根据权值ai、当前画面的矩阵及目标矩阵,得到过渡矩阵,其中,所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai。显然,随着当前画面帧数的增加,当前画面的矩阵在过渡矩阵中占据的比例越来越小,而所述目标矩阵在过渡矩阵中占据的比例越来越大,直至在第N帧时,所述过渡矩阵等于所述目标矩阵,由于所述当前画面的矩阵对应的画面是虚拟角色头部朝前的画面,而所述目标矩阵对应的画面的虚拟角色头部朝左的画面,因而随着二者在所述过渡矩阵中所配置的比例的逐渐变化,即实现了所述虚拟角色的头部从朝前看慢慢过渡到朝左看。
在本发明的一个实施例中,以上面的例子为例,也可实现从头部朝左慢慢过渡到头部朝前,例如,当所述虚拟角色已经变成头部朝左的状态,而需要过渡回头部朝前看的状态,此时,只需将过渡矩阵改为:所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai)即可。
S207,播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放方法,通过不断改变当前画面的权值,实现了从当前画面向目标画面(目标矩阵对应的画面)逐渐过渡,提高了游戏的真实度和用户的体验。
请一并参阅图6,图6是本发明第三实施例提供的动画播放方法,所述动画播放方法由动画播放装置进行实施,其包括如下步骤:
S301,接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示。
在本发明实施例中,所述待叠加姿态的数目为一个。
S302,根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
S303,获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在一个实施方式中,所述获取中间矩阵,具体为:根据所述待叠加姿态的名称读取待叠加姿态的矩阵;根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;及,将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述中间矩阵。
在一个实施方式中,所述获取中间矩阵,具体为:根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
S304,根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
S305,根据所述第一叠加指示,对所述当前画面的矩阵和中间矩阵进行叠加运算,获得第一目标矩阵。
S306,根据所述第二叠加指示,对所述当前画面的矩阵和中间矩阵进行叠加运算,获得第二目标矩阵;其中,所述第一叠加指示与所述第二叠加指示不同。
在一个实施方式中,所述第一叠加指示为加法指示,所述第二叠加指示为减法指示,则对所述当前画面的矩阵和中间矩阵进行加法运算,获得第一目标矩阵,且对所述当前画面的矩阵和中间矩阵进行减法运算,获得第二目标矩阵。
在另一个实施方式中,所述第一叠加指示为减法指示,所述第二叠加指示为加法指示,则对所述当前画面的矩阵和中间矩阵进行减法运算,获得第一目标矩阵,且对所述当前画面的矩阵和中间矩阵进行加法运算,获得第二目标矩阵。
这里为了方便说明,以下以所述第一叠加指示为加法指示,所述第二叠加指示为减法指示进行说明。
S307,根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵。
具体实施时,假设游戏中的一个虚拟角色需要从向前跑且头部向左看的姿态调整到向前跑且头部朝右看的姿态,此时,如果直接将所述虚拟角色的头部朝向从向左变为向右,则由于缺少中间过渡过程,有可能出现虚拟角色闪动,游戏真实度不佳,因而需要实现头部朝向从向左看慢慢过渡到向右看。
在本发明实施例中,假设所述原始画面为虚拟角色向前跑且头部向前看的动画,而所述待叠加姿态为虚拟角色头部朝左看的一帧画面,所述第一叠加指示为加法指示,所述第二叠加指示为减法指示。所述动画播放装置首先计算当前画面的权值ai,其中,ai=i/N表示所述原始动画的第i帧画面的权值,N为所述原始动画的总帧数。可以看出,随着帧数i的增加,ai也慢慢增加,特别地,在第一帧时a1=1/N,而在第N帧时,aN=1。
在本发明实施例中,所述动画播放装置根据权值ai、第一目标的矩阵(即头部向左的画面对应的矩阵)及第二目标矩阵(即头部向右的画面对应的矩阵),得到过渡矩阵,其中,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai。显然,随着当前画面帧数的增加,第一目标矩阵在过渡矩阵中占据的比例越来越小,而第二目标矩阵在过渡矩阵中占据的比例越来越大,直至在第N帧时,所述过渡矩阵等于第二目标矩阵,由于所述第一目标矩阵对应的画面是虚拟角色头部朝左的画面,而所述第二目标矩阵对应的画面的虚拟角色头部朝右的画面,因而随着二者在所述过渡矩阵中所配置的比例的逐渐变化,即实现了所述虚拟角色的头部从向左看慢慢过渡到向右看。
当然,由于前面定义了第一叠加指示为加法指示,所述第二叠加指示为减法指示,显然,当第一叠加指示为减法指示,而所述第二叠加指示为加法指示时,可实现所述虚拟角色的头部从向右看慢慢过渡到向左看,在此不再赘述。
S308,播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放方法,通过不断改变当前画面的权值,实现了从第一目标矩阵对应的画面向第二目标矩阵对应的画面的逐渐过渡,其中,所述第一目标矩阵和第二目标矩阵都是通过所述原始动画的当前画面及待叠加姿态得到的,即通过对所述原始动画和待叠加矩阵进行过渡处理,得到了更丰富和连贯的动画展示和播放效果,提高了游戏的真实度和用户的体验。
请一并参阅图7,图7是本发明第四实施例提供的动画播放方法,所述动画播放方法由动画播放装置进行实施,其包括如下步骤:
S401,接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示。
在本发明实施例中,所述待叠加姿态的数目为两个,即第一待叠加姿态和第二待叠加姿态,相应的,所述叠加指示也为两个,即第一叠加指示和第二叠加指示,其中,所述第一待叠加姿态与所述第一叠加指示对应,所述第二待叠加姿态与所述第二叠加指示对应。
S402,根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第二待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
S403,获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
S404,获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
S405,根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
S406,根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵。
在本发明实施例中,所述第一叠加指示可为加法指示,也可为减法指示。
S407,根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵。
在本发明实施例中,所述第二叠加指示可为加法指示,也可为减法指示。
S408,根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵。
在本发明实施例中,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
S409,播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放方法,实现了不同待叠加姿态之间的转换和画面过渡,获得了更丰富和连贯的动画展示和播放效果,提高了游戏的真实度和用户的体验。
请一并参阅图8,图8是本发明第五实施例提供的动画播放装置500,所述动画播放装置500用于执行本发明第一实施例描述的动画播放方法,所述动画播放装置500包括指令接收单元510、动画读取单元520、中间矩阵获取单元530、刷新单元540、叠加单元550及播放单元560,其中:
所述指令接收单元510,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示。
所述动画读取单元520,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
所述中间矩阵获取单元530,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在一个实施例中,当所述待叠加姿态的数目为一个时,所述中间矩阵获取单元530具体用于根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
请参阅图9,在一个实施例中,当所述待叠加姿态的数目为一个时,所述中间矩阵获取单元530,具体包括:
第一读取单元531,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵。
第二读取单元532,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵。
减法单元533,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵。
即,当所述矩阵数据库内未包含所述中间矩阵时,所述中间矩阵获取单元530根据所述原始动画、待叠加姿态来计算获得所述中间矩阵,其中,计算获得的中间矩阵可保存在所述矩阵数据库内,从而在下次的计算中,直接读取所述中间矩阵,而不需要进行重复计算。
请一并参阅图10及图11,在一个实施例中,当所述待叠加姿态的数目为不止一个时(以两个为例),则所述中间矩阵获取单元530包括第一中间矩阵获取单元1531及第二中间矩阵获取单元1532,其中:
所述第一中间矩阵获取单元1531,具体包括:
第一读取单元1533,用于根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵。
第二读取单元1534,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵。
第一减法单元1535,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵。
在一个实施例中,所述第一中间矩阵获取单元1531具体用于,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵。
请一并参阅图12,在一个实施例中,所述第二中间矩阵获取单元1532,具体包括:
第三读取单元1536,用于根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵。
第四读取单元1537,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵。
第二减法单元1538,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
在一个实施例中,所述第二中间矩阵获取单元1532具体用于,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵。
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
所述刷新单元540,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
所述叠加单元550,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵。
在一个实施例中,当所述待叠加姿态的数目为一个时,所述叠加指示的数目也为一个,且所述叠加指示可为加法指示或减法指示。
请一并参阅图13,在一个实施例中,当所述待叠加姿态的数目为不止一个时(以两个为例),则所述叠加单元550包括第一叠加单元551及第二叠加单元552,其中:
所述第一叠加单元551,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵。
所述第二叠加单元552,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
所述播放单元560,用于播放与所述目标矩阵对应的画面。
本发明实施例提供的动画播放装置500,通过利用至少一个待叠加姿态与所述原始动画进行叠加运算,得到了特定场景所需的播放动画。由于只需要一个原始动画和所述待叠加姿态就可得到不同的动画播放效果,相比于针对每个场景制作一个播放动画,不仅可减小动画资源存储所需的空间,同时还可减少美工的工作量,节省了时间成本和制作成本。
请一并参阅图14,图14是本发明第六实施例提供的动画播放装置600,所述动画播放装置600用于执行本发明第二实施例描述的动画播放方法,所述动画播放装置600包括指令接收单元610、动画读取单元620、中间矩阵获取单元630、刷新单元640、叠加单元650、过渡单元660及播放单元670,其中:
所述指令接收单元610,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示。
在本发明实施例中,所述待叠加姿态的数目可为一个,也可为多个(如第一待叠加姿态和第二待叠加姿态等),相应的,所述叠加指示也为一个或多个(如第一叠加指示和第二叠加指示)。
所述动画读取单元620,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
所述中间矩阵获取单元630,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在本发明的实施例中,所述待叠加姿态的数目可为一个或多个,当所述待叠加姿态的数目为一个时,所述中间矩阵获取单元630包括第一中间矩阵获取单元,当所述待叠加姿态的数目为不止一个时(以两个为例),则所述中间矩阵获取单元630包括第一中间矩阵获取单元及第二中间矩阵获取单元,所述中间矩阵获取单元630的具体工作原理及结构请参阅第五实施例所述的中间矩阵获取单元530,本发明在此不做赘述。
所述刷新单元640,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
所述叠加单元650,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵。
请一并参阅图15,在一个实施例中,当所述待叠加姿态的数目为不止一个时(以两个为例),则所述叠加单元650包括第一叠加单元651及第二叠加单元652,其中:
所述第一叠加单元651,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵。
所述第二叠加单元652,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
所述过渡单元660,用于根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵。
在本发明一个实施例中,所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai;其中,ai表示所述原始动画中第i帧画面的权值,且ai=i/N,N为所述原始动画的总帧数。
在本发明一个实施例中,所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai);其中,ai表示所述原始动画中第i帧画面的权值,且ai=i/N,N为所述原始动画的总帧数。
所述播放单元670,用于播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放装置600,通过不断改变当前画面的权值,实现了从当前画面向目标画面(所述目标矩阵对应的画面)逐渐过渡,避免了在姿态改变过程中出现闪动的问题,提高了游戏的真实度和用户的体验。
请一并参阅图16,图16是本发明第七实施例提供的动画播放装置700,所述动画播放装置700用于执行本发明第三实施例描述的动画播放方法,所述动画播放装置700包括指令接收单元710、动画读取单元720、中间矩阵获取单元730、刷新单元740、第一叠加单元750、第二叠加单元760、过渡单元770及播放单元780,其中:
所述指令接收单元710,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示。
所述动画读取单元720,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
所述中间矩阵获取单元730,用于获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
在一个实施例中,所述中间矩阵获取单元730具体用于根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
请参阅图17,在一个实施例中,所述中间矩阵获取单元730,具体包括:
第一读取单元731,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵。
第二读取单元732,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵。
减法单元733,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵。
即,当所述矩阵数据库内未包含所述中间矩阵时,所述中间矩阵获取单元730根据所述原始动画、待叠加姿态来计算获得所述中间矩阵,其中,计算获得的中间矩阵可保存在所述矩阵数据库内,从而在下次的计算中,直接读取所述中间矩阵,而不需要进行重复计算。
所述刷新单元740,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第一目标矩阵。
所述第一叠加单元750,用于根据所述第一叠加指示,对所述当前画面的矩阵和中间矩阵进行叠加运算,获得第一目标矩阵。
所述第二叠加单元760,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第二目标矩阵。
其中,所述第一叠加指示为加法指示,所述第二叠加方式为减法指示;或者,所述第一叠加方式为减法指示,所述第二叠加方式为加法指示。
所述过渡单元770,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵。
其中,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;ai表示所述原始动画中第i帧画面的权值,且ai=i/N,N为所述原始动画的总帧数。
所述播放单元780,用于播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放装置700,通过不断改变当前画面的权值,实现了从第一目标矩阵对应的画面向第二目标矩阵对应的画面的逐渐过渡,其中,所述第一目标矩阵和第二目标矩阵都是通过所述原始动画的当前画面及待叠加姿态得到的,即通过对所述原始动画和待叠加矩阵进行过渡处理,得到了更丰富和连贯的画面展示效果,提高了游戏的真实度和用户的体验。
请参阅图18,图18是本发明第八实施例提供的动画播放装置800,所述动画播放装置800用于实施本发明第四实施例提供的动画播放方法,所述动画播放装置800包括指令接收单元810、动画读取单元820、第一中间矩阵获取单元830、第二中间矩阵获取单元840、刷新单元850、第一叠加单元860、第二叠加单元870、过渡单元880及播放单元890,其中,
所述指令接收单元810,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示。
其中,所述第一叠加指示为加法指示或减法指示。
其中,所述第二叠加方式为加法指示或减法指示。
所述动画读取单元820,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第一待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示。
所述第一中间矩阵获取单元830,用于获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
请参阅图19,在一个实施例中,所述第一中间矩阵获取单元830,具体包括:
第一读取单元831,用于根据所述第一待叠加姿态的名称读取第一待叠加姿态的矩阵;
第二读取单元832,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元833,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第一中间矩阵;
在一个实施例中,所述第一中间矩阵获取单元830,具体用于根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得对应的第一中间矩阵;其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
所述第二中间矩阵获取单元840,用于获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵。
请参阅图20,在一个实施例中,所述第二中间矩阵获取单元840,具体包括:
第三读取单元841,用于根据所述第二待叠加姿态的名称读取第二待叠加姿态的矩阵。
第四读取单元842,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵。
第二减法单元843,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第二中间矩阵;
在一个实施例中,所述第二中间矩阵获取单元840,具体用于根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得对应的第二中间矩阵;其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
所述刷新单元850,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵。
所述第一叠加单元860,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵。
所述第二叠加单元870,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵。
所述过渡单元880,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵。
其中,所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
所述播放单元890,用于播放与所述过渡矩阵对应的画面。
本发明实施例提供的动画播放装置800,实现了不同待叠加姿态之间的转换和画面过渡,获得了更丰富和连贯的动画展示和播放效果,提高了游戏的真实度和用户的体验。
本发明实施例还提供一种动画播放终端,所述动画播放终端包括上述任一实施例所述的动画播放装置,所述动画播放终端可实现原始动画与待叠加姿态的叠加、过渡等,从而利用较少的原始动画和待叠加姿态,即可获得所需的动画播放效果,减少了动画资源所需的存储空间和美工的工作量,同时提高了动画的真实度和用户体验。
以上所揭露的仅为本发明一些较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (41)
1.一种动画播放方法,其特征在于,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
播放与所述目标矩阵对应的画面。
2.根据权利要求1所述的动画播放方法,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述获取至少一个中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述获取至少一个中间矩阵,具体为:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
3.根据权利要求2所述的动画播放方法,其特征在于,所述至少一个叠加指示包括加法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述加法指示,将所述当前画面的矩阵和所述中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
4.根据权利要求1所述的动画播放方法,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
所述获取至少一个中间矩阵,具体为:获取第一中间矩阵,以及获取第二中间矩阵;
其中,所述获取第一中间矩阵的方法,具体为:
根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述获取第二中间矩阵的方法,具体为:
根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
5.根据权利要求4所述的动画播放方法,其特征在于,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
6.一种动画播放方法,其特征在于,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
7.根据权利要求6所述的动画播放方法,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述获取至少一个中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述获取至少一个中间矩阵,具体为:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
8.根据权利要求7所述的动画播放方法,其特征在于,所述至少一个叠加指示包括加法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
9.根据权利要求6所述的动画播放方法,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
所述获取至少一个中间矩阵,具体为:获取第一中间矩阵,以及获取第二中间矩阵;
其中,所述获取第一中间矩阵的方法,具体为:
根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述获取第二中间矩阵的方法,具体为:
根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
10.根据权利要求9所述的动画播放方法,其特征在于,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵,具体为:
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
11.根据权利要求6至10任一项所述的动画播放方法,其特征在于,所述根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
12.根据权利要求6至10任一项所述的动画播放方法,其特征在于,所述根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai);
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
13.一种动画播放方法,其特征在于,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述第一叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第一目标矩阵;
根据所述第二叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第二目标矩阵;
根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
14.根据权利要求13所述的动画播放方法,其特征在于,所述第一叠加指示为加法指示,所述第二叠加方式为减法指示;或者
所述第一叠加方式为减法指示,所述第二叠加方式为加法指示。
15.根据权利要求14所述的动画播放方法,其特征在于,所述获取中间矩阵,具体为:
根据所述待叠加姿态的名称读取待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述中间矩阵;
或者,所述获取中间矩阵,具体为:
根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得对应的中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
16.根据权利要求13至15任一项所述的动画播放方法,其特征在于,所述根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
17.一种动画播放方法,其特征在于,包括如下步骤:
接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示;
根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第一待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵;
根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵;
根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
播放与所述过渡矩阵对应的画面。
18.根据权利要求17所述的动画播放方法,其特征在于,所述第一叠加指示为加法指示或减法指示;所述第二叠加方式为加法指示或减法指示。
19.根据权利要求17所述的动画播放方法,其特征在于,所述获取第一中间矩阵,具体为:
根据所述第一待叠加姿态的名称读取第一待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第一中间矩阵;
或者,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得对应的第一中间矩阵;
所述获取第二中间矩阵,具体为:
根据所述第二待叠加姿态的名称读取第二待叠加姿态的矩阵;
根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第二中间矩阵;
或者,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得对应的第二中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
20.根据权利要求17至19任一项所述的动画播放方法,其特征在于,所述根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵,具体为:
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
21.一种动画播放装置,其特征在于,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、叠加单元及播放单元:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述叠加单元,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
所述播放单元,用于播放与所述目标矩阵对应的画面。
22.根据权利要求21所述的动画播放装置,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
23.根据权利要求22所述的动画播放装置,其特征在于,所述至少一个叠加指示包括加法指示,则所述叠加单元具体用于:
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述叠加单元具体用于:
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
24.根据权利要求21所述的动画播放装置,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则所述中间矩阵获取单元包括第一中间矩阵获取单元及第二中间矩阵获取单元,其中:
其中,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述第一中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,所述第二中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
25.根据权利要求24所述的动画播放装置,其特征在于,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述叠加单元包括第一叠加单元及第二叠加单元,其中:
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
所述第二叠加单元,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
26.一种动画播放装置,其特征在于,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、叠加单元、过渡单元及播放单元,其中:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、至少一个待叠加姿态的名称和至少一个叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取至少一个中间矩阵;其中,每个中间矩阵分别等于每个待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述叠加单元,用于根据所述至少一个叠加指示,将所述当前画面的矩阵和所述至少一个中间矩阵进行叠加运算,获得目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述当前画面的矩阵和所述目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
27.根据权利要求26所述的动画播放装置,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态,所述至少一个中间矩阵包括第一中间矩阵,则:
所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
28.根据权利要求27所述的动画播放装置,其特征在于,所述至少一个叠加指示包括加法指示,则所述叠加单元具体用于,
根据所述加法指示,将所述当前画面的矩阵和所述第一中间矩阵进行加法运算,获得目标矩阵;
或者,所述至少一个叠加指示包括减法指示,则所述叠加单元具体用于,
根据所述减法指示,将所述当前画面的矩阵和所述第一中间矩阵进行减法运算,获得目标矩阵。
29.根据权利要求26所述的动画播放装置,其特征在于,所述至少一个待叠加姿态包括第一待叠加姿态和第二待叠加姿态,则:
则所述中间矩阵获取单元包括第一中间矩阵获取单元及第二中间矩阵获取单元,其中:
其中,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称,读取对应的第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述第一中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称,读取对应的第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第二中间矩阵;
或者,所述第二中间矩阵获取单元具体用于,根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得关联的第二中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
30.根据权利要求29所述的动画播放装置,其特征在于,所述至少一个叠加指示包括与所述第一待叠加姿态对应的第一叠加指示,以及与所述第二待叠加姿态对应的第二叠加指示;
则所述叠加单元包括第一叠加单元及第二叠加单元,其中:
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一叠加矩阵;
所述第二叠加单元,用于再根据所述第二叠加指示,将所述第一叠加矩阵和所述第二中间矩阵进行叠加运算,获得目标矩阵。
31.根据权利要求26至30任一项所述的动画播放装置,其特征在于,
所述过渡矩阵=当前画面的矩阵*(1-ai)+目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
32.根据权利要求26至30任一项所述的动画播放装置,其特征在于,
所述过渡矩阵=当前画面的矩阵*ai+目标矩阵*(1-ai);
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
33.一种动画播放装置,其特征在于,包括指令接收单元、动画读取单元、中间矩阵获取单元、刷新单元、第一叠加单元、第二叠加单元、过渡单元及播放单元,其中:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、待叠加姿态的名称、第一叠加指示及第二叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述待叠加姿态是所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述中间矩阵获取单元,用于获取中间矩阵,其中,所述中间矩阵等于所述待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第一目标矩阵;
所述第二叠加单元,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述中间矩阵进行叠加运算,获得第二目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
34.根据权利要求33所述的动画播放装置,其特征在于,所述第一叠加指示为加法指示,所述第二叠加方式为减法指示;或者
所述第一叠加方式为减法指示,所述第二叠加方式为加法指示。
35.根据权利要求34所述的动画播放装置,其特征在于,所述中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述待叠加姿态的名称读取对应的待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
减法单元,用于将所述待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得第一中间矩阵;
或者,所述中间矩阵获取单元,具体用于:
根据所述原始动画的名称和所述待叠加姿态的名称,查询矩阵数据库,获得关联的第一中间矩阵;
其中,所述矩阵数据库保存了至少一个中间矩阵,每个中间矩阵与一个原始动画的名称和一个待叠加姿态的名称关联。
36.根据权利要求33至35任一项所述的动画播放装置,其特征在于,
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
37.一种动画播放装置,其特征在于,包括指令接收单元、动画读取单元、第一中间矩阵获取单元、第二中间矩阵获取单元、刷新单元、第一叠加单元、第二叠加单元、过渡单元及播放单元:
所述指令接收单元,用于接收动画播放指令;所述动画播放指令包含原始动画的名称、第一待叠加姿态的名称、第二待叠加姿态的名称、第一叠加指示及第二叠加指示;
所述动画读取单元,用于根据所述原始动画的名称读取原始动画;所述原始动画为骨骼蒙皮动画,包括用于展现物体姿态连续变化的多帧画面;所述第一待叠加姿态、所述第一待叠加姿态分别为所述物体的一个固定姿态的一帧画面;每帧画面用一个矩阵表示;
所述第一中间矩阵获取单元,用于获取第一中间矩阵,其中,所述第一中间矩阵等于所述第一待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述第二中间矩阵获取单元,用于获取第二中间矩阵,其中,所述第二中间矩阵等于所述第二待叠加姿态的矩阵减去所述原始动画的第一帧画面的矩阵;
所述刷新单元,用于根据动画播放时间轴的行进,刷新所述原始动画的当前画面,获取所述当前画面的矩阵;
所述第一叠加单元,用于根据所述第一叠加指示,将所述当前画面的矩阵和所述第一中间矩阵进行叠加运算,获得第一目标矩阵;
所述第二叠加单元,用于根据所述第二叠加指示,将所述当前画面的矩阵和所述第二中间矩阵进行叠加运算,获得第二目标矩阵;
所述过渡单元,用于根据所述当前画面所配置的权值,对所述第一目标矩阵和所述第二目标矩阵进行叠加运算,得到过渡矩阵;
所述播放单元,用于播放与所述过渡矩阵对应的画面。
38.根据权利要求37所述的动画播放装置,其特征在于,所述第一叠加指示为加法指示或减法指示;所述第二叠加方式为加法指示或减法指示。
39.根据权利要求37所述的动画播放装置,其特征在于,所述第一中间矩阵获取单元,具体包括:
第一读取单元,用于根据所述第一待叠加姿态的名称读取第一待叠加姿态的矩阵;
第二读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第一减法单元,用于将所述第一待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第一中间矩阵;
或者,所述第一中间矩阵获取单元,具体用于根据所述原始动画的名称和所述第一待叠加姿态的名称,查询矩阵数据库,获得对应的第一中间矩阵;
所述第二中间矩阵获取单元,具体包括:
第三读取单元,用于根据所述第二待叠加姿态的名称读取第二待叠加姿态的矩阵;
第四读取单元,用于根据动画播放时间轴的行进,读取所述原始动画的第一帧画面的矩阵;
第二减法单元,用于将所述第二待叠加姿态的矩阵减去所述第一帧画面的矩阵,获得所述第二中间矩阵;
或者,所述第二中间矩阵获取单元,具体用于根据所述原始动画的名称和所述第二待叠加姿态的名称,查询矩阵数据库,获得对应的第二中间矩阵;
其中,所述矩阵数据库记载了至少一个中间矩阵,每个中间矩阵指向一个原始动画的名称和一个待叠加姿态的名称。
40.根据权利要求37至39任一项所述的动画播放装置,其特征在于,
所述过渡矩阵=第一目标矩阵*(1-ai)+第二目标矩阵*ai;
其中,所述当前画面是所述原始动画中的第i帧画面,ai表示所述第i帧画面所配置的权值,且ai=i/N,N为所述原始动画的总帧数。
41.一种动画播放终端,其特征在于,包括权利要求21至40任一项所述的动画播放装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510428270.7A CN104992462B (zh) | 2015-07-20 | 2015-07-20 | 一种动画播放方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510428270.7A CN104992462B (zh) | 2015-07-20 | 2015-07-20 | 一种动画播放方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104992462A CN104992462A (zh) | 2015-10-21 |
CN104992462B true CN104992462B (zh) | 2018-01-30 |
Family
ID=54304269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510428270.7A Active CN104992462B (zh) | 2015-07-20 | 2015-07-20 | 一种动画播放方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104992462B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504306B (zh) * | 2016-09-14 | 2019-09-24 | 厦门黑镜科技有限公司 | 一种动画片段拼接方法、信息发送方法及装置 |
CN111311713A (zh) * | 2020-02-24 | 2020-06-19 | 咪咕视讯科技有限公司 | 漫画处理方法、显示方法、装置、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133052B1 (en) * | 2001-03-20 | 2006-11-07 | Microsoft Corporation | Morph map based simulated real-time rendering |
CN102449664A (zh) * | 2011-09-27 | 2012-05-09 | 华为技术有限公司 | 一种渐变动画的生成方法和装置 |
CN102682458A (zh) * | 2011-03-15 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种关键帧动画曲线的多特技多参数的同时调节方法 |
-
2015
- 2015-07-20 CN CN201510428270.7A patent/CN104992462B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133052B1 (en) * | 2001-03-20 | 2006-11-07 | Microsoft Corporation | Morph map based simulated real-time rendering |
CN102682458A (zh) * | 2011-03-15 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种关键帧动画曲线的多特技多参数的同时调节方法 |
CN102449664A (zh) * | 2011-09-27 | 2012-05-09 | 华为技术有限公司 | 一种渐变动画的生成方法和装置 |
Non-Patent Citations (2)
Title |
---|
三维图形引擎中骨骼蒙皮动画的一种实现方法;王洪福;《计算机应用研究》;20061231(第12期);349-356 * |
骨骼蒙皮动画关键帧插值算法的研究;王红霞;《光电工程》;20140531;第41卷(第5期);63-67 * |
Also Published As
Publication number | Publication date |
---|---|
CN104992462A (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104469179B (zh) | 一种将动态图片结合到手机视频中的方法 | |
CN105939493B (zh) | 一种视频弹幕的显示方法及显示装置 | |
CN103606180B (zh) | 3d骨骼动画的渲染方法及装置 | |
DE102020125612A1 (de) | Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video | |
CN111047676B (zh) | 一种图像渲染方法、装置及存储介质 | |
CN108771866B (zh) | 虚拟现实中的虚拟对象控制方法及装置 | |
CN106919248A (zh) | 应用于虚拟现实的内容传输方法以及设备 | |
CN105635712A (zh) | 基于增强现实的视频实时录制方法及录制设备 | |
CN110418146B (zh) | 应用于直播场景的换脸方法、存储介质、电子设备及系统 | |
CN106527724A (zh) | 一种实现虚拟现实场景的方法及系统 | |
CN103299347B (zh) | 基于云应用的在线渲染方法和离线渲染方法及相关装置 | |
CN105913476B (zh) | 植被图像的渲染方法和装置 | |
CN107103645A (zh) | 虚拟现实媒体文件生成方法及装置 | |
CN104992462B (zh) | 一种动画播放方法、装置及终端 | |
WO2015173967A1 (ja) | ゲーム画像生成装置およびプログラム | |
CN102968814A (zh) | 一种图像渲染的方法及设备 | |
CN110120087A (zh) | 三维虚拟沙盘的标签标注方法、装置及终端设备 | |
CN108063915A (zh) | 一种图像采集方法及系统 | |
CN105597314B (zh) | 一种2d游戏的渲染系统及方法、终端设备 | |
WO2021112882A1 (en) | Hybrid streaming | |
CN106162296A (zh) | 一种播放弹幕的方法和系统 | |
CN105892681A (zh) | 虚拟现实终端及其场景的处理方法和装置 | |
CN108379841A (zh) | 游戏特效的处理方法、装置和终端 | |
CN105243268B (zh) | 一种游戏地图定位方法、装置及用户终端 | |
CN111739150B (zh) | 贵金属三维模型构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |