动画处理方法、装置、电子设备和可读存储介质与流程

未命名 10-19 阅读:70 评论:0


1.本技术涉及游戏技术领域,具体涉及一种动画处理方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.随着游戏的发展,越来越多的用户通过玩游戏来消遣休闲时光,丰富生活方式。在游戏中,游戏角色可以执行各种各样的动作,其中,游戏角色可以一边移动一边执行动作,或者,游戏角色也可以在原地执行动作。
3.在开发游戏的过程中,在调用动作代码控制游戏角色在原地执行动作时,游戏角色会发生位移,此时,需要开发人员手动去除游戏角色产生的位移,才能使得游戏角色在原地执行动作。但是,手动去除游戏角色产生的位移的效率较低。


技术实现要素:

4.本技术实施例提供一种动画处理方法、装置、电子设备和计算机可读存储介质,可以提高去除游戏角色在执行动作时产生的位移的效率。
5.第一方面,本技术实施例提供一种动画处理方法,上述方法包括:
6.获取游戏对象的动作动画,上述动作动画包含上述游戏对象执行目标动作时上述游戏对象的质心发生的目标位移;
7.创建上述游戏对象用于去除上述目标位移的父骨骼点,并获取上述游戏对象在上述动作动画中各个动画帧的位置;
8.根据上述位置,从上述动作动画中筛选出第一动画时间段以及第二动画时间段,上述第一动画时间段包括上述游戏对象处于踩定状态时的第一动画帧,上述第二动画时间段包括上述游戏对象处于非踩定状态时的第二动画帧;
9.对上述游戏对象在上述第一动画帧中的位置进行第一数据处理,得到上述父骨骼点在上述第一动画时间段对应的第一目标位置;
10.对上述游戏对象在上述第二动画帧中的位置进行第二数据处理,得到上述父骨骼点在上述第二动画时间段对应的第二目标位置;
11.根据上述第一目标位置和上述第二目标位置,消除上述动作动画中的上述目标位移,得到未包含上述目标位移的目标动作动画。
12.第二方面,本技术实施例还提供一种动画处理装置,上述装置包括:
13.动画获取模块,用于获取游戏对象的动作动画,上述动作动画包含上述游戏对象执行目标动作时上述游戏对象的质心发生的目标位移;
14.骨骼点创建模块,用于创建上述游戏对象用于去除上述目标位移的父骨骼点,并获取上述游戏对象在上述动作动画中各个动画帧的位置;
15.时间段筛选模块,用于根据上述位置,从上述动作动画中筛选出第一动画时间段以及第二动画时间段,上述第一动画时间段包括上述游戏对象处于踩定状态时的第一动画
帧,上述第二动画时间段包括上述游戏对象处于非踩定状态时的第二动画帧;
16.第一处理模块,对上述游戏对象在上述第一动画帧中的位置进行第一数据处理,得到上述父骨骼点在上述第一动画时间段对应的第一目标位置;
17.第二处理模块,用于对上述游戏对象在上述第二动画帧中的位置进行第二数据处理,得到上述父骨骼点在上述第二动画时间段对应的第二目标位置;
18.位移消除模块,用于根据上述第一目标位置和上述第二目标位置,消除上述动作动画中的上述目标位移,得到未包含上述目标位移的目标动作动画。
19.第三方面,本技术实施例还提供一种电子设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本技术实施例所提供的任一种动画处理方法。
20.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本技术实施例所提供的任一种动画处理方法。
21.本技术实施例中,获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移;创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧;对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画,实现自动去除游戏对象在执行目标动作时质心产生的目标位移,并且,由于父骨骼点在动作动画中的轨迹是根据第一目标位置和第二目标位置得到的,第一目标位置是对游戏对象在第一动画帧中的位置进行第一数据处理得到的,第二目标位置是对游戏对象在第二动画帧中的位置进行第二数据处理得到的,因此,根据该轨迹消除目标位移,可以使得游戏对象在目标动作动画中不会产生滑步现象。
附图说明
22.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是本技术实施例提供的动画处理系统示意图;
24.图2是本技术实施例提供的动画处理方法的一种实施例流程示意图;
25.图3是本技术实施例中提供的父骨骼点以及游戏对象的质心的示意图;
26.图4是本技术实施例中提供的第一动画时间段和第二动画时间段的示意图;
27.图5是本技术实施例中提供的平滑曲线的示意图;
28.图6是本技术实施例中提供的游戏对象的质心的原轨迹和父骨骼点的轨迹的示意图;
29.图7是本技术实施例中提供的去除目标位移后的游戏对象的示意图;
30.图8是本技术实施例中提供的脚本工具的示意图;
31.图9是本技术实施例提供的动画处理装置的结构示意图;
32.图10是本技术实施例提供的电子设备的结构示意图。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.在对本技术实施例进行详细地解释说明之前,先对本技术实施例涉及到的一些名词进行解释说明。
35.其中,在本技术实施例的描述中,术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.本技术实施例提供一种动画处理方法、装置、电子设备和计算机可读存储介质。具体地,本技术实施例的动画处理方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。
37.该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(pc,personal computer)、个人数字助理(personal digital assistant,pda)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。
38.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
39.例如,如图1所示,该电子设备以终端10为例进行说明,该终端可以获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移;创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧;对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画,实现自动去除游戏对象在执行目标动作时质心产生的目标位移,并且,由于父骨骼点在动作动画中的轨迹是根据第一目标位置和第二目标位置得到的,第一目标位置是对游戏对象在第一动画帧
中的位置进行第一数据处理得到的,第二目标位置是对游戏对象在第二动画帧中的位置进行第二数据处理得到的,因此,根据该轨迹消除目标位移,可以使得游戏对象在目标动作动画中不会产生滑步现象。
40.以下结合附图分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于附图所示的顺序执行所示出或描述的步骤。
41.在本实施例中,以终端为例进行说明,本实施例提供了一种动画处理方法,如图2所示,该动画处理方法的具体流程可以如下:
42.201、获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移。
43.动画指由各帧图像组成的连续的画面,动作动画指由各帧图像组成且实现目标动作的画面。动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移,可以理解为动作动画包含游戏对象、游戏对象执行的目标动作以及游戏对象执行目标动作时游戏对象的质心产生的目标位移。
44.游戏对象也可以称为虚拟对象或游戏角色,其可以指在虚拟场景中可被控制的动态对象,动态对象可以为虚拟人物、虚拟动物或动漫人物等。
45.质心(pelvis)指游戏对象的质量集中于此的一个假想点,其也可以称为游戏对象的中心或重心。
46.202、创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置。
47.父骨骼点(root)可以理解为游戏对象的骨骼点(该骨骼点可以为游戏对象的质心)的父级节点,可以通过控制父骨骼点的移动控制游戏对象的骨骼点的移动,从而控制游戏对象的移动。
48.可选地,终端可以创建坐标系,然后将坐标系的原点作为游戏对象的质心的父骨骼点,并且使得游戏对象的质心的第一坐标和第二坐标与坐标系的原点之间的距离在预设距离范围内。
49.比如,创建的坐标系、父骨骼点和游戏对象的质心可以如图3所示,此时,父骨骼点位于坐标系的原点,游戏对象的质心的x坐标和y坐标也位移坐标系的原点。
50.游戏对象在动作动画中各个动画帧的位置,可以指游戏对象中至少一个骨骼点在各个动画帧的位置。比如,游戏对象在动作动画中各个动画帧的位置,可以包括游戏对象的支撑骨骼点(当游戏对象为虚拟人物时,游戏对象的支撑骨骼点即为游戏对象的支撑部位,游戏对象的支撑部位可以为游戏对象的左脚和右脚)在各个动画帧的位置和游戏对象的质心在各个动画帧的位置的至少一种。
51.203、根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧。
52.踩定状态(planted state)可以理解为游戏对象的支撑部位在水平面(水平面比如可以如图3所示的(x,y)所在的平面)上的状态,非踩定状态可以理解为游戏对象的支撑部位不在水平面上的状态。
53.第一动画时间段(planted range)中可以包括至少一帧第一动画帧,第二动画时间段中可以包括至少一帧第二动画帧。
54.在一些实施例中,该位置为游戏对象的支撑部位的位置,根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段的过程可以为:
55.根据位置,确定游戏对象与水平面之间的距离;
56.若该距离大于预设距离,则将该位置对应的动画帧确定为第二动画时间段,若该距离小于或等于预设距离,则将该位置对应的动画帧确定为第一动画帧;
57.将在时间上连续的第一动画帧所在的时间段,作为第一动画时间段,将在时间上连续的第二动画帧所在的时间段,作为第二动画时间段。
58.比如,游戏对象在动画帧上的位置为游戏对象的支撑部位的坐标(x1,y1,z1),(x,y)所在的平面为水平面,则将z1作为游戏对象与水平面之间的距离,如果z1大于预设距离,则确定游戏对象在该动画帧上为非踩定状态,该动画帧为第二动画帧,如果z1小于预设距离,则确定游戏对象在该动画帧上为踩定状态,该动画帧为第一动画帧。
59.在另一些实施例中,根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段的过程也可以为:
60.从动作动画中筛选出目标动画帧以及与目标动画帧相邻的动画帧;
61.根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的运动状态,运动状态为踩定状态或非踩定状态;
62.根据运动状态,从动作动画中筛选出第一动画时间段以及第二动画时间段。
63.与目标动画帧相邻的动画帧,可以指与目标动画帧相邻且时间在目标动画帧之前的至少一帧动画帧。比如,目标动画帧为动作动画中的第5帧,则与目标动画帧相邻的动画帧可以为动作动画中的第4帧。
64.或者,与目标动画帧相邻的动画帧,可以指与目标动画帧相邻且时间在目标动画帧之前和之后的动画帧。比如,目标动画帧为动作动画中的第5帧动画帧,则与目标动画帧相邻的动画帧可以为动作动画中的第4帧动画帧和第6帧动画帧。
65.在本技术实施例中,从动作动画中筛选出目标动画帧以及与目标动画帧相邻的动画帧,然后根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的运动状态,根据运动状态,从动作动画中筛选出第一动画时间段以及第二动画时间段,实现根据游戏对象在与目标动画帧相邻的动画帧的位置,确定游戏对象在目标动画帧上的运动状态,提高得到游戏对象的运动状态的准确度,从而提高得到第一动画时间段和第二时间段的准确度。
66.其中,根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的运动状态的过程可以为:
67.根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的速度值;
68.根据速度值,确定游戏对象在目标动画帧上的运动状态。
69.游戏对象在目标动画帧上的速度值可以包括游戏对象在水平面上的速度值和游戏对象在水平面的垂直方向的速度值中的至少一个。
70.终端可以是当速度值大于预设速度值时,将游戏对象在目标动画帧上的运动状态
确定为非踩定状态,将速度值小于或等于预设速度值时,将游戏对象在目标动画帧上的运动状态确定为踩定状态。
71.比如,根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在(x,y)平面的第一速度值和在z轴方向的第二速度值,如果第一速度值或第二速度值大于预设速度值,则将游戏对象在目标动画帧上的运动状态确定为非踩定状态,否则,将游戏对象在目标动画帧上的运动状态确定为踩定状态。
72.当游戏对象在各个动画帧上的位置包括游戏对象的质心的位置和游戏对象的支撑部位的位置时,游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置可以为游戏对象的质心在相邻的动画帧上的位置和游戏对象的质心在目标动画帧上的位置,也可以为游戏对象的支撑部位在相邻的动画帧上的位置和游戏对象的支撑部位在目标动画帧上的位置。
73.可选地,当游戏对象在各个动画帧上的位置包括游戏对象的至少两个支撑部位的位置时,根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的运动状态,包括:
74.根据支撑部位在相邻的动画帧上的位置和在目标动画帧上的位置,确定支撑部位在目标动画帧上的运动状态;
75.若支撑部位在目标动画帧上的运动状态均为踩定状态,则将游戏对象在目标动画帧上的运动状态确定为踩定状态;
76.若支撑部位在目标动画帧上的运动状态包括非踩定状态,则将游戏对象在目标动画帧上的运动状态确定为非踩定状态。
77.比如,支撑部位可以为游戏对象的左角和右脚,目标动画帧可以如图4所示,图4中灰色表示踩定状态,在第5帧动画帧中,左角的运动状态和右脚的运动状态均为踩定状态,所以,游戏对象在第5帧动画帧上的运动状态为踩定状态,在第2帧动画帧中,左角的运动状态为非踩定状态,右脚的运动状态为踩定状态,所以,游戏对象在第2帧动画帧上的运动状态为非踩定状态。
78.在本技术实施例通过,先根据支撑部位在相邻的动画帧上的位置和在目标动画帧上的位置,确定支撑部位在目标动画帧上的运动状态,当目标动画帧的支撑部位在目标动画帧上的运动状态均为踩定状态时,才将游戏对象在目标动画帧上的运动状态确定为踩定状态,当目标动画帧的支撑部位在目标动画帧上的运动状态包括非踩定状态,才将游戏对象在目标动画帧上的运动状态确定为非踩定状态,进一步提高得到游戏对象的运动状态的准确度。
79.其中,根据支撑部位在相邻的动画帧上的位置和在目标动画帧上的位置,确定支撑部位在目标动画帧上的运动状态的过程可以为:
80.根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定支撑部位在目标动画帧上的子速度值;
81.根据子速度值,确定支撑部位在目标动画帧上的运动状态。
82.确定子速度值以及根据子速度值确定支撑部位在目标动画帧上的运动状态的过程,具体可以参照确定速度值以及根据速度值确定游戏对象在目标动画帧上的运动状态的过程,本技术实施例在此不再赘述。
83.在另一些实施例中,根据运动状态,从动作动画中筛选出第一动画时间段以及第二动画时间段,包括:
84.将运动状态均为踩定状态且在时间上连续的动画帧所在的时间段作为第一动画时间段;
85.将运动状态均为非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段。
86.比如,如图4所示,动作动画中第5帧动画帧、第6帧动画帧、第7帧动画帧以及第8帧动画帧的运动状态均为踩定状态,由于第5帧动画帧、第6帧动画帧、第7帧动画帧以及第8帧动画帧在时间上连续,因此,将第5帧动画帧、第6帧动画帧、第7帧动画帧以及第8帧动画帧所在的时间段作为第一动画时间段。动作动画中第1帧动画帧、第2帧动画帧、第3帧动画帧以及第4帧动画帧的运动状态均为非踩定状态,由于第1帧动画帧、第2帧动画帧、第3帧动画帧以及第4帧动画帧在时间上连续,因此,将第1帧动画帧、第2帧动画帧、第3帧动画帧以及第4帧动画帧所在的时间段作为第二动画时间段。
87.在另一些实施例中,在将运动状态均为非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段之后,包括:
88.确定质心在第二动画时间段中的动画帧中的子位移;
89.将目标第二动画时间段与目标第二动画时间段相邻的第一动画时间段合并为第一动画时间段,目标第二动画时间段为满足预设碎步条件的子位移对应的第二动画时间段。
90.满足预设碎步条件可以根据实际情况进行设置,比如,可以是当子位移小于预设长度时,确定该子位移满足预设碎步条件,该预设长度可以根据游戏对象的身高确定。
91.比如,如图4所示,第31帧动画帧和第32动画帧所在的时间段为第二动画时间段,第28-30帧动画帧所在的时间段为第一动画时间段,第33帧动画帧和第34帧动画帧所在的时间段为第一动画时间段。由于质心在第31帧动画帧和第32动画帧中的子位于小于预设长度,因此,确定游戏对象在第31帧动画帧和第32动画帧发生碎步,所以,将第28-30帧动画帧所在的时间段、第31帧动画帧和第32动画帧所在的时间段以及第33帧动画帧和第34帧动画帧所在的时间段合并为第一动画时间段。
92.在本技术实施例中,在将运动状态均为非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段之后,确定质心在第二动画时间段中的动画帧中的子位移,将目标第二动画时间段与目标第二动画时间段相邻的第一动画时间段合并为第一动画时间段,目标第二动画时间段为满足预设碎步条件的子位移对应的第二动画时间段,进一步提高第一动画时间段和第二动画时间段的准确度。
93.204、对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置。
94.当游戏对象在第一动画帧中的位置为游戏对象的支撑部位在第一动画帧中的位置时,可以先根据支撑部位在第一动画帧中的位置,确定支撑部位的中心在第一动画帧中的位置,然后根据支撑部位的中心在第一动画帧中的位置,确定父骨骼点在第一动画时间段对应的第一目标位置。
95.当游戏对象在第一动画帧中的位置包括游戏对象的质心在第一动画帧中的位置
时,可以直接根据游戏对象的质心在第一动画帧中的位置,确定父骨骼点在第一动画时间段对应的第一目标位置。
96.在本技术实施例中,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置,使得第一目标位置与游戏对象的质心在第一动画帧中的位置不相同,从而使得在后续根据第一目标位置去除目标位移之后得到的目标动作动画中,当游戏对象的双脚站立时,游戏对象的质心可以产生小范围内位移(也即是,在去除目标位移之后,游戏对象的质心还剩下位移),不会产生滑步现象,从而使得目标动作动画的效果更加自然。
97.在一些实施例中,第一数据处理包括平均值处理,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置,包括:
98.对游戏对象在第一动画帧中的位置进行平均值处理,得到第一动画时间段对应的位置平均值;
99.将位置平均值作为父骨骼点在第一动画时间段对应的第一目标位置。
100.比如,求解游戏对象的质心在第一动画时间段中各个第一动画帧的位置的平均值,然后将该平均值作为父骨骼点在第一动画时间段对应的第一目标位置。
101.例如,如图4所示,第一动画时间段包括第5帧-第8帧动画帧,将游戏对象的质心在第5帧动画帧的位置、游戏对象的质心在第6帧动画帧的位置、游戏对象的质心在第7帧动画帧的位置以及游戏对象的质心在第8帧动画帧的位置的平均值,作为父骨骼点在第5帧-第8帧动画帧中的位置,也即是,父骨骼点在第5帧-第8帧动画帧中的位置是不变的,第一动画时间段包括第27帧-第34帧动画帧,将游戏对象的质心在第27帧-第34帧动画帧的位置的平均值,作为父骨骼点在第27帧-第34帧动画帧中的位置,也即是,父骨骼点在第27帧-第34帧动画帧中的位置是不变的。
102.其中,对游戏对象在第一动画帧中的位置进行平均值处理,得到第一动画时间段对应的位置平均值的过程可以为:
103.确定第一动画时间段是否包括动作动画的第一帧动画帧或最后一帧动画帧;
104.若第一动画时间段不包括动作动画的第一帧动画帧或最后一帧动画帧,则对游戏对象在第一动画帧中的位置进行平均值处理,得到第一动画时间段对应的位置平均值。
105.如果第一动画时间段包括动作动画的第一帧动画帧或最后一帧动画帧,则将游戏对象在第一帧动画帧中的位置或最后一帧动画帧的位置,作为父骨骼点在该第一动画时间段的位置。
106.比如,第一动画时间段包括动作动画的第一帧动画帧,游戏对象的质心在动作动画的第一帧动画帧中的位置为firstposoffset,则将firstposoffset作为父骨骼点在该第一动画时间段中的第一目标位置。
107.在本技术实施例中,对游戏对象在第一动画帧中的位置进行平均值处理,得到第一动画时间段对应的位置平均值,将位置平均值作为父骨骼点在第一动画时间段对应的第一目标位置,使得第一目标位置与游戏对象的质心在第一动画帧中的位置不相同。
108.或者,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置的过程可以为:
109.确定游戏对象在第一动画帧中的位置中的众数;
110.将众数作为父骨骼点在第一动画时间段对应的第一目标位置。
111.也即是,此时,第一动画时间段对应的第一目标位置均为众数,父骨骼点在第一动画时间段对应的第一目标位置不变。
112.又或者,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置的过程也可以为:
113.将游戏对象在第一动画帧中的位置中的任何一个位置,作为父骨骼点在第一动画时间段对应的第一目标位置。
114.205、对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
115.在本技术实施例中,对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置,使得后续根据第二目标位置去除游戏对象的质心的目标位移之后得到的目标动作动画可以保留游戏对象的运动细节,使得目标动作动画更加自然。
116.在一些实施例中,第二数据处理包括平滑处理和融合处理,对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置,包括:
117.对游戏对象在第二动画帧中的位置进行平滑处理,得到游戏对象的平滑后位置;
118.将平滑后位置和游戏对象在第二动画帧中的位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
119.其中,终端可以根据平滑处理的平滑步长,确定相邻动画帧的帧数,然后根据相邻动画帧的帧数,获取与第二动画帧相邻的动画帧,最后,根据游戏对象在与第二动画帧相邻的动画帧上的位置,对游戏对象在第二动画帧中的位置进行平滑处理。
120.根据游戏对象在与第二动画帧相邻的动画帧上的位置,对游戏对象在第二动画帧中的位置进行平滑处理,可以理解为将游戏对象在与第二动画帧相邻的动画帧上的位置和在第二动画帧中的位置的平均值,作为游戏对象的平滑后位置。
121.比如,游戏对象的质心的平滑后位置可以组成一个平滑曲线,则游戏对象的质心的平滑曲线可以如图5所示。
122.平滑处理的平滑步长可以根据实际情况进行设置,比如,平滑步长可以设置为1或2,本技术实施例在此不做限定。
123.比如,第二动画时间段的第二动画帧包括第8帧-第10帧动画帧,当平滑步长为1时,则将游戏对象的质心在第7帧动画帧的位置、第8帧动画帧的位置和第9帧动画帧的位置的平均值,作为游戏对象的质心在第8帧动画帧上的平滑后位置。当平滑步长为2时,将游戏对象的质心在第6帧动画帧的位置、第7帧动画帧的位置、第8帧动画帧的位置、第9帧动画帧的位置和第10帧动画帧的位置的平均值,作为游戏对象的质心在第8帧动画帧上的平滑后位置。
124.在本实施例中,对游戏对象在第二动画帧中的位置进行平滑处理,得到游戏对象的平滑后位置;将平滑后位置和游戏对象在第二动画帧中的位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置,使得后续根据第二目标位置去除游戏对象的质心的目标位移之后得到的目标动作动画可以保留游戏对象的运动细节,使得目标动作动
画更加自然。
125.在另一些实施例中,将平滑后位置和游戏对象在第二动画帧中的位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置,包括:
126.获取游戏对象在与第二动画时间段相邻的动画帧上的相邻位置;
127.将平滑后位置和相邻位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
128.在本技术实施例中,获取游戏对象在与第二动画时间段相邻的动画帧上的相邻位置,将平滑后位置和相邻位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置,使得后续在根据第二目标位置得到的目标动作动画中,父骨骼点不会出现跳变现象,并且第二动画时间段中的第二动画帧与第二动画时间段相邻的动画帧之间衔接平滑。
129.比如,第二动画时间段的第二动画帧包括第6帧-第9帧动画帧,则与第二动画时间相邻的动画帧可以包括第5帧动画帧和第10帧动画帧,则可以将游戏对象的质心在第5帧动画帧上的相邻位置(游戏对象的质心在第5帧动画帧上的相邻位置比如可以如图5中所示的aendoffset)、第10帧动画帧上的相邻位置(游戏对象的质心在第10帧动画帧上的相邻位置比如可以如图5中所示的bstartoffset)以及平滑后位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
130.可选地,与第二动画时间段相邻的动画帧包括至少两个,则将平滑后位置和相邻位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置的过程可以为:
131.从第二动画帧中筛选出目标第二动画帧,以及从与第二动画时间段相邻的动画帧中筛选出与目标第二动画帧之间的帧数满足预设帧数条件的动画帧,得到目标第二动画帧对应的目标相邻动画帧;
132.将游戏对象在目标第二动画帧上的平滑后位置和在目标相邻动画帧上的相邻位置进行融合处理,得到父骨骼点在目标第二动画帧上的第二目标位置;
133.根据父骨骼点在目标第二动画帧上的第二目标位置,确定父骨骼点在第二动画时间段的第二目标位置。
134.比如,第二动画时间段的第二动画帧包括第6帧-第9帧动画帧,与第二动画时间相邻的动画帧可以包括第5帧动画帧和第10帧动画帧,当目标第二动画帧为第6帧动画帧和第7帧动画帧时,第5帧动画帧与第6帧动画帧之间的帧数满足预设帧数条件,第5帧动画帧与第7帧动画帧之间的帧数满足预设帧数条件,因此,将5帧动画帧作为第6帧动画帧对应的目标相邻动画帧,将5帧动画帧作为第7帧动画帧对应的目标相邻动画帧。当目标第二动画帧为第8帧动画帧和第9帧动画帧时,第10帧动画帧与第8帧动画帧之间的帧数满足预设帧数条件,第10帧动画帧与第9帧动画帧之间的帧数满足预设帧数条件,因此,将10帧动画帧作为第8帧动画帧对应的目标相邻动画帧,将10帧动画帧作为第9帧动画帧对应的目标相邻动画帧。
135.可选地,将游戏对象在目标第二动画帧上的平滑后位置和在目标相邻动画帧上的相邻位置进行融合处理,得到父骨骼点在目标第二动画帧上的第二目标位置的过程可以为:
136.将游戏对象在目标第二动画帧上的平滑后位置和在目标相邻动画帧上的相邻位
置相加,得到相加后位置;
137.将相加后位置除以2,得到父骨骼点在目标第二动画帧上的第二目标位置。
138.或者,将游戏对象在目标第二动画帧上的平滑后位置和在目标相邻动画帧上的相邻位置进行融合处理,得到父骨骼点在目标第二动画帧上的第二目标位置的过程也可以为:
139.获取游戏对象在目标第二动画帧上的平滑后位置对应的第一权重,以及获取在目标相邻动画帧上的相邻位置对应的第二权重,第一权重和第二权重之间的和为1;
140.根据第一权重对游戏对象在目标第二动画帧上的平滑后位置进行调整处理,得到调整后平滑位置;
141.根据第二权重对游戏对象在目标相邻动画帧上的相邻位置进行调整处理,得到调整后相邻位置;
142.将调整后平滑位置和调整后相邻位置相加,得到父骨骼点在目标第二动画帧上的第二目标位置。
143.其中,终端可以将第一权重和游戏对象在目标第二动画帧上的平滑后位置进行相乘,从而实现对平滑后位置的调整处理,将第二权重和游戏对象在目标相邻动画帧上的相邻位置进行相乘,实现对游戏对象在目标相邻动画帧上的相邻位置的调整处理。
144.206、根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画。
145.终端在得到第一目标位置和第二目标位置之后,第一目标位置和第二目标位置即可组成父骨骼点在动作动画中的轨迹。比如,游戏对象的质心的原轨迹和父骨骼点在动作动画中的轨迹可以如图6所示。
146.由于父骨骼点为游戏对象中用于消除目标位移的骨骼点,也即是,父骨骼点为质心的父级节点,因此,当根据第一目标位置和第二目标位置去除父骨骼点在动作动画中的位移时,即可去除游戏对象的质心在动作动画中的目标位移。
147.比如,游戏对象的质心的原轨迹和父骨骼点在动作动画中的轨迹可以如图6所示,则去除父骨骼点在动作动画中的位移以及游戏对象的质心在动作动画中的目标位移之后,父骨骼点和游戏对象的质心可以如图7所示。
148.从图7中可以看出,虽然游戏对象的质心在动作动画中的目标位移被去除,但是,由于父骨骼点的第一目标位置是对游戏对象在第一动画帧中的位置进行第一数据处理得到的,父骨骼点的第二目标位置是对游戏对象在第二动画帧中的位置进行第二数据处理得到的,因此,在去除游戏对象的质心的目标位移之后,当游戏对象站立时,游戏对象的质心可以存在小范围的位移,该小范围的位移比如图7中所示。
149.可选地,根据第一目标位置和第二目标位置去除父骨骼点在动作动画中的位移,可以理解为将第一目标位置和第二目标位置置零,以便去除父骨骼点在动作动画中的位移,从而去除游戏对象的质心在动作动画中的目标位移。
150.或者,根据第一目标位置和第二目标位置去除父骨骼点在动作动画中的位移,也可以理解为控制父骨骼点按照第一目标位置和第二目标位置组成的轨迹原路返回,以便去除父骨骼点在动作动画中的位移,从而去除游戏对象的质心在动作动画中的目标位移。
151.比如,要去除父骨骼点在动作动画中第5帧动画帧产生的位移,则可以根据第一目
标位置和第二目标位置,确定父骨骼点在动作动画中第1帧-5帧动画帧之间的轨迹,控制父骨骼点按照该轨迹原路返回,以使得父骨骼点在动作动画中第5帧动画帧中的位置与父骨骼点在动作动画中第1帧动画帧中的位置相同。
152.在一些实施例中,本技术实施例提供的动画处理方法可以集成于一个脚本工具中,终端当获取到动作动画之后,可以响应于用户对脚本工具的触发操作,通过脚本工具对动作动画进行位移去除处理,从而得到目标动作动画,实现一键去除位移,提高去除位移效率,降低成本。
153.比如,游戏对象执行目标动作后,从坐标原点移动至如图8所示的位置,用户触发脚本工具上的测试轨迹控件,终端响应该触发操作,通过脚本工具对动作动画进行位移去除处理,得到的目标动作动画可以如图8所示,此时,游戏对象回到坐标原点。
154.由以上内容可以看出,本技术实施例中,获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移;创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧;对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画,实现自动去除游戏对象在执行目标动作时质心产生的目标位移,并且,由于父骨骼点在动作动画中的轨迹是根据第一目标位置和第二目标位置得到的,第一目标位置是对游戏对象在第一动画帧中的位置进行第一数据处理得到的,第二目标位置是对游戏对象在第二动画帧中的位置进行第二数据处理得到的,因此,根据该轨迹消除目标位移,可以使得游戏对象在目标动作动画中不会产生滑步现象。
155.为了更好地实施以上方法,本技术实施例还提供一种动画处理装置,该动画处理装置具体可以集成在电子设备中,比如,计算机设备,该计算机设备可以为终端、服务器等设备。
156.其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
157.比如,在本实施例中,将以动画处理装置具体集成在终端为例,对本技术实施例的方法进行详细说明,本实施例提供了一种动画处理装置,如图9所示,该动画处理装置可以包括:
158.动画获取模块901,用于获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移。
159.骨骼点创建模块902,用于创建动作动画中游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置。
160.时间段筛选模块903,用于根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧。
161.第一处理模块904,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父
骨骼点在第一动画时间段对应的第一目标位置。
162.第二处理模块905,用于对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
163.位移消除模块906,用于根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画。
164.在一些实施例中,时间段筛选模块903具体用于执行:
165.从动作动画中筛选出目标动画帧以及与目标动画帧相邻的动画帧;
166.根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的运动状态,运动状态为踩定状态或非踩定状态;
167.根据运动状态,从动作动画中筛选出第一动画时间段以及第二动画时间段。
168.在一些实施例中,时间段筛选模块903具体用于执行:
169.根据游戏对象在相邻的动画帧上的位置和在目标动画帧上的位置,确定游戏对象在目标动画帧上的速度值;
170.根据速度值,确定游戏对象在目标动画帧上的运动状态。
171.在一些实施例中,位置包括游戏对象的至少两个支撑部位的位置。相应地,时间段筛选模块903具体用于执行:
172.根据支撑部位在相邻的动画帧上的位置和在目标动画帧上的位置,确定支撑部位在目标动画帧上的运动状态;
173.若支撑部位在目标动画帧上的运动状态均为踩定状态,则将游戏对象在目标动画帧上的运动状态确定为踩定状态;
174.若支撑部位在目标动画帧上的运动状态包括非踩定状态,则将游戏对象在目标动画帧上的运动状态确定为非踩定状态。
175.在一些实施例中,时间段筛选模块903具体用于执行:
176.将运动状态均为踩定状态且在时间上连续的动画帧所在的时间段作为第一动画时间段;
177.将运动状态均为非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段。
178.在一些实施例中,时间段筛选模块903具体用于执行:
179.确定质心在第二动画时间段中的动画帧中的子位移;
180.将目标第二动画时间段与目标第二动画时间段相邻的第一动画时间段合并为第一动画时间段,目标第二动画时间段为满足预设碎步条件的子位移对应的第二动画时间段。
181.在一些实施例中,第一数据处理包括平均值处理。相应地,第一处理模块904具体用于:
182.对游戏对象在第一动画帧中的位置进行平均值处理,得到第一动画时间段对应的位置平均值;
183.将位置平均值作为父骨骼点在第一动画时间段对应的第一目标位置。
184.在一些实施例中,第二数据处理包括平滑处理和融合处理,相应地,第二处理模块905具体用于:
185.对游戏对象在第二动画帧中的位置进行平滑处理,得到游戏对象的平滑后位置;
186.将平滑后位置和游戏对象在第二动画帧中的位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
187.在一些实施例中,第二处理模块905具体用于:
188.获取游戏对象在与第二动画时间段相邻的动画帧上的相邻位置;
189.将平滑后位置和相邻位置进行融合处理,得到父骨骼点在第二动画时间段对应的第二目标位置。
190.具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施方式以及对应的有益效果可参见前面的方法实施例,在此不再赘述。
191.相应的,本技术实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(pc,personal computer)、个人数字助理(personal digital assistant,pda)等终端设备。如图10所示,图10为本技术实施例提供的电子设备的结构示意图。该电子设备1000包括有一个或者一个以上处理核心的处理器1001、有一个或一个以上计算机可读存储介质的存储器1002及存储在存储器1002上并可在处理器上运行的计算机程序。其中,处理器1001与存储器1002电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
192.处理器1001是电子设备1000的控制中心,利用各种接口和线路连接整个电子设备1000的各个部分,通过运行或加载存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行电子设备1000的各种功能和处理数据,从而对电子设备1000进行整体监控。
193.在本技术实施例中,电子设备1000中的处理器1001会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器1002中,并由处理器1001来运行存储在存储器1002中的应用程序,从而实现各种功能,比如:
194.获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移;
195.创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;
196.根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧;
197.对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;
198.对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;
199.根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画。
200.以上各个操作的具体实施方式以及对应的有益效果可参见上文对动画处理方法
的详细描述,在此不作赘述。
201.可选地,如图10所示,电子设备1000还包括:触控显示屏1003、射频电路1004、音频电路1005、输入单元1006以及电源1007。其中,处理器1001分别与触控显示屏1003、射频电路1004、音频电路1005、输入单元1006以及电源1007电性连接。本领域技术人员可以理解,图10中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
202.触控显示屏1003可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏1003可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(lcd,liquid crystal display)、有机发光二极管(oled,organic light-emitting diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1001,并能接收处理器1001发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器1001以确定触摸事件的类型,随后处理器1001根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏1003而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏1003也可以作为输入单元1006的一部分实现输入功能。
203.射频电路1004可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
204.音频电路1005可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路1005可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1005接收后转换为音频数据,再将音频数据输出处理器1001处理后,经射频电路1004以发送给比如另一电子设备,或者将音频数据输出至存储器1002以便进一步处理。音频电路1005还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
205.输入单元1006可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
206.电源1007用于给电子设备1000的各个部件供电。可选的,电源1007可以通过电源管理系统与处理器1001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1007还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
207.尽管图10中未示出,电子设备1000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
208.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
209.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
210.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种动画处理方法。例如,该计算机程序可以执行如下步骤:
211.获取游戏对象的动作动画,动作动画包含游戏对象执行目标动作时游戏对象的质心发生的目标位移;
212.创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;
213.根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,第一动画时间段包括游戏对象处于踩定状态时的第一动画帧,第二动画时间段包括游戏对象处于非踩定状态时的第二动画帧;
214.对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;
215.对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;
216.根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画。
217.以上各个操作的具体实施方式以及对应的有益效果可参见上文对动画处理方法的详细描述,在此不作赘述。
218.其中,该计算机可读存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
219.由于该计算机可读存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种动画处理方法,因此,可以实现本技术实施例所提供的任一种动画处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
220.以上对本技术实施例所提供的一种动画处理方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种动画处理方法,其特征在于,所述方法包括:获取游戏对象的动作动画,所述动作动画包含所述游戏对象执行目标动作时所述游戏对象的质心发生的目标位移;创建所述游戏对象用于去除所述目标位移的父骨骼点,并获取所述游戏对象在所述动作动画中各个动画帧的位置;根据所述位置,从所述动作动画中筛选出第一动画时间段以及第二动画时间段,所述第一动画时间段包括所述游戏对象处于踩定状态时的第一动画帧,所述第二动画时间段包括所述游戏对象处于非踩定状态时的第二动画帧;对所述游戏对象在所述第一动画帧中的位置进行第一数据处理,得到所述父骨骼点在所述第一动画时间段对应的第一目标位置;对所述游戏对象在所述第二动画帧中的位置进行第二数据处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置;根据所述第一目标位置和所述第二目标位置,消除所述动作动画中的所述目标位移,得到未包含所述目标位移的目标动作动画。2.如权利要求1所述的动画处理方法,其特征在于,所述根据所述位置,从所述动作动画中筛选出第一动画时间段以及第二动画时间段,包括:从所述动作动画中筛选出目标动画帧以及与所述目标动画帧相邻的动画帧;根据所述游戏对象在所述相邻的动画帧上的位置和在所述目标动画帧上的位置,确定所述游戏对象在所述目标动画帧上的运动状态,所述运动状态为所述踩定状态或所述非踩定状态;根据所述运动状态,从所述动作动画中筛选出第一动画时间段以及第二动画时间段。3.如权利要求2所述的动画处理方法,其特征在于,所述根据所述游戏对象在所述相邻的动画帧上的位置和在所述目标动画帧上的位置,确定所述游戏对象在所述目标动画帧上的运动状态,包括:根据所述游戏对象在所述相邻的动画帧上的位置和在所述目标动画帧上的位置,确定所述游戏对象在目标动画帧上的速度值;根据所述速度值,确定所述游戏对象在所述目标动画帧上的运动状态。4.如权利要求2所述的动画处理方法,其特征在于,所述位置包括所述游戏对象的至少两个支撑部位的位置;所述根据所述游戏对象在所述相邻的动画帧上的位置和在所述目标动画帧上的位置,确定所述游戏对象在所述目标动画帧上的运动状态,包括:根据所述支撑部位在所述相邻的动画帧上的位置和在所述目标动画帧上的位置,确定所述支撑部位在所述目标动画帧上的运动状态;若所述支撑部位在所述目标动画帧上的运动状态均为所述踩定状态,则将所述游戏对象在所述目标动画帧上的运动状态确定为所述踩定状态;若所述支撑部位在所述目标动画帧上的运动状态包括所述非踩定状态,则将所述游戏对象在所述目标动画帧上的运动状态确定为所述非踩定状态。5.如权利要求2所述的动画处理方法,其特征在于,所述根据所述运动状态,从所述动作动画中筛选出第一动画时间段以及第二动画时间段,包括:
将所述运动状态均为所述踩定状态且在时间上连续的动画帧所在的时间段作为第一动画时间段;将所述运动状态均为所述非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段。6.如权利要求5所述的动画处理方法,其特征在于,在所述将所述运动状态均为所述非踩定状态且在时间上连续的动画帧所在的时间段作为第二动画时间段之后,包括:确定所述质心在所述第二动画时间段中的动画帧中的子位移;将目标第二动画时间段与所述目标第二动画时间段相邻的第一动画时间段合并为第一动画时间段,所述目标第二动画时间段为满足预设碎步条件的子位移对应的第二动画时间段。7.如权利要求1所述的动画处理方法,其特征在于,所述第一数据处理包括平均值处理,所述对所述游戏对象在所述第一动画帧中的位置进行第一数据处理,得到所述父骨骼点在所述第一动画时间段对应的第一目标位置,包括:对所述游戏对象在所述第一动画帧中的位置进行平均值处理,得到所述第一动画时间段对应的位置平均值;将所述位置平均值作为所述父骨骼点在所述第一动画时间段对应的第一目标位置。8.如权利要求1-7任一项所述的动画处理方法,其特征在于,所述第二数据处理包括平滑处理和融合处理;所述对所述游戏对象在所述第二动画帧中的位置进行第二数据处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置,包括:对所述游戏对象在所述第二动画帧中的位置进行平滑处理,得到所述游戏对象的平滑后位置;将所述平滑后位置和所述游戏对象在所述第二动画帧中的位置进行融合处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置。9.如权利要求8所述的动画处理方法,其特征在于,所述将所述平滑后位置和所述游戏对象在所述第二动画帧中的位置进行融合处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置,包括:获取所述游戏对象在与所述第二动画时间段相邻的动画帧上的相邻位置;将所述平滑后位置和所述相邻位置进行融合处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置。10.一种动画处理装置,其特征在于,所述装置包括:动画获取模块,用于获取游戏对象的动作动画,所述动作动画包含所述游戏对象执行目标动作时所述游戏对象的质心发生的目标位移;骨骼点创建模块,用于创建所述动作动画中所述游戏对象用于去除所述目标位移的父骨骼点,并获取所述游戏对象在所述动作动画中各个动画帧的位置;时间段筛选模块,用于根据所述位置,从所述动作动画中筛选出第一动画时间段以及第二动画时间段,所述第一动画时间段包括所述游戏对象处于踩定状态时的第一动画帧,所述第二动画时间段包括所述游戏对象处于非踩定状态时的第二动画帧;第一处理模块,对所述游戏对象在所述第一动画帧中的位置进行第一数据处理,得到
所述父骨骼点在所述第一动画时间段对应的第一目标位置;第二处理模块,用于对所述游戏对象在所述第二动画帧中的位置进行第二数据处理,得到所述父骨骼点在所述第二动画时间段对应的第二目标位置;位移消除模块,用于根据所述第一目标位置和所述第二目标位置,消除所述动作动画中的所述目标位移,得到未包含所述目标位移的目标动作动画。11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1至9任一项所述的动画处理方法。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的动画处理方法。

技术总结
本申请公开了一种动画处理方法、装置、电子设备和计算机可读存储介质,本申请实施例通过获取游戏对象的动作动画;创建游戏对象用于去除目标位移的父骨骼点,并获取游戏对象在动作动画中各个动画帧的位置;根据位置,从动作动画中筛选出第一动画时间段以及第二动画时间段,对游戏对象在第一动画帧中的位置进行第一数据处理,得到父骨骼点在第一动画时间段对应的第一目标位置;对游戏对象在第二动画帧中的位置进行第二数据处理,得到父骨骼点在第二动画时间段对应的第二目标位置;根据第一目标位置和第二目标位置,消除动作动画中的目标位移,得到未包含目标位移的目标动作动画。本申请实施例可以提高去除位移的效率。请实施例可以提高去除位移的效率。请实施例可以提高去除位移的效率。


技术研发人员:项忠良 徐万常
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.07.13
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