亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

骨骼動畫數(shù)據(jù)的處理方法及裝置與流程

文檔序號:12472174閱讀:249來源:國知局
骨骼動畫數(shù)據(jù)的處理方法及裝置與流程

本發(fā)明涉及計算機(jī)領(lǐng)域,具體而言,涉及一種骨骼動畫數(shù)據(jù)的處理方法及裝置。



背景技術(shù):

目前,電子游戲的種類繁多,其中較為流行的種類便屬于動作角色扮演游戲。動作角色扮演游戲是指將動作游戲、角色扮演游戲和冒險游戲的要素合并的作品。而動作角色扮演游戲中極具標(biāo)志性的要素即為游戲角色具備豐富的攻擊或防御技能,而每個技能又會具備絢麗的特效及其對應(yīng)的角色流暢的動畫表現(xiàn)。

隨著動作角色扮演游戲的飛速發(fā)展,游戲角色的技能表現(xiàn)也愈加復(fù)雜,進(jìn)而出現(xiàn)部分需要一邊跑動一邊施放的技能。換言之,游戲角色的下半身需要繼續(xù)維持跑步動畫,而上半身則需要播放技能動畫,繼而對游戲角色技能動畫的播放提出了更高的要求。相關(guān)技術(shù)中所提供的類似游戲均需要制作兩套動畫,其一是游戲角色一邊跑步一邊施放技能的動畫,其二則是游戲角色站立施放技能的動畫。然后在這兩套動畫之間根據(jù)游戲角色當(dāng)前是否處于跑步狀態(tài)而進(jìn)行靈活切換。

然而,上述操作方式存在如下缺陷:如果游戲角色一直處于跑動中施法狀態(tài),那么當(dāng)技能施放結(jié)束的時候,需要切換到跑步動畫,此時下半身的腿部跑步動畫與之前的跑步動畫之間會產(chǎn)生突變,進(jìn)而造成跑動過程中產(chǎn)生不和諧的“踢腿”現(xiàn)象。舉例說明:假設(shè)游戲角色當(dāng)前處于一邊跑步一邊射箭的狀態(tài),那么上半身的動作可以表現(xiàn)為游戲角色在射箭,而下半身的動作則可以表現(xiàn)為游戲角色在跑步,因此,上述“之前的跑步動畫”便是指下半身的動作表現(xiàn)為游戲角色在跑步。另假設(shè)游戲角色的跑步動畫表現(xiàn)為先邁出右腿再邁出左腿,然后一直循環(huán)。當(dāng)游戲角色一邊跑動一邊施法時,腿上的動作恰好對應(yīng)右腿落下準(zhǔn)備邁出左腿的時機(jī),施法結(jié)束。此時如果需要將游戲角色全身動作統(tǒng)一切換成新的跑步動作,但新的跑步動作設(shè)定先邁右腿的,這樣,游戲玩家在游戲畫面中便會看到游戲角色剛落下的右腿再次邁出,由此變成“踢腿”。在游戲玩家對游戲品質(zhì)要求越來越高的今天,是難以被游戲玩家所接受的。

針對上述的問題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種骨骼動畫數(shù)據(jù)的處理方法及裝置,以至少解決相關(guān)技術(shù)中游戲角色在不同狀態(tài)之間切換時易產(chǎn)生動畫突變,從而導(dǎo)致游戲畫面不和諧,影響用戶體驗的技術(shù)問題。

根據(jù)本發(fā)明實(shí)施例的一個方面,提供了一種骨骼動畫數(shù)據(jù)的處理方法,包括:

獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,其中,第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài);在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫。

可選地,在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫包括:在保持第一權(quán)重值與第二權(quán)重值之和為固定值的情況下,在預(yù)設(shè)時長內(nèi)逐漸縮小第一權(quán)重值并同步增大第二權(quán)重值,直至第一權(quán)重值為0且第二權(quán)重值為固定值時,停止對第一權(quán)重值與第二權(quán)重值進(jìn)行調(diào)整,其中,第一權(quán)重值對應(yīng)于第一骨骼動畫數(shù)據(jù)集合,第二權(quán)重值對應(yīng)于第二骨骼動畫數(shù)據(jù)集合;根據(jù)實(shí)時調(diào)整的第一權(quán)重值和第二權(quán)重值,執(zhí)行加權(quán)平均運(yùn)算,確定待輸出動畫。

可選地,當(dāng)初始狀態(tài)為移動狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前移動動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的上半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的上半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為靜止?fàn)顟B(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個靜止動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的全身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為同時處于技能釋放狀態(tài)和移動狀態(tài),待切換狀態(tài)為同時處于技能釋放狀態(tài)和停止移動狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的下半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的下半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為技能釋放狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)結(jié)束時刻狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的與技能釋放狀態(tài)結(jié)束時刻狀態(tài)對應(yīng)的骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個釋放技能過程中持續(xù)動作對應(yīng)的權(quán)重值與當(dāng)前釋放技能結(jié)束時待持續(xù)動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種骨骼動畫數(shù)據(jù)的處理裝置,包括:

獲取模塊,用于獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,其中,第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài);處理模塊,用于在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫。

可選地,處理模塊包括:調(diào)整單元,用于在保持第一權(quán)重值與第二權(quán)重值之和為固定值的情況下,在預(yù)設(shè)時長內(nèi)逐漸縮小第一權(quán)重值并同步增大第二權(quán)重值,直至第一權(quán)重值為0且第二權(quán)重值為固定值時,停止對第一權(quán)重值與第二權(quán)重值進(jìn)行調(diào)整,其中,第一權(quán)重值對應(yīng)于第一骨骼動畫數(shù)據(jù)集合,第二權(quán)重值對應(yīng)于第二骨骼動畫數(shù)據(jù)集合;處理單元,用于根據(jù)實(shí)時調(diào)整的第一權(quán)重值和第二權(quán)重值,執(zhí)行加權(quán)平均運(yùn)算,確定待輸出動畫。

可選地,當(dāng)初始狀態(tài)為移動狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前移動動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的上半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的上半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為靜止?fàn)顟B(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個靜止動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的全身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為同時處于技能釋放狀態(tài)和移動狀態(tài),待切換狀態(tài)為同時處于技能釋放狀態(tài)和停止移動狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的下半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的下半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為技能釋放狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)結(jié)束時刻狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的與技能釋放狀態(tài)結(jié)束時刻狀態(tài)對應(yīng)的骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個釋放技能過程中持續(xù)動作對應(yīng)的權(quán)重值與當(dāng)前釋放技能結(jié)束時待持續(xù)動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫。

在本發(fā)明實(shí)施例中,采用獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,該第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),該第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài)的方式,通過在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫,達(dá)到了游戲角色在不同狀態(tài)之間切換時,避免出現(xiàn)動畫突變的目的,從而實(shí)現(xiàn)了在不同狀態(tài)之間切換時,不同動作之間能夠平滑過渡、完美銜接的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中游戲角色在不同狀態(tài)之間切換時易產(chǎn)生動畫突變,從而導(dǎo)致游戲畫面不和諧,影響用戶體驗的技術(shù)問題。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實(shí)施例的骨骼動畫數(shù)據(jù)的處理方法的流程圖;

圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的骨骼動畫數(shù)據(jù)處理的樹形結(jié)構(gòu)示意圖;

圖3是根據(jù)本發(fā)明實(shí)施例的骨骼動畫數(shù)據(jù)的處理裝置的結(jié)構(gòu)框圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

根據(jù)本發(fā)明實(shí)施例,提供了一種骨骼動畫數(shù)據(jù)的處理方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

圖1是根據(jù)本發(fā)明實(shí)施例的骨骼動畫數(shù)據(jù)的處理方法的流程圖,如圖1所示,該方法包括如下步驟:

步驟S12,獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,其中,第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài);

步驟S14,在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫。

通過上述步驟,可以采用獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,該第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),該第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài)的方式,通過在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫,達(dá)到了游戲角色在不同狀態(tài)之間切換時,避免出現(xiàn)動畫突變的目的,從而實(shí)現(xiàn)了在不同狀態(tài)之間切換時,不同動作之間能夠平滑過渡、完美銜接的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中游戲角色在不同狀態(tài)之間切換時易產(chǎn)生動畫突變,從而導(dǎo)致游戲畫面不和諧,影響用戶體驗的技術(shù)問題。

可選地,在步驟S14中,在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫可以包括以下執(zhí)行步驟:

步驟S141,在保持第一權(quán)重值與第二權(quán)重值之和為固定值的情況下,在預(yù)設(shè)時長內(nèi)逐漸縮小第一權(quán)重值并同步增大第二權(quán)重值,直至第一權(quán)重值為0且第二權(quán)重值為固定值時,停止對第一權(quán)重值與第二權(quán)重值進(jìn)行調(diào)整,其中,第一權(quán)重值對應(yīng)于第一骨骼動畫數(shù)據(jù)集合,第二權(quán)重值對應(yīng)于第二骨骼動畫數(shù)據(jù)集合;

步驟S142,根據(jù)實(shí)時調(diào)整的第一權(quán)重值和第二權(quán)重值,執(zhí)行加權(quán)平均運(yùn)算,確定待輸出動畫。

在優(yōu)選實(shí)施例中,在常規(guī)使用骨骼動畫數(shù)據(jù)來播放動畫的基礎(chǔ)上,新增動畫樹形結(jié)構(gòu),其原因在于:樹形結(jié)構(gòu)最終能夠輸出預(yù)設(shè)模型的所有骨骼動畫,樹形結(jié)構(gòu)能夠表示通過子節(jié)點(diǎn)的加權(quán)和進(jìn)而計算出父節(jié)點(diǎn)應(yīng)當(dāng)執(zhí)行的動畫,最終在根節(jié)點(diǎn)輸出所有節(jié)點(diǎn)的加權(quán)和,用以管理游戲角色在游戲中播放骨骼動畫時每根骨骼的權(quán)重,從而使得游戲角色可以在執(zhí)行但不限于以下操作之一時,游戲角色的上半身動畫與下半身動畫均能夠完美的過渡,而不會發(fā)送突變:

(1)在跑動中施放技能;

(2)在技能施放完畢之前停止跑動;

(3)在技能施放完畢之后繼續(xù)跑動;

(4)在站立狀態(tài)釋放技能之后開始跑動。

圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的骨骼動畫數(shù)據(jù)處理的樹形結(jié)構(gòu)示意圖。如圖2所示,Upperbody,Wholebody,Preani,Curani均為節(jié)點(diǎn)(Node),括號前面是節(jié)點(diǎn)的名稱,括號里面的是節(jié)點(diǎn)的類型;每個節(jié)點(diǎn)均會存在三個數(shù)據(jù),其可以包括:

(1)權(quán)重W,用于記錄節(jié)點(diǎn)本身的權(quán)重;

(2)數(shù)組BW,用于記錄所有骨骼的權(quán)重;

(3)M,用于記錄每根骨骼的動畫。

具體地,Upperbody用于表示游戲角色釋放技能的動畫,例如:游戲角色一邊跑步一邊射箭,如果將上半身的骨骼權(quán)重均設(shè)置為1,而下半身的骨骼權(quán)重均設(shè)置為0時,則僅保留游戲角色的上半身射箭動作。Wholebody用于表示游戲角色跑步或者站立的待機(jī)動畫。PreAni用于表示游戲角色的前一個跑步或者站立動畫。CurAni用于表示游戲角色當(dāng)前執(zhí)行的跑步或者站立動畫。

源頭節(jié)點(diǎn)(Source Node)類型的節(jié)點(diǎn)負(fù)責(zé)輸出一個指定的動畫,每根骨骼的動畫均可以通過讀取動畫資源文件來加以獲取并可以設(shè)置一個權(quán)重,節(jié)點(diǎn)本身可以設(shè)置一個權(quán)重;混合節(jié)點(diǎn)(Blend Node)類型的節(jié)點(diǎn)負(fù)責(zé)將所有子節(jié)點(diǎn)的動畫按照節(jié)點(diǎn)的權(quán)重和骨骼的權(quán)重按照總權(quán)重為1來進(jìn)行插值后輸出一個新的動畫,節(jié)點(diǎn)本身可以設(shè)置一個權(quán)重。

