專利名稱:一種基于智能手機平臺的3d圖形骨骼動畫繪制算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能手機平臺的3D圖形骨骼動畫繪制算法,尤其是基于智能手機平 臺的3D圖形骨骼動畫繪制算法。
背景技術(shù):
現(xiàn)有的3D游戲和應(yīng)用程序主要是家用電腦平臺的。而以蘋果的iphone, ipad, ipad2以及android智能手機為代表的新型客戶應(yīng)用平臺正在全球范圍內(nèi)井噴增長。傳統(tǒng) 的3D骨骼動畫算法在手機平臺上效率低下,無法滿足正常的3D應(yīng)用及3D游戲的圖形描O發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有智能手機平臺上3D圖形動畫描繪的空白,提供一種 基于便攜式移動設(shè)備平臺的3D圖形骨骼動畫繪制算法,具有效率高,方便使用并且易于普 及的優(yōu)點。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是一種基于智能手機平臺的3D圖形骨骼 動畫繪制算法,其特征在于該算法包括制作骨骼動畫,所述骨骼動畫包括基本骨骼和復(fù)合 骨骼;將上述骨骼動畫信息導(dǎo)成文本格式動畫信息文件,在導(dǎo)出時,將復(fù)合骨骼及基本骨骼 將以4個一組為單位排列,而每個頂點信息中將會分配一個骨骼的編組號碼及4個權(quán)重信 息,將所述文本格式動畫信息文件轉(zhuǎn)換成游戲用二進制格式文件;底層描繪端讀取分析所 述二進制格式動畫文件,根據(jù)權(quán)重乘骨骼矩陣列表,獲得頂點位置,實現(xiàn)最終頂點的渲染。
本發(fā)明提供一種基于智能手機平臺的3D圖形骨骼動畫繪制算法,包括3D設(shè)計 軟件Maya,3dMax的動畫制作后的導(dǎo)出插件,數(shù)據(jù)轉(zhuǎn)換打包工具,以及骨骼信息在底層描 繪端的讀取方法與實現(xiàn)方式。由所述3D軟件(Maya,3dMax)導(dǎo)出插件將動畫信息導(dǎo)成文 本格式動畫信息文件,所述數(shù)據(jù)轉(zhuǎn)換打包工具將所述文本格式動畫信息文件轉(zhuǎn)換成專用的 游戲?qū)S枚M制格式文件,根據(jù)所述智能手機平臺的特點動畫信息的復(fù)合骨骼及基本骨骼 將以4個一組為單位排列。而每個頂點信息中將會分配一個骨骼的編組號碼及4個權(quán)重信 息。所述底層描繪端讀取分析所述二進制格式動畫文件,將每組骨骼權(quán)重通過動畫矩陣列 表實現(xiàn)最終頂點的渲染。使用本發(fā)明的算法可以在智能手機平臺實現(xiàn)手機3D網(wǎng)絡(luò)游戲的 開發(fā),或者3D設(shè)計軟件等3D應(yīng)用程序的開發(fā),優(yōu)化了手機平臺的骨骼運算,提高了實時演 算的3D動畫速度,還加強數(shù)據(jù)的安全性。具有可靠性高,方便使用,易于普及等優(yōu)點。
具體實施方式
一種基于智能手機平臺的3D圖形骨骼動畫繪制算法,其特征在于該算法包括利 用3D設(shè)計軟件制作骨骼動畫,所述骨骼動畫包括基本骨骼和復(fù)合骨骼;利用3D設(shè)計軟件 導(dǎo)出插件將上述骨骼動畫信息導(dǎo)成文本格式動畫信息文件,在導(dǎo)出時,將復(fù)合骨骼及基本 骨骼將以4個一組為單位排列,而每個頂點信息中將會分配一個骨骼的編組號碼及4個權(quán)重信息;利用數(shù)據(jù)轉(zhuǎn)換打包工具將所述文本格式動畫信息文件轉(zhuǎn)換成游戲用二進制格式文 件;底層描繪端讀取分析所述二進制格式動畫文件,根據(jù)權(quán)重乘骨骼矩陣列表,獲得頂點位 置,實現(xiàn)最終頂點的渲染。上述所有算法都在手機用戶終端進行,分組,排列,和權(quán)重分配是 在導(dǎo)出插件時進行,并且加密保存。然后在描繪時進行解碼并實現(xiàn)描繪。
所述3D設(shè)計軟件包括Maya, 3dMax,以及softimage, AutoCad等其他3D設(shè)計軟 件。所述智能手機用戶終端為蘋果的iPhone系列手機。優(yōu)選地,所述智能手機用戶終端為 使用谷歌Android2.2以上系統(tǒng)的智能安卓手機。優(yōu)選地,所述智能手機用戶終端還包括蘋 果的ipad, ipad2系列平板電腦。優(yōu)選地,所述智能手機用戶終端為使用谷歌Android2. 2 以上系統(tǒng)的智能安卓平板電腦。
所述3D軟件導(dǎo)出插件用于將制作好的動畫文件導(dǎo)成文本格式動畫信息文件,導(dǎo) 出骨骼列表是會以4個為一組,并以權(quán)重形式保存在頂點的一個32位內(nèi)存塊內(nèi),而同屬一 個骨骼組的頂點將被打包到同一內(nèi)存塊內(nèi),這樣加速了繪制時的導(dǎo)出效率。
傳統(tǒng)的骨骼動畫算法將骨骼編號及相對應(yīng)矩陣數(shù)據(jù)打包生成數(shù)據(jù)文件,在實時繪 制時通過編號索引出實用矩陣再乘以復(fù)合骨的權(quán)重信息,獲得最終骨骼位置。但這種算法 在手機平臺上存在運算效率低下,無法實用化的問題。本發(fā)明通過對基本骨骼和復(fù)合骨骼 進行排序+分組+編號整理,并將骨骼分組后的編號信息通過32位二進制數(shù)進行權(quán)重保 存?;竟趋缹⒁?個一組為單位排列,而每個頂點信息中將會分配一個骨骼的編組號碼 及4個權(quán)重信息。即骨骼的編號將以4個一組存成32位二進制數(shù),其中每8個二進制數(shù) 代表一個骨骼的編號,如=OxffOOOOOO表示使用所述組內(nèi)的第3號骨骼,并且權(quán)重為1.0, 0x00008080表示使用所述組內(nèi)的第0,I號骨骼,并且權(quán)重均為O. 5。
而作為3D運算模塊,底層描繪端讀取分析所述二進制格式動畫文件,將每個頂點 的骨骼權(quán)重信息除以255轉(zhuǎn)換成浮點數(shù),然后通過乘以編排好的矩陣分組列表,獲得最終 的矩陣。再將頂點座標(biāo)乘以最終矩陣得到頂點的最終座標(biāo)位置,實現(xiàn)最終頂點的渲染。
如圖所示,假設(shè)動作矩陣列表中以四個基本骨骼為一組,表示為MtxOO,MtxOl, Mtx02,Mtx03。則骨骼權(quán)重計算時,編號0x00008080:矩陣=Mtx00*0. 5+Mtx01*0. 5+ Mtx02*0. 0+Mtx03*0. 0。即每個頂點用一個 32 位的二進制數(shù) 據(jù)表示,同時指定4個骨骼的權(quán)重,每8位表示所在位置的骨骼權(quán)重,將骨骼權(quán)重乘以相對 應(yīng)的每一幀的骨骼運動空間矩陣,就得到了該頂點在每一幀時的運動座標(biāo)。
所述打包轉(zhuǎn)換工具均為現(xiàn)有技術(shù),根據(jù)本發(fā)明的一個實施例,打包轉(zhuǎn)換工具可以 采用 maya2010, 3dmax 的內(nèi)置插件 iPad3dTo_NPF3. mel。將 iPad3dTo_NPF3. me I 安裝到 maya2010的系統(tǒng)插件目錄下,進入maya2010,打開做好的3D模型場景或3D模型角色,點擊 “iPad3dToNPF3”按鈕,插件將自動計算出模型的頂點,貼圖,骨骼已經(jīng)動畫等信息,然后自 動生成文本式的npf3文件。而maya2010, 3dmax的內(nèi)置工具Npf3ToWJT. exe,通過它將上述 的npf3文件轉(zhuǎn)換成各種平臺所需的bin文件,供游戲中使用。
根據(jù)本發(fā)明的一個實施例,一個角色由10個基本骨骼,O號 9號骨骼組成,并且 角色的總頂點數(shù)為1000個。將10根基本骨骼按4個一組分組,如(0,1,2,3)—組,(4,5, 6,7 ) —組,(8,9 ) 一組。則為每個頂點可以被指定一組骨骼,如指定(O,I,2,3 )為500號頂 點的骨骼組,分配一個32位的數(shù)據(jù)信息,每8位表示所在位置的骨骼權(quán)重,則頂點可以同時 指定4個骨骼的權(quán)重。如(0x00001010)就表示該頂點是一一(O號骨* 50%) + (I號骨* 50%) + (2號骨* 0%) + (3號骨* 0%)。再將骨骼權(quán)重乘以相對應(yīng)的每一幀的骨骼運動空間矩陣,就得到了該頂點在每一幀時的運動座標(biāo)。最后通過其他的鏡頭,投影轉(zhuǎn)換將頂點畫到屏幕上。
根據(jù)本發(fā)明的一個實施例,npf3文件結(jié)構(gòu)由以下內(nèi)容構(gòu)成1.文件頭信息---文件的開頭保存頭信息。頭信息中包含了文件大小,貼圖數(shù)量,模型數(shù)量等基本信息。
2.模型頭信息---每個模型構(gòu)成一個模型內(nèi)容,并且在模型內(nèi)容的開頭保存一個模型頭信息。模型頭信息包含了頂點總數(shù),貼圖索引,骨骼結(jié)構(gòu),動畫格式等基本信息。
3.模型信息---緊跟模型頭信息后面是模型的具體數(shù)據(jù)。包含了頂點數(shù)據(jù)序列,頂點序列中包括了每個頂點的基本座標(biāo)值,法線向量,貼圖座標(biāo),綁定的骨骼號,骨骼權(quán)重等。
4.動畫頭信息---包含了骨骼序列號,總的動畫幀數(shù),關(guān)鍵幀編號等信息。
5.動畫信息---緊跟動畫頭信息后面是動畫的具體數(shù)據(jù)。包含了動畫數(shù)據(jù)序列,動畫數(shù)據(jù)序列中包括了每一幀每個骨骼空間運動矩陣。
權(quán)利要求
1.一種基于智能手機平臺的3D圖形骨骼動畫繪制算法,其特征在于該算法包括制作骨骼動畫,所述骨骼動畫包括基本骨骼和復(fù)合骨骼;將上述骨骼動畫信息導(dǎo)成文本格式動畫信息文件,在導(dǎo)出時,將復(fù)合骨骼及基本骨骼將以4個一組為單位排列,而每個頂點信息中將會分配一個骨骼的編組號碼及4個權(quán)重信息,將所述文本格式動畫信息文件轉(zhuǎn)換成游戲用二進制格式文件;底層描繪端讀取分析所述二進制格式動畫文件,根據(jù)權(quán)重乘骨骼矩陣列表,獲得頂點位置,實現(xiàn)最終頂點的渲染。
2.根據(jù)權(quán)利要求1所述的3D圖形骨骼動畫繪制算法,其特征在于每個頂點用一個32位的二進制數(shù)據(jù)表示,同時指定4個骨骼的權(quán)重,每8位表示所在位置的骨骼權(quán)重,將骨骼權(quán)重乘以相對應(yīng)的每一幀的骨骼運動空間矩陣,就得到了該頂點在每一幀時的運動座標(biāo)。
3.根據(jù)權(quán)利要求1或2所述的3D圖形骨骼動畫繪制算法,其特征在于所述3D設(shè)計軟件包括 Maya, 3dMax, softimage 或 AutoCacL
4.根據(jù)權(quán)利要求1或2所述的3D圖形骨骼動畫繪制算法,其特征在于所述智能手機用戶終端為蘋果的iphone系列手機、使用谷歌Android2. 2以上系統(tǒng)的智能安卓手機、蘋果的ipad,ipad2系列平板電腦或者使用谷歌Android2. 2以上系統(tǒng)的智能安卓平板電腦。
全文摘要
本發(fā)明提供了一種基于智能手機平臺的3D圖形骨骼動畫繪制算法,由3D軟件導(dǎo)出插件將動畫信息導(dǎo)成文本格式動畫信息文件,數(shù)據(jù)轉(zhuǎn)換打包工具將所述文本格式動畫信息文件轉(zhuǎn)換成專用的游戲?qū)S枚M制格式文件,將復(fù)合骨骼及基本骨骼將以4個一組為單位排列。而每個頂點信息中將會分配一個骨骼的編組號碼及4個權(quán)重信息。底層描繪端讀取分析所述二進制格式動畫文件,將每組骨骼權(quán)重通過動畫矩陣列表實現(xiàn)最終頂點的渲染。使用本發(fā)明的算法可以在智能手機平臺實現(xiàn)手機3D網(wǎng)絡(luò)游戲的開發(fā),或3D設(shè)計軟件等3D應(yīng)用程序的開發(fā),優(yōu)化了手機平臺的骨骼運算,提高了實時演算的3D動畫速度,還加強數(shù)據(jù)的安全性。具有可靠性高,方便使用,易于普及等優(yōu)點。
文檔編號G06T13/40GK102999935SQ20111027074
公開日2013年3月27日 申請日期2011年9月14日 優(yōu)先權(quán)日2011年9月14日
發(fā)明者毛春華 申請人:恩嘉壹(上海)網(wǎng)絡(luò)科技有限公司