本申請涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及多媒體技術(shù)領(lǐng)域,尤其涉及用于生成動畫數(shù)據(jù)的方法和裝置。
背景技術(shù):
在動畫技術(shù)領(lǐng)域中,需要獲取各種動畫形象的動畫數(shù)據(jù),才能通過渲染得到相應(yīng)的動畫?,F(xiàn)有技術(shù)中,通常需要動畫師提供動畫形象的動畫數(shù)據(jù),以使所形成的動畫形象更加逼真。
然而,一味地依靠動畫師提供動畫數(shù)據(jù),需要大量的人工操作。并且,動畫師提供的動畫數(shù)據(jù)使用場景較為限制,不利于多變化的場合,而為各個場景均提供動畫數(shù)據(jù)會在動畫制作過程中造成數(shù)據(jù)臃腫,限制軟件的應(yīng)用。因此,需要減少動畫數(shù)據(jù)的制作,獲得能自動適應(yīng)場景與目的變化的動畫數(shù)據(jù)。
技術(shù)實現(xiàn)要素:
本申請的目的在于提出一種用于生成動畫數(shù)據(jù)的方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請?zhí)峁┝艘环N用于生成動畫數(shù)據(jù)的方法,所述方法包括:獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù);將所述目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,其中所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型是通過樣本動畫片段序列中的各個樣本動畫片段進(jìn)行訓(xùn)練得到的;將所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為所述樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù);按照所述融合權(quán)重系數(shù),使用所述樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù);基于所述至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成所述目標(biāo)動畫的動畫數(shù)據(jù)。
在一些實施例中,所述樣本動畫片段序列中的各個樣本動畫片段為骨骼動畫。
在一些實施例中,所述方法包括訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的步驟,所述訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的步驟包括:針對所述樣本動畫片段序列中各個樣本動畫片段,將樣本動畫片段的運(yùn)動參數(shù)映射為第一向量,并根據(jù)樣本動畫片段在所述樣本動畫片段序列中的次序生成第二向量,其中,第二向量的維度是所述樣本動畫片段序列中樣本動畫片段的個數(shù),且第二向量中與樣本動畫片段的次序?qū)?yīng)的分量上置1,其它分量置0;將第一向量的維度確定為待訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入層節(jié)點(diǎn)個數(shù),將所述樣本動畫片段序列中樣本動畫片段的個數(shù)確定為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層的節(jié)點(diǎn)個數(shù)以及輸出層的節(jié)點(diǎn)個數(shù);將樣本動畫片段對應(yīng)的第一向量作為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入,并將樣本動畫片段對應(yīng)的第二向量作為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸出,對所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
在一些實施例中,所述樣本動畫片段序列中的各個樣本動畫片段已預(yù)先根據(jù)關(guān)鍵時間點(diǎn)劃分為至少一個時間片段;以及所述按照所述融合權(quán)重系數(shù),使用所述樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,包括:按照各個樣本動畫片段的融合權(quán)重系數(shù),對各個樣本動畫片段中的時間片段的時長進(jìn)行加權(quán)平均,以確定目標(biāo)動畫片段中時間片段的時長;將各個樣本動畫片段的時間片段的時長調(diào)整為與目標(biāo)動畫片段中的時間片段一致;針對調(diào)整后的各個樣本動畫片段,按照所述融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,得到目標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。
在一些實施例中,所述按照所述融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,包括以下至少一項:對動畫幀中各個骨骼的旋轉(zhuǎn)參數(shù)執(zhí)行球面插值;對動畫幀中根骨骼的位置參數(shù)執(zhí)行線性插值。
在一些實施例中,在所述針對調(diào)整后的各個樣本動畫片段,按照所述融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行插值操作之前,所述按照所述融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,還包括:獲取各個樣本動畫片段與目標(biāo)動畫片段的根骨骼的水平朝向差和/或水平位置差;調(diào)整各個樣本動畫片段的根骨骼的水平朝向和/或水平位置,以消除所述水平朝向差和/或水平位置差。
在一些實施例中,所述基于所述至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成所述目標(biāo)動畫的動畫數(shù)據(jù),包括:獲取當(dāng)前目標(biāo)動畫片段的第一個動畫幀的骨骼參數(shù)以及前一目標(biāo)動畫片段的最后一個動畫幀的骨骼參數(shù);根據(jù)兩個動畫幀的骨骼參數(shù),通過插值方法計算待插入所述兩個動畫幀之間的中間動畫幀的骨骼參數(shù);在所述兩個動畫幀之間插入所述中間動畫幀,以生成所述目標(biāo)動畫的動畫數(shù)據(jù)。
在一些實施例中,所述方法還包括:針對目標(biāo)動畫片段的時間片段中的各個動畫幀,獲取動畫幀中待修正骨骼的目標(biāo)位置參數(shù);確定所述待修正骨骼的當(dāng)前位置參數(shù)與目標(biāo)位置參數(shù)之間的差值;使用反向動力學(xué)迭代調(diào)整所述待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),以修正所述差值。
在一些實施例中,所述使用反向動力學(xué)迭代調(diào)整所述待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),以修正所述差值,包括:獲取預(yù)先保存的、對上一動畫幀的待修正骨骼使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)的調(diào)整值;將所述調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值。
在一些實施例中,在將所述調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值之前,所述方法還包括:對所述調(diào)整值進(jìn)行衰減。
第二方面,本申請?zhí)峁┝艘环N用于生成動畫數(shù)據(jù)的裝置,所述裝置包括:獲取單元,用于獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù);輸入單元,用于將所述目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,其中所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型是通過樣本動畫片段序列中的各個樣本動畫片段進(jìn)行訓(xùn)練得到的;確定單元,用于將所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為所述樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù);融合單元,用于按照所述融合權(quán)重系數(shù),使用所述樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù);生成單元,用于基于所述至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成所述目標(biāo)動畫的動畫數(shù)據(jù)。
在一些實施例中,所述樣本動畫片段序列中的各個樣本動畫片段為骨骼動畫。
在一些實施例中,所述裝置還包括用于訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練單元,所述訓(xùn)練單元具體用于:針對所述樣本動畫片段序列中各個樣本動畫片段,將樣本動畫片段的運(yùn)動參數(shù)映射為第一向量,并根據(jù)樣本動畫片段在所述樣本動畫片段序列中的次序生成第二向量,其中,第二向量的維度是所述樣本動畫片段序列中樣本動畫片段的個數(shù),且第二向量中與樣本動畫片段的次序?qū)?yīng)的分量上置1,其它分量置0;將第一向量的維度確定為待訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入層節(jié)點(diǎn)個數(shù),將所述樣本動畫片段序列中樣本動畫片段的個數(shù)確定為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層的節(jié)點(diǎn)個數(shù)以及輸出層的節(jié)點(diǎn)個數(shù);將樣本動畫片段對應(yīng)的第一向量作為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入,并將樣本動畫片段對應(yīng)的第二向量作為所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸出,對所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
在一些實施例中,所述樣本動畫片段序列中的各個樣本動畫片段已預(yù)先根據(jù)關(guān)鍵時間點(diǎn)劃分為至少一個時間片段;以及所述融合單元,包括:時長確定子單元,用于按照各個樣本動畫片段的融合權(quán)重系數(shù),對各個樣本動畫片段中的時間片段的時長進(jìn)行加權(quán)平均,以確定目標(biāo)動畫片段中時間片段的時長;時長調(diào)整子單元,用于將各個樣本動畫片段的時間片段的時長調(diào)整為與目標(biāo)動畫片段中的時間片段一致;融合子單元,用于針對調(diào)整后的各個樣本動畫片段,按照所述融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,得到目標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。
在一些實施例中,所述融合子單元進(jìn)一步用于以下至少一項:對動畫幀中各個骨骼的旋轉(zhuǎn)參數(shù)執(zhí)行球面插值;對動畫幀中根骨骼的位置參數(shù)執(zhí)行線性插值。
在一些實施例中,所述融合單元還包括配準(zhǔn)子單元,用于:獲取各個樣本動畫片段與目標(biāo)動畫片段的根骨骼的水平朝向差和/或水平位置差;調(diào)整各個樣本動畫片段的根骨骼的水平朝向和/或水平位置,以消除所述水平朝向差和/或水平位置差。
在一些實施例中,所述生成單元,包括:獲取子單元,用于獲取當(dāng)前目標(biāo)動畫片段的第一個動畫幀的骨骼參數(shù)以及前一目標(biāo)動畫片段的最后一個動畫幀的骨骼參數(shù);計算子單元,用于根據(jù)兩個動畫幀的骨骼參數(shù),通過插值方法計算待插入所述兩個動畫幀之間的中間動畫幀的骨骼參數(shù);插入子單元,用于在所述兩個動畫幀之間插入所述中間動畫幀,以生成所述目標(biāo)動畫的動畫數(shù)據(jù)。
在一些實施例中,所述裝置還包括:位置參數(shù)獲取單元,用于針對目標(biāo)動畫片段的時間片段中的各個動畫幀,獲取動畫幀中待修正骨骼的目標(biāo)位置參數(shù);差值確定單元,用于確定所述待修正骨骼的當(dāng)前位置參數(shù)與目標(biāo)位置參數(shù)之間的差值;調(diào)整單元,用于使用反向動力學(xué)迭代調(diào)整所述待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),以修正所述差值。
在一些實施例中,所述調(diào)整單元,包括:調(diào)整值獲取子單元,用于獲取預(yù)先保存的、對上一動畫幀的待修正骨骼使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)的調(diào)整值;設(shè)置子單元,用于將所述調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值。
在一些實施例中,所述調(diào)整單元還包括:衰減子單元,用于在將所述調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值之前,對所述調(diào)整值進(jìn)行衰減。
本申請?zhí)峁┑挠糜谏蓜赢嫈?shù)據(jù)的方法和裝置,可以利用樣本動畫片段序列以及樣本動畫片段序列生成的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型即可根據(jù)目標(biāo)運(yùn)動參數(shù)得到目標(biāo)動畫片段,最終形成目標(biāo)動畫,實現(xiàn)了動畫數(shù)據(jù)的自動生成,減小了人工設(shè)計動畫的壓力,也減小了數(shù)據(jù)存儲壓力。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2是根據(jù)本申請的用于生成動畫數(shù)據(jù)的方法的一個實施例的流程圖;
圖3是根據(jù)本申請的用于生成動畫數(shù)據(jù)的方法的又一個實施例的流程圖;
圖4是根據(jù)本申請的用于生成動畫數(shù)據(jù)的裝置的一個實施例的結(jié)構(gòu)示意圖;
圖5是適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
圖1示出了可以應(yīng)用本申請的用于生成動畫數(shù)據(jù)的方法和裝置的實施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊客戶端應(yīng)用,例如動畫設(shè)計軟件、動畫播放軟件等。
終端設(shè)備101、102、103可以是具有顯示屏并且支持動畫展示或動畫設(shè)計的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4(Moving Picture Experts Group Audio Layer IV,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計算機(jī)和臺式計算機(jī)等等。
服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對終端設(shè)備101、102、103上顯示的動畫提供支持的后臺服務(wù)器。后臺服務(wù)器可以對接收到的動畫生成請求等數(shù)據(jù)進(jìn)行分析等處理,并將處理結(jié)果(例如動畫數(shù)據(jù))反饋給終端設(shè)備。
需要說明的是,本申請實施例所提供的用于生成動畫的方法可以由服務(wù)器105執(zhí)行,也可以由終端設(shè)備101、102、103執(zhí)行,也可以由服務(wù)器105和終端設(shè)備101、102、103分別執(zhí)行不同的步驟;相應(yīng)地,用于生成動畫的裝置可以設(shè)置于服務(wù)器105中,也可以設(shè)置于終端設(shè)備101、102、103,也可以在服務(wù)器105和終端設(shè)備101、102、103設(shè)置不同的單元。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
繼續(xù)參考圖2,示出了根據(jù)本申請的用于生成動畫數(shù)據(jù)的方法的一個實施例的流程200。所述的用于生成動畫數(shù)據(jù)的方法,包括以下步驟:
步驟201,獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù)。
在本實施例中,待生成的目標(biāo)動畫是用戶想得到的動畫,該目標(biāo)動畫可以由至少一個目標(biāo)動畫片段組成。針對各個目標(biāo)動畫片段,生成動畫數(shù)據(jù)的方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器或終端設(shè)備)可以通過各種方法獲取目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù)。當(dāng)電子設(shè)備為服務(wù)器時,服務(wù)器可以獲取終端設(shè)備發(fā)送的目標(biāo)運(yùn)動參數(shù),也可以獲取預(yù)先存儲在服務(wù)器本地的目標(biāo)運(yùn)動參數(shù),還可以從其他服務(wù)器獲取該參數(shù);當(dāng)電子設(shè)備為終端設(shè)備時,終端設(shè)備通??梢詮挠脩籼帿@取該目標(biāo)運(yùn)動參數(shù),也可以從其他設(shè)備獲取該參數(shù)。目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù),可以體現(xiàn)目標(biāo)動畫片段中的物體運(yùn)動時的運(yùn)動狀態(tài)。目標(biāo)運(yùn)動參數(shù)可以是單個參數(shù),也可以是多個參數(shù)。例如,行走動畫的目標(biāo)動畫片段中的目標(biāo)運(yùn)動參數(shù)可以包括前進(jìn)速度、側(cè)向速度和轉(zhuǎn)彎速度。
步驟202,將目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型。
在本實施例中,基于步驟201中得到的目標(biāo)運(yùn)動參數(shù),電子設(shè)備可以將其映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量,再將該向量輸入至該徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型中。其中,徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型是通過樣本動畫片段序列中的各個樣本動畫片段進(jìn)行訓(xùn)練得到的。實踐中,在將映射所形成的向量輸入徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型之前,可以預(yù)先對向量進(jìn)行范圍約束。即,在向量超出訓(xùn)練數(shù)據(jù)的范圍時,對向量進(jìn)行約束調(diào)整,從而保證輸入至徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的向量不超出訓(xùn)練數(shù)據(jù)的范圍。
步驟203,將徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù)。
在本實施例中,基于步驟202輸入至徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,該徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型可以輸出對應(yīng)的向量,電子設(shè)備可以將所輸出的向量中的各個分量確定融合權(quán)重系數(shù),該權(quán)重融合系數(shù)用于確定后續(xù)對樣本動畫片段序列中各個樣本動畫片段融合得到目標(biāo)動畫片段時使用到的樣本動畫片段以及各自的使用比例。
步驟204,按照融合權(quán)重系數(shù),使用樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù)。
在本實施例中,基于步驟203中得到的融合權(quán)重系數(shù),電子設(shè)備可以使用樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,融合得到的動畫數(shù)據(jù)即可作為對應(yīng)的目標(biāo)動畫片段的動畫數(shù)據(jù)。
步驟205,基于至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成目標(biāo)動畫的動畫數(shù)據(jù)。
在本實施例中,基于步驟204得到的目標(biāo)動畫片段的動畫數(shù)據(jù),電子設(shè)備可以按照順序?qū)Ω鱾€目標(biāo)動畫片段進(jìn)行拼接,從而得到整個目標(biāo)動畫的動畫數(shù)據(jù)。
在本實施例的一些可選實現(xiàn)方式中,樣本動畫片段序列中的各個樣本動畫片段為骨骼動畫。骨骼動畫由一根根互相作用連接的“骨頭”組成,通過控制這些骨骼的位置、旋轉(zhuǎn)方向和大小,并在這些骨頭的位置附著皮膚數(shù)據(jù),即可渲染成所需的可見動畫形象。在骨骼動畫中,骨骼按照動畫角色的特點(diǎn)形成一個層次結(jié)構(gòu),即骨骼結(jié)構(gòu)。骨骼結(jié)構(gòu)就是一系列的骨頭相結(jié)合形成的骨層級,這些骨骼按照父子關(guān)系是以樹狀結(jié)構(gòu)組織起來的,形成角色模型的整個骨骼框架。位于樹根處的骨頭稱為根骨骼,它是形成骨骼結(jié)構(gòu)的關(guān)鍵點(diǎn)。而其他所有的骨骼被稱為子骨骼或者兄弟骨骼,它們都附屬于根骨骼,都直接或間接連接到根骨骼上。換句話說,每一個骨骼相對于其下一層級的骨骼來說均為其父骨骼。骨骼動畫中一般每塊骨骼都帶有兩個矩陣,一個是初始矩陣,用于表示骨骼的初始位置;另一個是變換矩陣,它可以反映出骨骼的變換情況;通過初始矩陣和變化矩陣相乘計算可以得到該骨骼的最終矩陣,主要用于對骨骼進(jìn)行變換。通常,初始矩陣、變換矩陣以及最終矩陣既可以通過相對矩陣進(jìn)行表征,也可以通過絕對矩陣進(jìn)行表征。其中,絕對矩陣是當(dāng)前骨骼相對于世界的矩陣,相對矩陣是當(dāng)前骨骼相對于其父骨骼的矩陣。當(dāng)前骨骼的絕對矩陣可以通過其相對矩陣與父骨骼的絕對矩陣相乘得到,而其父骨骼絕對矩陣可以通過該父骨骼的相對矩陣與上一層骨骼的絕對矩陣相乘得到。因此,以上述方式迭代相乘直到根骨骼,即可以計算得到當(dāng)前骨骼的絕對矩陣。相鄰的骨骼由關(guān)節(jié)連在一起,可以做相對的運(yùn)動。當(dāng)骨骼之間發(fā)生旋轉(zhuǎn)時,組成動畫角色的骨骼就可以做出不同的動作,從而實現(xiàn)不同的動畫效果。相對于頂點(diǎn)動畫,骨骼動畫只需要存儲骨骼變換數(shù)據(jù),不需要在每一幀中存儲各個頂點(diǎn)的數(shù)據(jù),因此使用骨骼動畫可以節(jié)省許多存儲空間。
在本實施例的一些可選實現(xiàn)方式中,上述方法還包括訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的步驟。該訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的步驟具體包括以下過程:
首先,針對樣本動畫片段序列中各個樣本動畫片段,將樣本動畫片段的運(yùn)動參數(shù)映射為第一向量,并根據(jù)樣本動畫片段在樣本動畫片段序列中的次序生成第二向量。其中,樣本動畫片段序列包括至少一個樣本動畫片段,且各個樣本動畫片段可以有對應(yīng)的序號,例如樣本動畫片段序列包括樣本動畫片段1、樣本動畫片段2……樣本動畫片段n。在將樣本動畫片段的運(yùn)動參數(shù)映射為第一向量時,動畫參數(shù)可以包括至少一個物理量,將當(dāng)前運(yùn)動的各個物理量的值作為分量,即可形成第一向量。以行走動畫為例,行走動畫的運(yùn)動參數(shù)可以包括前進(jìn)速度、側(cè)向速度以及轉(zhuǎn)彎速度等三個物理量,則樣本動畫片段所映射成的第一向量包括分別與前進(jìn)速度、側(cè)向速度以及轉(zhuǎn)彎速度的值所對應(yīng)的三個分量,即第一向量的維度為3。需要說明的是,樣本動畫片段中的運(yùn)動參數(shù)通常需要與目標(biāo)動畫中的目標(biāo)運(yùn)動參數(shù)保持一致。
在根據(jù)樣本動畫片段在動畫片段序列中的次序生成第二向量,第二向量的維度是樣本動畫片段序列中動畫片段的個數(shù),且第二向量中與樣本動畫片段的次序?qū)?yīng)的分量上置1,其它分量置0。例如,當(dāng)樣本動畫片段序列包括樣本動畫片段1、樣本動畫片段2……樣本動畫片段n時,樣本動畫片段的數(shù)量為n,則各個樣本動畫片段對應(yīng)的第二向量的維度為n,即第二向量可以用(X1,X2……Xn)的形式表示。對于樣本動畫片段1,由于其序號為1,則在X1分量上置1,X2……Xn則置為0,即樣本動畫片段1對應(yīng)的第二向量是(1,0……0)。對應(yīng)的,樣本動畫片段2對應(yīng)的第二向量是(0,1,0……0),樣本動畫片段n對應(yīng)的第二向量是(0,0……0,1)。
其次,將第一向量的維度確定為待訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入層節(jié)點(diǎn)個數(shù),將樣本動畫片段序列中動畫片段的個數(shù)確定為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層的節(jié)點(diǎn)個數(shù)以及輸出層的節(jié)點(diǎn)個數(shù)。由于后續(xù)訓(xùn)練中需要將樣本動畫片段對應(yīng)的第一向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入以及將樣本動畫片段對應(yīng)的第二向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸出,因此在確定所使用的的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型規(guī)模時,可以將第一向量的維度確定為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入層節(jié)點(diǎn)個數(shù),并將樣本動畫片段序列中動畫片段的個數(shù)確定為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層的節(jié)點(diǎn)個數(shù)以及輸出層的節(jié)點(diǎn)個數(shù),以使得在徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的規(guī)模與第一向量以及第二向量的大小相匹配??蛇x的,上述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層可以采用高斯核函數(shù)。
最后,將樣本動畫片段對應(yīng)的第一向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入,并將樣本動畫片段對應(yīng)的第二向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸出,對徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。由于徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的規(guī)模與第一向量以及第二向量的大小相匹配,可以順利利用樣本動畫片段對應(yīng)的第一向量和第二向量對徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,每次訓(xùn)練是將同一個樣本動畫片段對應(yīng)的第一向量和第二向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入與輸出。在訓(xùn)練過程中,采用梯度下降的方法,訓(xùn)練中間隱含層與輸出層之間的連接權(quán)值以及隱含層的寬度。即,在訓(xùn)練的過程中,由于輸入和輸出是確定的,通過確定的輸入和輸出來不斷調(diào)整中間隱含層的函數(shù)。
在本實施例的一些可選的實現(xiàn)方式中,樣本動畫片段序列中的各個樣本動畫片段已預(yù)先根據(jù)關(guān)鍵時間點(diǎn)劃分為至少一個時間片段;以及步驟204具體包括:首先,按照各個樣本動畫片段的融合權(quán)重系數(shù),對各個樣本動畫片段中的時間片段的時長進(jìn)行加權(quán)平均,以確定目標(biāo)動畫片段中時間片段的時長;其次,將各個樣本動畫片段的時間片段的時長調(diào)整為與目標(biāo)動畫片段中的時間片段一致;最后,針對調(diào)整后的各個樣本動畫片段,按照融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,得到目標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。
在該實現(xiàn)方式中,關(guān)鍵時間點(diǎn)可以根據(jù)樣本動畫片段所表示的動作而具體確定。例如,以行走動畫為例,由于行走動作在每次換腳前后姿態(tài)會有明顯的變化,而兩次換腳之間的姿態(tài)則呈漸進(jìn)變化,因此行走動畫的關(guān)鍵時間點(diǎn)可以是每次換腳時對應(yīng)的動畫幀。假設(shè),行走動畫對應(yīng)的行走動作包括以左腳踏地的第一步、以右腳踏地的第二步、以左腳踏地的第三步、以右腳踏地的第四步,則樣本動畫片段所劃分成的至少一個時間片段對應(yīng)的動作分別是以換腳時間點(diǎn)分成的第一步、第二步、第三步和第四步。
對應(yīng)的,在步驟204進(jìn)行融合時,也是使用各個動畫片段對應(yīng)的時間片段的骨骼參數(shù)分別計算目標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。首先,由于各個樣本動畫片段中時間片段的時長不一定相同,因此首先需要按照一定方式確定目標(biāo)動畫片段中時間片段的時長。本實現(xiàn)方式中,利用上述融合權(quán)重系數(shù),對各個樣本動畫片段中的時間片段的時長進(jìn)行加權(quán)平均,以確定目標(biāo)動畫片段中時間片段的時長。之后,由于后續(xù)融合過程中需要對各個時間片段內(nèi)的相對應(yīng)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,而各個樣本動畫片段中時間片段的時長不一定相同,因此需要首先將各個樣本動畫片段中時間片段的時長調(diào)整為與目標(biāo)動畫片段中的時間片段一致。最后,由于調(diào)整后的各個樣本動畫片段的時間片段的時長與目標(biāo)動畫片段中的時間片段一致,因此可以采用調(diào)整后樣本動畫片段的時間片段的對應(yīng)的動畫幀的骨骼參數(shù)進(jìn)行融合操作,得到標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。
在上一實現(xiàn)方式的一些可選的實現(xiàn)方式中,按照融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值可以包括:對動畫幀中各個骨骼的旋轉(zhuǎn)參數(shù)執(zhí)行球面插值;對動畫幀中根骨骼的位置參數(shù)執(zhí)行線性插值。對于骨骼動畫,每一個動畫幀的骨骼參數(shù)可以包括根骨骼的位置參數(shù)以及各個骨骼的旋轉(zhuǎn)參數(shù)。其中,骨骼的旋轉(zhuǎn)參數(shù)中,根骨骼的旋轉(zhuǎn)參數(shù)可以通過根骨骼的絕對矩陣來表示,而非根骨骼的運(yùn)動多為相對于其父骨骼的旋轉(zhuǎn)運(yùn)動,其旋轉(zhuǎn)參數(shù)可以通過該骨骼的相對矩陣來表示。通常,在骨骼動畫中的動畫幀中,位置參數(shù)可以用三維向量表示,旋轉(zhuǎn)參數(shù)可以用四維向量表示,因此在對位置參數(shù)進(jìn)行融合插值時,對于位置參數(shù)可以采用線性插值,對于旋轉(zhuǎn)參數(shù)可以采用球面插值方法。
在本實施例的一些可選實現(xiàn)方式中,在針對調(diào)整后的各個樣本動畫片段,按照融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行插值操作之前,步驟204還包括:首先,獲取各個樣本動畫片段與目標(biāo)動畫片段的根骨骼的水平朝向差和/或水平位置差;之后,調(diào)整各個樣本動畫片段的根骨骼的水平朝向和/或水平位置,以消除水平朝向差和/或水平位置差。在各個樣本動畫片段中,人物在根骨骼的水平朝向和/或水平位置之間以及與目標(biāo)動畫片段中可能存在偏差,可以對動畫片段中的根骨骼的水平朝向和/或水平位置差進(jìn)行調(diào)整,以使其與目標(biāo)動畫片段中水平朝向差和/或水平位置均保持一致。通常,水平朝向差和/或水平位置差可以以各個樣本動畫片段中起始幀中根骨骼的水平朝向和/或水平位置為準(zhǔn)進(jìn)行計算即可,樣本動畫片段中的各個動畫幀中的根骨骼根據(jù)計算出的調(diào)整參數(shù)進(jìn)行整體調(diào)整即可。
在本實施例的一些可選實現(xiàn)方式中,步驟205具體包括:獲取當(dāng)前目標(biāo)動畫片段的第一個動畫幀的骨骼參數(shù)以及前一目標(biāo)動畫片段的最后一個動畫幀的骨骼參數(shù);根據(jù)兩個動畫幀的骨骼參數(shù),通過插值方法計算待插入兩個動畫幀之間的中間動畫幀的骨骼參數(shù);在兩個動畫幀之間插入中間動畫幀,以生成目標(biāo)動畫的動畫數(shù)據(jù)。
由于各個目標(biāo)動畫片段的動畫數(shù)據(jù)的生成彼此具有一定的獨(dú)立性,對于目標(biāo)動畫中相鄰的兩個目標(biāo)動畫片段,前一個目標(biāo)動畫片段最后一個動畫幀與后一個目標(biāo)動畫片段的第一個動畫幀之間骨骼參數(shù)的變化很可能缺乏平滑性,使得目標(biāo)動畫的動作在對應(yīng)的時間點(diǎn)會出現(xiàn)動作跳變,降低所呈現(xiàn)的動作的逼真性?;诖耍緦崿F(xiàn)方式通過插值方法計算待插入兩個動畫幀之間的中間動畫幀的骨骼參數(shù),并在兩個動畫幀之間插入該中間動畫幀,從而增強(qiáng)動畫幀之間變化的平滑性,以減弱所呈現(xiàn)動作的跳變。
本申請的上述實施例提供的方法可以利用樣本動畫片段序列以及樣本動畫片段序列生成的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型即可根據(jù)目標(biāo)運(yùn)動參數(shù)得到目標(biāo)動畫片段,最終形成目標(biāo)動畫,實現(xiàn)了動畫數(shù)據(jù)的自動生成,減小了人工設(shè)計動畫的壓力,也減小了數(shù)據(jù)存儲壓力。
進(jìn)一步參考圖3,其示出了用于生成動畫數(shù)據(jù)的方法的又一個實施例的流程300。該用于生成動畫數(shù)據(jù)的方法的流程300,包括以下步驟:
步驟301,獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù)。
在本實施例中,步驟301的具體處理可以參考圖2對應(yīng)實施例的步驟201。
步驟302,將目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型。
在本實施例中,步驟302的具體處理可以參考圖2對應(yīng)實施例的步驟202。
步驟303,將徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù)。
在本實施例中,步驟303的具體處理可以參考圖2對應(yīng)實施例的步驟203。
步驟304,按照融合權(quán)重系數(shù),使用樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù)。
在本實施例中,在本實施例中,步驟304的具體處理可以參考圖2對應(yīng)實施例的步驟204。
步驟305,基于至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成目標(biāo)動畫的動畫數(shù)據(jù)。
在本實施例中,步驟305的具體處理可以參考圖2對應(yīng)實施例的步驟205。
步驟306,針對目標(biāo)動畫片段的時間片段中的各個動畫幀,獲取動畫幀中待修正骨骼的目標(biāo)位置參數(shù)。
以行走動畫為例,在角色兩次換腳之間的時間片段內(nèi),角色的一只腳應(yīng)當(dāng)是固定在一開始踩住的地面位置。由于目標(biāo)動畫片段是通過融合操作形成的,所呈現(xiàn)的動作中這只腳可能在上述時間片段內(nèi)發(fā)生位移,出現(xiàn)滑步現(xiàn)象,從而影響目標(biāo)動畫所呈現(xiàn)動作的逼真性。因此,有必要對其進(jìn)行修正。
在本實施例中,電子設(shè)備可以在根據(jù)用戶操作確定動畫片段各個動畫幀中需要修正的骨骼后,獲取將待修正骨骼需要修正到的目標(biāo)位置參數(shù)。該目標(biāo)位置參數(shù)可以由用戶進(jìn)行設(shè)置,也可以根據(jù)預(yù)先配置的規(guī)則自動獲取。
步驟307,確定待修正骨骼的當(dāng)前位置參數(shù)與目標(biāo)位置參數(shù)之間的差值。
在本實施例中,針對待修復(fù)骨骼,電子設(shè)備可以基于步驟306所獲取的目標(biāo)位置參數(shù)以及通過前述步驟所生成的目標(biāo)動畫片段中該待修復(fù)骨骼的當(dāng)前位置參數(shù),計算出當(dāng)前位置參數(shù)與目標(biāo)位置參數(shù)之間的差值,以用作后續(xù)修正過程的參數(shù)。
步驟308,使用反向動力學(xué)迭代調(diào)整待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),以修正差值。
在本實施例中,基于步驟307所得到的差值,電子設(shè)備可以通過反向動力學(xué)迭代調(diào)整待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),對差值進(jìn)行修正,使待修正骨骼在這一過程中逐漸逼近目標(biāo)位置。其中,相關(guān)聯(lián)的骨骼可以是用戶設(shè)置的,也可以根據(jù)待修正骨骼以及一定的規(guī)則確定的。例如,在對上述滑步現(xiàn)象進(jìn)行調(diào)整時,在調(diào)整腳的位置時,同時需要保持軀干(根骨骼)不動,因此需要調(diào)整旋轉(zhuǎn)參數(shù)的骨骼包括腳對應(yīng)的骨骼(待修正骨骼)、小腿和大腿分別對應(yīng)的兩個骨骼(相關(guān)聯(lián)的骨骼)。由于調(diào)整骨骼的旋轉(zhuǎn)參數(shù)的最終目標(biāo)是待修正骨骼的位置,因此可以通過反向動力學(xué)方法,從與修正目標(biāo)關(guān)系最緊密的待修正骨骼出發(fā),向當(dāng)前骨骼的父骨骼方向進(jìn)行迭代調(diào)整,最終完成對上述差值的修正。反向動力學(xué)的具體算法,這里不再贅述。
需要說明的是,步驟306到步驟308,通??梢栽诓襟E304之后執(zhí)行,也可以在步驟305之后執(zhí)行。
在本實施例的一些可選實現(xiàn)方式中,上述步驟308可以包括:獲取預(yù)先保存的、對上一動畫幀的待修正骨骼使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)的調(diào)整值;將調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值。
在該實現(xiàn)方式中,可以將通過反向動力學(xué)調(diào)整對上一動畫幀中的骨骼旋轉(zhuǎn)參數(shù)的調(diào)整值作為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值,由于通過前述步驟得到的動畫片段中需要修正的時間片段內(nèi)相鄰的動畫幀之間骨骼參數(shù)差異較小,反向動力學(xué)上一動畫幀中的骨骼旋轉(zhuǎn)參數(shù)的調(diào)整值出發(fā),可以通過較小的迭代次數(shù)即可完成對當(dāng)前動畫幀中待修正骨骼的位置參數(shù)的修正,提高了計算效率,減少了所耗用的時間。
在上一實現(xiàn)方式的一些可選實現(xiàn)方式中,在將調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值之前,上述方法還包括:對調(diào)整值進(jìn)行衰減。通常,時間片段內(nèi)相鄰的動畫幀之間的骨骼旋轉(zhuǎn)參數(shù)存在一定差異,因此可以根據(jù)該規(guī)律對上一動畫幀的調(diào)整值進(jìn)行一定比率的衰減,從而可以進(jìn)一步提高動畫的穩(wěn)定性。
從圖3中可以看出,與圖2對應(yīng)的實施例相比,本實施例中的用于生成動畫數(shù)據(jù)的方法的流程300增加了對動畫幀中骨骼的位置進(jìn)行修正的步驟,進(jìn)一步提高了所生成的動畫數(shù)據(jù)的逼真性。
進(jìn)一步參考圖4,作為對上述各圖所示方法的實現(xiàn),本申請?zhí)峁┝艘环N用于生成動畫數(shù)據(jù)的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖4所示,本實施例所述的用于生成動畫數(shù)據(jù)的裝置400包括:獲取單元401、輸入單元402、確定單元403、融合單元404和生成單元405。其中,獲取單元401用于獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù);輸入單元402用于將目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,其中徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型是通過樣本動畫片段序列中的各個樣本動畫片段進(jìn)行訓(xùn)練得到的;確定單元403用于將徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù);融合單元404用于按照融合權(quán)重系數(shù),使用樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù);而生成單元405用于基于至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成目標(biāo)動畫的動畫數(shù)據(jù)。
在本實施例中,獲取單元401、輸入單元402、確定單元403、融合單元404和生成單元405的具體處理可以分別參考圖2對應(yīng)實施例中的步驟201、步驟202、步驟203、步驟204和步驟205,這里不再贅述。
在本實施例的一些可選實現(xiàn)方式中,樣本動畫片段序列中的各個樣本動畫片段為骨骼動畫。
在本實施例的一些可選實現(xiàn)方式中,裝置400還包括用于訓(xùn)練徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練單元(未示出),該訓(xùn)練單元具體用于:針對樣本動畫片段序列中各個樣本動畫片段,將樣本動畫片段的運(yùn)動參數(shù)映射為第一向量,并根據(jù)樣本動畫片段在樣本動畫片段序列中的次序生成第二向量,其中,第二向量的維度是樣本動畫片段序列中樣本動畫片段的個數(shù),且第二向量中與樣本動畫片段的次序?qū)?yīng)的分量上置1,其它分量置0;將第一向量的維度確定為待訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入層節(jié)點(diǎn)個數(shù),將樣本動畫片段序列中樣本動畫片段的個數(shù)確定為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的中間隱含層的節(jié)點(diǎn)個數(shù)以及輸出層的節(jié)點(diǎn)個數(shù);將樣本動畫片段對應(yīng)的第一向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入,并將樣本動畫片段對應(yīng)的第二向量作為徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸出,對徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
在本實施例的一些可選實現(xiàn)方式中,樣本動畫片段序列中的各個樣本動畫片段已預(yù)先根據(jù)關(guān)鍵時間點(diǎn)劃分為至少一個時間片段;以及融合單元404,包括:時長確定子單元(未示出),用于按照各個樣本動畫片段的融合權(quán)重系數(shù),對各個樣本動畫片段中的時間片段的時長進(jìn)行加權(quán)平均,以確定目標(biāo)動畫片段中時間片段的時長;時長調(diào)整子單元(未示出),用于將各個樣本動畫片段的時間片段的時長調(diào)整為與目標(biāo)動畫片段中的時間片段一致;融合子單元(未示出),用于針對調(diào)整后的各個樣本動畫片段,按照融合權(quán)重系數(shù)對各個時間片段內(nèi)的動畫幀的骨骼參數(shù)執(zhí)行融合插值,得到目標(biāo)動畫片段中相應(yīng)時間片段內(nèi)的動畫幀的骨骼參數(shù)。
在本實施例的一些可選實現(xiàn)方式中,融合子單元進(jìn)一步用于以下至少一項:對動畫幀中各個骨骼的旋轉(zhuǎn)參數(shù)執(zhí)行球面插值;對動畫幀中根骨骼的位置參數(shù)執(zhí)行線性插值。
在本實施例的一些可選實現(xiàn)方式中,融合單元404還包括配準(zhǔn)子單元(未示出),用于:獲取各個樣本動畫片段與目標(biāo)動畫片段的根骨骼的水平朝向差和/或水平位置差;調(diào)整各個樣本動畫片段的根骨骼的水平朝向和/或水平位置,以消除水平朝向差和/或水平位置差。
在本實施例的一些可選實現(xiàn)方式中,生成單元405包括:獲取子單元(未示出),用于獲取當(dāng)前目標(biāo)動畫片段的第一個動畫幀的骨骼參數(shù)以及前一目標(biāo)動畫片段的最后一個動畫幀的骨骼參數(shù);計算子單元(未示出),用于根據(jù)兩個動畫幀的骨骼參數(shù),通過插值方法計算待插入兩個動畫幀之間的中間動畫幀的骨骼參數(shù);插入子單元(未示出),用于在兩個動畫幀之間插入中間動畫幀,以生成目標(biāo)動畫的動畫數(shù)據(jù)。
在本實施例的一些可選實現(xiàn)方式中,裝置400還包括:位置參數(shù)獲取單元(未示出),用于針對目標(biāo)動畫片段的時間片段中的各個動畫幀,獲取動畫幀中待修正骨骼的目標(biāo)位置參數(shù);差值確定單元(未示出),用于確定待修正骨骼的當(dāng)前位置參數(shù)與目標(biāo)位置參數(shù)之間的差值;調(diào)整單元(未示出),用于使用反向動力學(xué)迭代調(diào)整待修正骨骼以及相關(guān)聯(lián)的骨骼的旋轉(zhuǎn)參數(shù),以修正差值。
在本實施例的一些可選實現(xiàn)方式中,調(diào)整單元包括:調(diào)整值獲取子單元(未示出),用于獲取預(yù)先保存的、對上一動畫幀的待修正骨骼使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)的調(diào)整值;設(shè)置子單元(未示出),用于將調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值。
在本實施例的一些可選實現(xiàn)方式中,調(diào)整單元還包括:衰減子單元(未示出),用于在將調(diào)整值設(shè)置為對當(dāng)前動畫幀使用反向動力學(xué)迭代調(diào)整骨骼的旋轉(zhuǎn)參數(shù)時的初始調(diào)整值之前,對調(diào)整值進(jìn)行衰減。
下面參考圖5,其示出了適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機(jī)系統(tǒng)500的結(jié)構(gòu)示意圖。
如圖5所示,計算機(jī)系統(tǒng)500包括中央處理單元(CPU)501,其可以根據(jù)存儲在只讀存儲器(ROM)502中的程序或者從存儲部分508加載到隨機(jī)訪問存儲器(RAM)503中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 503中,還存儲有系統(tǒng)500操作所需的各種程序和數(shù)據(jù)。CPU 501、ROM 502以及RAM 503通過總線504彼此相連。輸入/輸出(I/O)接口505也連接至總線504。
以下部件連接至I/O接口505:包括鍵盤、鼠標(biāo)等的輸入部分506;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚(yáng)聲器等的輸出部分507;包括硬盤等的存儲部分508;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分509。通信部分509經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器510也根據(jù)需要連接至I/O接口505。可拆卸介質(zhì)511,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器510上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分508。
特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機(jī)軟件程序。例如,本公開的實施例包括一種計算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計算機(jī)程序,所述計算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機(jī)程序可以通過通信部分509從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)511被安裝。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括獲取單元、輸入單元、確定單元、融合單元和生成單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對該單元本身的限定,例如,獲取單元還可以被描述為“獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù)的單元”。
作為另一方面,本申請還提供了一種非易失性計算機(jī)存儲介質(zhì),該非易失性計算機(jī)存儲介質(zhì)可以是上述實施例中所述裝置中所包含的非易失性計算機(jī)存儲介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計算機(jī)存儲介質(zhì)。上述非易失性計算機(jī)存儲介質(zhì)存儲有一個或者多個程序,當(dāng)所述一個或者多個程序被一個設(shè)備執(zhí)行時,使得所述設(shè)備:獲取待生成的目標(biāo)動畫中至少一個目標(biāo)動畫片段的目標(biāo)運(yùn)動參數(shù);將所述目標(biāo)運(yùn)動參數(shù)映射為與預(yù)先訓(xùn)練的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型的輸入相匹配的向量后輸入至所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,其中所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型是通過樣本動畫片段序列中的各個樣本動畫片段進(jìn)行訓(xùn)練得到的;將所述徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型所輸出的向量中的各個分量確定為所述樣本動畫片段序列中各個樣本動畫片段的融合權(quán)重系數(shù);按照所述融合權(quán)重系數(shù),使用所述樣本動畫片段序列中各個樣本動畫片段的動畫數(shù)據(jù)進(jìn)行融合,得到目標(biāo)動畫片段的動畫數(shù)據(jù);基于所述至少一個目標(biāo)動畫片段的動畫數(shù)據(jù),生成所述目標(biāo)動畫的動畫數(shù)據(jù)。
以上描述僅為本申請的較佳實施例以及對所運(yùn)用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。