假設(shè)一個Blend Node的第i個子節(jié)點(diǎn)的權(quán)重為W(i),所有子節(jié)點(diǎn)的權(quán)重總和為Wsum,第j根骨骼的權(quán)重為BW(i)(j),所有子節(jié)點(diǎn)的第j根骨骼的權(quán)重為BWsum(j),所有第j根骨骼的動畫為M(i)(j),那么,該Blend Node類型的節(jié)點(diǎn)的第j根骨骼的動畫即為:

即得到所有子節(jié)點(diǎn)的骨骼動畫的加權(quán)之和。

需要說明的是,Wholebody節(jié)點(diǎn)與UpperBody節(jié)點(diǎn)內(nèi)均會保存每根骨骼的動畫數(shù)據(jù),其不同之處在于:UpperBody屬于Source Node類型的節(jié)點(diǎn),其動畫數(shù)據(jù)是從美術(shù)人員制作的動畫文件中讀取出來的;而WholeBody屬于Blend Node類型的節(jié)點(diǎn),其動畫數(shù)據(jù)是通過對子節(jié)點(diǎn)保存的每根骨骼的動畫數(shù)據(jù)進(jìn)行加權(quán)平均計算得到的。

在游戲初始化過程中,可以設(shè)置相鄰動作之間的過渡時間為transTime(即上述預(yù)設(shè)時長),UpperBody節(jié)點(diǎn)的所有骨骼動畫數(shù)據(jù)的權(quán)重為0,UpperBody節(jié)點(diǎn)的權(quán)重為0,WholeBody節(jié)點(diǎn)的所有骨骼動畫數(shù)據(jù)的權(quán)重為1,WholeBody節(jié)點(diǎn)的權(quán)重為1。此時PreAni節(jié)點(diǎn)與CurAni節(jié)點(diǎn)尚不存在動畫。

當(dāng)游戲角色存在一個跑步動畫或者站立動畫需要播放時,可以待播放的動畫設(shè)置到CurAni節(jié)點(diǎn)。此時,CurAni節(jié)點(diǎn)的權(quán)重為1,而PreAni節(jié)點(diǎn)仍然不存在動畫。

當(dāng)游戲角色需要從跑步動畫切換至站立動畫或者從站立動畫切換至跑步動畫時,可以先將CurAni節(jié)點(diǎn)的動畫復(fù)制到PreAni節(jié)點(diǎn),再將切換后的動畫設(shè)置到CurAni節(jié)點(diǎn)。另外,還需要將PreAni的權(quán)重設(shè)置為1,并且在transTime時間內(nèi)從1過渡到0(即在播新動作時,前一個動作還需要存在一段時間,由此不斷修改兩個相鄰動畫的權(quán)重以及不斷計算兩個相鄰動畫的加權(quán)和,由此得到一個流暢的由前一個動作過渡到最新動作的表現(xiàn),當(dāng)transTime為0時,表示前一個動作已完全消失,僅剩下最新動作),以及同步將CurAni的權(quán)重設(shè)置為0,并且在transTime時間內(nèi)從0過渡到1,進(jìn)而完成在transTime時間內(nèi),相鄰動畫之間的過渡。

可選地,當(dāng)初始狀態(tài)為移動狀態(tài)(例如:跑步狀態(tài)或行走狀態(tài)),待切換狀態(tài)為技能釋放狀態(tài)(例如:攻擊狀態(tài)或防御狀態(tài))時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前移動動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的上半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的上半身骨骼動畫。

