CN111773700A - 一种动画数据的处理方法和装置 - Google Patents
一种动画数据的处理方法和装置 Download PDFInfo
- Publication number
- CN111773700A CN111773700A CN202010725151.9A CN202010725151A CN111773700A CN 111773700 A CN111773700 A CN 111773700A CN 202010725151 A CN202010725151 A CN 202010725151A CN 111773700 A CN111773700 A CN 111773700A
- Authority
- CN
- China
- Prior art keywords
- animation
- data
- source matrix
- bone
- original
- 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.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种动画数据的处理方法及装置,通过获取原始动画数据,并根据原始动画数据,生成对应的满帧数动画,接着根据原始动画数据中每条骨骼的骨骼数据与满帧数动画,生成与原始动画数据对应的源矩阵,源矩阵中的每个元素可以用于表示满帧数动画中每帧动画对应的每条骨骼的骨骼数据,然后可以根据源矩阵对原始动画数据进行压缩,生成动画文件,从而通过烘焙满帧数动画与数据比对的方式,对原始动画数据进行特征提取,得到源矩阵,并根据源矩阵对原始动画数据压缩,实现了通过数据降维的特征提取方式,并根据所得到的源矩阵对动画数据进行压缩,在实现动画数据压缩的同时,显著提高了数据的压缩率,大大降低了压缩文件的文件内存。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种动画数据的处理方法和一种动画数据的处理装置。
背景技术
在游戏中,往往需要美术人员制作动画文件,动画文件中可以包括动画的全部数据,例如,动画文件中所有的动画帧的帧数据、切线数据、时间数据等等。而制作完成的动画文件内存较大,需要对其进行压缩,然后引入游戏引擎中,进行渲染,否则容易造成游戏引擎占用内存高,渲染效率低下的问题。
当前,对动画数据的压缩方案可以包括如下几种方式:
1、减少动画数据中无数据变化的关键帧;
2、减少动画数据的动画曲线出入的数据;
3、减少时间或值得浮点数据最大精度位数。
然而,上述方案虽然能够对动画数据进行压缩,但是压缩比率十分有效,对动画数据量较大的动画数据进行压缩时,效果较差。因此,需要一种更有效的动画数据压缩方式。
发明内容
本发明实施例是提供一种动画数据的处理方法,以解决现有技术中动画数据压缩比率低、压缩效果差的问题。
相应的,本发明实施例还提供了一种动画数据的处理装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种动画数据的处理方法,包括:
获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
可选地,所述根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,包括:
获取所述满帧数动画的帧数,以及所述骨骼的条数;
将所述帧数与所述条数的大小进行比对,获得对比结果;
根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵。
可选地,所述根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵,包括:
若所述对比结果为所述帧数小于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的列,将所述每条骨骼作为所述源矩阵的行。
可选地,所述根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵,包括:
若所述对比结果为所述帧数大于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的行,将所述每条骨骼作为所述源矩阵的列。
可选地,所述根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件,包括:
根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,所述目标矩阵为根据所述源矩阵对应的特征向量组成;
根据所述源矩阵与所述目标矩阵得到所述原始动画数据压缩后的目标动画数据;
采用所述目标矩阵与所述目标动画数据,生成与所述原始动画数据匹配的所述动画文件。
可选地,所述根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,包括:
采用所述列数据,确定每列元素或每行元素的均值;
采用所述均值,确定与所述源矩阵匹配的协方差矩阵;
根据所述协方差矩阵确定所述源矩阵的特征值,以及所述特征值对应的特征向量;
按照所述特征值的大小,从所述特征向量中提取预设个数的所述特征向量作为目标特征向量;
采用所述目标特征向量,生成针对所述源矩阵的目标矩阵。
可选地,所述根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画,包括:
获取针对所述原始动画数据的帧数阈值;
按照所述帧数阈值,对所述原始动画数据进行烘焙,生成与所述原始动画数据对应的满帧数动画。
本发明实施例还公开了一种动画数据的处理装置,包括:
动画数据获取模块,用于获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
动画生成模块,用于根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
源矩阵生成模块,用于根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
动画文件生成模块,用于根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
可选地,所述源矩阵生成模块包括:
帧数与条数获取子模块,用于获取所述满帧数动画的帧数,以及所述骨骼的条数;
数据比对子模块,用于将所述帧数与所述条数的大小进行比对,获得对比结果;
源矩阵生成子模块,用于根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵。
可选地,所述源矩阵生成子模块具体用于:
若所述对比结果为所述帧数小于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的列,将所述每条骨骼作为所述源矩阵的行。
可选地,所述源矩阵生成子模块具体用于:
若所述对比结果为所述帧数大于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的行,将所述每条骨骼作为所述源矩阵的列。
可选地,所述动画文件生成模块包括:
目标矩阵确定子模块,用于根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,所述目标矩阵为根据所述源矩阵对应的特征向量组成;
目标动画数据获得子模块,用于根据所述源矩阵与所述目标矩阵,得到所述原始动画数据压缩后的目标动画数据;
动画文件生成子模块,用于采用所述目标矩阵与所述目标动画数据,生成与所述原始动画数据匹配的所述动画文件。
可选地,所述目标矩阵确定子模块具体用于:
采用所述列数据,确定每列元素或每行元素的均值;
采用所述均值,确定与所述源矩阵匹配的协方差矩阵;
根据所述协方差矩阵确定所述源矩阵的特征值,以及所述特征值对应的特征向量;
按照所述特征值的大小,从所述特征向量中提取预设个数的所述特征向量作为目标特征向量;
可选地,所述动画生成模块包括:
帧数阈值获取子模块,用于获取针对所述原始动画数据的帧数阈值;
动画生成子模块,用于按照所述帧数阈值,对所述原始动画数据进行烘焙,生成与所述原始动画数据对应的满帧数动画。
本发明实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的方法。
本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,可以通过获取原始动画数据,并根据原始动画数据,生成对应的满帧数动画,接着可以根据原始动画数据中每条骨骼的骨骼数据与满帧数动画,生成与原始动画数据对应的源矩阵,其中,源矩阵中的每个元素可以用于表示满帧数动画中每帧动画对应的每条骨骼的骨骼数据,然后可以根据源矩阵对原始动画数据进行压缩,生成动画文件,从而通过烘焙满帧数动画与数据比对的方式,对原始动画数据进行特征提取,得到源矩阵,并根据源矩阵对原始动画数据压缩,实现了通过数据降维的特征提取方式,并根据所得到的源矩阵对动画数据进行压缩,在实现动画数据压缩的同时,显著提高了数据的压缩率,大大降低了压缩文件的文件内存。
附图说明
图1是本发明的一种动画数据的处理方法实施例的步骤流程图;
图2是本发明的一种动画数据的处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种动画数据的处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
在游戏中,动画可以包括骨骼动画、顶点动画以及帧动画。其中,帧动画为由若干张连续的图片组成的动画;在骨骼动画中,游戏模型具有互相连接的“骨骼”组成的骨架结构,可以通过改变骨骼关节点的朝向和位置来为模型生成动画;在顶点动画中,每个关键帧都保存了特定时间的顶点位置数据,通过改变顶点位置数据形成动画。
作为一种示例,当美术人员完成动画制作之后,需要将动画数据导入游戏中进行渲染,若动画文件文件太大,容易导致游戏客户端在渲染游戏画面、游戏角色时,不仅容易占用较大的内存,还容易给系统开销带来较大的负荷,影响游戏体验。因此,需要对动画数据进行有损压缩,即丢弃一些细节数据,保留主要数据的压缩方式,从而在保证动画数据的完整性的同时,对动画数据进行有损压缩,降低动画数据的内存。
在具体实现中,原始动画数据可以包括虚拟角色模型在一段运动过程中每条骨骼的骨骼数据,以及每条骨骼对应的关键帧动画,具体的,对于虚拟角色模型可以包括头部、脖颈、左右肩膀、手肘、手腕、膝盖脚踝等骨骼关节点,各个骨骼关节点可以对应唯一的标识,则虚拟角色模型在一个运动过程中,同一个骨骼关节点可以在每个关键帧中均发生变化,也可以在一些关键帧中发生变化,而在一些帧中不发生变化,从而需要根据虚拟角色模型在一段运动过程中骨骼关节点的变化,对骨骼数据进行记录。
例如,原始动画数据为虚拟角色模型的行走动画,其包括10帧关键帧动画,其中,对于虚拟角色模型的腿部与手部在每帧关键帧动画中均发生变化,则对应的关键帧中可以记录腿部与手部对应骨骼关键点的骨骼数据(如位置坐标等),而对于虚拟角色模型的头部,若其在行走过程中出现“点头”、“摇头”等动作,则可以在对应的关键帧中记录头部骨骼关键点的骨骼数据等,本发明对此不作限制。
步骤102,根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
在本发明实施例中,可以获取针对原始动画数据的帧数阈值,并按照帧数阈值,对原始动画数据进行烘焙,生成与原始动画数据对应的满帧数动画。其中,帧数阈值可以为根据动画播放时长的长短进行设置的阈值,其与原始动画数据的动画帧数可以相同,也可以大于原始动画数据的动画帧数。
在具体实现中,对于原始动画数据中的虚拟角色模型,由于在每帧关键帧中并非所有骨骼均出现变化,即在一段运动过程中,存在虚拟角色模型的某些骨骼并未出现变化,则为了简化数据的处理,关键帧中并未对这些未发生变化的骨骼的骨骼数据进行记录,或在关键帧中对未发生变化的骨骼的骨骼数据置为0,以表示该骨骼未发生变化等等。因此,可以根据原始动画数据,生成对应的满帧数动画。
具体的,对于虚拟角色模型中每条骨骼的骨骼数据,均采用满帧数烘焙的方式对原始动画数据进行烘焙,从而得到与原始动画数据对应的满帧数动画,通过满帧数动画可以避免由于非满帧动画,导致关键帧上出现对应的值缺省,在后续的数据降维处理时得到有效的特征数据,影响动画数据的压缩。
在一种示例中,假设原始动画数据为一虚拟角色模型的行走动画,包括10帧关键帧动画,每帧关键帧动画中记录了虚拟角色模型对应骨骼的骨骼数据。在本示例中以虚拟角色模型的头部骨骼、膝盖以及手肘等骨骼关节点为例进行说明,其中,关键帧⑤以及关键帧⑥中记录了头部骨骼的骨骼数据,而对于膝盖、手肘等骨骼关节点,则在每帧关键帧中均记录有对应的骨骼数据。则若以非满帧数的方式对原始动画数据进行烘焙,则由于头部骨骼的骨骼数据仅仅记录于关键帧⑤与关键帧⑥,则烘焙后仅仅只能得到2帧动画,或对于膝盖、手肘等骨骼关节点本应该烘焙10帧动画,由于出现值缺省等原因,导致最终烘焙得到的动画帧并不完整,导致在后续的数据降维处理时缺少相关的有效特征数据,影响动画数据的压缩。
因此,在本发明实施例中,通过对原始动画数据以满帧数的形式,进行逐帧烘焙,如满帧数烘焙后可以得到膝盖、手肘以及头部骨骼等骨骼关节点各自对应的10帧动画,从而在保证了动画数据的完整性的同时,可以验证所有的关键帧数是否一致,保证了后续动画数据压缩的有效性。需要说明的是,对于头部骨骼仅记录在关键帧⑤与关键帧⑥,则同样烘焙10帧动画,对于未记录骨骼数据的关键帧,则以空动画进行处理,本发明对此不作限制。
步骤103,根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
在本发明实施例中,在烘焙为满帧数的动画帧之后,可以获取满帧数动画的帧数,以及骨骼的条数,接着将帧数与条数的大小进行比对,获得对比结果,然后根据满帧数动画、每条骨骼的骨骼数据以及对比结果,生成与原始动画数据对应的源矩阵。
在具体实现中,源矩阵中每个元素可以用于表示满帧数动画中每帧动画对应的每条骨骼的骨骼数据,则可以通过将满帧数动画的帧数与骨骼条数进行比对,以确定源矩阵的行与列数据。具体的,若对比结果为帧数小于条数,则将满帧数动画的每一帧动画作为源矩阵的列,将每条骨骼作为源矩阵的行;若对比结果为帧数大于条数,则将满帧数动画的每一帧动画作为源矩阵的行,将每条骨骼作为源矩阵的列。
在一种示例中,可以在代码层面创建一个多维矩阵数组,接着可以根据满帧数动画的帧数与骨骼条数确定多维矩阵数据的行与列数据。具体的,可以将满帧数动画的帧数与骨骼条数进行比对,当帧数大于条数时,则以帧数作为源矩阵的行数,并将满帧数动画的每一帧动画作为源矩阵的行数据,以骨骼条数的总数作为源矩阵的列数,并将每条骨骼作为源矩阵的列数据;若帧数小于条数,则以骼条数的总数作为源矩阵的行数,并将每条骨骼作为源矩阵的行数据,以帧数作为源矩阵的列数,并将满帧数动画的每一帧动画作为源矩阵的列数据,从而将数值大的一方作为多维矩阵数组的行(即数据),另一方作为多维矩阵数组的列(即维度),以便通过多维矩阵数组对动画数据进行压缩。
需要说明的是,对于源矩阵中的矩阵元素,其可以用于表示某一条骨骼在哪一帧的位置坐标,例如,以满帧数动画的动画帧作为源矩阵的行数据,以骨骼标识作为源矩阵的列数据,列数据的排序可以为头部骨骼、脖颈骨骼、肩膀骨骼、尾骨骨骼等等,以X代表动画帧,以Y代表骨骼标识,则可以源矩阵可以如表1所示:
| 第一帧 | 第二帧 | 第三帧 | 第四帧 | 第N帧 | |
| 头部骨骼 | (X<sub>1</sub>,Y<sub>1</sub>) | (X<sub>1</sub>,Y<sub>2</sub>) | (X<sub>1</sub>,Y<sub>3</sub>) | (X<sub>1</sub>,Y<sub>4</sub>) | (X<sub>1</sub>,Y<sub>N</sub>) |
| 脖颈骨骼 | (X<sub>2</sub>,Y<sub>1</sub>) | (X<sub>2</sub>,Y<sub>2</sub>) | (X<sub>2</sub>,Y<sub>3</sub>) | (X<sub>2</sub>,Y<sub>4</sub>) | (X<sub>2</sub>,Y<sub>N</sub>) |
| 肩膀骨骼 | (X<sub>3</sub>,Y<sub>1</sub>) | (X<sub>3</sub>,Y<sub>2</sub>) | (X<sub>3</sub>,Y<sub>3</sub>) | (X<sub>3</sub>,Y<sub>4</sub>) | (X<sub>1</sub>,Y<sub>N</sub>) |
| 尾骨骨骼 | (X<sub>4</sub>,Y<sub>1</sub>) | (X<sub>4</sub>,Y<sub>2</sub>) | (X<sub>4</sub>,Y<sub>3</sub>) | (X<sub>4</sub>,Y<sub>4</sub>) | (X<sub>1</sub>,Y<sub>N</sub>) |
| M骨骼 | (X<sub>M</sub>,Y<sub>1</sub>) | (X<sub>M</sub>,Y<sub>2</sub>) | (X<sub>M</sub>,Y<sub>3</sub>) | (X<sub>M</sub>,Y<sub>4</sub>) | (X<sub>M</sub>,Y<sub>N</sub>) |
表1
其中,每一列可以表示各个骨骼在单帧动画中的骨骼数据,每一行可以表示对应骨骼在每一帧中的骨骼数据。具体的,(X1,Y1)可以表示头部骨骼在第一帧中的骨骼数据(如位置坐标、位移信息等),若头部骨骼未发生运动变化,则(X1,Y1)可以为(0,0),以表示头部骨骼未发生运动变化。
需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,在本发明实施例的思想指导下,本领域技术人员可以根据实际情况进行设置,本发明对此不作限制。
步骤104,根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
在本发明实施例中,可以先根据源矩阵的行数据与列数据,确定针对源矩阵的目标矩阵,然后根据源矩阵与目标矩阵对原始动画数据进行压缩,生成压缩后的目标动画数据,然后采用目标矩阵与目标动画数据,生成与原始动画数据匹配的生成动画文件。
在具体实现中,通过满帧数动画的帧数与骨骼条数确定了多维矩阵数组的行与列,可以将原始动画数据可以将按照行值与列值转换至多维矩阵数组中,从而确定针对动画数据的源矩阵。接着可以根据源矩阵的行数据与列数据,计算出针对源矩阵的目标矩阵,然后通过源矩阵与目标矩阵对原始动画数据进行压缩,实现对动画数据的数据降维处理,获得压缩后的目标动画数据,并将目标矩阵与目标动画数据作为输出,生成动画文件。其中,目标矩阵可以为根据源矩阵对应的特征向量组成的。
当需要进行动画还原时,可以载入动画文件,并对压缩后的动画数据进行逆运算,得到源矩阵,并取源矩阵的行值或列值,结合动画数据的每秒传输帧数,得到实际帧数时间,由此实现动画数据的还原,从而通过数据降维的特征提取方式,并根据所得到的源矩阵对动画数据进行压缩,在实现动画数据压缩的同时,显著提高了数据的压缩率,大大降低了压缩文件的文件内存。
在本发明的一种可选实施例中,当确定了源矩阵的行数据与列数据之后,可以采用行数据与列数据,确定每列元素或每行元素的均值,并采用均值,确定与源数据匹配的协方差矩阵,接着根据协方差矩阵确定源矩阵的特征值,以及特征值对应的特征向量,然后按照特征值的大小,从特征向量中提取预设个数的特征向量作为目标特征向量,并采用目标特征向量,生成针对源矩阵的目标矩阵,从而可以根据源矩阵与目标矩阵对动画数据进行数据降维处理,在实现动画数据压缩的同时,显著提高了数据的压缩率,大大降低了压缩文件的文件内存。
在一种示例中,在动画数据烘焙为满帧的动画帧之后,在代码层面创建一个多维矩阵M数组,并将所有满帧数动画的帧数与原始动画数据的骨骼条数进行比对,将数值大的一方作为矩阵M的行m,另一方作为矩阵M的列n。
接着计算矩阵M的每个n维下的m值的均值,并使用m值减去均值,然后采用各个均值计算出协方差矩阵C,并根据协方差矩阵C计算出矩阵C的特征值以及特征向量。然后将特征向量按照特征值的大小,由上到下按行排列成矩阵,并取预设行数k的特性向量组成目标矩阵P。其中,预设行数k为目标矩阵的维度,例如,n取3,k取1,即将数组从3维的矩阵M降到1维的矩阵P。
将源矩阵M与目标矩阵P进行矩阵乘法得到从n维降到k维的动画数据,并将矩阵P与压缩后的动画数据作为数据输出,生成动画文件,以便在后续对动画数据进行还原时,可以通过载入动画文件,对矩阵P与压缩后的动画数据进行逆运算回推,得到源矩阵M。当得到源矩阵M之后,可以根据满帧数动画的帧数与原始动画数据的骨骼条数之间的大小关系,确定动画帧的帧数,即当帧数大于骨骼条数时,则取源矩阵的行值;当帧数小于骨骼条数时,则取源矩阵的列值,以便根据行值或列值进行动画数据还原。同时获取动画数据实际的FPS(Frames Per Second,每秒传输帧数),然后从源矩阵M中提取行属性值或列属性值所对应的动画数据,然后采用动画数据与PFS,确定相应PFS下所有正确动画帧所在时间的位置,由此还原得到原始动画数据,以便进行动画渲染。
例如,假设PFS为30,每秒传输的帧数为30,即1帧的时间为0.033333…秒,则通过逆运算得到源矩阵M之后,先判断动画帧的帧数与骨骼条数之间的关系,当帧数大于骨骼条数时,表示此前压缩过程中,将动画帧作为源矩阵M的行元素,则从源矩阵M中提取每个行元素的ID标识,并乘以0.033333…,即可得到30PFS下所有正确帧所在时间的位置;当帧数小于骨骼条数时,表示此前压缩过程中,将动画帧作为源矩阵M的列元素,则从源矩阵M中提取每个列元素的ID标识,并乘以0.033333…,即可得到30PFS下所有正确帧所在时间的位置,由此还原得到原始动画数据,以便进行动画渲染,实现了通过数据降维的特征提取方式,获取动画数据的特征信息,然后根据特征信息对动画数据进行压缩,在实现动画数据压缩的同时,显著提高了数据的压缩率,使得原本需要大量储存空间的数据文件只需要通过少量存储空间来存储,大大降低了压缩文件的文件内存。
需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,在本发明实施例的思想指导下,本领域技术人员可以根据实际情况进行设置,本发明对此不作限制。
在本发明实施例中,可以通过获取原始动画数据,并根据原始动画数据,生成对应的满帧数动画,接着可以根据原始动画数据中每条骨骼的骨骼数据与满帧数动画,生成与原始动画数据对应的源矩阵,其中,源矩阵中的每个元素可以用于表示满帧数动画中每帧动画对应的每条骨骼的骨骼数据,然后可以根据源矩阵对原始动画数据进行压缩,生成动画文件,从而通过烘焙满帧数动画与数据比对的方式,对原始动画数据进行特征提取,得到源矩阵,并根据源矩阵对原始动画数据压缩,实现了通过数据降维的特征提取方式,并根据所得到的源矩阵对动画数据进行压缩,在实现动画数据压缩的同时,显著提高了数据的压缩率,大大降低了压缩文件的文件内存。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了本发明的一种动画数据的处理装置实施例的结构框图,具体可以包括如下模块:
动画数据获取模块201,用于获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
动画生成模块202,用于根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
源矩阵生成模块203,用于根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
动画文件生成模块204,用于根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
在本发明的一种可选实施例中,所述源矩阵生成模块203包括:
帧数与条数获取子模块,用于获取所述满帧数动画的帧数,以及所述骨骼的条数;
数据比对子模块,用于将所述帧数与所述条数的大小进行比对,获得对比结果;
源矩阵生成子模块,用于根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵。
在本发明的一种可选实施例中,所述源矩阵生成子模块具体用于:
若所述对比结果为所述帧数小于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的列,将所述每条骨骼作为所述源矩阵的行。
在本发明的一种可选实施例中,所述源矩阵生成子模块具体用于:
若所述对比结果为所述帧数大于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的行,将所述每条骨骼作为所述源矩阵的列。
在本发明的一种可选实施例中,所述动画文件生成模块204包括:
目标矩阵确定子模块,用于根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,所述目标矩阵为根据所述源矩阵对应的特征向量组成;
目标动画数据获得子模块,用于根据所述源矩阵与所述目标矩阵,得到所述原始动画数据压缩后的目标动画数据;
动画文件生成子模块,用于采用所述目标矩阵与所述目标动画数据,生成与所述原始动画数据匹配的所述动画文件。
在本发明的一种可选实施例中,所述目标矩阵确定子模块具体用于:
采用所述列数据,确定每列元素或每行元素的均值;
采用所述均值,确定与所述源矩阵匹配的协方差矩阵;
根据所述协方差矩阵确定所述源矩阵的特征值,以及所述特征值对应的特征向量;
按照所述特征值的大小,从所述特征向量中提取预设个数的所述特征向量作为目标特征向量;
在本发明的一种可选实施例中,所述动画生成模块202包括:
帧数阈值获取子模块,用于获取针对所述原始动画数据的帧数阈值;
动画生成子模块,用于按照所述帧数阈值,对所述原始动画数据进行烘焙,生成与所述原始动画数据对应的满帧数动画。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法。
本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种动画数据的处理方法和一种动画数据的处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种动画数据的处理方法,其特征在于,包括:
获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,包括:
获取所述满帧数动画的帧数,以及所述骨骼的条数;
将所述帧数与所述条数的大小进行比对,获得对比结果;
根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵。
3.根据权利要求2所述的方法,其特征在于,所述根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵,包括:
若所述对比结果为所述帧数小于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的列,将所述每条骨骼作为所述源矩阵的行。
4.根据权利要求2所述的方法,其特征在于,所述根据所述满帧数动画、所述每条骨骼的骨骼数据以及所述对比结果,生成与所述原始动画数据对应的源矩阵,包括:
若所述对比结果为所述帧数大于所述条数,则将所述满帧数动画的每一帧动画作为所述源矩阵的行,将所述每条骨骼作为所述源矩阵的列。
5.根据权利要求1所述的方法,其特征在于,所述根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件,包括:
根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,所述目标矩阵为根据所述源矩阵对应的特征向量组成;
根据所述源矩阵与所述目标矩阵得到所述原始动画数据压缩后的目标动画数据;
采用所述目标矩阵与所述目标动画数据,生成与所述原始动画数据匹配的所述动画文件。
6.根据权利要求5所述的方法,其特征在于,所述根据所述源矩阵的行数据与列数据,确定针对所述源矩阵的目标矩阵,包括:
采用所述列数据,确定每列元素或每行元素的均值;
采用所述均值,确定与所述源矩阵匹配的协方差矩阵;
根据所述协方差矩阵确定所述源矩阵的特征值,以及所述特征值对应的特征向量;
按照所述特征值的大小,从所述特征向量中提取预设个数的所述特征向量作为目标特征向量;
采用所述目标特征向量,生成针对所述源矩阵的目标矩阵。
7.根据权利要求1所述的方法,其特征在于,所述根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画,包括:
获取针对所述原始动画数据的帧数阈值;
按照所述帧数阈值,对所述原始动画数据进行烘焙,生成与所述原始动画数据对应的满帧数动画。
8.一种动画数据的处理装置,其特征在于,包括:
动画数据获取模块,用于获取原始动画数据,所述原始动画数据包括每条骨骼的骨骼数据;
动画生成模块,用于根据所述原始动画数据,生成与所述原始动画数据对应的满帧数动画;
源矩阵生成模块,用于根据所述满帧数动画与所述每条骨骼的骨骼数据,生成与所述原始动画数据对应的源矩阵,所述源矩阵中的每个元素用于表示所述满帧数动画中每帧动画对应的所述每条骨骼的骨骼数据;
动画文件生成模块,用于根据所述源矩阵对所述原始动画数据进行压缩,生成动画文件。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7任一项所述的方法。
10.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010725151.9A CN111773700B (zh) | 2020-07-24 | 2020-07-24 | 一种动画数据的处理方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010725151.9A CN111773700B (zh) | 2020-07-24 | 2020-07-24 | 一种动画数据的处理方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111773700A true CN111773700A (zh) | 2020-10-16 |
| CN111773700B CN111773700B (zh) | 2024-05-10 |
Family
ID=72764893
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010725151.9A Active CN111773700B (zh) | 2020-07-24 | 2020-07-24 | 一种动画数据的处理方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111773700B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112354186A (zh) * | 2020-11-10 | 2021-02-12 | 网易(杭州)网络有限公司 | 游戏动画模型控制方法、装置、电子设备以及存储介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040418A (ja) * | 1996-04-25 | 1998-02-13 | Matsushita Electric Ind Co Ltd | 3次元骨格構造の動き送受信装置、および動き送受信方法 |
| CN106492460A (zh) * | 2016-12-08 | 2017-03-15 | 搜游网络科技(北京)有限公司 | 一种数据的压缩方法和设备 |
| CN107886560A (zh) * | 2017-11-09 | 2018-04-06 | 网易(杭州)网络有限公司 | 动画资源的处理方法及装置 |
| US10096133B1 (en) * | 2017-03-31 | 2018-10-09 | Electronic Arts Inc. | Blendshape compression system |
| CN108635849A (zh) * | 2018-05-15 | 2018-10-12 | 深圳市腾讯网络信息技术有限公司 | 一种动画数据压缩、解压缩方法及装置 |
| JP6526775B1 (ja) * | 2017-12-08 | 2019-06-05 | 株式会社スクウェア・エニックス | アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法 |
| CN110263720A (zh) * | 2019-06-21 | 2019-09-20 | 中国民航大学 | 基于深度图像和骨骼信息的动作识别方法 |
-
2020
- 2020-07-24 CN CN202010725151.9A patent/CN111773700B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040418A (ja) * | 1996-04-25 | 1998-02-13 | Matsushita Electric Ind Co Ltd | 3次元骨格構造の動き送受信装置、および動き送受信方法 |
| CN106492460A (zh) * | 2016-12-08 | 2017-03-15 | 搜游网络科技(北京)有限公司 | 一种数据的压缩方法和设备 |
| US10096133B1 (en) * | 2017-03-31 | 2018-10-09 | Electronic Arts Inc. | Blendshape compression system |
| CN107886560A (zh) * | 2017-11-09 | 2018-04-06 | 网易(杭州)网络有限公司 | 动画资源的处理方法及装置 |
| JP6526775B1 (ja) * | 2017-12-08 | 2019-06-05 | 株式会社スクウェア・エニックス | アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法 |
| CN108635849A (zh) * | 2018-05-15 | 2018-10-12 | 深圳市腾讯网络信息技术有限公司 | 一种动画数据压缩、解压缩方法及装置 |
| CN110263720A (zh) * | 2019-06-21 | 2019-09-20 | 中国民航大学 | 基于深度图像和骨骼信息的动作识别方法 |
Non-Patent Citations (1)
| Title |
|---|
| 王鹏杰;潘志庚;李威;: "人体运动捕获数据压缩技术研究进展", 计算机辅助设计与图形学学报, no. 07, pages 1037 - 1046 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112354186A (zh) * | 2020-11-10 | 2021-02-12 | 网易(杭州)网络有限公司 | 游戏动画模型控制方法、装置、电子设备以及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111773700B (zh) | 2024-05-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6633294B1 (en) | Method and apparatus for using captured high density motion for animation | |
| CN111382867B (zh) | 神经网络压缩的方法、数据处理的方法及相关装置 | |
| JP2022536381A (ja) | 動作遷移方法、装置、デバイス、および記憶媒体 | |
| Liu et al. | Fast inter-frame motion prediction for compressed dynamic point cloud attribute enhancement | |
| CN112866799A (zh) | 一种视频抽帧处理方法、装置、设备及介质 | |
| JPWO2005083890A1 (ja) | 時系列データ次元圧縮装置 | |
| CN115836330B (zh) | 基于深度残差网络的动作识别方法以及相关产品 | |
| CN111783506A (zh) | 目标特征的确定方法、装置和计算机可读存储介质 | |
| Halit et al. | Multiscale motion saliency for keyframe extraction from motion capture sequences | |
| CN114222179B (zh) | 虚拟形象视频合成方法及设备 | |
| CN108900788A (zh) | 视频生成方法、视频生成装置、电子装置及存储介质 | |
| CN112131431A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
| KR20140049161A (ko) | 깊이정보의 시간적 필터링 기반 디지털 홀로그램의 고속 생성 방법 | |
| CN111773700B (zh) | 一种动画数据的处理方法和装置 | |
| JP2003199105A5 (zh) | ||
| CN114255187A (zh) | 基于大数据平台的多层次多级图像优化方法及系统 | |
| CN103606189B (zh) | 一种面向非刚体三维重建的轨迹基选择方法 | |
| CN108416425B (zh) | 一种卷积运算方法及装置 | |
| CN117036178B (zh) | 一种图像修复方法、装置、计算机设备、介质及程序 | |
| CN109741245A (zh) | 平面信息的插入方法及装置 | |
| Lewin | Swish: neural network cloth simulation on madden NFL 21 | |
| CN118982555A (zh) | 一种基于特征锚点的动态点云高效压缩方法、系统、电子设备及介质 | |
| CN112767240A (zh) | 提高人像视频美化处理效率的方法、装置及移动端 | |
| CN110276332A (zh) | 一种视频特征处理方法、装置及三维卷积神经网络模型 | |
| CN114092610B (zh) | 一种基于生成对抗网络的人物视频生成方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |