CN111161365A - 一种骨骼动画数据的压缩方法及装置 - Google Patents
一种骨骼动画数据的压缩方法及装置 Download PDFInfo
- Publication number
- CN111161365A CN111161365A CN201911395462.7A CN201911395462A CN111161365A CN 111161365 A CN111161365 A CN 111161365A CN 201911395462 A CN201911395462 A CN 201911395462A CN 111161365 A CN111161365 A CN 111161365A
- Authority
- CN
- China
- Prior art keywords
- bone
- data
- key frame
- node
- scaling
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种骨骼动画数据的压缩方法及装置,其中所述方法包括:获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据、骨骼旋转数据和骨骼缩放数据;构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种骨骼动画数据的压缩方法、装置、计算设备及计算机可读存储介质。
背景技术
骨骼动画将三维模型划分为骨骼拓扑和蒙皮,骨骼拓扑由根骨骼以及相互连接的子骨骼组成,作为父系节点的骨骼在运动时会影响其所有的子节点的骨骼,通过每根骨骼上不同的变换组合,可以得到骨骼拓扑的各种造型。如果定义了关键帧,即某个时间点骨骼中每根骨头特定的变换,就能在关键帧之间***平滑的过渡,从而使骨骼运动,因此,关键帧数据对于的骨骼动画的存储与读取非常关键。
现有技术在处理骨骼动画数据时,对于任意一个骨骼拓扑,其均包括关键帧数据,用以表示骨骼节点在每个关键帧发生变换的位移、旋转和缩放,然而,在涉及较大的骨骼动画文件处理时,就会导致需要存储与读取处理的数据会非常庞大,因此会降低运算***的处理速度。
发明内容
有鉴于此,本申请实施例提供了一种骨骼动画数据的压缩方法、装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种骨骼动画数据的压缩方法,包括:
获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
根据本说明书实施例的第二方面,提供了一种骨骼动画数据的压缩方法装置,包括:
数据获取模块,被配置为获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
第一表格模块,被配置为构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
第二表格模块,被配置为构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述骨骼动画数据的压缩方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述骨骼动画数据的压缩方法的步骤。
本申请通过第一存储表格将每个骨骼节点在每个关键帧对应的骨骼旋转数据独立出来,并利用第二存储表格只保存发生位移和/或缩放的骨骼节点对应的骨骼位移数据和/或骨骼缩放数据并保留其对应的骨骼身份标识,实现了采用两张表格保存骨骼动画数据的方式,大幅压缩了骨骼动画的数据量,且实现了无损压缩,压缩后的数据与压缩前的数据相比较数据精度完全没有变化。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的骨骼动画数据的压缩方法的流程图;
图3是本申请实施例提供的骨骼动画数据的压缩方法的另一流程图;
图4是本申请实施例提供的骨骼动画数据的压缩方法的另一流程图;
图5是本申请实施例提供的骨骼动画数据的压缩方法的另一流程图;
图6是本申请实施例提供的骨骼动画数据的压缩方法装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
骨骼动画:传统的动画,一般是对一个物体对象进行位移、旋转、缩放、变形,然后把关键帧的信息记录下来,在播放的时候按照关键帧时间对物体对象进行位移、旋转、缩放、变形,并在关键帧与关键帧之间做插值运算。骨骼动画的特点是,需要做动画的物体对象本身不记录位移、旋转、缩放、变形信息,而是通过了第三方的“骨骼”物体记录动画信息,然后物体对象本身只记录受到骨骼物体影响的权重。在播放的时候,通过骨骼物体的关键帧和物体对象记录的权重,让动画重现。
关键帧:记录有时间、位移旋转缩放值以及过渡插值的方式的骨骼变换信息。
骨骼拓扑:即用于描述三维虚拟模型的骨架结构。
在本申请中,提供了一种骨骼动画数据的压缩方法、装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的骨骼动画数据的压缩方法的示意性流程图,包括步骤202至步骤206。
步骤202:获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据。
在本申请的实施例中,本申请的***能够读取作为三维模型的虚拟对象对应的动画文件,获取所述虚拟对象的骨骼动画数据,并从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据(translation)、骨骼旋转数据(rotation)和骨骼缩放数据(scale)。
步骤204:构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内。
步骤206:构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
在本申请的实施例中,本申请的***使用两张存储表格保存骨骼动画数据,通过第一存储表格保存每个骨骼节点在每个关键帧对应的骨骼旋转数据,而第二存储表格只保存发生位移和/或缩放的骨骼节点对应的骨骼位移数据和/或骨骼缩放数据并保留其对应的骨骼身份标识(ID),所述骨骼身份标识(ID)是指发生位移和/或缩放的骨骼节点在骨架机构中的序列号或者位置信息,由于所述虚拟对象中的绝大多数骨骼节点在每个关键帧中的骨骼位移数据和/或骨骼缩放数据均是相同的,只有骨骼旋转数据在每个关键帧都会变化,因此,本申请通过第一存储表格将每个骨骼节点在每个关键帧对应的骨骼旋转数据独立出来,并利用第二存储表格只保存发生位移和/或缩放的骨骼节点对应的骨骼位移数据和/或骨骼缩放数据并保留其对应的骨骼身份标识(ID),实现了采用两张表格保存骨骼动画数据的方式,大幅压缩了骨骼动画的数据量,且实现了无损压缩,压缩后的数据与压缩前的数据相比较数据精度完全没有变化。
在本申请的一个实施例中,如图3所示,构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内,包括步骤302至步骤306。
步骤302:获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据。
在本申请的实施例中,本申请的***能够获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据,所述骨骼旋转数据(rotation)包括x、y、z和w四个参数,即使用四元数的方式表示的所述骨骼节点的旋转量。
步骤304:以所述虚拟对象的骨骼节点的数量为行,以所述骨骼旋转数据的四元数为列构建每个关键帧对应的第一存储表格。
步骤306:将每个骨骼节点在每个关键帧对应的旋转量以四个字节的形式保存至所述第一存储表格内。
在本申请的实施例中,以包含七个骨骼节点的虚拟对象为例,在当前关键帧对应的第一存储表格如表1所示:
表1
rotation_x | rotation_y | rotation_z | rotation_w |
0 | 0 | 0 | 1 |
0.1 | 0.122 | 0.321 | 1 |
0.21 | 0.22 | 0.501 | 1 |
0.12 | 0.42 | 0.931 | 1 |
0.402 | 0.32 | 0.453 | 1 |
0.212 | 0.67 | 0.213 | 1 |
0.673 | 0.263 | 0.573 | 1 |
由表1可知,所述第一存储表格将当前关键帧所述虚拟对象的全部骨骼节点按照其在骨骼拓扑中的排序依次展开,并以四个字节的形式分别记录每个骨骼节点的骨骼旋转数据,最终得到一个大小为7行×4列×4字节=112字节的第一存储表格。
图4示出了本说明书一实施例的骨骼动画数据的压缩方法,该骨骼动画数据的压缩方法以对当前关键帧的第二存储表格为例进行描述,包括步骤402至步骤414。
步骤402:获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据。
在本申请的实施例中,本申请的***能够读取作为三维模型的虚拟对象对应的动画文件,获取所述虚拟对象的骨骼动画数据,并从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据(translation)、骨骼旋转数据(rotation)和骨骼缩放数据(scale)。
步骤404:构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内。
具体实施方式可参见步骤302至步骤306。
步骤406:根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,确定所述虚拟对象对应的骨骼位移默认值和骨骼缩放默认值。
在本申请的实施例中,本申请的***能够根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,例如,以包含七个骨骼节点的虚拟对象为例,在当前关键帧对应的骨骼位移数据和骨骼缩放数据如表2所示:
表2
scaling_x | scaling_y | scaling_z | translation_x | translation_y | translation_z |
1 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 |
1.25 | 1.25 | 1.25 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 2.0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 |
从表2中可知,该虚拟对象的骨骼位移默认值为(0,0,0),骨骼缩放默认值为(1,1,1),加上大小为112字节的第一存储表格,最终得到一个大小为7行×10列×4字节=280字节的当前关键帧对应的骨骼动画数据。
步骤408:构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
在本申请的一个实施例中,如图5所示,构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内,包括步骤502至步骤508。
步骤502:根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,获取任一所述骨骼节点在任一关键帧与所述骨骼位移默认值和骨骼缩放默认值不相同的骨骼位移数据和/或骨骼缩放数据以及所述骨骼节点对应的骨骼身份标识。
在本申请的实施例中,如表2所示,本申请的***根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,发现位于第二序列(从零开始)骨骼缩放数据(1.25,1.25,1.25)与所述骨骼缩放默认值(1,1,1)不相同,同时,位于第五序列的骨骼节点在该关键帧的骨骼位移数据(2.0,0,0)与所述骨骼位移默认值(0,0,0)不相同,则获取这两个骨骼节点在该关键帧的骨骼位移数据和/或骨骼缩放数据以及所述骨骼节点对应的骨骼身份标识“2”和“5”,其中,所述骨骼位移数据包括所述骨骼节点在三维空间中的坐标,所述骨骼缩放数据包括所述骨骼节点在三维空间的三个正交方向上的缩放量。
步骤504:以发生位移和/或缩放的所述骨骼节点的数量为行并以发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识、所述骨骼位移数据的坐标个数以及骨骼缩放数据的三个正交方向为列构建每个关键帧对应的第二存储表格。
步骤506:将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以两个字节的形式保存至所述第二存储表格内。
步骤508:将发生位移和/或缩放的所述骨骼节点在三维空间中的坐标和/或所述骨骼节点在三维空间的三个正交方向上的缩放量以四个字节的形式保存至所述第二存储表格内。
在本申请的实施例中,本申请的***能够将在每个关键帧发生位移和/或缩放的所述骨骼节点对应的骨骼位移数据和/或骨骼缩放数据记录在所述第二存储表格内,以包含七个骨骼节点的虚拟对象为例,由表1和表2可知,在当前关键帧骨骼身份标识“2”和“5”的两个骨骼节点发生了发生位移和/或缩放,则在当前关键帧对应的第二存储表格如表3所示:
表3
bone_index | scaling_x | scaling_y | scaling_z | translation_x | translation_y | translation_z |
2 | 1.25 | 1.25 | 1.25 | 0 | 0 | 0 |
5 | 1 | 1 | 1 | 2.0 | 0 | 0 |
由表3可知,所述第二存储表格中的骨骼索引(bone_index)即为发生位移和/或缩放的所述骨骼节点对应的以两个字节的形式表示的骨骼身份标识,用以指示在当前关键帧中所述虚拟对象中的发生位移和/或缩放的至少一个骨骼节点以及其发生位移和/或缩放的数值,其中,所述骨骼位移数据(translation)包括x、y和z三个以四个字节的形式表示的参数,用于表示骼节点在三维空间的坐标,所述骨骼缩放数据(scale)包括x、y和z三个以四个字节的形式表示的参数,用于表示骨骼节点在三维空间的三个正交方向上的缩放量,因此,所述第二存储表格的大小为(6列×4字节+1列×2字节)×2行=52字节,最终将所述第一存储表格与第二存储表格进行合并得到大小为164字节的当前关键帧对应的骨骼动画数据,相比与表2中的280字节的当前关键帧对应的骨骼动画数据大幅压缩了骨骼动画数据的数据量,而且实现了无损压缩。
步骤410:将每个关键帧对应的第一存储表格和第二存储表格进行压缩和存储。
在本申请的实施例中,本申请的***利用第一存储表格和第二存储表格存储所述虚拟对象的骨骼动画数据,大幅压缩了骨骼动画的数据量,且实现了无损压缩,减少了***存储与读取的数据量,提高了运算***的处理速度。
步骤412:根据所述虚拟对象的骨骼拓扑数据,生成所述骨骼拓扑数据对应的骨骼节点树。
步骤414:创建第三存储表格,根据所述骨骼节点树中的父子关系以及每个骨骼节点的骨骼名称,将所述骨骼拓扑数据序列化并保存至所述第三存储表格内。
本申请的实施例中,本申请的***能够进一步的根据所述虚拟对象的骨骼拓扑数据,生成所述骨骼拓扑数据对应的骨骼节点树,所述骨骼节点树是指按照各个骨骼节点之间的父子关系,生成的树形数据结构,然后本申请的***能够创建第三存储表格,根据所述骨骼节点树中的父子关系(parent_bone_index)以及每个骨骼节点的骨骼名称(bone_name),所述骨骼拓扑数据序列化并保存至所述第三存储表格内。
与上述方法实施例相对应,本说明书还提供了骨骼动画数据的压缩方法装置实施例,图6示出了本说明书一个实施例的骨骼动画数据的压缩方法装置的结构示意图。如图6所示,该装置包括:
数据获取模块601,被配置为获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
第一表格模块602,被配置为构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
第二表格模块603,被配置为构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
可选的,所述第一表格模块602包括:
旋转数据获取单元,被配置为获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据,其中,所述骨骼旋转数据包括通过四元数的方式表示的所述骨骼节点的旋转量;
第一表格构建单元,被配置为以所述虚拟对象的骨骼节点的数量为行,以所述骨骼旋转数据的四元数为列构建每个关键帧对应的第一存储表格;
第一表格存储单元,被配置为将每个骨骼节点在每个关键帧对应的旋转量以四个字节的形式保存至所述第一存储表格内。
可选的,所述装置还包括:
默认值模块,被配置为根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,确定所述虚拟对象对应的骨骼位移默认值和骨骼缩放默认值。
可选的,所述第二表格模块603包括:
数据比较单元,被配置为根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,获取任一所述骨骼节点在任一关键帧与所述骨骼位移默认值和骨骼缩放默认值不相同的骨骼位移数据和/或骨骼缩放数据以及所述骨骼节点对应的骨骼身份标识,其中,所述骨骼位移数据包括所述骨骼节点在三维空间中的坐标,所述骨骼缩放数据包括所述骨骼节点在三维空间的三个正交方向上的缩放量;
第二表格构建单元,被配置为以发生位移和/或缩放的所述骨骼节点的数量为行并以发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识、所述骨骼位移数据的坐标个数以及骨骼缩放数据的三个正交方向为列构建每个关键帧对应的第二存储表格;
第二表格存储单元,被配置为将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以两个字节的形式保存至所述第二存储表格内;
所述第二表格存储单元,还被配置为将发生位移和/或缩放的所述骨骼节点在三维空间中的坐标和/或所述骨骼节点在三维空间的三个正交方向上的缩放量以四个字节的形式保存至所述第二存储表格内。
可选的,所述装置还包括:
骨骼拓扑模块,被配置为根据所述虚拟对象的骨骼拓扑数据,生成所述骨骼拓扑数据对应的骨骼节点树;
拓扑序列化模块,被配置为创建第三存储表格,根据所述骨骼节点树中的父子关系以及每个骨骼节点的骨骼名称,将所述骨骼拓扑数据序列化并保存至所述第三存储表格内。
可选的,所述装置还包括:
数据压缩存储模块,被配置为将每个关键帧对应的第一存储表格和第二存储表格进行压缩和存储。
本申请通过第一存储表格将每个骨骼节点在每个关键帧对应的骨骼旋转数据独立出来,并利用第二存储表格只保存发生位移和/或缩放的骨骼节点对应的骨骼位移数据和/或骨骼缩放数据并保留其对应的骨骼身份标识,实现了采用两张表格保存骨骼动画数据的方式,大幅压缩了骨骼动画的数据量,且实现了无损压缩,压缩后的数据与压缩前的数据相比较数据精度完全没有变化。
本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:
获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述骨骼动画数据的压缩方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该计算机可读存储介质的技术方案与上述的骨骼动画数据的压缩方法的技术方案属于同一构思,计算机可读存储介质的技术方案未详细描述的细节内容,均可以参见上述骨骼动画数据的压缩方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种骨骼动画数据的压缩方法,其特征在于,包括:
获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
2.根据权利要求1所述的方法,其特征在于,构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内,包括:
获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据,其中,所述骨骼旋转数据包括通过四元数的方式表示的所述骨骼节点的旋转量;
以所述虚拟对象的骨骼节点的数量为行,以所述骨骼旋转数据的四元数为列构建每个关键帧对应的第一存储表格;
将每个骨骼节点在每个关键帧对应的旋转量以四个字节的形式保存至所述第一存储表格内。
3.根据权利要求1所述的方法,其特征在于,在将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内之后,还包括:
根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,确定所述虚拟对象对应的骨骼位移默认值和骨骼缩放默认值。
4.根据权利要求3所述的方法,其特征在于,构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内,包括:
根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,获取任一所述骨骼节点在任一关键帧与所述骨骼位移默认值和骨骼缩放默认值不相同的骨骼位移数据和/或骨骼缩放数据以及所述骨骼节点对应的骨骼身份标识,其中,所述骨骼位移数据包括所述骨骼节点在三维空间中的坐标,所述骨骼缩放数据包括所述骨骼节点在三维空间的三个正交方向上的缩放量;
以发生位移和/或缩放的所述骨骼节点的数量为行并以发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识、所述骨骼位移数据的坐标个数以及骨骼缩放数据的三个正交方向为列构建每个关键帧对应的第二存储表格;
将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以两个字节的形式保存至所述第二存储表格内;
将发生位移和/或缩放的所述骨骼节点在三维空间中的坐标和/或所述骨骼节点在三维空间的三个正交方向上的缩放量以四个字节的形式保存至所述第二存储表格内。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据所述虚拟对象的骨骼拓扑数据,生成所述骨骼拓扑数据对应的骨骼节点树;
创建第三存储表格,根据所述骨骼节点树中的父子关系以及每个骨骼节点的骨骼名称,将所述骨骼拓扑数据序列化并保存至所述第三存储表格内。
6.根据权利要求1所述的方法,其特征在于,在将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内之后,还包括:
将每个关键帧对应的第一存储表格和第二存储表格进行压缩和存储。
7.一种骨骼动画数据的压缩装置,其特征在于,包括:
数据获取模块,被配置为获取所述虚拟对象的骨骼动画数据,从所述骨骼动画数据中获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼关键帧数据以及骨骼拓扑数据,其中,所述骨骼关键帧数据包括骨骼位移数据、骨骼旋转数据和骨骼缩放数据;
第一表格模块,被配置为构建每个关键帧对应的第一存储表格,将虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据存储在所述第一存储表格内;
第二表格模块,被配置为构建每个关键帧对应的第二存储表格,将发生位移和/或缩放的至少一个所述骨骼节点对应的骨骼身份标识以及骨骼位移数据和/或骨骼缩放数据存储在所述第二存储表格内。
8.根据权利要求7所述的装置,其特征在于,所述第一表格模块包括:
旋转数据获取单元,被配置为获取所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼旋转数据,其中,所述骨骼旋转数据包括通过四元数的方式表示的所述骨骼节点的旋转量;
第一表格构建单元,被配置为以所述虚拟对象的骨骼节点的数量为行,以所述骨骼旋转数据的四元数为列构建每个关键帧对应的第一存储表格;
第一表格存储单元,被配置为将每个骨骼节点在每个关键帧对应的旋转量以四个字节的形式保存至所述第一存储表格内。
9.根据权利要求7所述的装置,其特征在于,还包括:
默认值模块,被配置为根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,确定所述虚拟对象对应的骨骼位移默认值和骨骼缩放默认值。
10.根据权利要求9所述的装置,其特征在于,所述第二表格模块包括:
数据比较单元,被配置为根据所述虚拟对象的每个骨骼节点在每个关键帧对应的骨骼位移数据和骨骼缩放数据,获取任一所述骨骼节点在任一关键帧与所述骨骼位移默认值和骨骼缩放默认值不相同的骨骼位移数据和/或骨骼缩放数据以及所述骨骼节点对应的骨骼身份标识,其中,所述骨骼位移数据包括所述骨骼节点在三维空间中的坐标,所述骨骼缩放数据包括所述骨骼节点在三维空间的三个正交方向上的缩放量;
第二表格构建单元,被配置为以发生位移和/或缩放的所述骨骼节点的数量为行并以发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识、所述骨骼位移数据的坐标个数以及骨骼缩放数据的三个正交方向为列构建每个关键帧对应的第二存储表格;
第二表格存储单元,被配置为将发生位移和/或缩放的所述骨骼节点对应的骨骼身份标识以两个字节的形式保存至所述第二存储表格内;
所述第二表格存储单元,还被配置为将发生位移和/或缩放的所述骨骼节点在三维空间中的坐标和/或所述骨骼节点在三维空间的三个正交方向上的缩放量以四个字节的形式保存至所述第二存储表格内。
11.根据权利要求7所述的装置,其特征在于,还包括:
骨骼拓扑模块,被配置为根据所述虚拟对象的骨骼拓扑数据,生成所述骨骼拓扑数据对应的骨骼节点树;
拓扑序列化模块,被配置为创建第三存储表格,根据所述骨骼节点树中的父子关系以及每个骨骼节点的骨骼名称,将所述骨骼拓扑数据序列化并保存至所述第三存储表格内。
12.根据权利要求7所述的装置,其特征在于,还包括:
数据压缩存储模块,被配置为将每个关键帧对应的第一存储表格和第二存储表格进行压缩和存储。
13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-6任一项所述方法的步骤。
14.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911395462.7A CN111161365B (zh) | 2019-12-30 | 2019-12-30 | 一种骨骼动画数据的压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911395462.7A CN111161365B (zh) | 2019-12-30 | 2019-12-30 | 一种骨骼动画数据的压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111161365A true CN111161365A (zh) | 2020-05-15 |
CN111161365B CN111161365B (zh) | 2023-05-09 |
Family
ID=70559011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911395462.7A Active CN111161365B (zh) | 2019-12-30 | 2019-12-30 | 一种骨骼动画数据的压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111161365B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783182A (zh) * | 2020-07-07 | 2020-10-16 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及*** |
CN111932659A (zh) * | 2020-06-15 | 2020-11-13 | 深圳市大富网络技术有限公司 | 骨骼模型数据的处理方法、计算机设备及存储介质 |
CN112070868A (zh) * | 2020-09-08 | 2020-12-11 | 北京默契破冰科技有限公司 | 基于iOS***的动画播放方法、电子设备和介质 |
CN112435315A (zh) * | 2020-11-30 | 2021-03-02 | 上海米哈游天命科技有限公司 | 一种游戏中的防穿模方法、装置、电子设备及存储介质 |
CN112669194A (zh) * | 2021-01-06 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 虚拟场景中的动画处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1321894A2 (en) * | 2001-11-27 | 2003-06-25 | Samsung Electronics Co., Ltd. | Apparatus and method for representing 3-dimensional objects unsing depth images |
CN102521860A (zh) * | 2011-11-16 | 2012-06-27 | 戚军 | 一种骨骼动画的实现方法 |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
CN106296759A (zh) * | 2016-08-25 | 2017-01-04 | 深圳市创梦天地科技有限公司 | 一种三维骨骼动画压缩方法及装置 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
CN108635849A (zh) * | 2018-05-15 | 2018-10-12 | 深圳市腾讯网络信息技术有限公司 | 一种动画数据压缩、解压缩方法及装置 |
JP6526775B1 (ja) * | 2017-12-08 | 2019-06-05 | 株式会社スクウェア・エニックス | アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法 |
CN109872375A (zh) * | 2019-01-10 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种骨骼动画关键帧压缩方法及装置 |
-
2019
- 2019-12-30 CN CN201911395462.7A patent/CN111161365B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1321894A2 (en) * | 2001-11-27 | 2003-06-25 | Samsung Electronics Co., Ltd. | Apparatus and method for representing 3-dimensional objects unsing depth images |
CN102521860A (zh) * | 2011-11-16 | 2012-06-27 | 戚军 | 一种骨骼动画的实现方法 |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
CN106296759A (zh) * | 2016-08-25 | 2017-01-04 | 深圳市创梦天地科技有限公司 | 一种三维骨骼动画压缩方法及装置 |
JP6526775B1 (ja) * | 2017-12-08 | 2019-06-05 | 株式会社スクウェア・エニックス | アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
CN108635849A (zh) * | 2018-05-15 | 2018-10-12 | 深圳市腾讯网络信息技术有限公司 | 一种动画数据压缩、解压缩方法及装置 |
CN109872375A (zh) * | 2019-01-10 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种骨骼动画关键帧压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘贤梅;赵丹;赵娅;: "数据驱动人体动画的关键帧技术研究综述" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932659A (zh) * | 2020-06-15 | 2020-11-13 | 深圳市大富网络技术有限公司 | 骨骼模型数据的处理方法、计算机设备及存储介质 |
CN111783182A (zh) * | 2020-07-07 | 2020-10-16 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及*** |
CN111783182B (zh) * | 2020-07-07 | 2024-03-01 | 恒信东方文化股份有限公司 | 一种三维虚拟人台的建模方法及*** |
CN112070868A (zh) * | 2020-09-08 | 2020-12-11 | 北京默契破冰科技有限公司 | 基于iOS***的动画播放方法、电子设备和介质 |
CN112070868B (zh) * | 2020-09-08 | 2024-04-30 | 北京默契破冰科技有限公司 | 基于iOS***的动画播放方法、电子设备和介质 |
CN112435315A (zh) * | 2020-11-30 | 2021-03-02 | 上海米哈游天命科技有限公司 | 一种游戏中的防穿模方法、装置、电子设备及存储介质 |
CN112669194A (zh) * | 2021-01-06 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 虚拟场景中的动画处理方法、装置、设备及存储介质 |
CN112669194B (zh) * | 2021-01-06 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 虚拟场景中的动画处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111161365B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111161365B (zh) | 一种骨骼动画数据的压缩方法及装置 | |
CN113409437B (zh) | 一种虚拟角色捏脸的方法、装置、电子设备及存储介质 | |
CN114298310A (zh) | 长度损失确定方法以及装置 | |
CN108492338B (zh) | 动画文件的压缩方法、装置、存储介质和电子装置 | |
CN110830807B (zh) | 图像压缩方法、装置及存储介质 | |
CN109949693B (zh) | 一种地图绘制方法、装置、计算设备及存储介质 | |
US11995771B2 (en) | Automated weighting generation for three-dimensional models | |
KR101845535B1 (ko) | 3d 아바타 기반 화자 변경형 스토리텔링 시스템 | |
CN108986205B (zh) | 一种绘制体素模型的方法、装置、设备和存储介质 | |
CN113209626B (zh) | 一种游戏画面渲染方法及装置 | |
CN113781658B (zh) | 一种流式处理3d模型数据的方法及装置 | |
CN113209625A (zh) | 数据处理方法及装置 | |
CN105701858B (zh) | 一种基于alpha融合的贴图处理方法及装置 | |
CN114157395B (zh) | 一种基于变长整数编码的数据通信方法、装置及*** | |
CN112402978B (zh) | 地图生成方法及装置 | |
CN110975284A (zh) | 一种基于Unity的NGUI资源渲染处理方法及装置 | |
CN111651623B (zh) | 高精度人脸表情库的构建方法、装置、设备及存储介质 | |
CN114359461A (zh) | 文件格式转换方法、转换装置和计算机存储介质 | |
CN111062638B (zh) | 一种项目资源的处理方法及装置 | |
CN115908678B (zh) | 骨骼模型渲染方法、装置、电子设备及存储介质 | |
JP2005084780A (ja) | データ圧縮装置、データ圧縮方法、データ伸張装置、データ伸張方法、データ構造、n次元形状モデル処理装置並びにプログラムおよび記録媒体 | |
CN110827303A (zh) | 一种虚拟场景的图像编辑方法及装置 | |
CN116912456A (zh) | 一种蒙皮模型的网格合并方法及装置 | |
US20220375240A1 (en) | Method for detecting cells in images using autoencoder, computer device, and storage medium | |
CN113535887B (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 | ||
CB02 | Change of applicant information |
Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329 Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd. Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329 Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |