一種角色游戲的壓縮裝置及裝置的制造方法
【技術領域】
[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分量集合;骼關鍵幀平移數據增量可