動(dòng)畫生成方法和裝置的制造方法【專利摘要】本發(fā)明涉及一種動(dòng)畫生成方法和裝置,所述方法包括:獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);獲取與所述動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù);將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù);根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫。本發(fā)明提供的動(dòng)畫生成方法和裝置,減少了對(duì)存儲(chǔ)資源的消耗?!緦@f明】動(dòng)畫生成方法和裝置
技術(shù)領(lǐng)域:
[0001]本發(fā)明涉及動(dòng)畫
技術(shù)領(lǐng)域:
,特別是涉及一種動(dòng)畫生成方法和裝置?!?br>背景技術(shù):
】[0002]動(dòng)畫是能夠?qū)⒖梢曉貏?dòng)態(tài)展示的可視數(shù)據(jù)。傳統(tǒng)的一種動(dòng)畫生成方式,可以存儲(chǔ)每一幀動(dòng)畫圖像,每幀動(dòng)畫圖像中包含虛擬目標(biāo),不同幀的動(dòng)畫圖像之間虛擬目標(biāo)的狀態(tài)呈現(xiàn)出差異,按時(shí)間順序渲染每一幀動(dòng)畫圖像就可以生成動(dòng)畫,但這種動(dòng)畫生成方式所需的存儲(chǔ)資源很大。[0003]目前也可以僅存儲(chǔ)動(dòng)畫的關(guān)鍵幀,生成動(dòng)畫時(shí)通過插值方式計(jì)算出關(guān)鍵幀之間的過渡幀,從而按幀渲染形成動(dòng)畫,這樣可以減少對(duì)存儲(chǔ)資源的消耗。然而,按幀存儲(chǔ)動(dòng)畫圖像本身是非常消耗存儲(chǔ)資源的,即使僅存儲(chǔ)關(guān)鍵幀對(duì)存儲(chǔ)資源的消耗也是比較大的,需要改進(jìn)。【
發(fā)明內(nèi)容】[0004]基于此,有必要針對(duì)傳動(dòng)的動(dòng)畫生成方式對(duì)存儲(chǔ)資源消耗大的問題,提供一種動(dòng)畫生成方法和裝置。[0005]—種動(dòng)畫生成方法,包括:[0006]獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);[0007]獲取與所述動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù);[0008]將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù);[0009]根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0010]一種動(dòng)畫生成裝置,包括:[0011]數(shù)據(jù)獲取模塊,用于獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);獲取與所述動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù);[0012]骨骼融合模塊,用于將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù);[0013]動(dòng)畫生成模塊,用于根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0014]上述動(dòng)畫生成方法和裝置,將動(dòng)畫中虛擬目標(biāo)對(duì)應(yīng)的數(shù)據(jù)和附加元素對(duì)應(yīng)的數(shù)據(jù)分離,在獲取到動(dòng)畫生成指令需要生成動(dòng)畫時(shí),得到生成動(dòng)畫所需的第一骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)、動(dòng)作數(shù)據(jù)、第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù),將用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于附加元素的第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù),根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)變化進(jìn)而渲染出動(dòng)畫。通過不同的動(dòng)作標(biāo)識(shí)可區(qū)分不同動(dòng)畫中不同的動(dòng)作,通過將虛擬目標(biāo)與各種動(dòng)作的動(dòng)作數(shù)據(jù)以及附加元素的組合可以實(shí)現(xiàn)豐富的動(dòng)畫,不需要單獨(dú)存儲(chǔ)每個(gè)動(dòng)畫的完整數(shù)據(jù),減少了對(duì)存儲(chǔ)資源的消耗?!靖綀D說明】[0015]圖1為一個(gè)實(shí)施例中社交消息系統(tǒng)的應(yīng)用環(huán)境圖;[0016]圖2為一個(gè)實(shí)施例中終端的內(nèi)部結(jié)構(gòu)示意圖;[0017]圖3為一個(gè)實(shí)施例中動(dòng)畫生成方法的流程示意圖;[0018]圖4為一個(gè)實(shí)施例中虛擬人物角色的骨架結(jié)構(gòu)示意圖;[0019]圖5為一個(gè)實(shí)施例中將道具劍的骨骼融合到虛擬人物角色的骨架結(jié)構(gòu)中的示意圖;[0020]圖6為一個(gè)實(shí)施例中獲取動(dòng)畫生成指令,根據(jù)動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí)的步驟的流程示意圖;[0021]圖7為一個(gè)實(shí)施例中在會(huì)話窗口中展示可選動(dòng)作選項(xiàng)的界面示意圖;[0022]圖8為一個(gè)實(shí)施例中獲取動(dòng)作選擇指令的步驟的流程示意圖;[0023]圖9為一個(gè)實(shí)施例中根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)渲染動(dòng)畫的步驟的流程示意圖;[0024]圖10為一個(gè)實(shí)施例中展示初始狀態(tài)的虛擬人物角色的示意圖;[0025]圖11為一個(gè)實(shí)施例中在會(huì)話頁面中渲染動(dòng)畫的示意圖;[0026]圖12為一個(gè)實(shí)施例中動(dòng)畫生成裝置的結(jié)構(gòu)框圖;[0027]圖13為一個(gè)實(shí)施例中數(shù)據(jù)獲取模塊的結(jié)構(gòu)框圖;[0028]圖14為一個(gè)實(shí)施例中動(dòng)作選擇指令處理模塊的結(jié)構(gòu)框圖;[0029]圖15為一個(gè)實(shí)施例中動(dòng)畫生成模塊的結(jié)構(gòu)框圖。【具體實(shí)施方式】[0030]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0031]圖1為一個(gè)實(shí)施例中社交消息系統(tǒng)的應(yīng)用環(huán)境圖。如圖1所示,該系統(tǒng)包括終端110和服務(wù)器120,終端110比如終端110(1)和終端110(2)。終端110上可運(yùn)行有即時(shí)通信應(yīng)用,終端110(1)和終端110(2)可通過即時(shí)通信應(yīng)用并經(jīng)由服務(wù)器120進(jìn)行消息交互。終端110(I)和終端110(2)之間可通過服務(wù)器120傳遞動(dòng)畫消息,并可根據(jù)動(dòng)畫消息展示相應(yīng)的動(dòng)畫。服務(wù)器120可以是獨(dú)立的物理服務(wù)器,也可以是服務(wù)器集群。[0032]圖2為一個(gè)實(shí)施例中終端110的內(nèi)部結(jié)構(gòu)示意圖。如圖2所示,該終端包括通過系統(tǒng)總線連接的處理器、非易失性存儲(chǔ)介質(zhì)、內(nèi)存儲(chǔ)器、網(wǎng)絡(luò)接口、顯示屏和輸入裝置。其中,終端的非易失性存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng),還包括一種動(dòng)畫生成裝置,該動(dòng)畫生成裝置用于實(shí)現(xiàn)一種動(dòng)畫生成方法。該處理器用于提供計(jì)算和控制能力,支撐整個(gè)終端的運(yùn)行。終端中的內(nèi)存儲(chǔ)器為非易失性存儲(chǔ)介質(zhì)中動(dòng)畫生成裝置的運(yùn)行提供環(huán)境,該內(nèi)存儲(chǔ)器中可儲(chǔ)存有計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令被處理器執(zhí)行時(shí),可使得處理器執(zhí)行一種動(dòng)畫生成方法。網(wǎng)絡(luò)接口用于接入互聯(lián)網(wǎng)與應(yīng)用服務(wù)器進(jìn)行通信。終端的顯示屏可以是液晶顯示屏或者電子墨水顯示屏等,輸入裝置可以是顯示屏上覆蓋的觸摸層,也可以是終端外殼上設(shè)置的按鍵、軌跡球或觸控板,也可以是外接的鍵盤、觸控板或鼠標(biāo)等。該終端可以是手機(jī)、平板電腦或穿戴式設(shè)備等。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。[0033]如圖3所示,在一個(gè)實(shí)施例中,提供了一種動(dòng)畫生成方法,本實(shí)施例以該方法應(yīng)用于上述圖1和圖2中的終端110(1)來舉例說明。該方法具體包括如下步驟:[0034]步驟302,獲取動(dòng)畫生成指令,根據(jù)動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí)。[0035]其中,動(dòng)畫生成指令是觸發(fā)生成動(dòng)畫的一系列處理進(jìn)而渲染出動(dòng)畫的指令,可以是一個(gè)指令或者若干指令的組合。動(dòng)畫生成指令可在檢測(cè)到用戶的觸發(fā)操作時(shí)觸發(fā),也可以在終端檢測(cè)到預(yù)先設(shè)定的條件成立時(shí)自動(dòng)觸發(fā)。觸發(fā)操作可以是按鈕的點(diǎn)擊操作、物理案件的按壓操作、滑動(dòng)觸摸操作或者多點(diǎn)觸控操作。預(yù)先設(shè)定的條件比如達(dá)到預(yù)設(shè)時(shí)間點(diǎn)或者進(jìn)入指定界面。[0036]骨骼數(shù)據(jù)的骨骼是指骨骼動(dòng)畫中的骨骼,骨骼動(dòng)畫中的模型具有互相連接的“骨骼”組成的骨架結(jié)構(gòu),通過改變骨骼的朝向和位置可以為模型生成動(dòng)畫,本實(shí)施例中模型是虛擬目標(biāo)。虛擬目標(biāo)是指動(dòng)畫中可做出各種動(dòng)作的對(duì)象,比如虛擬人物角色、虛擬動(dòng)物形象、虛擬植物形象或者虛擬交通工具形象等。虛擬目標(biāo)可以是二維或者三維的虛擬目標(biāo)。用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)可以是各虛擬目標(biāo)公用的骨骼數(shù)據(jù),比如所有動(dòng)畫中的虛擬人物角色都使用相同的第一骨骼數(shù)據(jù);第一骨骼數(shù)據(jù)也可以是由動(dòng)畫生成指令所指定。[0037]骨骼數(shù)據(jù)是描述骨骼以及骨骼之間關(guān)系的數(shù)據(jù),骨骼數(shù)據(jù)具體可以包括骨骼狀態(tài)和骨骼之間的層級(jí)關(guān)系。骨骼狀態(tài)比如骨骼位置、骨骼朝向以及骨骼長度。骨骼之間的層級(jí)關(guān)系可以表示骨骼之間是否相互影響以及影響的程度如何,包括骨骼之間的父子節(jié)點(diǎn)關(guān)系。骨骼數(shù)據(jù)中的骨骼可以用坐標(biāo)表示。[0038]參照?qǐng)D4,以虛擬人物角色為例,用于虛擬人物角色的第一骨骼數(shù)據(jù)中的骨骼可以包括頭、頭飾、頭發(fā)前片、頭發(fā)后片、頭發(fā)左片、頭發(fā)右片、眼睛、嘴巴、背部裝飾、左上臂、左下臂、右上臂、右下臂、腰帶、上裝道具、褲子左片、褲子右片、裙子以及尾巴等。其中頭飾、頭發(fā)前片、頭發(fā)后片、頭發(fā)左片、頭發(fā)右片、眼睛以及嘴巴是頭這一父節(jié)點(diǎn)的子節(jié)點(diǎn)。[0039]裝扮數(shù)據(jù)是用來根據(jù)骨骼數(shù)據(jù)渲染出可視的視覺元素的數(shù)據(jù)。在一個(gè)實(shí)施例中,裝扮數(shù)據(jù)包括裝扮圖片、頂點(diǎn)網(wǎng)格以及映射數(shù)據(jù),其中映射數(shù)據(jù)用于將裝扮圖片映射到頂點(diǎn)網(wǎng)格,并且將頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到骨骼數(shù)據(jù)中的相應(yīng)骨骼。裝扮圖片可鑲嵌在裝扮數(shù)據(jù)所包括的卡槽(slot)中,裝扮圖片是紋理圖片,可以PNG(PortableNetworkGraphicFormat,便攜網(wǎng)絡(luò)圖形格式)格式保存。頂點(diǎn)網(wǎng)格是一系列頂點(diǎn)組成的區(qū)域。映射數(shù)據(jù)將裝扮圖片映射到頂點(diǎn)網(wǎng)格上,并且為頂點(diǎn)網(wǎng)格中的頂點(diǎn)綁定骨骼和賦予權(quán)重,骨骼運(yùn)動(dòng)會(huì)帶動(dòng)對(duì)應(yīng)的頂點(diǎn)運(yùn)動(dòng),頂點(diǎn)運(yùn)動(dòng)會(huì)改變裝扮圖片。[0040]動(dòng)作標(biāo)識(shí)用來唯一標(biāo)識(shí)出相應(yīng)的動(dòng)作,該動(dòng)作是指虛擬目標(biāo)以及附加元素所進(jìn)行的動(dòng)作。動(dòng)畫生成指令可指定動(dòng)作標(biāo)識(shí),終端可根據(jù)動(dòng)畫生成指令確定動(dòng)作標(biāo)識(shí)。[0041]步驟304,獲取與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)。[0042]其中,附加元素是動(dòng)畫中相對(duì)于虛擬目標(biāo)所附加的元素,比如附加的人物角色道具、附加的虛擬人物形象、附加的動(dòng)物形象、附加的虛擬植物形象或者附加的虛擬交通工具形象等。其中附加的人物角色道具比如人物角色使用的武器、持有的防具或者持有的其它物品。動(dòng)作數(shù)據(jù)是控制虛擬目標(biāo)和附加元素運(yùn)動(dòng)的依據(jù),具體可以包括按時(shí)間順序記錄的各動(dòng)畫幀中骨骼的位置、方向以及長度等信息。[0043]具體地,終端可獲取與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù),與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的第二骨骼數(shù)據(jù)以及與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的第二裝扮數(shù)據(jù),該第二骨骼數(shù)據(jù)與第二裝扮數(shù)據(jù)對(duì)應(yīng),該第二骨骼數(shù)據(jù)與第二裝扮數(shù)據(jù)對(duì)用于附加元素。終端可從網(wǎng)絡(luò)即時(shí)執(zhí)行步驟304。[0044]步驟306,將第一骨骼數(shù)據(jù)和第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù)。[0045]具體地,終端可根據(jù)虛擬目標(biāo)的各個(gè)骨骼的位置、朝向等骨骼數(shù)據(jù),結(jié)合附加元素的各個(gè)骨骼的位置、朝向以及對(duì)虛擬目標(biāo)的骨骼的影響等骨骼數(shù)據(jù),將附加元素的骨骼融合到虛擬目標(biāo)的骨骼體系中,得到融合骨骼數(shù)據(jù)。具體終端可通過Sava引擎的骨骼動(dòng)態(tài)合成技術(shù)將第一骨骼數(shù)據(jù)和第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù)。為了確保虛擬目標(biāo)能流暢運(yùn)動(dòng),附加元素頂點(diǎn)網(wǎng)格中的頂點(diǎn)不需要過多分配權(quán)重。第二骨骼數(shù)據(jù)、動(dòng)作數(shù)據(jù)和第二裝扮數(shù)據(jù)可生成單獨(dú)的僅包括附加元素的動(dòng)畫。[0046]在一個(gè)實(shí)施例中,第一骨骼數(shù)據(jù)包括骨骼狀態(tài)和骨骼之間的層級(jí)關(guān)系;步驟306包括:根據(jù)第二骨骼數(shù)據(jù),將第二骨骼數(shù)據(jù)中的骨骼附加到第一骨骼數(shù)據(jù)中的骨骼,并調(diào)整附加的骨骼相對(duì)于第一骨骼數(shù)據(jù)中相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。[0047]其中,第二骨骼數(shù)據(jù)可指定第二骨骼數(shù)據(jù)中的骨骼附加到第一骨骼數(shù)據(jù)中骨骼體系的位置,并指定相對(duì)于第一骨骼中相關(guān)骨骼的層級(jí)關(guān)系,從而依據(jù)第二骨骼數(shù)據(jù)將第二數(shù)據(jù)中的骨骼附加到第一骨骼數(shù)據(jù)中的骨骼,并調(diào)整相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。在其它實(shí)施例中,終端也可以將第一骨骼數(shù)據(jù)中的骨骼附加到第二骨骼數(shù)據(jù)中的骨骼,并調(diào)整附加的骨骼相對(duì)于第二骨骼數(shù)據(jù)中相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。[0048]舉例說明,參照?qǐng)D5,若附加元素為道具劍,那么可根據(jù)用于道具劍的第二骨骼數(shù)據(jù),將道具劍的骨骼融合到如圖4所示的虛擬人物角色的左下臂末端處,并調(diào)整層級(jí)關(guān)系,將道具劍的骨骼作為左下臂的子節(jié)點(diǎn)。[0049]步驟308,根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0050]具體地,動(dòng)作數(shù)據(jù)記錄了如何控制虛擬目標(biāo)的骨骼以及附加元素的骨骼進(jìn)行變化的數(shù)據(jù),具體可按照時(shí)間順序依次記錄各動(dòng)畫幀中虛擬目標(biāo)的骨骼和附加元素的骨骼的變化信息,終端則根據(jù)動(dòng)作數(shù)據(jù)中記錄的變化信息控制融合骨骼數(shù)據(jù)隨時(shí)間變化而變化。終端根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù),對(duì)第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)做相應(yīng)變化,進(jìn)而利用變化的第一裝扮數(shù)據(jù)和變化的第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0051]上述動(dòng)畫生成方法,將動(dòng)畫中虛擬目標(biāo)對(duì)應(yīng)的數(shù)據(jù)和附加元素對(duì)應(yīng)的數(shù)據(jù)分離,在獲取到動(dòng)畫生成指令需要生成動(dòng)畫時(shí),得到生成動(dòng)畫所需的第一骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)、動(dòng)作數(shù)據(jù)、第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù),將用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于附加元素的第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù),根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)變化進(jìn)而渲染出動(dòng)畫。通過不同的動(dòng)作標(biāo)識(shí)可區(qū)分不同動(dòng)畫中不同的動(dòng)作,通過將虛擬目標(biāo)與各種動(dòng)作的動(dòng)作數(shù)據(jù)以及附加元素的組合可以實(shí)現(xiàn)豐富的動(dòng)畫,不需要單獨(dú)存儲(chǔ)每個(gè)動(dòng)畫的完整數(shù)據(jù),減少了對(duì)存儲(chǔ)資源的消耗。[0052]如圖6所示,在一個(gè)實(shí)施例中,步驟302具體包括以下步驟:[0053]步驟602,獲取動(dòng)畫生成指令。[0054]具體地,終端可在檢測(cè)到用戶的觸發(fā)操作時(shí)觸發(fā)動(dòng)畫生成指令,也可以在終端檢測(cè)到預(yù)先設(shè)定的條件成立時(shí)自動(dòng)觸發(fā)動(dòng)畫生成指令。觸發(fā)操作可以是按鈕的點(diǎn)擊操作、物理案件的按壓操作、滑動(dòng)觸摸操作或者多點(diǎn)觸控操作。預(yù)先設(shè)定的條件比如達(dá)到預(yù)設(shè)時(shí)間點(diǎn)或者進(jìn)入指定界面。[0055]步驟604,根據(jù)動(dòng)畫生成指令確定用戶標(biāo)識(shí)。[0056]其中,用戶標(biāo)識(shí)是指可唯一標(biāo)識(shí)出相應(yīng)用戶的字符或字符串,用戶可以是本終端所登錄的用戶也可以是本終端可與之通信的聯(lián)系人。終端可檢測(cè)當(dāng)前會(huì)話的參與者的數(shù)量是否小于等于2,若是則可以直接根據(jù)動(dòng)畫生成指令將當(dāng)前的會(huì)話對(duì)象的用戶標(biāo)識(shí)確定為用戶標(biāo)識(shí);若否則可以根據(jù)動(dòng)畫生成指令展示用戶標(biāo)識(shí)列表,進(jìn)而檢測(cè)對(duì)用戶標(biāo)識(shí)列表的選擇指令,根據(jù)選擇指令確定用戶標(biāo)識(shí)。[0057]步驟606,獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù)。[0058]具體地,終端可將確定的用戶標(biāo)識(shí)發(fā)送到服務(wù)器,接收服務(wù)器反饋的第一裝扮數(shù)據(jù),該第一裝扮數(shù)據(jù)與用戶標(biāo)識(shí)對(duì)應(yīng),且用于虛擬目標(biāo)。在一個(gè)實(shí)施例中,終端可判斷本地是否緩存有與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù),若是則直接讀取緩存的第一裝扮數(shù)據(jù);若否,則可以將確定的用戶標(biāo)識(shí)發(fā)送到服務(wù)器,并接收服務(wù)器反饋的與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù)。[0059]步驟608,獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)。[0060]具體地,在一個(gè)實(shí)施例中,步驟608包括:根據(jù)動(dòng)畫生成指令獲取虛擬目標(biāo)所公用的第一骨骼數(shù)據(jù)。其中,第一骨骼數(shù)據(jù)可以被不同動(dòng)畫中的虛擬目標(biāo)所公用,比如包括虛擬人物角色的動(dòng)畫中均可以采用如圖4所示的骨架結(jié)構(gòu)。第一骨骼數(shù)據(jù)也可以被不同類型的虛擬目標(biāo)所公用,比如虛擬人物角色、虛擬動(dòng)物形象、虛擬植物形象以及虛擬交通工具形象等都可以公用如圖4所示的骨架結(jié)構(gòu)。采用公用的第一骨骼數(shù)據(jù),不僅可以規(guī)范設(shè)計(jì),便于組裝,還可以進(jìn)一步減少對(duì)存儲(chǔ)資源的消耗,[0061]在一個(gè)實(shí)施例中,步驟608包括:獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)。具體地,終端可在獲取到用戶標(biāo)識(shí)后,獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的第一骨骼數(shù)據(jù),該第一骨骼數(shù)據(jù)用于虛擬目標(biāo)。本實(shí)施例中,不同的用戶可以配置不同的第一骨骼數(shù)據(jù),便于用戶自定義虛擬目標(biāo)。[0062]步驟610,獲取動(dòng)作選擇指令。[0063]具體地,終端可展示可選動(dòng)作選項(xiàng),并獲取與可選動(dòng)作選項(xiàng)對(duì)應(yīng)的動(dòng)作選擇指令。其中,動(dòng)作選項(xiàng)是用于觸發(fā)相應(yīng)動(dòng)作的動(dòng)畫的選項(xiàng),動(dòng)作選項(xiàng)可以通過描述動(dòng)作的文字和/或動(dòng)作示意圖來表示。可選動(dòng)作選項(xiàng)是當(dāng)前登錄的用戶具有使用權(quán)限的動(dòng)作選項(xiàng)。動(dòng)作選項(xiàng)可以被開放權(quán)限給所有用戶,此時(shí)該動(dòng)作選項(xiàng)對(duì)于所有用戶來說都是可選動(dòng)作選項(xiàng)。[0064]在一個(gè)實(shí)施例中,終端可獲取當(dāng)前登錄的用戶標(biāo)識(shí),從本地或者從服務(wù)器查詢與該用戶標(biāo)識(shí)對(duì)應(yīng)的可選動(dòng)作選項(xiàng),并展示查詢到的可選動(dòng)作選項(xiàng)。可選動(dòng)作選項(xiàng)可以列表形式、陣列形式或者多頁切換展示等形式進(jìn)行展示。[0065]在一個(gè)實(shí)施例中,終端可在即時(shí)通信應(yīng)用的當(dāng)前會(huì)話窗口中展示可選動(dòng)作選項(xiàng),具體可通過當(dāng)前會(huì)話窗口中的工具欄中專用的觸發(fā)入口觸發(fā)。舉例說明,參照?qǐng)D7,終端可在當(dāng)前會(huì)話窗口中以陣列形式展示多個(gè)可選動(dòng)作選項(xiàng),如可選動(dòng)作選項(xiàng)701,并可進(jìn)行多頁切換,每個(gè)可選動(dòng)作選項(xiàng)可展示描述相應(yīng)動(dòng)作的文字以及示意圖。[0066]動(dòng)作選擇指令是對(duì)可選動(dòng)作選項(xiàng)進(jìn)行選定的指令,具體可通過觸控方式、物理按鍵方式或者聲控方式等多種方式觸發(fā)。動(dòng)作選擇指令具體可以與展示的多個(gè)可選動(dòng)作選項(xiàng)中的一個(gè)對(duì)應(yīng),表示對(duì)這一個(gè)可選動(dòng)作選項(xiàng)的選定。比如用戶可以點(diǎn)觸如圖7中的可選動(dòng)作選項(xiàng)701獲得與該可選動(dòng)作選項(xiàng)701對(duì)應(yīng)的動(dòng)作選擇指令。[0067]步驟612,根據(jù)動(dòng)作選擇指令確定動(dòng)作標(biāo)識(shí)。[0068]具體地,終端在獲取到動(dòng)作選擇指令后,獲取該動(dòng)作選擇指令對(duì)應(yīng)的可選動(dòng)作選項(xiàng)的標(biāo)識(shí),從而根據(jù)該可選動(dòng)作選項(xiàng)的標(biāo)識(shí)確定動(dòng)作標(biāo)識(shí)。該可選動(dòng)作選項(xiàng)的標(biāo)識(shí)可直接作為動(dòng)作標(biāo)識(shí)。[0069]本實(shí)施例中,根據(jù)動(dòng)畫生成指令確定了用戶標(biāo)識(shí),從而獲得與用戶標(biāo)識(shí)對(duì)應(yīng)的第一裝扮數(shù)據(jù),后續(xù)在生成動(dòng)畫時(shí)便可以根據(jù)第一骨骼數(shù)據(jù)和第一裝扮數(shù)據(jù)生成不同形象的虛擬目標(biāo),可以針對(duì)不同用戶生成差異化的動(dòng)畫。與用戶標(biāo)識(shí)對(duì)應(yīng)的第一裝扮數(shù)據(jù)可由相應(yīng)的用戶自定義設(shè)置。通過觸發(fā)動(dòng)作選擇指令,可靈活地選擇動(dòng)作標(biāo)識(shí),進(jìn)而可以生成呈現(xiàn)不同動(dòng)作的動(dòng)畫。[0070]如圖8所示,在一個(gè)實(shí)施例中,步驟610具體包括如下步驟:[°071]步驟802,展示鎖定動(dòng)作選項(xiàng)。[0072]其中,鎖定動(dòng)作選項(xiàng)是當(dāng)前登錄的用戶還未開通使用權(quán)限的動(dòng)作選項(xiàng)。終端可提供商城入口,檢測(cè)到對(duì)商城入口的觸發(fā)操作后進(jìn)入商城頁面,從而在商城頁面中展示鎖定動(dòng)作選項(xiàng)。鎖定動(dòng)作選項(xiàng)可與當(dāng)前的可選動(dòng)作選項(xiàng)同時(shí)展示或者同頁面展示。鎖定動(dòng)作選項(xiàng)可以列表形式、陣列形式或者多頁切換展示等形式進(jìn)行展示。鎖定動(dòng)作選項(xiàng)可在相應(yīng)的動(dòng)作選項(xiàng)中添加鎖定標(biāo)記來表示其為鎖定動(dòng)作選項(xiàng)。觸發(fā)操作比如單擊操作、雙擊操作、滑動(dòng)操作或者長按操作等。[0073]步驟804,獲取與鎖定動(dòng)作選項(xiàng)對(duì)應(yīng)的選定指令。[0074]具體地,選定指令是對(duì)鎖定動(dòng)作選項(xiàng)進(jìn)行選定的指令,具體可通過觸控方式、物理按鍵方式或者聲控方式等多種方式觸發(fā)。選定指令具體可以與展示的多個(gè)鎖定動(dòng)作選項(xiàng)中的一個(gè)對(duì)應(yīng),表示對(duì)這一個(gè)鎖定動(dòng)作選項(xiàng)的選定。[0075]步驟806,根據(jù)選定指令發(fā)送支付請(qǐng)求至服務(wù)器。[0076]具體地,終端可獲取選定指令對(duì)應(yīng)的鎖定動(dòng)作選項(xiàng)所對(duì)應(yīng)的支付金額,并獲取支付方標(biāo)識(shí),生成攜帶有支付金額和支付方標(biāo)識(shí)的支付請(qǐng)求,并將支付請(qǐng)求發(fā)送至服務(wù)器,使得服務(wù)器從支付方標(biāo)識(shí)對(duì)應(yīng)的資金賬戶中減去支付金額,并在商城運(yùn)營商的標(biāo)識(shí)對(duì)應(yīng)的資金賬戶中增加支付金額。[0077]在一個(gè)實(shí)施例中,終端可根據(jù)選定指令將相應(yīng)鎖定動(dòng)作選項(xiàng)的標(biāo)識(shí)發(fā)送到第一服務(wù)器,使得第一服務(wù)器根據(jù)相應(yīng)鎖定動(dòng)作選項(xiàng)的標(biāo)識(shí)獲取支付金額和收款方標(biāo)識(shí)從而生成相應(yīng)的訂單數(shù)據(jù),訂單數(shù)據(jù)包括支付金額和收款方標(biāo)識(shí)。終端接收第一服務(wù)器反饋的訂單數(shù)據(jù),根據(jù)訂單數(shù)據(jù)生成攜帶有支付金額、支付方標(biāo)識(shí)和收款方標(biāo)識(shí)的支付請(qǐng)求,并將支付請(qǐng)求發(fā)送至第一服務(wù)器或者第二服務(wù)器,使得第一服務(wù)器或者第二服務(wù)器從支付方標(biāo)識(shí)對(duì)應(yīng)的資金賬戶中減去支付金額,并在收款方標(biāo)識(shí)對(duì)應(yīng)的資金賬戶中增加支付金額。第一服務(wù)器和第二服務(wù)器可由不同的運(yùn)營主體維護(hù)。[0078]步驟808,接收服務(wù)器反饋的支付結(jié)果。[0079]具體地,終端接收服務(wù)器在完成支付后反饋的支付結(jié)果,該支付結(jié)果包括表示支付成功或者支付失敗的信息。[0080]步驟810,根據(jù)支付結(jié)果將與選定指令對(duì)應(yīng)的鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng)。[0081]具體地,終端可識(shí)別支付結(jié)果,若支付結(jié)果表示支付成功,則將選定的鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng),還可以去除鎖定動(dòng)作選項(xiàng)中的鎖定標(biāo)記。若支付結(jié)果表示支付失敗,則可以提示用戶重新發(fā)起支付或者退出商城頁面。[0082]步驟812,展示可選動(dòng)作選項(xiàng)。[0083]步驟814,獲取針對(duì)展示的可選動(dòng)作選項(xiàng)的動(dòng)作選擇指令。[0084]本實(shí)施例中,動(dòng)作選項(xiàng)包括鎖定動(dòng)作選項(xiàng)和可選動(dòng)作選項(xiàng),可以將鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng),這樣用戶可以自主選擇合適的可選動(dòng)作選項(xiàng),豐富可用的動(dòng)畫,提高了操作便利性。[0085]在一個(gè)實(shí)施例中,與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)可通過網(wǎng)絡(luò)即時(shí)獲取。用于虛擬目標(biāo)的第一裝扮數(shù)據(jù)可通過網(wǎng)絡(luò)即時(shí)獲取。第一骨骼數(shù)據(jù)可在首次獲取時(shí)從網(wǎng)絡(luò)獲取并緩存,后續(xù)獲取時(shí)可直接獲取緩存的第一骨骼數(shù)據(jù)。本實(shí)施例中,不僅可以減少對(duì)終端本地存儲(chǔ)資源的消耗,而且通過網(wǎng)絡(luò)僅需獲取動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和第二裝扮數(shù)據(jù),對(duì)網(wǎng)絡(luò)資源消耗小,而且可以及時(shí)響應(yīng)。[0086]在一個(gè)實(shí)施例中,第一裝扮數(shù)據(jù)包括第一裝扮圖片、第一頂點(diǎn)網(wǎng)格以及第一映射數(shù)據(jù),其中第一映射數(shù)據(jù)用于將第一裝扮圖片映射到第一頂點(diǎn)網(wǎng)格,并且將第一頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到第一骨骼數(shù)據(jù)中的相應(yīng)骨骼。第二裝扮數(shù)據(jù)包括第二裝扮圖片、第二頂點(diǎn)網(wǎng)格以及第二映射數(shù)據(jù),其中第二映射數(shù)據(jù)用于將第二裝扮圖片映射到第二頂點(diǎn)網(wǎng)格,并且將第二頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到第二骨骼數(shù)據(jù)中的相應(yīng)骨骼。[0087]如圖9所示,在一個(gè)實(shí)施例中,步驟308包括如下步驟:[0088]步驟902,根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化。[0089]具體地,動(dòng)作數(shù)據(jù)記錄了如何控制虛擬目標(biāo)的骨骼以及附加元素的骨骼進(jìn)行變化的數(shù)據(jù),具體可按照時(shí)間順序依次記錄各動(dòng)畫幀中虛擬目標(biāo)的骨骼和附加元素的骨骼的變化信息,終端則根據(jù)動(dòng)作數(shù)據(jù)中記錄的變化信息控制融合骨骼數(shù)據(jù)隨時(shí)間變化而變化。[0090]步驟904,根據(jù)第一映射數(shù)據(jù)和第二映射數(shù)據(jù),控制第一頂點(diǎn)網(wǎng)格和第二頂點(diǎn)網(wǎng)格跟隨融合骨骼數(shù)據(jù)的變化而變化。[0091]具體地,頂點(diǎn)是頂點(diǎn)網(wǎng)格的組成單元,依附于骨骼。頂點(diǎn)網(wǎng)格中的頂點(diǎn)可構(gòu)成三角形,在三角形中可添加裝扮圖片。頂點(diǎn)網(wǎng)格具體可包括各頂點(diǎn)的位置以及頂點(diǎn)之間的關(guān)系。映射數(shù)據(jù)可以將裝扮圖片的各個(gè)位置映射到頂點(diǎn)網(wǎng)格中的頂點(diǎn),并且將頂點(diǎn)網(wǎng)格中的頂點(diǎn)與融合骨骼數(shù)據(jù)中的骨骼綁定。其中,頂點(diǎn)網(wǎng)格包括第一頂點(diǎn)網(wǎng)格和第二頂點(diǎn)網(wǎng)格,映射數(shù)據(jù)包括第一映射數(shù)據(jù)和第二映射數(shù)據(jù)。[0092]步驟906,根據(jù)第一映射數(shù)據(jù)和第一頂點(diǎn)網(wǎng)格的變化渲染第一裝扮圖片,并根據(jù)第二映射數(shù)據(jù)和第二頂點(diǎn)網(wǎng)格的變化渲染第二裝扮圖片,生成動(dòng)畫。[0093]具體地,融合骨骼數(shù)據(jù)的變化通過映射數(shù)據(jù)導(dǎo)致頂點(diǎn)網(wǎng)格變化,從而導(dǎo)致裝扮圖片的變化。裝扮圖片包括第一裝扮圖片和第二裝扮圖片。終端還可以在渲染裝扮圖片前對(duì)裝扮圖片進(jìn)行圖像處理,比如改變顏色、亮度或者對(duì)比度等。終端可逐幀繪制第一裝扮圖片和第二裝扮圖片,形成動(dòng)畫。[0094]本實(shí)施例中,根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化,控制相應(yīng)的頂點(diǎn)網(wǎng)格跟隨融合骨骼數(shù)據(jù)的變化而變化,進(jìn)而通過頂點(diǎn)網(wǎng)格的變化繪制出裝扮圖片,使得終端可以通過裝扮圖片的復(fù)用完成動(dòng)畫中的每一幀,不需要預(yù)先存儲(chǔ)每一個(gè)動(dòng)畫幀,極大地減少了對(duì)存儲(chǔ)資源的消耗。[0095]在一個(gè)實(shí)施例中,動(dòng)作數(shù)據(jù)從包括虛擬目標(biāo)和附加元素的完整動(dòng)畫建模數(shù)據(jù)中分離出;第一裝扮數(shù)據(jù)、第二骨骼數(shù)據(jù)和第二裝扮數(shù)據(jù)從完整動(dòng)畫建模數(shù)據(jù)中導(dǎo)出。[0096]具體地,可通過第三方建模軟件建立包括虛擬目標(biāo)和附加元素在內(nèi)完整的動(dòng)畫建模數(shù)據(jù),該完整建模數(shù)據(jù)中的骨骼數(shù)據(jù)包括第一骨骼數(shù)據(jù)和第二骨骼數(shù)據(jù),該完整建模數(shù)據(jù)中包括與虛擬目標(biāo)和附加元素匹配的動(dòng)作數(shù)據(jù),還包括第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)。[0097]進(jìn)一步地,可通過自定義工具自動(dòng)從完整動(dòng)畫建模數(shù)據(jù)中分離出動(dòng)作數(shù)據(jù),將用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和第一裝扮數(shù)據(jù)導(dǎo)出,并將用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)導(dǎo)出。用于附加元素的骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)導(dǎo)出后,可重新建立相應(yīng)的第二映射數(shù)據(jù)。[0098]本實(shí)施例中,動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)依據(jù)完整動(dòng)畫建模數(shù)據(jù)得到,可避免分別為虛擬目標(biāo)和附加元素建立不同的動(dòng)畫建模數(shù)據(jù)導(dǎo)致的操作繁瑣問題和難同步動(dòng)作數(shù)據(jù)的問題。[0099]在一個(gè)實(shí)施例中,終端可在確定即時(shí)通信應(yīng)用中當(dāng)前會(huì)話窗口中的動(dòng)畫展示區(qū)域后,根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)在該動(dòng)畫展示區(qū)域中渲染動(dòng)畫。[0100]其中,會(huì)話窗口可以是雙人會(huì)話窗口或者群組會(huì)話窗口等,動(dòng)畫展示區(qū)域可以位于當(dāng)前會(huì)話窗口中的固定位置處,也可以是當(dāng)前登錄的用戶所指定的位置,還可以是是當(dāng)前會(huì)話窗口中未展示消息的空白處。固定位置比如當(dāng)前會(huì)話窗口的底部中間位置或者當(dāng)前會(huì)話窗口整體的中央位置。終端在生成動(dòng)畫時(shí),在當(dāng)前會(huì)話窗口中的動(dòng)畫展示區(qū)域處,根據(jù)跟隨融合骨骼數(shù)據(jù)變化而變化的裝扮圖片進(jìn)行動(dòng)畫渲染。[0101]在一個(gè)實(shí)施例中,該動(dòng)畫生成方法還包括:向會(huì)話對(duì)象對(duì)應(yīng)的終端發(fā)送動(dòng)畫消息,使得會(huì)話對(duì)象對(duì)應(yīng)的終端根據(jù)動(dòng)畫消息獲取融合骨骼數(shù)據(jù)、動(dòng)作數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù),并根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0102]其中,動(dòng)畫消息是控制會(huì)話對(duì)象對(duì)應(yīng)的終端展示動(dòng)畫的消息。會(huì)話對(duì)象可以是個(gè)人用戶或者群組成員。會(huì)話對(duì)象對(duì)應(yīng)的終端可以在其上運(yùn)行的即時(shí)通信應(yīng)用的當(dāng)前會(huì)話窗口中的動(dòng)畫展示區(qū)域中渲染動(dòng)畫。會(huì)話對(duì)象對(duì)應(yīng)的終端可以執(zhí)行與本實(shí)施例中舉例說明上述動(dòng)畫生成方法的終端相同的各種步驟。[0103]本實(shí)施例中,通過向會(huì)話對(duì)象對(duì)應(yīng)的終端發(fā)送動(dòng)畫消息,使得會(huì)話對(duì)象可以與本終端同步展示動(dòng)畫,方便通過動(dòng)畫消息傳遞信息,提供了比文字消息更多的溝通途徑。而且當(dāng)用戶可以自主選擇動(dòng)作選項(xiàng)時(shí),將使得通過動(dòng)畫消息傳遞的信息更加靈活、豐富和高效。[0104]下面用一個(gè)具體應(yīng)用場景來說明上述動(dòng)畫生成方法的原理。如圖10所示,用戶通過終端與會(huì)話對(duì)象進(jìn)行會(huì)話。在該會(huì)話窗口中可觸發(fā)即時(shí)消息的發(fā)送和展示。終端在該會(huì)話窗口中展示工具欄1001,檢測(cè)對(duì)該工具欄1001的觸發(fā)操作,根據(jù)該觸發(fā)操作展示可選動(dòng)作選項(xiàng),并展示虛擬人物角色1002和1003。當(dāng)用戶選擇“射箭”這一可選動(dòng)作選項(xiàng)1004后,終端可即時(shí)通過網(wǎng)絡(luò)獲取可選動(dòng)作選項(xiàng)1004對(duì)應(yīng)的用于觸發(fā)“射箭”這一動(dòng)作的動(dòng)作數(shù)據(jù),以及該可選動(dòng)作選項(xiàng)1004對(duì)應(yīng)的附加道具“蘋果”1101和附加道具“弓箭”1102各自的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)。將虛擬人物角色1002的第一骨骼數(shù)據(jù)和附加道具1101的第二骨骼數(shù)據(jù)融合得到相應(yīng)的融合骨骼數(shù)據(jù),將虛擬人物角色1003的第一骨骼數(shù)據(jù)和附加道具1102的第二骨骼數(shù)據(jù)融合得到相應(yīng)的融合骨骼數(shù)據(jù),從而根據(jù)動(dòng)作數(shù)據(jù)、得到的融合骨骼數(shù)據(jù)以及相應(yīng)的第二裝扮數(shù)據(jù)進(jìn)行動(dòng)畫渲染,動(dòng)畫其中一幀的效果如圖11所示。[0105]如圖12所示,在一個(gè)實(shí)施例中,提供了一種動(dòng)畫生成裝置1200,包括數(shù)據(jù)獲取模塊1201、骨骼融合模塊1202和動(dòng)畫生成模塊1203。[0106]數(shù)據(jù)獲取模塊1201,用于獲取動(dòng)畫生成指令,根據(jù)動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);獲取與動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù)。[0107]骨骼融合模塊1202,用于將第一骨骼數(shù)據(jù)和第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù)。[0108]動(dòng)畫生成模塊1203,用于根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)和第二裝扮數(shù)據(jù)渲染動(dòng)畫。[0109]上述動(dòng)畫生成裝置1200,將動(dòng)畫中虛擬目標(biāo)對(duì)應(yīng)的數(shù)據(jù)和附加元素對(duì)應(yīng)的數(shù)據(jù)分離,在獲取到動(dòng)畫生成指令需要生成動(dòng)畫時(shí),得到生成動(dòng)畫所需的第一骨骼數(shù)據(jù)、第一裝扮數(shù)據(jù)、動(dòng)作數(shù)據(jù)、第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù),將用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于附加元素的第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù),根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)變化進(jìn)而渲染出動(dòng)畫。通過不同的動(dòng)作標(biāo)識(shí)可區(qū)分不同動(dòng)畫中不同的動(dòng)作,通過將虛擬目標(biāo)與各種動(dòng)作的動(dòng)作數(shù)據(jù)以及附加元素的組合可以實(shí)現(xiàn)豐富的動(dòng)畫,不需要單獨(dú)存儲(chǔ)每個(gè)動(dòng)畫的完整數(shù)據(jù),減少了對(duì)存儲(chǔ)資源的消耗。[0110]如圖13所示,在一個(gè)實(shí)施例中,數(shù)據(jù)獲取模塊1201包括:動(dòng)畫生成指令處理模塊1201a和動(dòng)作選擇指令處理模塊1201b。[0111]動(dòng)畫生成指令處理模塊1201a,用于獲取動(dòng)畫生成指令;根據(jù)動(dòng)畫生成指令確定用戶標(biāo)識(shí);獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù);獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)。[0112]動(dòng)作選擇指令處理模塊1201b,用于獲取動(dòng)作選擇指令;根據(jù)動(dòng)作選擇指令確定動(dòng)作標(biāo)識(shí)。[0113]在一個(gè)實(shí)施例中,動(dòng)畫生成指令處理模塊1201a還用于根據(jù)動(dòng)畫生成指令獲取虛擬目標(biāo)所公用的第一骨骼數(shù)據(jù);或者,獲取與用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)。[0?Μ]如圖14所示,在一個(gè)實(shí)施例中,動(dòng)作選擇指令處理模塊120Ib包括:動(dòng)作選項(xiàng)處理模塊1201bl和支付處理模塊1201b2。[0115]動(dòng)作選項(xiàng)處理模塊1201bl,用于展示鎖定動(dòng)作選項(xiàng);獲取與鎖定動(dòng)作選項(xiàng)對(duì)應(yīng)的選定指令。[0116]支付處理模塊1201b2,用于根據(jù)選定指令發(fā)送支付請(qǐng)求至服務(wù)器;接收服務(wù)器反饋的支付結(jié)果。[0117]動(dòng)作選項(xiàng)處理模塊1201bl還用于根據(jù)支付結(jié)果將與選定指令對(duì)應(yīng)的鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng);展示可選動(dòng)作選項(xiàng);獲取針對(duì)展示的可選動(dòng)作選項(xiàng)的動(dòng)作選擇指令。[0118]在一個(gè)實(shí)施例中,第一骨骼數(shù)據(jù)包括骨骼狀態(tài)和骨骼之間的層級(jí)關(guān)系;骨骼融合模塊1202還用于根據(jù)第二骨骼數(shù)據(jù),將第二骨骼數(shù)據(jù)中的骨骼附加到第一骨骼數(shù)據(jù)中的骨骼,并調(diào)整附加的骨骼相對(duì)于第一骨骼數(shù)據(jù)中相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。[0119]在一個(gè)實(shí)施例中,第一裝扮數(shù)據(jù)包括第一裝扮圖片、第一頂點(diǎn)網(wǎng)格以及第一映射數(shù)據(jù),其中第一映射數(shù)據(jù)用于將第一裝扮圖片映射到第一頂點(diǎn)網(wǎng)格,并且將第一頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到第一骨骼數(shù)據(jù)中的相應(yīng)骨骼;第二裝扮數(shù)據(jù)包括第二裝扮圖片、第二頂點(diǎn)網(wǎng)格以及第二映射數(shù)據(jù),其中第二映射數(shù)據(jù)用于將第二裝扮圖片映射到第二頂點(diǎn)網(wǎng)格,并且將第二頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到第二骨骼數(shù)據(jù)中的相應(yīng)骨骼。[0120]如圖15所示,在一個(gè)實(shí)施例中,動(dòng)畫生成模塊1203包括:融合骨骼數(shù)據(jù)變化控制模塊1203a、頂點(diǎn)網(wǎng)格變化控制模塊1203b和圖片渲染模塊1203c。[0121]融合骨骼數(shù)據(jù)變化控制模塊1203a,用于根據(jù)動(dòng)作數(shù)據(jù)控制融合骨骼數(shù)據(jù)隨時(shí)間變化。[0122]頂點(diǎn)網(wǎng)格變化控制模塊1203b,用于根據(jù)第一映射數(shù)據(jù)和第二映射數(shù)據(jù),控制第一頂點(diǎn)網(wǎng)格和第二頂點(diǎn)網(wǎng)格跟隨融合骨骼數(shù)據(jù)的變化而變化。[0123]圖片渲染模塊1203c,用于根據(jù)第一映射數(shù)據(jù)和第一頂點(diǎn)網(wǎng)格的變化渲染第一裝扮圖片,并根據(jù)第二映射數(shù)據(jù)和第二頂點(diǎn)網(wǎng)格的變化渲染第二裝扮圖片,生成動(dòng)畫。[0124]在一個(gè)實(shí)施例中,動(dòng)作數(shù)據(jù)從包括虛擬目標(biāo)和附加元素的完整動(dòng)畫建模數(shù)據(jù)中分離出;第一裝扮數(shù)據(jù)、第二骨骼數(shù)據(jù)和第二裝扮數(shù)據(jù)從完整動(dòng)畫建模數(shù)據(jù)中導(dǎo)出。[0125]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,該計(jì)算機(jī)程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,前述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-OnlyMemory,ROM)等非易失性存儲(chǔ)介質(zhì),或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory,RAM)等。[0126]以上實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。[0127]以上實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)?!局鳈?quán)項(xiàng)】1.一種動(dòng)畫生成方法,包括:獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);獲取與所述動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù);將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù);根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí)包括:獲取動(dòng)畫生成指令;根據(jù)所述動(dòng)畫生成指令確定用戶標(biāo)識(shí);獲取與所述用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù);獲取用于所述虛擬目標(biāo)的第一骨骼數(shù)據(jù);獲取動(dòng)作選擇指令;根據(jù)所述動(dòng)作選擇指令確定動(dòng)作標(biāo)識(shí)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取用于所述虛擬目標(biāo)的第一骨骼數(shù)據(jù)包括:根據(jù)所述動(dòng)畫生成指令獲取虛擬目標(biāo)所公用的第一骨骼數(shù)據(jù);或者,獲取與所述用戶標(biāo)識(shí)對(duì)應(yīng)的用于所述虛擬目標(biāo)的第一骨骼數(shù)據(jù)。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取動(dòng)作選擇指令包括:展示鎖定動(dòng)作選項(xiàng);獲取與所述鎖定動(dòng)作選項(xiàng)對(duì)應(yīng)的選定指令;根據(jù)所述選定指令發(fā)送支付請(qǐng)求至服務(wù)器;接收所述服務(wù)器反饋的支付結(jié)果;根據(jù)所述支付結(jié)果將與所述選定指令對(duì)應(yīng)的鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng);展示所述可選動(dòng)作選項(xiàng);獲取針對(duì)展示的可選動(dòng)作選項(xiàng)的動(dòng)作選擇指令。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一骨骼數(shù)據(jù)包括骨骼狀態(tài)和骨骼之間的層級(jí)關(guān)系;所述將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù)包括:根據(jù)所述第二骨骼數(shù)據(jù),將所述第二骨骼數(shù)據(jù)中的骨骼附加到所述第一骨骼數(shù)據(jù)中的骨骼,并調(diào)整附加的骨骼相對(duì)于所述第一骨骼數(shù)據(jù)中相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一裝扮數(shù)據(jù)包括第一裝扮圖片、第一頂點(diǎn)網(wǎng)格以及第一映射數(shù)據(jù),其中所述第一映射數(shù)據(jù)用于將所述第一裝扮圖片映射到所述第一頂點(diǎn)網(wǎng)格,并且將所述第一頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到所述第一骨骼數(shù)據(jù)中的相應(yīng)骨骼;所述第二裝扮數(shù)據(jù)包括第二裝扮圖片、第二頂點(diǎn)網(wǎng)格以及第二映射數(shù)據(jù),其中所述第二映射數(shù)據(jù)用于將所述第二裝扮圖片映射到所述第二頂點(diǎn)網(wǎng)格,并且將所述第二頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到所述第二骨骼數(shù)據(jù)中的相應(yīng)骨骼。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫包括:根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化;根據(jù)所述第一映射數(shù)據(jù)和所述第二映射數(shù)據(jù),控制所述第一頂點(diǎn)網(wǎng)格和所述第二頂點(diǎn)網(wǎng)格跟隨所述融合骨骼數(shù)據(jù)的變化而變化;根據(jù)所述第一映射數(shù)據(jù)和所述第一頂點(diǎn)網(wǎng)格的變化渲染所述第一裝扮圖片,并根據(jù)所述第二映射數(shù)據(jù)和所述第二頂點(diǎn)網(wǎng)格的變化渲染所述第二裝扮圖片,生成動(dòng)畫。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動(dòng)作數(shù)據(jù)從包括所述虛擬目標(biāo)和所述附加元素的完整動(dòng)畫建模數(shù)據(jù)中分離出;所述第一裝扮數(shù)據(jù)、所述第二骨骼數(shù)據(jù)和所述第二裝扮數(shù)據(jù)從所述完整動(dòng)畫建模數(shù)據(jù)中導(dǎo)出。9.一種動(dòng)畫生成裝置,其特征在于,包括:數(shù)據(jù)獲取模塊,用于獲取動(dòng)畫生成指令,根據(jù)所述動(dòng)畫生成指令獲取用于虛擬目標(biāo)的第一骨骼數(shù)據(jù)和用于所述虛擬目標(biāo)的第一裝扮數(shù)據(jù),并獲取動(dòng)作標(biāo)識(shí);獲取與所述動(dòng)作標(biāo)識(shí)對(duì)應(yīng)的動(dòng)作數(shù)據(jù)、用于附加元素的第二骨骼數(shù)據(jù)和相應(yīng)的第二裝扮數(shù)據(jù);骨骼融合模塊,用于將所述第一骨骼數(shù)據(jù)和所述第二骨骼數(shù)據(jù)融合得到融合骨骼數(shù)據(jù);動(dòng)畫生成模塊,用于根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化,并根據(jù)隨時(shí)間變化的融合骨骼數(shù)據(jù)、所述第一裝扮數(shù)據(jù)和所述第二裝扮數(shù)據(jù)渲染動(dòng)畫。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)獲取模塊包括:動(dòng)畫生成指令處理模塊,用于獲取動(dòng)畫生成指令;根據(jù)所述動(dòng)畫生成指令確定用戶標(biāo)識(shí);獲取與所述用戶標(biāo)識(shí)對(duì)應(yīng)的用于虛擬目標(biāo)的第一裝扮數(shù)據(jù);獲取用于所述虛擬目標(biāo)的第一骨骼數(shù)據(jù);動(dòng)作選擇指令處理模塊,用于獲取動(dòng)作選擇指令;根據(jù)所述動(dòng)作選擇指令確定動(dòng)作標(biāo)識(shí)。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述動(dòng)畫生成指令處理模塊還用于根據(jù)所述動(dòng)畫生成指令獲取虛擬目標(biāo)所公用的第一骨骼數(shù)據(jù);或者,獲取與所述用戶標(biāo)識(shí)對(duì)應(yīng)的用于所述虛擬目標(biāo)的第一骨骼數(shù)據(jù)。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述動(dòng)作選擇指令處理模塊包括:動(dòng)作選項(xiàng)處理模塊,用于展示鎖定動(dòng)作選項(xiàng);獲取與所述鎖定動(dòng)作選項(xiàng)對(duì)應(yīng)的選定指令;支付處理模塊,用于根據(jù)所述選定指令發(fā)送支付請(qǐng)求至服務(wù)器;接收所述服務(wù)器反饋的支付結(jié)果;所述動(dòng)作選項(xiàng)處理模塊還用于根據(jù)所述支付結(jié)果將與所述選定指令對(duì)應(yīng)的鎖定動(dòng)作選項(xiàng)變更為可選動(dòng)作選項(xiàng);展示所述可選動(dòng)作選項(xiàng);獲取針對(duì)展示的可選動(dòng)作選項(xiàng)的動(dòng)作選擇指令。13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一骨骼數(shù)據(jù)包括骨骼狀態(tài)和骨骼之間的層級(jí)關(guān)系;所述骨骼融合模塊還用于根據(jù)所述第二骨骼數(shù)據(jù),將所述第二骨骼數(shù)據(jù)中的骨骼附加到所述第一骨骼數(shù)據(jù)中的骨骼,并調(diào)整附加的骨骼相對(duì)于所述第一骨骼數(shù)據(jù)中相應(yīng)骨骼的層級(jí)關(guān)系,得到融合骨骼數(shù)據(jù)。14.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一裝扮數(shù)據(jù)包括第一裝扮圖片、第一頂點(diǎn)網(wǎng)格以及第一映射數(shù)據(jù),其中所述第一映射數(shù)據(jù)用于將所述第一裝扮圖片映射到所述第一頂點(diǎn)網(wǎng)格,并且將所述第一頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到所述第一骨骼數(shù)據(jù)中的相應(yīng)骨骼;所述第二裝扮數(shù)據(jù)包括第二裝扮圖片、第二頂點(diǎn)網(wǎng)格以及第二映射數(shù)據(jù),其中所述第二映射數(shù)據(jù)用于將所述第二裝扮圖片映射到所述第二頂點(diǎn)網(wǎng)格,并且將所述第二頂點(diǎn)網(wǎng)格中的頂點(diǎn)映射到所述第二骨骼數(shù)據(jù)中的相應(yīng)骨骼。15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述動(dòng)畫生成模塊包括:融合骨骼數(shù)據(jù)變化控制模塊,用于根據(jù)所述動(dòng)作數(shù)據(jù)控制所述融合骨骼數(shù)據(jù)隨時(shí)間變化;頂點(diǎn)網(wǎng)格變化控制模塊,用于根據(jù)所述第一映射數(shù)據(jù)和所述第二映射數(shù)據(jù),控制所述第一頂點(diǎn)網(wǎng)格和所述第二頂點(diǎn)網(wǎng)格跟隨所述融合骨骼數(shù)據(jù)的變化而變化;圖片渲染模塊,用于根據(jù)所述第一映射數(shù)據(jù)和所述第一頂點(diǎn)網(wǎng)格的變化渲染所述第一裝扮圖片,并根據(jù)所述第二映射數(shù)據(jù)和所述第二頂點(diǎn)網(wǎng)格的變化渲染所述第二裝扮圖片,生成動(dòng)畫。16.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述動(dòng)作數(shù)據(jù)從包括所述虛擬目標(biāo)和所述附加元素的完整動(dòng)畫建模數(shù)據(jù)中分離出;所述第一裝扮數(shù)據(jù)、所述第二骨骼數(shù)據(jù)和所述第二裝扮數(shù)據(jù)從所述完整動(dòng)畫建模數(shù)據(jù)中導(dǎo)出。【文檔編號(hào)】G06T13/40GK105976417SQ201610369510【公開日】2016年9月28日【申請(qǐng)日】2016年5月27日【發(fā)明人】羅君,毛開宇,韓美云,陳綺琳【申請(qǐng)人】騰訊科技(深圳)有限公司