例如:當(dāng)游戲角色在跑動過程中出現(xiàn)一個特定技能動畫需要播放時,可以將該動畫設(shè)置到UpperBody節(jié)點(diǎn),以及將UpperBody節(jié)點(diǎn)的上半身骨骼動畫數(shù)據(jù)的權(quán)重設(shè)置為0(相當(dāng)于上述第二骨骼動畫數(shù)據(jù)集合),并且在時間transTime內(nèi)從0過渡到1,而WholeBody節(jié)點(diǎn)的上半身骨骼動畫數(shù)據(jù)的權(quán)重設(shè)置為1(相當(dāng)于上述第一骨骼動畫數(shù)據(jù)集合),并且在時間transTime內(nèi)從1過渡到0,進(jìn)而完成在transTime時間內(nèi)上半身跑步到技能動畫的過渡,同時下半身維持在跑步動畫。

可選地,當(dāng)初始狀態(tài)為靜止?fàn)顟B(tài)(例如:站立狀態(tài)或半蹲狀態(tài)),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個靜止動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的全身骨骼動畫。

例如:當(dāng)游戲角色在站立狀態(tài)下出現(xiàn)一個特定技能動畫需要播放時,可以將該動畫設(shè)置到UpperBody節(jié)點(diǎn),以及將UpperBody節(jié)點(diǎn)的所有骨骼動畫數(shù)據(jù)的權(quán)重設(shè)置為0(相當(dāng)于上述第二骨骼動畫數(shù)據(jù)集合),并且在時間transTime內(nèi)從0過渡到1,而WholeBody節(jié)點(diǎn)的所有骨骼動畫數(shù)據(jù)(即在站立狀態(tài)下施放技能,希望腿部也存在技能動畫,其可以是弓步,也可以是馬步,而不希望還停留在站立待機(jī)動畫)的權(quán)重設(shè)置為1(相當(dāng)于上述第一骨骼動畫數(shù)據(jù)集合),并且在時間transTime內(nèi)從1過渡到0,進(jìn)而完成在transTime時間內(nèi)全身由站立動畫到技能動畫的過渡。

可選地,當(dāng)初始狀態(tài)為同時處于技能釋放狀態(tài)和移動狀態(tài),待切換狀態(tài)為同時處于技能釋放狀態(tài)和停止移動狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的下半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的下半身骨骼動畫。

例如:當(dāng)游戲角色在技能施放過程中停止跑動時,可以將UpperBody節(jié)點(diǎn)的下半身骨骼動畫數(shù)據(jù)的權(quán)重在時間transTime內(nèi)從0過渡到1,WholeBody節(jié)點(diǎn)的下半身骨骼動畫數(shù)據(jù)的權(quán)重在時間transTime內(nèi)從1過渡到0,進(jìn)而完成由一邊跑動一邊施放技能動畫到完全為技能動畫的過渡。

可選地,當(dāng)初始狀態(tài)為技能釋放狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)結(jié)束時刻狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的與技能釋放狀態(tài)結(jié)束時刻狀態(tài)對應(yīng)的骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個釋放技能過程中持續(xù)動作對應(yīng)的權(quán)重值與當(dāng)前釋放技能結(jié)束時待持續(xù)動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫。

例如:當(dāng)游戲角色的技能施放完畢時,可以將UpperBody節(jié)點(diǎn)內(nèi)所有權(quán)重為1的骨骼動畫數(shù)據(jù)(相當(dāng)于上述第一骨骼動畫數(shù)據(jù)集合)的權(quán)重在時間transTime內(nèi)從1過渡到0,WholeBody節(jié)點(diǎn)的全身骨骼動畫數(shù)據(jù)(相當(dāng)于上述第二骨骼動畫數(shù)據(jù)集合)的權(quán)重在時間transTime內(nèi)的從0過渡到1,由此便能完成在技能動畫結(jié)束時刻所呈現(xiàn)跑動或者站立動畫一直持續(xù)下去。

