CN117011498A - 动画数据修复方法、装置、设备、存储介质及程序产品 - Google Patents
动画数据修复方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN117011498A CN117011498A CN202210454407.6A CN202210454407A CN117011498A CN 117011498 A CN117011498 A CN 117011498A CN 202210454407 A CN202210454407 A CN 202210454407A CN 117011498 A CN117011498 A CN 117011498A
- Authority
- CN
- China
- Prior art keywords
- data
- key frame
- animation
- repair
- repaired
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 230000008439 repair process Effects 0.000 claims abstract description 111
- 230000008569 process Effects 0.000 claims abstract description 51
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 210000000988 bone and bone Anatomy 0.000 claims description 62
- 230000035515 penetration Effects 0.000 claims description 40
- 230000033001 locomotion Effects 0.000 claims description 37
- 230000009471 action Effects 0.000 claims description 35
- 238000013139 quantization Methods 0.000 claims description 34
- 230000006399 behavior Effects 0.000 claims description 31
- 239000012634 fragment Substances 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 230000007704 transition Effects 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 8
- 238000012805 post-processing Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 12
- 230000000875 corresponding effect Effects 0.000 description 162
- 230000003993 interaction Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种动画数据修复方法、装置、设备、存储介质及程序产品,涉及数据处理技术领域。所述方法包括:获取由动捕数据重定向得到的待修复动画数据;对待修复动画数据中的各个对象进行碰撞体创建,得到各个对象分别对应的碰撞体集合;基于各个对象分别对应的碰撞体集合,分别对多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个关键帧数据组对应一个穿插过程;基于至少一个关键帧数据组,得到至少一个修复数据片段;将至少一个修复数据片段与待修复动画数据进行叠加,得到修复动画数据。本申请通过对待修复动画数据中的各个对象进行碰撞检测,以实现关键帧数据组(即穿插过程)的自动获取,提高了动画数据的修复效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,特别涉及一种动画数据修复方法、装置、设备、存储介质及程序产品。
背景技术
目前,可以基于动作捕捉得到的动捕数据,进行动画的制作。然而,由于动捕对象的身高比例与动画角色的身高比例不一致,重定向得到的动画数据中,往往会存在穿插现象,例如,动画角色之间的肢体穿插、动画角色的肢体与动画中的物体之间的穿插等。
在相关技术中,动画师根据参考视频(如动捕数据对应的视频)或动作导演的需求,采用手工修复的方式逐帧检测,以发现存在穿插现象的动画数据片段,然后针对这些动画数据片段进行穿插修复,从而得到修复后动画数据。但此过程通常需要耗费大量的人力和时间,且往往需要等待数小时甚至数天才能得到几十秒到几分钟的动画数据,动画数据的修复效率不高。
发明内容
本申请实施例提供了一种动画数据修复方法、装置、设备、存储介质及程序产品,能够提高动画数据的修复效率,所述技术方案可以包括如下内容。
根据本申请实施例的一个方面,提供了一种动画数据修复方法,所述方法包括:
获取待修复动画数据,所述待修复动画数据包括由动捕数据重定向得到的多帧动画数据;
对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,所述碰撞体集合中包括至少一个碰撞体;
基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个所述关键帧数据组对应一个穿插过程;
基于所述至少一个关键帧数据组,得到至少一个修复数据片段,所述修复数据片段是指所述穿插过程被修复后的数据片段;
按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据。
根据本申请实施例的一个方面,提供了一种动画数据修复装置,所述装置包括:
动画数据获取模块,用于获取待修复动画数据,所述待修复动画数据包括由动捕数据重定向得到的多帧动画数据;
碰撞体创建模块,用于对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,所述碰撞体集合中包括至少一个碰撞体;
关键帧获取模块,用于基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个所述关键帧数据组对应一个穿插过程;
修复片段获取模块,用于基于所述至少一个关键帧数据组,得到至少一个修复数据片段,所述修复数据片段是指所述穿插过程被修复后的数据片段;
动画数据修复模块,用于按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述动画数据修复方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述动画数据修复方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述动画数据修复方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过对待修复动画数据中的各个对象进行碰撞体创建,再基于创建得到碰撞体,分别对待修复动画数据对应的多帧动画数据进行碰撞检测,得到关键帧数据组,实现了穿插过程的自动获取,相比于相关技术中通过手工方式逐帧检测来获取穿插过程,本申请实施例提供的技术方案可以提高穿插过程的获取效率,进而提高动画数据的修复效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的方案实施环境的示意图;
图2是本申请一个实施例提供的动画数据修复方法的流程图;
图3是本申请一个实施例提供的碰撞体创建方法的示意图;
图4是本申请一个实施例提供的关键帧数据组的获取方法的流程图;
图5是本申请一个实施例提供的动画角色与地面交互下的穿插修复的示意图;
图6是本申请一个实施例提供的动画角色之间交互下的穿插修复的示意图;
图7是本申请一个实施例提供的动画角色之间交互下的碰撞体创建的示意图;
图8是本申请一个实施例提供的动画角色与道具之间交互下的碰撞体创建的示意图;
图9是本申请一个实施例提供的包围球下的碰撞检测的示意图;
图10是本申请一个实施例提供的动画数据修复装置的框图;
图11是本申请另一个实施例提供的动画数据修复装置的框图;
图12是本申请一个实施例提供的计算机设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行介绍说明之前,先对本申请涉及的一些名词进行定义说明。
1、动作捕捉(MotionCapture,Mocap):借助相机或者惯性设备,记录动捕对象(如人体、动物、以及其他运动物体)的运动数据的过程。
2、重定向(Retargeting):计算机图形学术语,特指将通过将动作捕捉得到的动捕数据从动捕对象映射到动画角色(或机器人、游戏角色等)上的过程。
3、碰撞检测(Collision Detection):计算机图形学术语,特指计算机中判断两个物体是否相交的过程。
4、多边形网格(Mesh):计算机图形学术语,特指由一系列多边形组成的几何模型(如人体、动物、物体等几何模型),其包含网格点、网格边、网格面等几何信息。
5、骨骼(Skeleton):计算机图形学术语,若几何模型中的一个物体影响多边形网格的一系列网格点,且能够使得该一系列网格点跟随该物体运动或者变形,则该物体被称之为骨骼。一系列骨骼可以组成骨骼层级。
6、包围球(BoundingBall):计算机图形学术语,定义一个半径最小的球,使得某Mesh对应的所有网格点都在该球内部,则称该球为该Mesh的包围球。
7、FK(Forward Kinematic,正向动力学):根据骨骼层级,先计算父骨骼的旋转位置,然后计算次一级骨骼的位置和旋转,并逐级向下计算直到末端子骨骼计算完毕的过程。
8、IK(Inverse Kinematic,反向动力学):根据子级骨骼的旋转和位置,反向求解父级骨骼的位置和旋转的过程。
请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该方案实施环境可以实现成为动画数据修复系统的架构。该实施环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、PC(Personal Computer,个人计算机)、可穿戴设备、智能机器人、相机、惯性设备等电子设备。终端10可用于获取动捕数据,并将动捕数据提供给服务器20,以通过服务器20对动捕数据进行转化、修复等处理,得到动画数据。在一些实施例中,终端10中可以安装运行目标应用程序的客户端,该目标应用程序的客户端可用于对动捕数据进行转化、修复等处理,得到动画数据。上述目标应用程序可以是诸如动画制作类应用程序、动画修复类应用程序、视频制作类应用程序、游戏制作类应用程序、娱乐交互类应用程序、模拟仿真类应用程序、模拟学习类应用程序等,本申请实施例对此不作限定。
服务器20可用于对动捕数据进行转化、修复等处理,得到动画数据。可选地,服务器20还可以用于为终端10中的目标应用程序的客户端提供后台服务。例如,服务器20可以是目标应用程序的客户端的后台服务器。服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
终端10和服务器20之间可以通过网络30进行通信。
本申请实施例提供的技术方案适用于任何需要动画数据修复的场景中,诸如虚拟对象拟合场景(如虚拟人、虚拟动物等)、游戏制作场景(如游戏角色的动作设置)、视频制作场景、动画数据修复场景等。本申请实施例提供的技术方案能够提高动画数据的修复效率。
示例性地,参考图1,终端10将采集到的动捕数据发送给服务器20,服务器20基于动捕数据重定向得到待修复动画数据,服务器20对待修复动画数据中的各个对象进行碰撞体创建,再基于创建得到的碰撞体进行碰撞检测,自动获取关键帧数据(用于表征穿插过程),然后基于关键帧数据自动获取修复数据片段(即穿插过程被修复的数据片段),最后基于修复数据片段,自动对待修复动画数据进行修复,得到修复动画数据。
下文将对本申请实施例提供的动画数据修复方法进行详细介绍。
请参考图2,其示出了本申请一个实施例提供的动画数据修复方法的流程图,该方法各步骤的执行主体可以是图1所示方案实施环境中的终端10或服务器20,该方法可以包括如下几个步骤(201~205)。
步骤201,获取待修复动画数据,该待修复动画数据包括由动捕数据重定向得到的多帧动画数据。
其中,动捕数据是指对动捕对象的动作进行捕捉得到的数据。例如,可以通过动捕装置(如相机、惯性设备等),对动捕对象进行动作数据(如站立、走、跑、交互等动作数据)捕捉,得到动捕数据。可选地,动捕数据的帧率可以根据实际使用需求进行设置,如25Hz、30Hz等。
在本申请实施例中,动画数据是指将动捕数据中的动捕对象的动作,重定向到动画数据中的重定向对象上得到的数据,不同帧的动画数据对应于不同时刻下的动作。其中,动捕对象可以包括人、动物、植物、物体等,重定向对象是指动画数据中的需要拟合动捕对象的动作的对象,诸如虚拟人、虚拟动物、动画角色、游戏角色、物体模型等,本申请实施例对此不作限定。可选地,上述动捕数据可以对应多个动捕对象,也即动画数据中包括与该多个动捕对象对应的重定向对象。
示例性地,动画数据可以为动画角色之间的交互数据,动画数据也可以为动画角色与物体模型之间的交互数据,动画数据还可以为物体模型之间的交互数据,本申请实施例对此不作限定。
可选地,待修复动画数据是指存在重定向对象的动作数据需要修复的动画数据。示例性地,由于动捕对象(如动捕演员)的骨骼数据(如身高比例)和重定向对象(如动画角色)的骨骼数据(如身高比例)之间存在差异,导致动画数据中存在穿插现象(如肢体与肢体穿插、肢体与物体模型穿插等),该存在穿插现象的动画数据即可被确定为待修复动画数据。
待修复动画数据可以为骨骼动画数据,该骨骼动画数据是指以重定向对象的骨骼进行动作展示的动画数据。该骨骼动画数据可以包括重定向对象的骨骼在各帧下的位置信息、转向信息、移动信息等。
在一个示例中,待修复动画数据的获取过程可以如下:获取动捕对象对应的动捕数据;对动捕数据进行转化,得到骨骼动捕数据,该骨骼动捕数据对应于动捕对象的骨骼数据;对骨骼动捕数据进行重定向,得到待修复动画数据。其中,骨骼动捕数据是指以动捕对象的骨骼进行动作展示的动画数据。骨骼数据可以包括骨骼尺寸、骨骼数量、骨骼层级关联信息等。
示例性地,根据动捕对象的骨骼数据,将动捕对象对应的动捕数据转化为骨骼动捕数据,再基于重定向对象的骨骼数据和动捕对象的骨骼数据,将骨骼动捕数据重定向为待修复动画数据。可选地,可以利用正向动力学和反向动力学,实现待修复动画数据的获取。
步骤202,对待修复动画数据中的各个对象进行碰撞体创建,得到各个对象分别对应的碰撞体集合,碰撞体集合中包括至少一个碰撞体。
待修复动画数据中的各个对象即为上述重定向对象。碰撞体用于重定向对象的碰撞检测,该碰撞体可以是指包围球、胶囊体、包围盒等,本申请实施例对此不作限定。在本申请实施例中,由于重定向对象可以对应多个骨骼,为了保证碰撞检测的准确性,可以为各个骨骼分别创建一个碰撞体。
在一个示例中,碰撞体的创建过程可以如下:对于各个对象中的第一对象,获取第一对象的多边形网格,该多边形网格用于表征对象的外形;对于第一对象对应的目标部位,获取目标部位对应的目标局部多边形网格,该目标局部多边形网格受目标部位影响;基于目标局部多边形网格对应的网格点,构建目标部位的碰撞体,目标部位的碰撞体包围目标局部多边形网格对应的网格点;对第一对象对应的各个部位进行碰撞体构建,得到第一对象对应的碰撞体集合。
其中,第一对象可以是指各个对象中的任一对象。目标部位可以是指第一对象的任一部位,该部位可以用骨骼进行指代。目标局部多边形网格可以为受目标骨骼所影响的局部多边形网格。可选地,可以将能够包围目标局部多边形网格对应的所有网格点的最小碰撞体,确定为目标部位的碰撞体。可选地,可以根据实际使用需求适应性设置目标部位。例如,可以只对重定向对象的部分部位进行碰撞体创建,也可以对重定向对象的所有部位进行碰撞体创建。
示例性地,参考图3,对于动画角色300,可以根据头部骨骼301对应的所有网格点,构建头部骨骼301对应的碰撞体302。同时,可以根据动画角色300的手部骨骼对应的所有网格点,构建手部骨骼对应的碰撞体,以及根据动画角色300的脚部骨骼对应的所有网格点,构建脚部骨骼对应的碰撞体。
可选地,目标部位对应的碰撞体跟随目标部位移动。示例性地,可以将目标部位和目标部位对应的碰撞体设置为父子关系,目标部位为父,目标部位对应的碰撞体为子,则目标部位对应的碰撞体会跟随目标部位移动而移动,如此可以避免逐帧计算和创建碰撞体,从而大大减少了运算量和运算时间,有利于提高动画数据的修复效率。例如,参考图3,将头部骨骼301和碰撞体302设置为父子关系,则碰撞体302会跟随头部骨骼301移动。
步骤203,基于各个对象分别对应的碰撞体集合,分别对多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个关键帧数据组对应一个穿插过程。
每个关键帧数据组可以包括多帧关键帧数据,每帧关键帧数据对应一帧动画数据,该帧动画数据包括穿插过程中的关键穿插动作,一个完整的穿插过程可以用多个关键穿插动作表征。
可选地,上述关键帧数据组包括起始关键帧数据、峰值关键帧数据和结束关键帧数据;其中,起始关键帧数据是指穿插行为的起始时刻对应的动画数据,峰值关键帧数据是指穿插行为达到最大程度对应的动画数据,结束关键帧数据是指穿插行为的结束时刻对应的动画数据。一个穿插行为对应一个穿插过程。例如,动画角色A的肢体和动画角色B的肢体之间存在穿插,则从肢体开始穿插到肢体结束穿插为一个穿插过程。
在一个示例中,参考图4,步骤203还可以包括如下几个子步骤:
步骤203a,对于多帧动画数据中的目标帧动画数据,对目标帧动画数据中的对象进行碰撞检测,得到目标帧动画数据对应的至少一个穿插程度量化值,该穿插程度量化值用于表征对象对之间的穿插程度。
其中,目标帧动画数据可以是指多帧动画数据中的任一帧动画数据。穿插程度量化值与对象对之间的穿插程度呈正相关。示例性地,设动画角色A的肢体和动画角色B的肢体之间存在穿插,在检测到两个肢体刚开始接触的时候,可以将穿插程度量化值设置为0,检测到两个肢体的穿插程度的逐渐增加(如相对于两个肢体的交叉点,肢体末端到该交叉点占整个肢体的部分越来越大),则穿插程度量化值逐渐增大。在检测到两个肢体穿插到最大程度的时候,可以将穿插程度量化值设置为1。然后检测到两个肢体逐渐脱离,则穿插程度量化值逐渐减小。在检测到两个肢体脱离(即结束穿插)的时候,可以将穿插程度量化值设置为0。可选地,若检测到两个肢体之间不接触,则可以直接将穿插程度量化值设置为0。
每个对象对都可以得到至少一个以时间为单位的穿插程度量化值序列,进而可以生成至少一个穿插程度量化值曲线,穿插程度量化值曲线中的每个波峰段可以对应一个穿插过程。可选地,一个对象对在同一时段内,可以对应多个穿插过程,则可以以动作为单位,获取各个动作分别对应的穿插程度量化值序列,从而确定某一动作是否为穿插行为,以及某一动作对应的关键帧数据组。
由于目标帧动画数据可以对应有多个动作,或者多个对象对,因此,目标帧动画数据可以对应多个穿插程度量化值。
步骤203b,基于多帧动画数据分别对应的至少一个穿插程度量化值,从多帧动画数据中确定至少一个关键帧数据组。
可选地,对于存在穿插行为的第一对象和第二对象,基于第一对象和第二对象对应的穿插程度量化值,从多帧动画数据中获取第一对象和第二对象对应的至少一个候选帧数据序列;其中,每个候选帧数据序列对应于第一对象和第二对象之间的一个穿插行为;对于至少一个候选帧数据序列中的目标候选帧数据序列,对目标候选帧数据序列进行关键帧选取,得到目标候选帧数据序列对应的关键帧数据组;基于至少一个候选帧数据序列,确定第一对象和第二对象对应的至少一个关键帧数据组。
第二对象可以是指各个对象中除第一对象之外的任一对象。候选帧数据序列可以包括多帧候选帧数据,每帧候选帧数据对应于一个穿插行为在某一时刻下的穿插动作。可选地,候选帧数据序列可以对应于某一对象对在不同时段内的穿插行为,候选帧数据序列也可以对应于某一对象对在同一时段内的不同穿插行为,本申请实施例对此不作限定。
示例性地,可以根据第一对象和第二对象之间的至少一个穿插程度量化值序列,获取第一对象和第二对象对应的至少一个候选帧数据序列。例如,可以将穿插程度量化值曲线中的波峰段对应的多帧动画数据,确定为候选帧数据序列。
目标候选帧数据序列可以是指至少一个候选帧数据序列中的任一候选帧数据序列。在一个示例中,以关键帧数据组包括起始关键帧数据、峰值关键帧数据和结束关键帧数据为例,对目标候选帧数据序列对应的关键帧的选取方法进行介绍,其具体内容可以如下:对于目标候选帧数据序列对应的目标穿插行为,将目标穿插行为对应的第一个穿插程度量化值不为零的动画数据的前一帧动画数据,确定为目标候选帧数据序列对应的起始关键帧数据;将目标穿插行为对应的穿插程度量化值为最大的动画数据,确定为目标候选帧数据序列对应的峰值关键帧数据;将峰值关键帧数据之后的第一个穿插程度量化值为零的动画数据,确定为目标候选帧数据序列对应的结束关键帧数据。
可选地,本申请实施例对起始关键帧数据、峰值关键帧数据和结束关键帧数据的确定时序不作限定。
步骤204,基于至少一个关键帧数据组,得到至少一个修复数据片段,修复数据片段是指穿插过程被修复后的数据片段。
其中,修复数据片段可以是指修复数据片段对应的重定向对象之间不存在穿插现象的数据片段。该修复数据片段可以对应一个完整的动作,也即除了包括动作对应的关键帧数据,还包括关键帧数据之间过渡帧数据,过渡帧数据用于实现动作的顺滑过渡。
可选地,可以分别对至少一个关键帧数据组进行修复,得到至少一个修复后的关键帧数据组;其中,修复后的关键帧数据组中的穿插行为被修复;再分别对至少一个修复后的关键帧数据组进行过渡帧插补,得到至少一个修复数据片段。
其中,对于关键帧数据组中的各帧动画数据,对各个对象之间再次重定向处理,以使得各个对象之间不存在穿插行为。例如,基于各个对象分别对应的骨骼数据,并以关键帧数据组对应的动作为指导,分别对各个对象的动作进行重计算和修正,使得各个对象的动作在不存在穿插现象的情况下,尽可能地接近关键帧数据组对应的动作,从而得到修复后的关键帧数据组。
可以通过对修复后的关键帧数据组中的各帧动画数据之间进行过渡帧插补,得到具有完整动作的修复数据片段。该过渡帧可以根据设定的动作插补算法,进行构建。
当由关键帧数据组组成的动画曲线的跳动频率非常高时(即在穿插与不穿插之间来回的频繁切换),修复完成的动画数据的动画曲线也随之高频跳动,很不稳定。因此,本申请实施例可以引入滤波器,对高频信号进行过滤,进而可以得到具有稳定的动画曲线的修复动画数据。另外,由于动作的完成过程与骨骼数据有一定的关联。例如,对于同一段距离,步幅大的可以通过更少的跨步次数完成,而步幅小的需要通过更多的跨步次数完成,因此,针对此点,可以根据重定向对象的骨骼数据和动捕对象的骨骼数据之间的差异,进一步地对关键帧数据对应的时间段进行调整。
在一个示例中,上述优化过程可以包括如下内容:对于各个对象对应的第一对象对,分别对第一对象对对应的至少一个关键帧数据组进行过滤,得到第一对象对对应的至少一个过滤后的关键帧数据组;其中,过滤后的关键帧数据组对应的时间段长度大于第一时长阈值;分别对第一对象对对应的至少一个过滤后的关键帧数据组进行后处理,得到第一对象对对应的至少一个调整后的关键帧数据组;其中,调整后的关键帧数据组的动作跨度符合对象对的骨骼数据;获取至少一个关键帧数据组分别对应的调整后的关键帧数据组。
第一时长阈值用于高频过滤,以过滤掉过短的穿插行为(即不影响动画效果)和数据噪声(如抖动)。例如,该第一时长阈值可以根据实际使用需求进行设置,诸如0.05s、0.07s、0.1s等,本申请实施例对此不作限定。
可选地,上述后处理过程可以如下:基于第一对象对的骨骼数据和第一对象对对应的动捕对象的骨骼数据,确定第一调整参数;在第一调整参数大于第一阈值的情况下,将至少一个过滤后的关键帧数据组分别对应的时间段向后扩充,得到至少一个调整后的关键帧数据组;在第一调整参数小于第一阈值的情况下,将至少一个过滤后的关键帧数据组分别对应的时间段向前压缩,得到至少一个调整后的关键帧数据组。
其中,第一调整参数用于调整关键帧数据的时间戳,以使得关键帧数据对应的动作过程更为平滑合理。可选地,可以将第一对象对的骨骼数据和第一对象对对应的动捕对象的骨骼数据之间的差值,确定为第一调整参数,也可以将第一对象对的骨骼数据和第一对象对对应的动捕对象的骨骼数据之间的比值,确定为第一调整参数,本申请实施例对此不作限定。
示例性地,基于第一对象对的骨骼数据和第一对象对对应的动捕对象的骨骼数据,可以确定第一对象对中的两个重定向对象的身高,以及两个动捕对象的身高,再基于两个重定向对象的身高(如平均值)和两个动捕对象的身高(如平均值)之间的比值,确定第一调整参数。
可选地,在一个关键帧数据中存在多对对象对的情况下,可以基于各个对象对分别对应的第一调整参数的加权和,来确定该关键帧数据是向前压缩还是向后扩充。关键帧数据对应的具体偏移量(即压缩或扩充的程度)与重定向对象的身高相关,重定向对象的身高越高,该偏移量越大。
第一阈值与第一调整参数对应,第一阈值可以根据经验值进行设置和调整。
例如,在将身高比值确定为第一调整参数的情况下,可以将第一阈值设置为1,该1表示第一对象对的身高和第一对象对对应的动捕对象的身高在整体上相同,此时可以不对关键帧数据的时间段进行调整。在第一调整参数大于1的情况下,则表明第一对象对的身高在整体上大于第一对象对对应的动捕对象的身高,可以将关键帧数据的时间段向后扩充(如将上述峰值关键帧数据和结束关键帧数据后延)。在第一调整参数小于1的情况下,则表明第一对象对的身高在整体上小于第一对象对对应的动捕对象的身高,可以将关键帧数据的时间段向前压缩(如将上述峰值关键帧数据和结束关键帧数据前移)。
采用上述方法,基于至少一个关键帧数据组分别对应的调整后的关键帧数据组,可以得到至少一个修复数据片段。
步骤205,按照至少一个修复数据片段分别对应的时间段,将至少一个修复数据片段与待修复动画数据进行叠加,得到修复动画数据。
可选地,对于至少一个修复数据片段中的目标修复数据片段,可以根据目标修复数据片段对应的目标时间段,从待修复动画数据中获取目标时间段对应的原始数据片段;基于原始数据片段对应的骨骼动作参数和目标修复数据片段对应的重定向修复参数,对原始数据片段和目标修复数据片段进行叠加,得到目标时段对应的修复动画数据。
其中,目标修复数据片段可以是至少一个修复数据片段中的任一修复数据片段。骨骼动作参数用于指示重定向对象的动作,诸如各个骨骼的旋转角度、移动距离、旋转方向等。重定向修复参数用于指示重定向对象的状态,诸如重定向对象的位置、姿态等。
骨骼动作参数可用于使得重定向对象的动作尽可能拟合动捕对象的动作,重定向修复参数可用于修复重定向对象的状态,使得重定向对象之间不存在穿插现象。
可选地,对于待修复动画数据中剩余原始动画数据(即除去修复数据片段对应的原始数据片段),本申请实施例给予保留,不进行处理。
示例性地,参考图5,在动画角色与动画环境(如动画环境中的物体、地面、墙壁等)的交互过程中,动画角色的手部与地面之间存在穿插。其中,动画数据501为待修复动画数据中的某一帧动画数据,在该动画数据501中,动画角色的手部与地面之间穿插。在对待修复动画数据进行修复之后,得到动画数据501对应的修复动画数据502,在该修复动画数据502中,动画角色的手部与地面之间的穿插现象已被修复,也即动画角色的手部与地面之间不再穿插。
又例如,参考图6,在动画角色之间的交互过程中,动画角色603的手部与动画角色604之间存在穿插。其中,动画数据601为待修复动画数据中的某一帧动画数据,在该动画数据601中,动画角色603的手部与动画角色604之间穿插。在对待修复动画数据进行修复之后,得到动画数据601对应的修复动画数据602,在该修复动画数据602中,动画角色603的手部与动画角色604之间的穿插现象已被修复,也即动画角色603的手部与动画角色604之间不再穿插。
综上所述,本申请实施例提供的技术方案,通过对待修复动画数据中的各个对象进行碰撞体创建,再基于创建得到碰撞体,分别对待修复动画数据对应的多帧动画数据进行碰撞检测,得到关键帧数据组,实现了穿插过程的自动获取,相比于相关技术中通过手工方式逐帧检测来获取穿插过程,本申请实施例提供的技术方案可以提高穿插过程的获取效率,进而提高动画数据的修复效率。
另外,通过对关键帧数据组进行过滤和后处理,可以提高关键帧数据组的质量,从而可以提高动画数据的修复质量。同时,通过对关键帧数据组进行过滤和后处理,还可以提高关键帧数据组的分布合理性,从而提高动画数据的修复合理性。
另外,通过对碰撞检测结果进行解算量化,可以快速便捷的获取穿插行为在不同阶段的穿插程度,有利于提高关键帧数据的提取效率,从而进一步提高了动画数据的修复效率。
在一个示例性实施例中,以碰撞体为包围球为例,对本申请实施例提供的动画数据修复方法进行说明,其具体内容可以如下:
获取待修复动画数据。在本申请实施例中,该待修复动画数据中存在穿插现象。例如,参考图6,动画数据601为待修复动画数据中的某一帧,在动画数据601中,动画角色的手部之间存在穿插。
对待修复动画数据中的各个对象进行包围球创建,得到各个对象分别对应的包围球集合。示例性地,参考图7,在动画角色701和动画角色702的交互过程中,基于动画角色701的骨骼分布,对动画角色701对应的多边形网格进行划分,得到动画角色701的各个骨骼分别对应的局部多边形网格,再基于各个骨骼分别对应的局部多边形网格,构建各个骨骼分别对应的包围球,得到动画角色701对应的包围球集合。其中,包围球为直径最小的且可以包围局部多边形网格的球体。采用相同的方法,基于动画角色702的骨骼分布,得到动画角色702对应的包围球集合。可以将包围球和骨骼设置为父子关系,则包围球跟随骨骼移动。
又例如,参考图8,在动画角色801和道具802的交互过程中,由于只有动画角色801的手部,与道具802与接触,则可以只对动画角色801的手部进行包围球的创建。
基于各个对象分别对应的包围球集合,对待修复动画数据对应的每帧动画数据进行碰撞检测,得到每帧动画数据分别对应的碰撞检测结果。
示例性地,若两个包围球的球心之间的距离,大于两个包围球的半径和,则确定两个包围球对应的部位未穿插;或者,若两个包围球的球心之间的距离,等于两个包围球的半径和,则确定两个包围球对应的部位开始穿插或结束穿插;或者,若两个包围球的球心之间的距离,小于两个包围球的半径和,则确定两个包围球对应的部位处于穿插状态。
例如,参考图9,若包围球901的圆心和包围球902的圆心之间的距离(以下简称圆心距离),大于包围球901和包围球902之间的半径和,则确定包围球901对应的部位(如手部)和包围球902对应的部位(如手部)未穿插。在包围球901和包围球902的移动过程中,若包围球901和包围球902之间的圆心距离,变为等于包围球901和包围球902之间的半径和,则确定包围球901对应的部位(如手部)和包围球902对应的部位(如手部)开始穿插。若包围球901和包围球902之间的圆心距离,变为小于包围球901和包围球902之间的半径和,则确定包围球901对应的部位(如手部)和包围球902对应的部位(如手部)处于穿插状态。
对每帧动画数据分别对应的碰撞检测结果进行解算,得到每帧动画数据分别对应的至少一个穿插程度量化值。其中,穿插程度量化值与穿插程度呈正相关关系。例如,参考图7,基于碰撞检测结果703可以得到一个穿插程度量化值,基于碰撞检测结果704可以得到另一个穿插程度量化值。
基于每帧动画数据分别对应的至少一个穿插程度量化值,从多帧动画数据中确定至少一个关键帧数据组。例如,参考图7,对于手部穿插现象,获取该手部穿插现象对应的所有穿插程度量化值,生成穿插程度量化值曲线,根据该穿插程度量化值曲线,确定手部穿插现象对应的起始关键帧数据、峰值关键帧数据和结束关键帧数据,得到手部穿插现象对应的关键帧数据组。
分别对至少一个关键帧数据组进行过滤、后处理,得到至少一个调整后的关键帧数据组。分别对至少一个调整后的关键帧数据组进行修复,得到至少一个修复后的关键帧数据组;分别对至少一个修复后的关键帧数据组进行过渡帧插补,得到至少一个修复数据片段。
按照至少一个修复数据片段分别对应的时间段,将至少一个修复数据片段与待修复动画数据进行叠加,得到修复动画数据。
综上所述,本申请实施例提供的技术方案,通过对待修复动画数据中的各个对象进行碰撞体创建,再基于创建得到碰撞体,分别对待修复动画数据对应的多帧动画数据进行碰撞检测,得到关键帧数据组,实现了穿插过程的自动获取,相比于相关技术中通过手工方式逐帧检测来获取穿插过程,本申请实施例提供的技术方案可以提高穿插过程的获取效率,进而提高动画数据的修复效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
参考图10,其示出了本申请一个实施例提供的动画数据修复装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备中。如图10所示,该装置1000包括:动画数据获取模块1001、碰撞体创建模块1002、关键帧获取模块1003、修复片段获取模块1004和动画数据修复模块1005。
动画数据获取模块1001,用于获取待修复动画数据,所述待修复动画数据包括由动捕数据重定向得到的多帧动画数据。
碰撞体创建模块1002,用于对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,所述碰撞体集合中包括至少一个碰撞体。
关键帧获取模块1003,用于基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个所述关键帧数据组对应一个穿插过程。
修复片段获取模块1004,用于基于所述至少一个关键帧数据组,得到至少一个修复数据片段,所述修复数据片段是指所述穿插过程被修复后的数据片段。
动画数据修复模块1005,用于按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据。
在一个示例性实施例中,所述关键帧获取模块1003,用于:
对于所述多帧动画数据中的目标帧动画数据,对所述目标帧动画数据中的对象进行碰撞检测,得到所述目标帧动画数据对应的至少一个穿插程度量化值,所述穿插程度量化值用于表征对象对之间的穿插程度;
基于所述多帧动画数据分别对应的至少一个穿插程度量化值,从所述多帧动画数据中确定所述至少一个关键帧数据组。
在一个示例性实施例中,所述关键帧获取模块1003,还用于:
对于存在穿插行为的第一对象和第二对象,基于所述第一对象和所述第二对象对应的穿插程度量化值,从所述多帧动画数据中获取所述第一对象和所述第二对象对应的至少一个候选帧数据序列;其中,每个所述候选帧数据序列对应于所述第一对象和所述第二对象之间的一个穿插行为;
对于所述至少一个候选帧数据序列中的目标候选帧数据序列,对所述目标候选帧数据序列进行关键帧选取,得到所述目标候选帧数据序列对应的关键帧数据组;
基于所述至少一个候选帧数据序列,确定所述第一对象和所述第二对象对应的至少一个关键帧数据组。
在一个示例性实施例中,所述关键帧数据组包括起始关键帧数据、峰值关键帧数据和结束关键帧数据;其中,所述起始关键帧数据是指所述穿插行为的起始时刻对应的动画数据,所述峰值关键帧数据是指所述穿插行为达到最大程度对应的动画数据,所述结束关键帧数据是指所述穿插行为的结束时刻对应的动画数据;所述关键帧获取模块1003,还用于:
对于所述目标候选帧数据序列对应的目标穿插行为,将所述目标穿插行为对应的第一个穿插程度量化值不为零的动画数据的前一帧动画数据,确定为所述目标候选帧数据序列对应的起始关键帧数据;
将所述目标穿插行为对应的穿插程度量化值为最大的动画数据,确定为所述目标候选帧数据序列对应的峰值关键帧数据;
将所述峰值关键帧数据之后的第一个穿插程度量化值为零的动画数据,确定为所述目标候选帧数据序列对应的结束关键帧数据。
在一个示例性实施例中,所述修复片段获取模块1004,用于:
分别对所述至少一个关键帧数据组进行修复,得到至少一个修复后的关键帧数据组;其中,所述修复后的关键帧数据组中的穿插行为被修复;
分别对所述至少一个修复后的关键帧数据组进行过渡帧插补,得到所述至少一个修复数据片段。
在一个示例性实施例中,如图11所示,所述装置1000,还包括:关键帧过滤模块1006和关键帧调整模块1007。
关键帧过滤模块1006,用于对于所述各个对象对应的第一对象对,分别对所述第一对象对对应的至少一个关键帧数据组进行过滤,得到所述第一对象对对应的至少一个过滤后的关键帧数据组;其中,所述过滤后的关键帧数据组对应的时间段长度大于第一时长阈值。
关键帧调整模块1007,用于分别对所述第一对象对对应的至少一个过滤后的关键帧数据组进行后处理,得到所述第一对象对对应的至少一个调整后的关键帧数据组;其中,所述调整后的关键帧数据组的动作跨度符合对象对的骨骼数据。
所述关键帧调整模块1007,还用于获取所述至少一个关键帧数据组分别对应的调整后的关键帧数据组。
所述修复片段获取模块1004,还用于基于所述至少一个关键帧数据组分别对应的调整后的关键帧数据组,得到所述至少一个修复数据片段。
在一个示例性实施例中,所述关键帧调整模块1007,用于:
基于所述第一对象对的骨骼数据和所述第一对象对对应的动捕对象的骨骼数据,确定第一调整参数;
在所述第一调整参数大于第一阈值的情况下,将所述至少一个过滤后的关键帧数据组分别对应的时间段向后扩充,得到所述至少一个调整后的关键帧数据组;
在所述第一调整参数小于所述第一阈值的情况下,将所述至少一个过滤后的关键帧数据组分别对应的时间段向前压缩,得到所述至少一个调整后的关键帧数据组。
在一个示例性实施例中,所述碰撞体创建模块1002,用于:
对于所述各个对象中的第一对象,获取所述第一对象的多边形网格,所述多边形网格用于表征对象的外形;
对于所述第一对象对应的目标部位,获取所述目标部位对应的目标局部多边形网格,所述目标局部多边形网格受所述目标部位影响;
基于所述目标局部多边形网格对应的网格点,构建所述目标部位的碰撞体,所述目标部位的碰撞体包围所述目标局部多边形网格对应的网格点;
对所述第一对象对应的各个部位进行碰撞体构建,得到所述第一对象对应的碰撞体集合。
在一个示例性实施例中,所述目标部位对应的碰撞体跟随所述目标部位移动。
在一个示例性实施例中,如图11所示,所述装置1000,还包括:穿插状态确定模块1008。
所述碰撞体为包围球,所述穿插状态确定模块1008,用于:
若两个包围球的球心之间的距离,大于所述两个包围球的半径和,则确定所述两个包围球对应的部位未穿插;
或者,若两个包围球的球心之间的距离,等于所述两个包围球的半径和,则确定所述两个包围球对应的部位开始穿插或结束穿插;
或者,若两个包围球的球心之间的距离,小于所述两个包围球的半径和,则确定所述两个包围球对应的部位处于穿插状态。
在一个示例性实施例中,所述动画数据修复模块1005,用于:
对于所述至少一个修复数据片段中的目标修复数据片段,根据所述目标修复数据片段对应的目标时间段,从所述待修复动画数据中获取所述目标时间段对应的原始数据片段;
基于所述原始数据片段对应的骨骼动作参数和所述目标修复数据片段对应的重定向修复参数,对所述原始数据片段和所述目标修复数据片段进行叠加,得到所述目标时段对应的修复动画数据。
在一个示例性实施例中,所述动画数据获取模块1001,用于:
获取动捕对象对应的动捕数据;
对所述动捕数据进行转化,得到骨骼动捕数据,所述骨骼动捕数据对应于所述动捕对象的骨骼数据;
对所述骨骼动捕数据进行重定向,得到所述待修复动画数据。
综上所述,本申请实施例提供的技术方案,通过对待修复动画数据中的各个对象进行碰撞体创建,再基于创建得到碰撞体,分别对待修复动画数据对应的多帧动画数据进行碰撞检测,得到关键帧数据组,实现了穿插过程的自动获取,相比于相关技术中通过手工方式逐帧检测来获取穿插过程,本申请实施例提供的技术方案可以提高穿插过程的获取效率,进而提高动画数据的修复效率。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图12,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以用于实施上述实施例中提供的动画数据修复方法。具体可以包括如下内容。
该计算机设备1200包括中央处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1201、包括RAM(Random-Access Memory,随机存取存储器)1202和ROM(Read-Only Memory,只读存储器)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。该计算机设备1200还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
该基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中,该显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。该基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
该大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。该大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,该大容量存储设备1207可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本申请实施例,该计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在该系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括计算机程序,计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述动画数据修复方法。
在一个示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述动画数据修复方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在一个示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述动画数据修复方法。
需要说明的是,本申请所涉及的信息(包括但不限于对象设备信息、对象个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经对象授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的动捕数据、动画数据、骨骼数据等都是在充分授权的情况下获取的。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种动画数据修复方法,其特征在于,所述方法包括:
获取待修复动画数据,所述待修复动画数据包括由动捕数据重定向得到的多帧动画数据;
对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,所述碰撞体集合中包括至少一个碰撞体;
基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个所述关键帧数据组对应一个穿插过程;
基于所述至少一个关键帧数据组,得到至少一个修复数据片段,所述修复数据片段是指所述穿插过程被修复后的数据片段;
按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据。
2.根据权利要求1所述的方法,其特征在于,基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,包括:
对于所述多帧动画数据中的目标帧动画数据,对所述目标帧动画数据中的对象进行碰撞检测,得到所述目标帧动画数据对应的至少一个穿插程度量化值,所述穿插程度量化值用于表征对象对之间的穿插程度;
基于所述多帧动画数据分别对应的至少一个穿插程度量化值,从所述多帧动画数据中确定所述至少一个关键帧数据组。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多帧动画数据分别对应的至少一个穿插程度量化值,从所述多帧动画数据中确定所述至少一个关键帧数据组,包括:
对于存在穿插行为的第一对象和第二对象,基于所述第一对象和所述第二对象对应的穿插程度量化值,从所述多帧动画数据中获取所述第一对象和所述第二对象对应的至少一个候选帧数据序列;其中,每个所述候选帧数据序列对应于所述第一对象和所述第二对象之间的一个穿插行为;
对于所述至少一个候选帧数据序列中的目标候选帧数据序列,对所述目标候选帧数据序列进行关键帧选取,得到所述目标候选帧数据序列对应的关键帧数据组;
基于所述至少一个候选帧数据序列,确定所述第一对象和所述第二对象对应的至少一个关键帧数据组。
4.根据权利要求3所述的方法,其特征在于,所述关键帧数据组包括起始关键帧数据、峰值关键帧数据和结束关键帧数据;其中,所述起始关键帧数据是指所述穿插行为的起始时刻对应的动画数据,所述峰值关键帧数据是指所述穿插行为达到最大程度对应的动画数据,所述结束关键帧数据是指所述穿插行为的结束时刻对应的动画数据;
所述对所述目标候选帧数据序列进行关键帧选取,得到所述目标候选帧数据序列对应的关键帧数据组,包括:
对于所述目标候选帧数据序列对应的目标穿插行为,将所述目标穿插行为对应的第一个穿插程度量化值不为零的动画数据的前一帧动画数据,确定为所述目标候选帧数据序列对应的起始关键帧数据;
将所述目标穿插行为对应的穿插程度量化值为最大的动画数据,确定为所述目标候选帧数据序列对应的峰值关键帧数据;
将所述峰值关键帧数据之后的第一个穿插程度量化值为零的动画数据,确定为所述目标候选帧数据序列对应的结束关键帧数据。
5.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个关键帧数据组,得到至少一个修复数据片段,包括:
分别对所述至少一个关键帧数据组进行修复,得到至少一个修复后的关键帧数据组;其中,所述修复后的关键帧数据组中的穿插行为被修复;
分别对所述至少一个修复后的关键帧数据组进行过渡帧插补,得到所述至少一个修复数据片段。
6.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个关键帧数据组,得到至少一个修复数据片段之前,还包括:
对于所述各个对象对应的第一对象对,分别对所述第一对象对对应的至少一个关键帧数据组进行过滤,得到所述第一对象对对应的至少一个过滤后的关键帧数据组;其中,所述过滤后的关键帧数据组对应的时间段长度大于第一时长阈值;
分别对所述第一对象对对应的至少一个过滤后的关键帧数据组进行后处理,得到所述第一对象对对应的至少一个调整后的关键帧数据组;其中,所述调整后的关键帧数据组的动作跨度符合对象对的骨骼数据;
获取所述至少一个关键帧数据组分别对应的调整后的关键帧数据组;
所述基于所述至少一个关键帧数据组,得到至少一个修复数据片段,包括:
基于所述至少一个关键帧数据组分别对应的调整后的关键帧数据组,得到所述至少一个修复数据片段。
7.根据权利要求6所述的方法,其特征在于,所述分别对所述第一对象对对应的至少一个过滤后的关键帧数据组进行后处理,得到所述第一对象对对应的至少一个调整后的关键帧数据组,包括:
基于所述第一对象对的骨骼数据和所述第一对象对对应的动捕对象的骨骼数据,确定第一调整参数;
在所述第一调整参数大于第一阈值的情况下,将所述至少一个过滤后的关键帧数据组分别对应的时间段向后扩充,得到所述至少一个调整后的关键帧数据组;
在所述第一调整参数小于所述第一阈值的情况下,将所述至少一个过滤后的关键帧数据组分别对应的时间段向前压缩,得到所述至少一个调整后的关键帧数据组。
8.根据权利要求1所述的方法,其特征在于,所述对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,包括:
对于所述各个对象中的第一对象,获取所述第一对象的多边形网格,所述多边形网格用于表征对象的外形;
对于所述第一对象对应的目标部位,获取所述目标部位对应的目标局部多边形网格,所述目标局部多边形网格受所述目标部位影响;
基于所述目标局部多边形网格对应的网格点,构建所述目标部位的碰撞体,所述目标部位的碰撞体包围所述目标局部多边形网格对应的网格点;
对所述第一对象对应的各个部位进行碰撞体构建,得到所述第一对象对应的碰撞体集合。
9.根据权利要求8所述的方法,其特征在于,所述目标部位对应的碰撞体跟随所述目标部位移动。
10.根据权利要求1所述的方法,其特征在于,所述碰撞体为包围球,所述方法还包括:
若两个包围球的球心之间的距离,大于所述两个包围球的半径和,则确定所述两个包围球对应的部位未穿插;
或者,
若两个包围球的球心之间的距离,等于所述两个包围球的半径和,则确定所述两个包围球对应的部位开始穿插或结束穿插;
或者,
若两个包围球的球心之间的距离,小于所述两个包围球的半径和,则确定所述两个包围球对应的部位处于穿插状态。
11.根据权利要求1所述的方法,其特征在于,所述按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据,包括:
对于所述至少一个修复数据片段中的目标修复数据片段,根据所述目标修复数据片段对应的目标时间段,从所述待修复动画数据中获取所述目标时间段对应的原始数据片段;
基于所述原始数据片段对应的骨骼动作参数和所述目标修复数据片段对应的重定向修复参数,对所述原始数据片段和所述目标修复数据片段进行叠加,得到所述目标时段对应的修复动画数据。
12.根据权利要求1所述的方法,其特征在于,所述获取待修复动画数据,包括:
获取动捕对象对应的动捕数据;
对所述动捕数据进行转化,得到骨骼动捕数据,所述骨骼动捕数据对应于所述动捕对象的骨骼数据;
对所述骨骼动捕数据进行重定向,得到所述待修复动画数据。
13.一种动画数据修复装置,其特征在于,所述装置包括:
动画数据获取模块,用于获取待修复动画数据,所述待修复动画数据包括由动捕数据重定向得到的多帧动画数据;
碰撞体创建模块,用于对所述待修复动画数据中的各个对象进行碰撞体创建,得到所述各个对象分别对应的碰撞体集合,所述碰撞体集合中包括至少一个碰撞体;
关键帧获取模块,用于基于所述各个对象分别对应的碰撞体集合,分别对所述多帧动画数据中的对象进行碰撞检测,得到至少一个关键帧数据组,每个所述关键帧数据组对应一个穿插过程;
修复片段获取模块,用于基于所述至少一个关键帧数据组,得到至少一个修复数据片段,所述修复数据片段是指所述穿插过程被修复后的数据片段;
动画数据修复模块,用于按照所述至少一个修复数据片段分别对应的时间段,将所述至少一个修复数据片段与所述待修复动画数据进行叠加,得到修复动画数据。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至12任一项所述的动画数据修复方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至12任一项所述的动画数据修复方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现如权利要求1至12任一项所述的动画数据修复方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210454407.6A CN117011498A (zh) | 2022-04-27 | 2022-04-27 | 动画数据修复方法、装置、设备、存储介质及程序产品 |
PCT/CN2023/084373 WO2023207477A1 (zh) | 2022-04-27 | 2023-03-28 | 动画数据修复方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210454407.6A CN117011498A (zh) | 2022-04-27 | 2022-04-27 | 动画数据修复方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117011498A true CN117011498A (zh) | 2023-11-07 |
Family
ID=88517332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210454407.6A Pending CN117011498A (zh) | 2022-04-27 | 2022-04-27 | 动画数据修复方法、装置、设备、存储介质及程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117011498A (zh) |
WO (1) | WO2023207477A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011034963A2 (en) * | 2009-09-15 | 2011-03-24 | Sony Corporation | Combining multi-sensory inputs for digital animation |
US9827496B1 (en) * | 2015-03-27 | 2017-11-28 | Electronics Arts, Inc. | System for example-based motion synthesis |
CN112001989B (zh) * | 2020-07-28 | 2022-08-05 | 完美世界(北京)软件科技发展有限公司 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
CN112270734B (zh) * | 2020-10-19 | 2024-01-26 | 北京大米科技有限公司 | 一种动画生成方法、可读存储介质和电子设备 |
CN113724169A (zh) * | 2021-09-08 | 2021-11-30 | 广州虎牙科技有限公司 | 蒙皮穿插修复方法、系统及计算机设备 |
CN113888680A (zh) * | 2021-09-29 | 2022-01-04 | 广州虎牙科技有限公司 | 一种三维模型穿插修复的方法、装置及设备 |
-
2022
- 2022-04-27 CN CN202210454407.6A patent/CN117011498A/zh active Pending
-
2023
- 2023-03-28 WO PCT/CN2023/084373 patent/WO2023207477A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023207477A1 (zh) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111369681B (zh) | 三维模型的重构方法、装置、设备及存储介质 | |
CN112950471A (zh) | 视频超分处理方法、装置、超分辨率重建模型、介质 | |
CN113705520A (zh) | 动作捕捉方法、装置及服务器 | |
JP2022020588A (ja) | アクティブインタラクションの方法、装置、電子デバイス及び可読記憶媒体 | |
WO2024198747A1 (zh) | 动作捕捉数据的处理方法、装置、设备及存储介质 | |
CN110415322B (zh) | 虚拟对象模型的动作指令的生成方法和装置 | |
CN117456128A (zh) | 三维重建方法、装置、设备及存储介质 | |
CN109086819B (zh) | caffemodel模型压缩方法、系统、设备及介质 | |
CN112891926B (zh) | 游戏终端、云服务器、云游戏控制方法和存储介质 | |
CN115984943B (zh) | 面部表情捕捉及模型训练方法、装置、设备、介质及产品 | |
WO2024159553A1 (zh) | 体积视频的解码方法、存储介质、以及电子设备 | |
CN116132653A (zh) | 三维模型的处理方法、装置、存储介质及计算机设备 | |
CN117011498A (zh) | 动画数据修复方法、装置、设备、存储介质及程序产品 | |
CN113496176A (zh) | 动作识别方法、装置以及电子设备 | |
CN116095353A (zh) | 基于体积视频的直播方法、装置、电子设备及存储介质 | |
CN115951778A (zh) | 一种驱动虚拟人的方法、装置及相关设备 | |
CN116309997A (zh) | 一种数字人动作生成方法、装置及设备 | |
CN116977766A (zh) | 动作补全模型的训练方法、装置、设备、介质及程序产品 | |
CN115578542A (zh) | 三维模型的处理方法、装置、设备及计算机可读存储介质 | |
CN114419473A (zh) | 一种基于嵌入式设备的深度学习实时目标检测方法 | |
CN115564803B (zh) | 一种动画处理方法、装置、设备、存储介质及产品 | |
WO2024124664A1 (zh) | 视频处理方法、装置、计算机设备及计算机可读存储介质 | |
CN113808236B (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN115223028B (zh) | 场景重建及模型训练方法、装置、设备、介质及程序产品 | |
CN116204167B (zh) | 一种全流程可视化编辑虚拟现实vr实现方法与系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40099000 Country of ref document: HK |