專利名稱:一種動畫的實現(xiàn)方法和動畫繪制系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于游戲技術領域,尤其涉及一種手持設備游戲中動畫的實現(xiàn)方法和系統(tǒng)。
背景技術:
隨著手機產業(yè)的發(fā)展,在手機的增值服務中,手機游戲占有越來越重要的地位,同時,用戶對手機游戲的品質要求也越來越高。但是,手機的容量限制一直是影響手機游戲效果發(fā)揮的重要瓶頸,其中圖片資源占據(jù)了絕大部分空間。如果能夠通過某種手段降低圖片的容量占用,就能給游戲提供更大的發(fā)揮空間,提升游戲品質。所以,盡可能降低手機游戲中圖片所占用的容量是非常必要的。
動畫本質上是將一系列靜態(tài)幀按照一定速率進行順序繪制后得到的動態(tài)效果。在手機游戲中,幀的繪制是使用設備平臺提供的API(ApplicationProgramming Interface,應用編程接口),將一張圖片繪制在屏幕上。而動畫繪制是在游戲主循環(huán)中,通過控制幀的繪制速率不斷進行重繪,產生動態(tài)效果的過程。
目前通常采用的繪制方法是按時序進行順序繪制。采用這種方法,對于復雜的人物動畫,就需要為每一幀人物動畫單獨繪制一幅完整的圖片,比如一個人物行走的連續(xù)動畫部分至少需要4幀才能達到最基本的效果。而事實上各個圖片之間差別很小,比如,對于人物行走時幀與幀之間的差別僅僅是手腳部分,而人物整體并未有大的變化,所以,重復繪制圖片的相同部分就造成了圖片占有空間的浪費,降低了圖片對容量資源的利用效率。
發(fā)明內容
本發(fā)明的主要目的是提供一種動畫的實現(xiàn)方法和系統(tǒng),以提高動畫圖片對容量資源的利用效率。
為實現(xiàn)發(fā)明目的,本發(fā)明提供了一種動畫實現(xiàn)方法,該方法包括步驟將動畫造型進行拆分,得到圖素,設置圖素標識符;
將圖素進行拼接形成幀,并為每幀設置在動畫中的播放序列號,將每幀的圖素信息及每一幀在動畫中的播放序列號作為動畫數(shù)據(jù)進行保存;將所述動畫數(shù)據(jù)加載到內存中并繪制動畫。
該方法進一步包括將拆分得到的多個圖素整合到一張圖中進行保存。
其中,所述一張圖中保存的至少是一段動畫中的全部圖素。
其中,所述動畫造型為角色造型、道具造型或背景物體造型。
其中,所述幀的圖素信息包括圖素標識符、圖素在該幀中的位置。
其中,所述的繪制動畫的步驟具體為根據(jù)動畫標識符,獲取該動畫的播放序列,遍歷該播放序列,每一個游戲循環(huán)獲取一個播放序列號;根據(jù)播放序列號,獲取當前幀的圖素信息;根據(jù)所述圖素信息中的圖素標識符,獲取該圖素,并根據(jù)圖素在當前幀中的位置進行繪制。
為實現(xiàn)發(fā)明目的,本發(fā)明提供了一種動畫繪制系統(tǒng),該系統(tǒng)包括動畫編輯單元、動畫存儲單元、動畫播放單元,其中動畫編輯單元,將動畫造型拆分成圖素并保存到動畫存儲單元,從動畫存儲單元中獲取圖素并拼接形成幀,為該幀設置播放序列號,并將幀的圖素信息及該幀的播放序列號作為動畫數(shù)據(jù)存儲到動畫存儲單元;動畫存儲單元,存儲圖素、圖素ID、動畫數(shù)據(jù);動畫播放單元,從動畫存儲單元中獲取動畫數(shù)據(jù)加載到內存中并進行動畫繪制。
其中,所述的動畫編輯單元還用于將拆分得到的多個圖素整合到一張圖上并保存在動畫存儲單元。
其中,所述的多個圖素至少為一段動畫中的全部圖素。
其中,所述的動畫造型為角色造型、道具造型或背景物體造型。
其中,所述的幀的圖素信息包括圖素標識符、圖素在該幀中的位置。
可見,通過將動畫造型拆分成圖素,進行拼接形成幀,根據(jù)幀的圖素信息及播放序列號,即可完成動畫的繪制。由于所保存的是圖素,而不是一系列差別不大的幀,使得大量的圖素可以重用,在很大程度上降低了動畫所占用的資源,提高了資源的利用效率,為提升游戲品質創(chuàng)造了空間。
將拆分得到的多個圖素整合到一張圖上進行保存又進一步降低了圖片所占用的空間,避免對多個圖片資源的讀取,節(jié)約讀取時間,從而提升了游戲品質。
圖片的編輯工作由美術人員完成,程序人員只需要實現(xiàn)動畫播放單元,并直接加載由動畫編輯單元生成的動畫數(shù)據(jù)即可,從而降低了游戲制作的工作量。
圖1為本發(fā)明一實施例的流程圖;圖2為本發(fā)明另一實施例的流程圖;圖3為本發(fā)明的系統(tǒng)結構圖。
具體實施例方式
本發(fā)明為一種動畫的實現(xiàn)方法和系統(tǒng),其核心思想為通過提取動畫造型的共有部分成為部件,將各個部件通過拼接進行組合,即可實現(xiàn)與原來動畫完全相同的顯示效果,同時大大縮減了圖片的占用容量。
為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細說明。
參照圖1,說明本發(fā)明的實現(xiàn)方法。
步驟11將一個動畫造型進行拆分。例如將一個人物造型拆分為頭、四肢、軀干等。
步驟12獲取拆分后的該動畫造型的各個部分在所有動畫中的所有幀中的所有動作形態(tài)作為圖素。
步驟13將圖素進行唯一保存,每個圖素有一個唯一的ID(Identifier,標識符)進行標識。
步驟14將圖素進行拼接,形成一張幀,并為每幀設置在一段動畫中的播放序列號,將每幀中的圖素信息以及每一幀在動畫中的播放序列號作為動畫數(shù)據(jù)進行保存。
動畫數(shù)據(jù)由靜態(tài)幀數(shù)據(jù)和播放序列數(shù)據(jù)組成,這兩部分共同組成了一段動畫。
其中,靜態(tài)幀數(shù)據(jù)是存儲一幀圖片中圖素信息的數(shù)據(jù)文件,每一張靜態(tài)幀數(shù)據(jù)包括這一幀所引用的圖素ID和圖素在該幀中與原點的相對位置坐標,這樣便保存了一張靜態(tài)幀中所包含的圖素的全部信息。例如,幀1的數(shù)據(jù)為[圖素1-X-Y][圖素2-X-Y][圖素3-X-Y],其中,X,Y為各個圖素在幀1中與原點的相對位置坐標。
通常一段完整的動畫都需要若干靜態(tài)幀按照某種順序,組成一段序列來播放才能算是一段動畫,所以播放序列的本質是一系列靜態(tài)幀的編號,如1,2,3,2,3......的形式。
步驟15將動畫數(shù)據(jù)加載到內存中并繪制。
游戲中動畫的繪制流程具體為步驟151根據(jù)動畫編號,獲取該動畫的播放序列,遍歷該播放序列,每一個游戲循環(huán)獲取一個播放序列號。
步驟152根據(jù)播放序列號,獲取當前幀的圖素信息數(shù)據(jù)。
步驟153根據(jù)圖素ID,獲取該圖素,并根據(jù)該圖素在當前幀中的位置,進行繪制。
步驟154繪制完所有圖素后,當前幀顯示完成,進行下一個游戲循環(huán)。
在上述實施例中,每個圖素單獨存儲會占用較多的資源,且讀取多個圖片資源會增加讀取時間。如果將多個圖素整合到一張圖中則可以使圖片占用空間相對減少,可以進一步節(jié)約圖片資源空間,加快讀取圖片的速度,從而提升游戲品質。我們將保存多個圖素的圖片稱為“整合圖”。以下為采用該方法繪制動畫的方法,參照圖2。
步驟21在游戲美術設計的過程中,將動畫造型進行拆分。動畫造型可為各種角色造型、道具造型、背景物體造型等。
步驟22獲取拆分后的該動畫造型的各個部分在所有動畫中的所有幀中的所有形態(tài),稱之為圖素。
步驟23將多個圖素保存在一張整合圖中。一個游戲中可以有多張整合圖。
步驟24保存整合圖中每一個圖素的ID,以及該圖素在整合圖中的位置信息。
步驟25將整合圖中圖素進行拼接,形成幀,并為每幀設置一個在動畫中的播放序列號,將每幀中的圖素信息以及每一幀在動畫中的播放序列號作為動畫數(shù)據(jù)進行保存。
步驟26將動畫數(shù)據(jù)加載到內存中并繪制。
在游戲中動畫的繪制流程具體為步驟261根據(jù)動畫編號,獲取該動畫的播放序列,遍歷該播放序列,每一個游戲循環(huán)獲取一個播放序列號。
步驟262根據(jù)播放序列號,獲取當前幀的圖素信息數(shù)據(jù)。
步驟263根據(jù)圖素ID,獲取該圖素在整合圖中的位置,從而獲取該圖素,并根據(jù)該圖素在當前幀中的位置,進行繪制。
步驟264繪制完所有圖素后,當前幀顯示完成,進行下一個游戲循環(huán)。
如果能夠在繪圖時考慮圖片的相似性,還可以使圖片獲得更充分的重用。例如,在所設計的游戲中,有兩個角色,這兩個角色有某些部分是一樣的,例如,這兩個角色的頭部完全相同,這時,針對這兩個角色的頭部,不需要分別保留兩個圖素,只需要保留一個圖素即可。
在上述實施例中,未對一段動畫中的圖素的來源加以限制,問題是,如果每一段動畫中的圖素可以引自于任意一張整合圖,勢必會造成大量的引用定位信息。例如一段動畫中,其中一張靜態(tài)幀包含3個圖素,這3個圖素分別引自于“整合圖1”、“整合圖2”和“整合圖3”,在保存靜態(tài)幀圖素信息數(shù)據(jù)時需要為每一個圖素保存它們所在整合圖的信息,在本例中所保存的靜態(tài)幀的數(shù)據(jù)即為[整合圖1-圖素1-X-Y][整合圖2-圖素2-X-Y][整合圖3-圖素3-X-Y]。
為了節(jié)省數(shù)據(jù)量并簡化靜態(tài)幀與整合圖的引用關系,在進行圖素整合時,將一段動畫中所有靜態(tài)幀的全部圖素整合到一張整合圖,這樣就保證了在一段動畫中不必為每一個圖素保存它所在的整合圖ID,上述靜態(tài)幀圖素信息數(shù)據(jù)變?yōu)閇圖素1-X-Y][圖素2-X-Y][圖素3-X-Y]的形式,相應地,在進行繪制時,根據(jù)動畫編號,即可獲得該動畫所引用的整合圖編號,然后按照動畫的播放序列獲取每一幀的圖素數(shù)據(jù)信息,根據(jù)圖素在當前幀中的位置進行繪制,具體流程與上述兩實施例中動畫具體的繪制流程相同,不再詳述。
采用這種方法,在圖素較多的時候能夠節(jié)省一定的容量,并且這種圖素的歸納方式也是易于管理的。
不過,不宜將一個游戲中的所有動畫的所有圖素保存在一張圖上,因為這樣會使圖片過大,而由于手機等手持設備的能力所限,將使加載時間過長,反而影響游戲品質。
本發(fā)明還提供了一種動畫繪制系統(tǒng),如圖3所示,該系統(tǒng)包括動畫編輯單元31、動畫存儲單元32、動畫播放單元33,其中動畫編輯單元31,將動畫造型拆分成圖素并保存到動畫存儲單元32,從動畫存儲單元32中獲取圖素并拼接形成幀,為該幀設置播放序列號,并將幀的圖素信息及該幀的播放序列號作為動畫數(shù)據(jù)存儲到動畫存儲單元32;動畫存儲單元32,存儲圖素、圖素ID、動畫數(shù)據(jù);動畫播放單元33,從動畫存儲單元32中獲取動畫數(shù)據(jù)加載到內存中并進行動畫繪制。
為了進一步降低游戲圖片的容量,減少圖片讀取時間,可以首先將多個圖素整合到一張圖中進行保存,此時所述的動畫編輯單元還用于將拆分得到的多個圖素整合到一張圖上并保存在動畫存儲單元,所述動畫存儲單元保存的圖素以整合圖的形式存在。所述動畫存儲單元還保存整合圖ID以及每一個圖素在整合圖中的位置信息。此時,所述靜態(tài)幀的圖素信息數(shù)據(jù)包括整合圖ID、圖素ID、圖素在當前幀中的位置信息。
為了節(jié)省數(shù)據(jù)量并簡化靜態(tài)幀與整合圖的引用關系,所述用于組成一段動畫的所有圖素來源于一張整合圖,從而保證了在一段動畫的繪制中不必為每一個圖素保存它所在的整合圖ID。此時,所述靜態(tài)幀的圖素信息數(shù)據(jù)僅僅包括圖素ID以及圖素在當前幀中的位置信息。
不過,一張整合圖上不宜保存保存一個游戲中的所有動畫的所有圖素,因為這樣會使圖片過大,而由于手機等手持設備的能力所限,將使加載時間過長,反而影響游戲品質。
以上對本發(fā)明所提供的一種動畫的實現(xiàn)方法及動畫繪制系統(tǒng)進行了詳細的介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種動畫的實現(xiàn)方法,其特征在于,包括將動畫造型進行拆分,得到圖素,設置圖素標識符;將圖素進行拼接形成幀,并為每幀設置在動畫中的播放序列號,將每幀的圖素信息及每一幀在動畫中的播放序列號作為動畫數(shù)據(jù)進行保存;將所述動畫數(shù)據(jù)加載到內存中并繪制動畫。
2.如權利要求1所述的動畫的實現(xiàn)方法,其特征在于,進一步包括將拆分得到的多個圖素整合到一張圖中進行保存。
3.如權利要求2所述的動畫的實現(xiàn)方法,其特征在于,所述所述一張圖中保存的至少是一段動畫中的全部圖素。
4.如權利要求1所述的動畫的實現(xiàn)方法,其特征在于,所述動畫造型為角色造型、道具造型或背景物體造型。
5.如權利要求1所述的動畫的實現(xiàn)方法,其特征在于,所述幀的圖素信息包括圖素標識符、圖素在該幀中的位置。
6.如權利要求1、2或5所述的動畫的實現(xiàn)方法,其特征在于,所述的繪制動畫的步驟具體為根據(jù)動畫標識符,獲取該動畫的播放序列,遍歷該播放序列,每一個游戲循環(huán)獲取一個播放序列號;根據(jù)播放序列號,獲取當前幀的圖素信息;根據(jù)所述圖素信息中的圖素標識符,獲取該圖素,并根據(jù)圖素在當前幀中的位置進行繪制。
7.一種動畫繪制系統(tǒng),其特征在于,包括動畫編輯單元、動畫存儲單元、動畫播放單元,其中動畫編輯單元,將動畫造型拆分成圖素并保存到動畫存儲單元,從動畫存儲單元中獲取圖素并拼接形成幀,為該幀設置播放序列號,并將幀的圖素信息及該幀的播放序列號作為動畫數(shù)據(jù)存儲到動畫存儲單元;動畫存儲單元,存儲圖素、圖素ID、動畫數(shù)據(jù);動畫播放單元,從動畫存儲單元中獲取動畫數(shù)據(jù)加載到內存中并進行動畫繪制。
8.如權利要求7所述的動畫繪制系統(tǒng),其特征在于,所述的動畫編輯單元還用于將拆分得到的多個圖素整合到一張圖上并保存在動畫存儲單元。
9.如權利要求8所述的動畫繪制系統(tǒng),其特征在于,所述的多個圖素至少為一段動畫中的全部圖素。
10.如權利要求7所述的動畫繪制系統(tǒng),其特征在于,所述的動畫造型為角色造型、道具造型或背景物體造型。
11.如權利要求7所述的動畫繪制系統(tǒng),其特征在于,所述的幀的圖素信息包括圖素標識符、圖素在該幀中的位置。
全文摘要
本發(fā)明提供了一種動畫的實現(xiàn)方法及動畫繪制系統(tǒng),屬于游戲技術領域,采用所述的動畫繪制系統(tǒng),采用如下步驟將動畫造型進行拆分,得到圖素,設置圖素標識符;將圖素進行拼接形成幀,并為每幀設置在動畫中的播放序列號,將每幀的圖素信息及每一幀在動畫中的播放序列號作為動畫數(shù)據(jù)進行保存;將所述動畫數(shù)據(jù)加載到內存中并繪制動畫。該方法使得圖片資源得以最大限度的重用,減少了游戲占用空間,為手持設備中游戲品質的提升創(chuàng)造了條件。
文檔編號G06F17/30GK1949269SQ20061011447
公開日2007年4月18日 申請日期2006年11月10日 優(yōu)先權日2006年11月10日
發(fā)明者郎英博 申請人:北京金山軟件有限公司