需要說明的是,將UpperBody節(jié)點(diǎn)內(nèi)所有權(quán)重為1的骨骼動畫數(shù)據(jù)與游戲角色在技能釋放結(jié)束時刻所持續(xù)的狀態(tài)相關(guān),如果游戲角色在技能釋放結(jié)束時刻所持續(xù)為跑動狀態(tài),則所有權(quán)重為1的骨骼動畫數(shù)據(jù)表現(xiàn)為上半身骨骼動畫數(shù)據(jù);而如果游戲角色在技能釋放結(jié)束時刻所持續(xù)為站立狀態(tài),則所有權(quán)重為1的骨骼動畫數(shù)據(jù)表現(xiàn)為全身骨骼動畫數(shù)據(jù)。

在上述優(yōu)選實(shí)施方式中,由于分離了上半身動畫與全身動畫,上半身動畫的播放過程和全身動畫的播放過程互不影響,也不會發(fā)生在跑步動畫播放過程中又切換到跑步動畫的突變情況,因此,在跑步動畫播放過程中不會出現(xiàn)前述不和諧的“踢腿”現(xiàn)象;另外,在游戲角色跑動過程中施放特定技能,以及在施放特定技能完畢后又還原為跑步動畫,均不需要重新播放跑步動畫,從而解決了動畫突變的問題,實(shí)現(xiàn)完美的動作過渡。

根據(jù)本發(fā)明實(shí)施例,提供了一種骨骼動畫數(shù)據(jù)的處理裝置的實(shí)施例,圖3是根據(jù)本發(fā)明實(shí)施例的骨骼動畫數(shù)據(jù)的處理裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置可以包括:獲取模塊10,用于獲取游戲角色的第一骨骼動畫數(shù)據(jù)集合和第二骨骼動畫數(shù)據(jù)集合,其中,第一骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的初始狀態(tài),第二骨骼動畫數(shù)據(jù)集合對應(yīng)于游戲角色的待切換狀態(tài);處理模塊20,用于在預(yù)設(shè)時長內(nèi)對第一骨骼動畫數(shù)據(jù)集合與第二骨骼動畫數(shù)據(jù)集合進(jìn)行同步調(diào)整,確定待輸出的動畫。

可選地,處理模塊20可以包括:調(diào)整單元(圖中未示出),用于在保持第一權(quán)重值與第二權(quán)重值之和為固定值的情況下,在預(yù)設(shè)時長內(nèi)逐漸縮小第一權(quán)重值并同步增大第二權(quán)重值,直至第一權(quán)重值為0且第二權(quán)重值為固定值時,停止對第一權(quán)重值與第二權(quán)重值進(jìn)行調(diào)整,其中,第一權(quán)重值對應(yīng)于第一骨骼動畫數(shù)據(jù)集合,第二權(quán)重值對應(yīng)于第二骨骼動畫數(shù)據(jù)集合;處理單元(圖中未示出),用于根據(jù)實(shí)時調(diào)整的第一權(quán)重值和第二權(quán)重值,執(zhí)行加權(quán)平均運(yùn)算,確定待輸出動畫。

可選地,當(dāng)初始狀態(tài)為移動狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前移動動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的上半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的上半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為靜止?fàn)顟B(tài),待切換狀態(tài)為技能釋放狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個靜止動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的全身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為同時處于技能釋放狀態(tài)和移動狀態(tài),待切換狀態(tài)為同時處于技能釋放狀態(tài)和停止移動狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個移動動作對應(yīng)的權(quán)重值與當(dāng)前靜止動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的下半身骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的下半身骨骼動畫。

可選地,當(dāng)初始狀態(tài)為技能釋放狀態(tài),待切換狀態(tài)為技能釋放狀態(tài)結(jié)束時刻狀態(tài)時,第一骨骼動畫數(shù)據(jù)集合是從預(yù)設(shè)動畫資源文件讀取的與技能釋放狀態(tài)結(jié)束時刻狀態(tài)對應(yīng)的骨骼動畫,第二骨骼動畫數(shù)據(jù)集合是通過對游戲角色執(zhí)行的前一個釋放技能過程中持續(xù)動作對應(yīng)的權(quán)重值與當(dāng)前釋放技能結(jié)束時待持續(xù)動作對應(yīng)的權(quán)重值進(jìn)行加權(quán)平均計算得到的全身骨骼動畫。

上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

在本發(fā)明的上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1