一种角色游戏的压缩装置及装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据处理技术领域,尤其涉及一种角色游戏的压缩方法及装置。
【背景技术】
[0002]随着科技的发展,移动终端的游戏功能越来越强大,不在是“俄罗斯方块”和“贪吃蛇”之类画面简陋、规则简单的游戏,而是具有很强的娱乐性和交互性的角色关键帧动画游戏。
[0003]对于角色关键帧动画游戏而言,游戏角色由很多块骨骼组成,每一帧中每个骨骼都对应一组骨骼关键帧位置数据和骨骼关键帧旋转数据。为在移动终端上还原游戏角色,需要在移动终端的存储空间存储游戏角色的骨骼数量以及每个骨骼对应的骨骼关键帧位置数据和骨骼关键帧旋转数据。
[0004]但是移动终端的存储空间有限,角色关键帧动画游戏占用存储空间较大时。
【发明内容】
[0005]本发明提供一种角色动画的压缩方法及装置,以实现解决角色关键帧动画游戏占用存储空间较大的问题。
[0006]一方面,本发明实施例提供了一种角色动画的压缩方法,包括:
[0007]分别采集当前帧的各个骨骼数据相对于上一帧各个骨骼数据的数据增量;
[0008]转换所述数据增量的类型,以压缩所述数据增量。
[0009]优选地,所述转换所述数据增量的类型,以压缩所述数据增量包括:
[0010]将所述数据增量的类型由单精度浮点型float类型转换为短整型short类型,以压缩所述数据增量。
[0011]优选地,所述float类型为32位,所述short类型为16位。
[0012]优选地,在所述转换所述数据增量的类型,以压缩所述数据增量之后,还包括:
[0013]将转换后的数据增量压缩为Zip格式,以压缩所述转换后的数据增量。
[0014]优选地,所述数据增量包括:骨骼关键帧旋转增量和骨骼关键帧平移数据增量;
[0015]所述骨骼关键帧旋转增量包括:四元数X分量的增量、四元数y分量的增量、四元数z分量的增量和四元数w分量的增量;
[0016]骨骼关键帧平移数据增量包括:平移X分量增量、平移y分量增量和平移z分量增
Mo
[0017]另一方面,本发明实施例提供了一种角色动画的压缩装置,包括:
[0018]数据增量采集模块,用于分别采集当前帧的各个骨骼数据相对于上一帧各个骨骼数据的数据增量;
[0019]第一压缩模块,用于转换所述数据增量的类型,以压缩所述数据增量。
[0020]优选地,所述第一压缩模块具体用于,将所述数据增量的类型由单精度浮点型float类型转换为短整型short类型,以压缩所述数据增量。
[0021]优选地,所述float类型为32位,所述short类型为16位。
[0022]优选地,所述装置还包括:第二压缩模块,用于将转换后的数据增量压缩为Zip格式,以压缩所述转换后的数据增量。
[0023]优选地,所述数据增量包括:骨骼关键帧旋转增量和骨骼关键帧平移数据增量;
[0024]所述骨骼关键帧旋转增量包括:四元数X分量的增量、四元数y分量的增量、四元数z分量的增量和四元数w分量的增量;
[0025]骨骼关键帧平移数据增量包括:平移X分量增量、平移y分量增量和平移z分量增
Mo
[0026]通过本发明实施例公开了一种角色动画的压缩方法及装置,可以降低角色关键帧动画游戏占用的移动终端内存。
【附图说明】
[0027]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0028]图1是本发明实施例中的一种角色动画的压缩方法的流程示意图;
[0029]图2为本发明实施例提供的关键帧数据存储示意图;
[0030]图3是本发明实施例中的一种角色动画的压缩方法的流程示意图;
[0031]图4是本发明实施例中的一种角色动画的压缩装置的结构示意图。
【具体实施方式】
[0032]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0033]实施例一
[0034]本发明实施例提供了一种角色动画的压缩方法,适用于压缩角色关键帧动画游戏的情况下,如图1所示,具体包括以下步骤:
[0035]步骤S101,分别采集当前帧的各个骨骼数据相对于上一帧各个骨骼数据的数据增
Mo
[0036]在步骤SlOl中,由于关键帧动画具有连续性,由上一帧中的骨骼位置移动至当前帧中的骨骼位置过程中产生的动作,可以看做是当前帧骨骼动作与上一帧骨骼动作之间的相对动作增量。上一帧骨骼动作叠加相对动作增量就可以获得当前骨骼动作。因此,分别采集当前帧的各个骨骼数据相对于上一帧各个骨骼数据的数据增量,存储上一帧各个骨骼数据和数据增量既可以获得当前帧的各个骨骼数据。数据增量占用的内容相对于当前帧的各个骨骼数据较小,因此,可以降低角色关键帧动画游戏占用的移动终端内存。数据增量可以包括:骨骼关键帧旋转增量和骨骼关键帧平移数据增量;骨骼关键帧旋转增量可以包括:四元数X分量的增量、四元数Y分量的增量、四元数Z分量的增量和四元数W分量的增量;骨骼关键帧平移数据增量可以包括:平移X分量增量、平移Y分量增量和平移Z分量增量。
[0037]步骤S102,转换数据增量的类型,以压缩数据增量。
[0038]在步骤S102中,可以将数据增量的类型由单精度浮点型短整型float类型为short类型,以压缩数据增量。在C++中,单精度浮点型float专指占用32位存储空间的单精度(single-precis1n)值。由于float类型为32位,short类型为16位。short类型在移动终端上比float类型处理速度更快而且只占用float类型一半的空间。
[0039]通过本发明实施例公开了一种角色动画的压缩方法,可以降低角色关键帧动画游戏占用的移动终端内存。
[0040]图2为本发明实施例提供的关键帧数据存储示意图。
[0041]在内存中存储了采样率、周期、骨骼数量、总帧数、骨骼数据I和骨骼数据2。在骨骼数据I中存储了骨骼ID、关键帧位置总数、关键帧旋转总数。骨骼数据2包括了其中一个骨骼的骨骼关键帧旋转数据和骨骼关键帧平移数据;骨骼关键帧旋转数据包括了四元数X分量集合、四元数I分量集合、四元数z分量集合和四元数w分量集合;骼关键帧平移数据增量可