一種利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法
【專利摘要】本發(fā)明公開了一種利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,主要包括:渲染模型、骨骼架構(gòu)和物理模型的層次關(guān)系;基于骨骼架構(gòu)、物理模型和蒙皮模型三者之間的層次關(guān)系,計算得到每個骨骼的世界矩陣;根據(jù)每個骨骼的世界矩陣和時間變化量得到骨骼的死亡速度。本發(fā)明所述利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,可以克服現(xiàn)有技術(shù)中重復(fù)工作量大、動作缺乏新意和工作效率低等缺陷,以實現(xiàn)重復(fù)工作量小、動作具有新意和工作效率高的優(yōu)點。
【專利說明】一種利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,具體地,涉及一種利用布娃娃物理系統(tǒng)模擬人物角 色死亡的方法。
【背景技術(shù)】
[0002] 布娃娃物理系統(tǒng)(Ragdoll physics)通常被用于電子游戲中物理引擎中代替?zhèn)鹘y(tǒng) 靜態(tài)畫面的可變性角色動畫系統(tǒng)。游戲中實現(xiàn)實時動畫已經(jīng)變?yōu)楝F(xiàn)實,現(xiàn)在人們利用三維 工具開發(fā)工具建立一個角色模型,并為合適的角色模型設(shè)定骨骼,利用底層的引擎控制角 色的變換,由于之前的技術(shù)限制,骨骼的移動沒有像角色肌肉的來約束,在實際的運用過程 中,經(jīng)常出現(xiàn)將骨骼移動到一個現(xiàn)實中不可能實現(xiàn)的位置,這種系統(tǒng)通常用于網(wǎng)絡(luò)游戲中 的射擊類游戲和動作游戲中,目前的游戲中很少用到布娃娃物理系統(tǒng),一般的都是當擊中 目標時,直接在三維軟件中做好的動畫然后放進游戲中,以達到真實的角色受攻擊時的狀 態(tài),但是隨著游戲的越來越復(fù)雜,這中方法的缺點也變的顯著: ⑴每次制作新的產(chǎn)品時,都要為人物重新制作一套動畫; ⑵對于同樣的人物受外力攻擊時,死亡姿態(tài)動作重復(fù),缺乏新意; ⑶增減了游戲制作者對人物設(shè)計動作的工作量,無法提高效率。
[0003] 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在重復(fù)工作量大、動作缺 乏新意和工作效率低等缺陷。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于,針對上述問題,提出一種利用布娃娃物理系統(tǒng)模擬人物角色 死亡的方法,以實現(xiàn)重復(fù)工作量小、動作具有新意和工作效率高的優(yōu)點。
[0005] 為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種利用布娃娃物理系統(tǒng)模擬人物 角色死亡的方法,主要包括: a、 渲染模型、骨骼架構(gòu)和物理模型的層次關(guān)系; b、 基于骨骼架構(gòu)、物理模型和蒙皮模型三者之間的層次關(guān)系,計算得到每個骨骼的世 界矩陣; c、 根據(jù)每個骨骼的世界矩陣和時間變化量得到骨骼的死亡速度。
[0006] 進一步地,所述步驟a,具體包括: 在三維軟件中制作完成的角色模型導(dǎo)出時,包括角色的蒙皮模型,骨骼模型,還有一些 用于碰撞檢測的物理模型,還有骨骼之間的變換的矩陣信息; 骨骼架構(gòu)置于渲染模型內(nèi)部,當骨骼運動的時候會牽引著蒙皮一起運動;物理模型是 近似的包裹了渲染模型外部,并為物理模型設(shè)定一定的質(zhì)量;一般人物角色規(guī)定是由13個 立方體構(gòu)成角色的骨骼組成,這13塊骨骼分別為:頭、左右上臂,左右下臂,脊柱2塊,左右 大腿,左右小腿,左右腳; 對于物理模型的13立方體構(gòu)成的骨架系統(tǒng),不同的骨骼繞關(guān)節(jié)轉(zhuǎn)動,正常情況下可以 分為下面幾種情況: ⑴人物頭部骨骼繞脖子關(guān)節(jié)轉(zhuǎn)動,轉(zhuǎn)動的弧度是一個倒角的圓錐體; ⑵膝關(guān)節(jié)可以前后有一定范圍的擺動; ⑶肘關(guān)節(jié)和肩部關(guān)節(jié)可繞對應(yīng)關(guān)節(jié)在范圍內(nèi)轉(zhuǎn)動。
[0007] 進一步地,所述步驟b,具體包括: 物理模型和骨骼模型有對應(yīng)的綁定關(guān)系,用數(shù)學(xué)表達式來表達其關(guān)系,具體的綁定方 法為: 每個模型的移動,縮放,旋轉(zhuǎn)數(shù)據(jù)信息都能夠從底部的引 擎中獲得的,把骨骼模型的運動的初始變換世界矩陣信息記作
【權(quán)利要求】
1. 一種利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在于,主要包括: a、 渲染模型、骨骼架構(gòu)和物理模型的層次關(guān)系; b、 基于骨骼架構(gòu)、物理模型和蒙皮模型三者之間的層次關(guān)系,計算得到每個骨骼的世 界矩陣; c、 根據(jù)每個骨骼的世界矩陣和時間變化量得到骨骼的死亡速度。
2. 根據(jù)權(quán)利要求1所述的利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在 于,所述步驟a,具體包括: 在三維軟件中制作完成的角色模型導(dǎo)出時,包括角色的蒙皮模型,骨骼模型,還有一些 用于碰撞檢測的物理模型,還有骨骼之間的變換的矩陣信息; 骨骼架構(gòu)置于渲染模型內(nèi)部,當骨骼運動的時候會牽引著蒙皮一起運動;物理模型是 近似的包裹了渲染模型外部,并為物理模型設(shè)定一定的質(zhì)量;一般人物角色規(guī)定是由13個 立方體構(gòu)成角色的骨骼組成,這13塊骨骼分別為:頭、左右上臂,左右下臂,脊柱2塊,左右 大腿,左右小腿,左右腳; 對于物理模型的13立方體構(gòu)成的骨架系統(tǒng),不同的骨骼繞關(guān)節(jié)轉(zhuǎn)動,正常情況下可以 分為下面幾種情況: ⑴人物頭部骨骼繞脖子關(guān)節(jié)轉(zhuǎn)動,轉(zhuǎn)動的弧度是一個倒角的圓錐體; ⑵膝關(guān)節(jié)可以前后有一定范圍的擺動; ⑶肘關(guān)節(jié)和肩部關(guān)節(jié)可繞對應(yīng)關(guān)節(jié)在范圍內(nèi)轉(zhuǎn)動。
3. 根據(jù)權(quán)利要求2所述的利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在 于,所述步驟b,具體包括: 物理模型和骨骼模型有對應(yīng)的綁定關(guān)系,用數(shù)學(xué)表達式來表達其關(guān)系,具體的綁定方 法為: 每個模型的移動,縮放,旋轉(zhuǎn)數(shù)據(jù)信息都能夠從底部的引 擎中獲得的,把骨骼模型的運動的初始變換世界矩陣信息記作 Mj,物理模型運動的初始變換世界矩陣信息記作^,MjiftMs的逆矩陣就等于渲染 模型相對于物理模型的相對矩陣記作pB ,隨著時間的流逝,物理模型的矩陣信 息在每刻都不同,這個矩陣信息能夠從底部引擎中獲取的,得到的相對矩陣是不變的; 這種矩陣的變換關(guān)系如下:用公式表示為:
其中表示物理模型矩陣的逆矩陣; 那么骨骼在每時刻的世界矩陣為:
基于公式(1) (2)和物理模型的世界矩陣信息得到每個骨骼每時刻的世界矩陣信息; 那么根據(jù)人體的13塊骨骼信息,得到13塊骨骼每時刻的世界矩陣,這些骨骼的世界矩陣來 驅(qū)動蒙皮頂點以及這些頂點受那些骨骼影響的權(quán)重值進而得到頂點的新位置。
4. 根據(jù)權(quán)利要求3所述的利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在 于,所述步驟c,具體包括: 當人物從有生命到死亡狀態(tài)轉(zhuǎn)變的過程中,需要將物理模型的世界矩陣和骨骼的世界 矩陣相互轉(zhuǎn)變; 在三維軟件中,對人物有生命狀態(tài)時,通過美術(shù)對人物動作的進行插入關(guān)鍵幀實現(xiàn)人 物的動作播放,同時是由關(guān)鍵幀中的骨骼的世界矩陣信息即骨骼模型來驅(qū)動渲染模型,同 時也驅(qū)動著物理模型,此時的物理模型設(shè)定質(zhì)量為〇,當人物受到手榴彈的攻擊時,因為物 理模型的質(zhì)量可以形成反彈的物理效果,更貼近現(xiàn)實。
5. 根據(jù)權(quán)利要求4所述的利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在 于,在步驟c中,當人物受外力作用死亡的過程中,分為兩種情況: (一) 第一種情況,當人物受力不足以當場斃命時,此時分為兩種階段來討論人物死亡 的過程: a) 其中第一階段是美術(shù)對人物角色死亡狀態(tài)插入關(guān)鍵幀并播放動畫來模擬人物死亡 的短暫過程,是由骨骼模型來驅(qū)動完成動畫的播放,而不是物理模型來驅(qū)動的; b) 第二個階段是:記錄第一階段美術(shù)設(shè)定關(guān)鍵幀的最后一幀人物的狀態(tài),然后把此時 的狀態(tài)的骨骼矩陣傳給新的渲染模型,在步驟a中,有生命人物同時有蒙皮模型即可見模 型、物理模型、骨骼模型并存,而到第二個階段,此時的渲染模型不是第一階段的渲染模型, 二者的頂點數(shù)量是一樣的,第一個階段的渲染模型是受20個或者更多的骨骼模型來支配 其運動,而新的渲染模型只受到13塊骨骼的影響,這個階段人物的運動狀態(tài)有本引擎接管 并驅(qū)動完成,而不是設(shè)定的關(guān)鍵幀動畫,這個過程是由物理模型驅(qū)動骨骼模型,骨骼模型再 驅(qū)動渲染模型來完成的; (二) 第二種情況:當人物受力的作用很大時,直接由物理模型來接管完成人物死亡的 過程。
6. 根據(jù)權(quán)利要求5所述的利用布娃娃物理系統(tǒng)模擬人物角色死亡的方法,其特征在 于,在第一種情況中,基于第二
個階段,用力學(xué)沖量定理來表達: 其中J為沖量,F(xiàn)為作用力,m為質(zhì)量,V為速度,t為時間; 在上述公式(3)中,在引擎底層這個F作用力是一個可以調(diào)節(jié)的已知量,時間的變化量 是應(yīng)用程序每執(zhí)行一次循環(huán)所花費的時間,然后根據(jù)循環(huán)上一次和下一次的時間中的每個 骨骼的世界矩陣得到每個骨骼在該時間的一個變化量,而人物的速度計算是根據(jù)作用力由 該引擎自身來完成的,然后把這個速度傳遞給新的渲染模型,來模擬人物的死亡過程。
【文檔編號】G06T13/40GK104268920SQ201410448533
【公開日】2015年1月7日 申請日期:2014年9月5日 優(yōu)先權(quán)日:2014年9月5日
【發(fā)明者】張翼 申請人:無錫梵天信息技術(shù)股份有限公司