一種動畫模型的肢體動作模擬方法和裝置的制造方法
【專利摘要】本發明公開一種動畫模型的肢體動作模擬方法和裝置,用于減少動畫資源總量、減少內存占用、提高肢體動作模擬的逼真效果。本發明提供的方法中,分別采用物理模擬的方式、骨骼動畫的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣、骨骼動畫的骨骼變換矩陣;根據動畫模型在多個播放時間需要更新的骨骼運動確定由骨骼運動驅動產生的肢體動作,并獲取肢體動作對應的物理權重,物理權重包括:對應于多個播放時間的權重值;根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣;根據肢體動作對應的骨骼變換矩陣在多個播放時間分別播放動畫模型的各個肢體動作。
【專利說明】
一種動畫模型的肢體動作模擬方法和裝置
技術領域
[0001]本發明涉及計算機技術領域,尤其涉及一種動畫模型的肢體動作模擬方法和裝置。
【背景技術】
[0002]真實世界中,動物的肢體會受到神經、肌肉、韌帶與骨骼的控制,完全模擬肢體運動并不容易,由此發展出了骨骼動畫和物理模擬兩個分支。其中,骨骼動畫指的是計算機動畫中將動畫模型分為骨骼和蒙皮兩部分來模擬角色運動,物理模擬指的是使用剛體物理模擬來更新骨骼變換矩陣來模擬角色運動。
[0003]在三維(英文全稱^Dimens1ns,英文簡稱:3D)模型的肢體運動模擬中,現有技術中會完全使用物理模擬的方式或完全使用骨骼動畫的方式。現有技術對主動控制肢體動作的模擬效果很好,如果是涉及到主動控制和物理運動組合的肢體動作,模擬效果就不好。例如現有技術采用上述模擬3D模型肢體運動的方式在模擬四肢及頭發運動時效果較好,但是對于尾巴等一類肢體的模擬效果往往不夠逼真。以模擬猴子尾巴的運動為例,在某些情況下猴子會放松對尾巴的自主控制,而主要由物理運動來控制,在有的情況下又會加強對尾巴的自主控制,這都會造成對尾巴的肢體動作模擬效果不夠逼真。
[0004]現有技術中,在3D模型制作時就已經設定了一個固定值的物理權重,例如在模擬3D模型肢體運動時,會為3D模型設置一個固定值的物理權重,該物理權重的取值一旦由美術編輯人員設定之后就唯一的確定下來,這個物理權重可以用于選擇使用物理模擬的方式或者使用骨骼動畫的方式,如果物理權重取值為O就使用骨骼動畫的方式,如果物理權重取值為I就使用物理模擬的方式。現有技術在模擬肢體運動時,若是純粹使用骨骼動畫的方式,會導致動畫資源量過大、內存占用高等問題。若是純粹使用物理模擬的方式,又會導致模擬效果不佳的問題。因此,現有技術中設置一個固定值的物理權重,對于涉及到主動控制和物理運動的肢體動作,例如尾巴之類的肢體,就無法表現其在放松自主控制和加強控制時的各種動作,存在模擬效果差的問題。
【發明內容】
[0005]本發明實施例提供了一種動畫模型的肢體動作模擬方法和裝置,用于減少動畫資源總量、減少內存占用、提高肢體動作模擬的逼真效果。
[0006]為解決上述技術問題,本發明實施例提供以下技術方案:
[0007 ]第一方面,本發明實施例提供一種動畫模型的肢體動作模擬方法,包括:
[0008]采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬所述動畫模型在所述多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣;
[0009]根據所述動畫模型在所述多個播放時間需要更新的骨骼運動確定由所述骨骼運動驅動產生的肢體動作,并獲取所述肢體動作對應的物理權重,所述物理權重包括:對應于所述多個播放時間的權重值;
[0010]根據所述物理權重對所述物理模擬的骨骼變換矩陣和所述骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣;
[0011]根據所述肢體動作對應的骨骼變換矩陣在所述多個播放時間分別播放所述動畫模型的各個肢體動作。
[0012]第二方面,本發明實施例還提供一種動畫模型的肢體動作模擬裝置,包括:
[0013]骨骼運動模擬模塊,用于采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬所述動畫模型在所述多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣;
[0014]物理權重獲取模塊,用于根據所述動畫模型在所述多個播放時間需要更新的骨骼運動確定由所述骨骼運動驅動產生的肢體動作,并獲取所述肢體動作對應的物理權重,所述物理權重包括:對應于所述多個播放時間的權重值;
[0015]融合模塊,用于根據所述物理權重對所述物理模擬的骨骼變換矩陣和所述骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣;
[0016]肢體動作模擬模塊,用于根據所述肢體動作對應的骨骼變換矩陣在所述多個播放時間分別播放所述動畫模型的各個肢體動作。
[0017]從以上技術方案可以看出,本發明實施例具有以下優點:
[0018]在本發明實施例中,首先采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣,然后根據動畫模型在多個播放時間需要更新的骨骼運動確定由骨骼運動驅動產生的肢體動作,并獲取肢體動作對應的物理權重,該物理權重可以包括:對應于多個播放時間的權重值,然后根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣,最后根據肢體動作對應的骨骼變換矩陣在多個播放時間分別播放動畫模型的各個肢體動作。由于動畫模型在不同的播放時間模擬出的骨骼運動可以驅動產生相應的肢體動作,因此根據由骨骼運動驅動產生的肢體動作獲取到的物理權重可以包括有對應于多個播放時間的權重值,也就是說,本發明實施例提供的物理權重是根據由骨骼運動驅動產生的肢體動作而獲取到的多個權重值,物理權重由動畫模型在由骨骼運動驅動產生的肢體動作進行動態調整,避免現有技術中只使用一個固定取值的物理權重,通過動態調整物理權重的取值可以實現物理模擬和骨骼動畫的動態融合,適用于動畫模型在放松自主控制和加強自主控制時的各種動作,提高肢體動作模擬的逼真效果。由于本發明實施例中不會純粹使用骨骼動畫的方式,因此可以解決動畫資源量大、內存占用高等問題。
【附圖說明】
[0019]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的技術人員來講,還可以根據這些附圖獲得其他的附圖。
[0020]圖1為本發明實施例提供的一種動畫模型的肢體動作模擬方法的流程方框示意圖;[0021 ]圖2為本發明實施例提供的肢體動作的建模流程示意圖;
[0022]圖3-a為本發明實施例提供的一種物理權重的取值獲取方式示意圖;
[0023]圖3-b為本發明實施例提供的另一種物理權重的取值獲取方式示意圖;
[0024]圖4-a為本發明實施例提供的BlendIn混合函數的輸出曲線示意圖;
[0025]圖4-b為本發明實施例提供的BlendOut混合函數的輸出曲線示意圖;
[0026]圖5-a為本發明實施例提供的一種動畫模型的肢體動作模擬裝置的組成結構示意圖;
[0027]圖5_b為本發明實施例提供的一種物理權重獲取模塊的組成結構示意圖;
[0028]圖5-c為本發明實施例提供的一種融合模塊的組成結構示意圖;
[0029]圖5-d為本發明實施例提供的另一種物理權重獲取模塊的組成結構示意圖;
[0030]圖6為本發明實施例提供的動畫模型的肢體動作模擬方法應用于終端的組成結構示意圖。
【具體實施方式】
[0031]本發明實施例提供了一種動畫模型的肢體動作模擬方法和裝置,用于減少動畫資源總量、減少內存占用、提高肢體動作模擬的逼真效果。
[0032]為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部實施例。基于本發明中的實施例,本領域的技術人員所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0033]本發明的說明書和權利要求書及上述附圖中的術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統、產品或設備不必限于那些單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它單元。
[0034]以下分別進行詳細說明。
[0035]本發明動畫模型的肢體動作模擬方法的一個實施例,具體可以應用于對動畫模型的肢體動作模擬場景中,請參閱圖1所示,本發明一個實施例提供的動畫模型的肢體動作模擬方法,可以包括如下步驟:
[0036]101、采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣。
[0037]在本發明實施例中,計算機動畫中采用動畫模型來模擬角色運動,動畫模型表示特定的角色,例如動畫模型可以表示人或動物,動畫模型由美術編輯預先設計完成,動畫模型代表的人或動物表現出不同的肢體運動方式,以實現通過動畫模型對角色的動作模擬。本發明實施例中可以采用物理模擬和骨骼動畫相互融合的方式進行肢體動作的模擬,首先分別物理模擬的方式和骨骼動畫的方式模擬出動畫模型在多個播放時間需要更新的骨骼運動,骨骼運動的模擬量可以通過骨骼變換矩陣來表示,因此通過物理模擬的方式對骨骼運動進行模擬后可以生成物理模擬的骨骼變換矩陣,通過骨骼動畫的方式對骨骼運動進行模擬后可以生成骨骼動畫的骨骼變換矩陣。其中,骨骼變換矩陣指的是動畫系統中用于記錄每一個骨骼的旋轉,平移和縮放值的矩陣。分別生成物理模擬的骨骼變換矩陣、骨骼動畫的骨骼變換矩陣之后,觸發執行步驟102。
[0038]102、根據動畫模型在多個播放時間需要更新的骨骼運動確定由骨骼運動驅動產生的肢體動作,并獲取肢體動作對應的物理權重(英文名稱:Physics Weight),物理權重包括:對應于多個播放時間的權重值。
[0039]在本發明實施例中,通過物理模擬的方式和骨骼動畫的方式分別模擬出動畫模型在多個播放時間需要更新的骨骼運動之后,對于不同的骨骼運動會驅動產生不同的肢體動作,因此可以根據步驟102模擬出的骨骼運動來驅動產生相應的肢體動作,本發明實施例中動畫模型在某個播放時間播放時具有一個肢體動作,當該動畫模型在多個播放時間分別播放時可以具有多個肢體動作,每個肢體動作都對應一個物理權重,因此本發明實施例中動畫模型在多個播放時間可播放出多個肢體動作,根據這些多個肢體動作可以獲取到多個肢體動作對應的物理權重,因此本發明實施例中獲取到的物理權重包括:對應于多個播放時間的權重值。其中,肢體動作對應的物理權重指的是在使用物理模擬與骨骼動畫混合的方式更新角色動作時物理模擬所占的比例,在不同的播放時間播放出的肢體動作分別對應有不同的物理權重,因此本發明實施例中肢體動作對應的物理權重不是一個固定不變的權重值,而是可以隨著不同播放時間播放的多個肢體動作進行動態變化的權重值。避免現有技術中只使用一個固定取值的物理權重,通過動態調整物理權重的取值可以實現物理模擬和骨骼動畫的動態融合,適用于動畫模型在放松自主控制和加強自主控制時的各種動作,提高肢體動作模擬的逼真效果。由于本發明實施例中不會純粹使用骨骼動畫的方式,因此可以解決動畫資源量大、內存占用高等問題。
[0040]在本發明的一些實施例中,步驟102獲取肢體動作對應的物理權重,具體可以包括如下步驟:
[0041]Al、根據動畫模型在動畫樹中的各個動畫節點在多個播放時間的節點狀態獲取各個動畫節點的節點自身權重;
[0042]A2、將各個動畫節點的節點自身權重與對應動畫節點的物理模擬權重相乘,得到各個動畫節點的物理模擬相乘結果,再將各個動畫節點的物理模擬相乘結果進行疊加得到肢體動作對應的物理權重。
[0043]在本發明的上述實施例中,動畫模型可以通過動畫樹中的各個動畫節點來完成肢體動作的模擬。其中,動畫樹是用于播放動畫的一種樹形結構,動畫樹中包括動畫節點和非動畫節點,動畫節點指定了播放的肢體動作,非動畫節點指定了激活的條件,動畫樹可用于描述動畫模型在什么狀態下進入哪一個分支,激活哪些動畫節點并播放哪些肢體動作。動畫樹中每個動畫節點都有一個節點自身權重,當動畫節點被激活時,節點自身權重大于O,最終播放的肢體動作為所有激活的動畫節點指定的肢體動作的疊加。
[0044]在本發明的上述實施例中,動畫模型在動畫樹中的各個動畫節點在多個播放時間具有各自的節點狀態,動畫節點的節點狀態是指動畫節點是否被激活、激活的條件以及被激活的動畫節點的肢體動作,動畫節點的節點狀態可以獲取該動畫節點的節點自身權重,動畫節點的節點自身權重由動畫節點在多個播放時間的節點狀態確定。通過步驟Al獲取到動畫樹中各個動畫節點的節點自身權重之后,執行步驟A2,將各個動畫節點的節點自身權重與對應動畫節點的物理模擬權重相乘,得到各個動畫節點的物理模擬相乘結果,再將各個動畫節點的物理模擬相乘結果進行疊加得到肢體動作對應的物理權重,即肢體動作對應的物理權重由動畫樹中各個動畫節點的物理模擬相乘結果進行疊加后得到,其中一個動畫節點的物理模擬相乘結果由該動畫節點的節點自身權重和該動畫節點的物理模擬權重相乘得到,動畫節點的物理模擬權重由美術編輯根據該動畫節點的肢體動作來確定,動畫節點的物理模擬權重和該動畫節點的骨骼動畫權重相加結果為I,通常情況下動畫節點的物理模擬權重確定之后,該動畫節點的骨骼動畫權重就可以唯一的確定下來。
[0045]在本發明的另一些實施例中,步驟102獲取肢體動作對應的物理權重,具體可以包括如下步驟:
[0046]B1、根據由骨骼運動驅動產生的肢體動作確定動畫模型在多個播放時間的角色狀態,角色狀態包括:動畫模型處于靜止狀態、或動畫模型處于從靜止狀態進入移動狀態、或動畫模型處于從移動狀態進入靜止狀態;
[0047]B2、根據動畫模型在多個播放時間的角色狀態計算肢體動作對應的物理權重。
[0048]在本發明的上述實施例中,動畫模型可以通過設置的角色狀態來完成肢體動作的模擬。動畫模型在多個播放時間分別有對應的肢體動作,這些肢體動作可以用于表示動畫模型的多個角色狀態。其中,動畫模型的角色狀態指的是動畫模型所表示的角色具有的狀態,角色狀態可以有多種,例如角色狀態可以指的是動畫模型處于靜止狀態,或者角色狀態指的是動畫模型處于從靜止狀態進入移動狀態,或者角色狀態可以指的是動畫模型處于從移動狀態進入靜止狀態。對于動畫模型的不同角色狀態可以計算出肢體動作對應的不同物理權重,例如動畫模型處于靜止狀態時計算出的物理權重可以為0,當動畫模型處于不同的角色狀態時可以確定出具體的物理權重取值,因此本發明實施例中肢體動作對應的物理權重取值并不是唯一固定的取值,而是可以動態變化的,物理權重由動畫模型在多個播放時間的角色狀態進行動態調整,避免現有技術中只使用一個固定取值的物理權重,通過動態調整物理權重的取值可以實現物理模擬和骨骼動畫的動態融合,適用于動畫模型在放松自主控制和加強自主控制時的各種動作,提高肢體動作模擬的逼真效果
[0049]進一步的,在本發明的一些實施例中,前述實施例中步驟B2根據動畫模型在多個播放時間的角色狀態計算肢體動作對應的物理權重,具體可以包括如下步驟:
[0050]B21、當動畫模型的角色狀態為處于靜止狀態時,計算出肢體動作對應的物理權重為O;
[0051 ] B22、當動畫模型的角色狀態為從靜止狀態進入移動狀態時,根據BlendIn混合函數計算肢體動作對應的物理權重;
[0052]B23、當動畫模型的角色狀態為從移動狀態進入靜止狀態時,根據BlendOut混合函數計算肢體動作對應的物理權重。
[0053]具體的,對于動畫模型在多個播放時間的角色狀態包括不同的角色狀態內容時,肢體動作對應的物理權重可以有多種不同的計算方式,例如可實現的方式是當動畫模型的角色狀態為處于靜止狀態時,計算出肢體動作對應的物理權重為0,即在動畫模型的角色狀態為靜止狀態時,物理權重的取值為O,另外當動畫模型的角色狀態為從靜止狀態進入移動狀態時,說明該動畫模型開始從靜止向移動轉換,此時可以根據BlendIn混合函數計算肢體動作對應的物理權重,當動畫模型的角色狀態為從移動狀態進入靜止狀態時,說明該動畫模型開始從移動向靜止轉換,此時可以根據BlendOut混合函數計算肢體動作對應的物理權重。需要說明的是,BlendIn混合函數和BlendOut混合函數是隨著動畫模型的播放時間取值同步變化的函數,根據BlendIn混合函數和BlendOut混合函數可以實時的計算出在不同的播放時間時肢體動作對應的物理權重,不限定的是,本發明實施例中肢體動作對應的物理權重除了使用BlendIn混合函數和BlendOut混合函數之外,還可以使用其它的Blend混合構造函數,以使肢體動作對應的物理權重在動畫模型處于不同的角色狀態時能夠進行實時權重值的計算即可。
[0054]在本發明的另一些實施例中,步驟102獲取肢體動作對應的物理權重,具體可以包括如下步驟:
[0055]Cl、根據由骨骼運動驅動產生的肢體動作獲取肢體動作的骨骼肌輸出力量曲線;
[0056]C2、根據肢體動作的骨骼肌輸出力量曲線確定肢體動作對應的物理權重。
[0057]在本發明的上述實施例中,首先確定由骨骼運動驅動產生的肢體動作,由需要展示這些肢體動作的動作內容確定肢體動作的骨骼肌輸出力量曲線,肢體動作的骨骼肌輸出力量曲線在肢體動作表示不同動作內容時具有不同的骨骼肌輸出曲線,接下來根據肢體動作的骨骼肌輸出力量曲線可以確定肢體動作對應的物理權重,例如骨骼肌輸出力量曲線的反比可以視作輸出力量增加和減弱時物理權重的變化曲線。
[0058]103、根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣。
[0059]在本發明實施例中,通過前述步驟102獲取到肢體動作對應的物理權重,該物理權重包括有對應于多個播放時間的權重值,該物理權重的取值并不是唯一固定的取值,而是對應于動畫模型在多個播放時間可以動態變化。獲取到肢體動作對應的物理權重之后,可以根據該物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣。本發明實施例中可以采用物理模擬和骨骼動畫相互融合的方式進行肢體動作的模擬,物理模擬和骨骼動畫分別對應有骨骼變換矩陣,采用前述步驟獲取到的物理權重將物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,而不是只采用物理模擬,也不是只采用骨骼動畫,由于本發明實施例中不會純粹使用骨骼動畫的方式,因此可以解決動畫資源量大、內存占用高等問題。并且本發明實施例中不會純粹使用物理模擬的方式,因此不會導致模擬效果不佳的問題。
[0060]在本發明實施例中,骨骼變換矩陣是動畫系統中用于記錄每一個骨骼的旋轉,平移和縮放值的矩陣,物理模擬和骨骼動畫分別對應有一個骨骼變換矩陣,通過物理權重將物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣融合為一個骨骼變換矩陣,即肢體動作對應的骨骼變換矩陣。肢體動作對應的骨骼變換矩陣是物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣融合的結果。舉例說明如下,將肢體動作對應的物理權重記為M,則可以將M和物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將(I 一 M)和骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將第一相乘結果和第二相乘結果進行疊加,得到肢體動作對應的骨骼變換矩陣,得到肢體動作對應的骨骼變換矩陣之后觸發執行步驟104。
[0061 ]在本發明實施例中執行步驟Al和步驟A2的情況下,步驟103根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣,具體可包括如下步驟:
[0062]Dl、根據各個動畫節點的物理模擬權重確定各個動畫節點的骨骼動畫權重;
[0063]D2、將各個動畫節點的節點自身權重與對應動畫節點的骨骼動畫權重相乘,得到各個動畫節點的骨骼動畫相乘結果,再將各個動畫節點的骨骼動畫相乘結果進行疊加得到肢體動作對應的骨骼動畫權重;
[0064]D3、將肢體動作對應的物理權重和物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將肢體動作對應的骨骼動畫權重和骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將第一相乘結果和第二相乘結果進行融合,得到肢體動作對應的骨骼變換矩陣。
[0065]在本發明的上述實施例中,動畫模型在動畫樹中的各個動畫節點在多個播放時間具有各自的節點狀態,動畫節點的節點狀態是指動畫節點是否被激活、激活的條件以及被激活的動畫節點的肢體動作,動畫節點的節點狀態可以獲取該動畫節點的節點自身權重,動畫節點的節點自身權重由動畫節點在多個播放時間的節點狀態確定。獲取到動畫樹中各個動畫節點的節點自身權重之后,執行步驟Dl,根據各個動畫節點的物理模擬權重確定各個動畫節點的骨骼動畫權重,例如物理模擬權重和骨骼動畫權重之和為I,當確定一個動畫節點的物理模擬權重之后,由物理模擬權重和骨骼動畫權重相加為一個固定值,就可以將該動畫節點的骨骼動畫權重唯一的確定下來,然后執行步驟D2,將各個動畫節點的節點自身權重與對應動畫節點的骨骼動畫權重相乘,得到各個動畫節點的骨骼動畫相乘結果,再將各個動畫節點的骨骼動畫相乘結果進行疊加得到肢體動作對應的骨骼動畫權重,即肢體動作對應的骨骼動畫權重由動畫樹中各個動畫節點的骨骼動畫相乘結果進行疊加后得到,其中一個動畫節點的骨骼動畫相乘結果由該動畫節點的節點自身權重和該動畫節點的骨骼動畫權重相乘得到。步驟D2中得到肢體動作對應的骨骼動畫權重之后,繼續執行步驟D3,將肢體動作對應的物理權重和物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將肢體動作對應的骨骼動畫權重和骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將第一相乘結果和第二相乘結果進行融合,得到肢體動作對應的骨骼變換矩陣,物理權重和骨骼動畫權重分別與各自對應的骨骼變換矩陣相乘,再將兩者得到的相乘結果進行疊加,可以得到肢體動作對應的骨骼變換矩陣。
[0066]104、根據肢體動作對應的骨骼變換矩陣在多個播放時間分別播放動畫模型的各個肢體動作。
[0067]在本發明實施例中,通過步驟103得到肢體動作對應的骨骼變換矩陣之后,采用肢體動作對應的骨骼變換矩陣進行肢體動作的播放,從而實現動畫模型的肢體動作模擬。由于本發明實施例中肢體動作對應的骨骼變換矩陣是對物理模擬和骨骼動畫的融合結果,根據這樣的肢體動作對應的骨骼變換矩陣進行肢體動作播放時,能夠實現物理模擬和骨骼動畫的融合,提高肢體動作模擬的逼真效果。
[0068]通過以上實施例對本發明實施例的描述可知,首先采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣,然后根據動畫模型在多個播放時間需要更新的骨骼運動確定由骨骼運動驅動產生的肢體動作,并獲取肢體動作對應的物理權重,該物理權重可以包括:對應于多個播放時間的權重值,然后根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣,最后根據肢體動作對應的骨骼變換矩陣在多個播放時間分別播放動畫模型的各個肢體動作。由于動畫模型在不同的播放時間模擬出的骨骼運動可以驅動產生相應的肢體動作,因此根據由骨骼運動驅動產生的肢體動作獲取到的物理權重可以包括有對應于多個播放時間的權重值,也就是說,本發明實施例提供的物理權重是根據由骨骼運動驅動產生的肢體動作而獲取到的多個權重值,物理權重由動畫模型在由骨骼運動驅動產生的肢體動作進行動態調整,避免現有技術中只使用一個固定取值的物理權重,通過動態調整物理權重的取值可以實現物理模擬和骨骼動畫的動態融合,適用于動畫模型在放松自主控制和加強自主控制時的各種動作,提高肢體動作模擬的逼真效果。由于本發明實施例中不會純粹使用骨骼動畫的方式,因此可以解決動畫資源量大、內存占用高等問題。
[0069]為便于更好的理解和實施本發明實施例的上述方案,下面舉例相應的應用場景來進行具體說明。
[0070]本發明實施例中,動畫模型的肢體運動在受到主動控制的同時,也會受到物理運動的影響,并且兩者是此消彼長的關系,物理運動特指肢體在肌肉放松控制時的非自主運動。為了模擬這類肢體運動,本發明實施例中采用動態調整物理模擬與骨骼動畫融合中的物理權重的方法,可以通過運行時動態調整物理權重,實現更真實的肢體模擬。
[0071]以動畫模型為人的骨骼運動為例,由人的前臂的肌肉及韌帶的解剖圖可知,人的肌肉緊張時,骨骼的運動主要受到神經系統控制,物理權重較低,反之肌肉放松時,骨骼受到物理運動影響的因素增大,物理權重較高。所以物理權重是一個全動態的過程,現有技術中單純使用物理模擬或骨骼動畫,使用的是固定取值的物理權重,并不能很好模擬動畫模型的肢體運動。現有技術中在模擬肢體運動時,若是單純使用骨骼動畫,會導致動畫資源量大,內存占用高等問題。單純使用物理模擬,又會導致模擬效果不佳,用戶體驗差的問題。設置一個固定的物理權重后,對尾巴之類的肢體,無法表現其在放松自主控制和加強控制時的各種動作。
[0072]本發明實施例中,通過動態調整物理權重,能夠做到由美術編輯控制某些情況下全部用物理模擬,某些情況全部用骨骼動畫,其它一些情況下動態調整物理權重實現物理模擬和骨骼動畫兩者的混合,既減小了骨骼動畫資源量,節省了內存占用,又能做到更逼真的肢體動作模擬提升用戶體驗。
[0073]以本發明實施例提供的動畫模型的的肢體動作模擬方法應用的產品側進行舉例說明,接下來以應用于尾巴模擬和乳搖系統分別為例。
[0074]首先以動畫模型用于尾巴模擬為例,將本發明實施例集成到動畫樹中,美術在編輯動畫樹時,除了可以指定動畫節點的動作名(例如動畫節點的動作名稱為Anim SeqName),還可以指定該動畫節點的物理權重(即PhysicsWeight)。例如,游戲中一個尾巴的動畫樹,其中有兩個動畫節點,指定的動作都是Idle動作(即靜止動作),但是兩者的物理權重不同。在美術編輯完成動畫樹后,游戲運行時根據動畫樹更新動畫以及物理權重。尾巴是游戲中的一個應用實例,該技術實現了尾巴靜止時完全播放Idle動作,呈現出了完全自主控制的效果,運動時使用物理與Idle動作混合,呈現出半自主控制的效果,過渡時按照配置的淡入淡出時間,淡出舊的動畫節點的物理權重,淡入新的動畫節點的物理權重,物理權重是兩者平滑插值,做到了肢體動作的平滑過渡,因此本發明實施例中從全部使用物理模擬到全部使用骨骼動畫并非是突變的,而是物理模擬的物理權重在一點點地減少,而骨骼動畫的骨骼動畫權重在一點點的增加,直到全部使用骨骼動畫。
[0075]接下來以動畫模型用于乳搖系統為例,物理權重可以由程序根據角色狀態實時計算。在角色狀態為靜止狀態時,乳搖系統的物理權重為0,全部由骨骼動畫模擬,在角色狀態為運動狀態時,例如在動畫模型運動或玩家旋轉角色時,物理權重使用插值函數計算,該物理權重可以為0-1之間的一個動態變化數值。
[0076]請參閱如圖2所示,圖2為本發明實施例提供的肢體動作的建模流程示意圖。本發明實施例中首先對肢體運動進行建模。如圖2所示,肢體運動由骨骼運動驅動,而骨骼運動由自主控制和物理控制兩部分融合得到,其中物理權重(即Physics Weight)為融合因子,融合因子的值取決于肌肉的放松程度。其中由于骨骼可以近似視為剛體,因此物理控制可以使用剛體物理模擬近似。而自主控制受條件反射和非條件反射影響,已經形成了固定的模式,所以可以直接使用骨骼動畫來近似。在得到自主控制和物理控制的模擬方式后,本發明實施例中可以按照如下舉例的方式實現Phy s i csWe ight (即物理權重)的獲取。
[0077]例如,圖3-a為本發明實施例提供的一種物理權重的取值獲取方式示意圖,圖3-b為本發明實施例提供的另一種物理權重的取值獲取方式示意圖。Physics Weight的值與骨骼肌輸出力量成反比。骨骼肌力量輸出曲線的反比可以視作輸出力量增加和減弱時Physics Weight的變化曲線。肌細胞受到動作電位刺激,并且電位超過閾值后,會導致肌細胞收縮,肌細胞收縮會輸出力量。一般情況下,肌細胞收縮都是一個連續收縮過程,即在短時間內肌肉細胞會受到多次刺激。其中,動作電位指處于靜息電位狀態的細胞膜受到適當刺激而產生的,短暫而且有特殊波形的,跨膜電位博動,這里特指肌細胞的動作電位。骨骼肌又稱橫紋肌,多核細胞,通常是通過肌腱附在骨骼的兩端,其伸縮可以帶動骨骼的移動,以促成人體的運動。其收縮運動受人的意識支配,經軀體神經刺激實現的。圖3-a為骨骼肌單次收縮輸出的力量曲線。圖3-a中的下半部分圖例是骨骼肌的動作電位(英文名稱:Act1n Potential)隨時間的曲線,顯示的是一個動作電位脈沖,圖3_a中的上半部分圖例是平靜肌輸出的力量值(英文名稱:Force)。如圖3-b所示為骨骼肌連續收縮輸出的力量曲線,該曲線的開始和結尾可以作為骨骼動畫的骨骼動畫權重,力量曲線與(I 一物理權重)的曲線是一致的。
[0078]在建模完成后,針對不同的應用場合,本發明實施例可以采用下面兩種物理權重的更新方式:I)、對于與動畫樹集成的方式,動畫樹每一個動畫節點設置的物理權重不同,不同情況下激活的動畫節點也是不同的,當幾個動畫節點被激活時,每個動畫節點的節點自身權重與該節點的物理模擬權重的乘積,即為當前的物理權重。取物理模擬計算得到的骨骼變換矩陣和物理權重相乘,骨骼動畫計算得到的骨骼變換矩陣和骨骼動畫矩陣混合,得到最終的骨骼變換矩陣。由于激活的動畫節點,每個動畫節點的節點自身權重,以及每個節點指定的物理權重都在不斷變化,因此最終用于物理模擬和骨骼動畫混合的物理權重也在不斷變化,實現了物理權重的動態調整。2)、對于由程序根據角色狀態實時計算的方式,靜止狀態時完全由骨骼動畫驅動肢體動作,當角色從靜止狀態進入移動狀態后,激活混合過程,由BlendIn混合函數更新物理權重,如果再從移動狀態返回靜止狀態,就由BlendOut混合函數更新物理權重。為了模擬肌肉的緊張與放松過程,目前BlendIn和BlendOut函數曲線如圖4_a和圖4_b所不,圖4_a和圖4_b中t為時間,x為物理權重,這兩種函數曲線能夠$父好地擬合骨骼肌連續收縮時輸出的力量曲線的初始和結束兩個過程,從而得到更真實的結果。另外本發明實施例中也可以根據骨骼肌力量輸出曲線近似的指數函數來更新物理權重,具體實現過程不再贅述。
[0079]通過前述對本發明的舉例說明可知,本發明提供的技術方案可以減小動畫模型占用的資源總量,減小內存占用,使用動態的物理權重,避免使用固定權重,因為美術需要制作大量的骨骼動畫資源,制作骨骼動畫資源非常耗時減少了美術的工作量,本發明實施例中還可以實現更逼真的肢體模擬。
[0080]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
[0081]為便于更好的實施本發明實施例的上述方案,下面還提供用于實施上述方案的相關裝置。
[0082]請參閱圖5-a所示,本發明實施例提供的一種動畫模型的肢體動作模擬裝置500,可以包括:骨骼運動模擬模塊501、物理權重獲取模塊502、融合模塊503和肢體動作模擬模塊504,其中,
[0083]骨骼運動模擬模塊501,用于采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬所述動畫模型在所述多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣;
[0084]物理權重獲取模塊502,用于根據所述動畫模型在所述多個播放時間需要更新的骨骼運動確定由所述骨骼運動驅動產生的肢體動作,并獲取所述肢體動作對應的物理權重,所述物理權重包括:對應于所述多個播放時間的權重值;
[0085]融合模塊503,用于根據所述物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣;
[0086]肢體動作模擬模塊504,用于根據所述肢體動作對應的骨骼變換矩陣在所述多個播放時間分別播放所述動畫模型的各個肢體動作。
[0087]在本發明的一些實施例中,如圖5-b所示,所述物理權重獲取模塊502,包括:
[0088]節點自身權重獲取子模塊5021,用于根據所述動畫模型在動畫樹中的各個動畫節點在所述多個播放時間的節點狀態獲取所述各個動畫節點的節點自身權重;
[0089]物理權重獲取子模塊5022,用于將所述各個動畫節點的節點自身權重與對應動畫節點的物理模擬權重相乘,得到所述各個動畫節點的物理模擬相乘結果,再將所述各個動畫節點的物理模擬相乘結果進行疊加得到所述肢體動作對應的物理權重。
[0090]在本發明的一些實施例中,如圖5-c所示,所述融合模塊503,包括:
[0091]骨骼動畫權重獲取子模塊5031,用于根據所述各個動畫節點的物理模擬權重確定所述各個動畫節點的骨骼動畫權重;
[0092]骨骼動畫權重疊加子模塊5032,用于將所述各個動畫節點的節點自身權重與對應動畫節點的骨骼動畫權重相乘,得到所述各個動畫節點的骨骼動畫相乘結果,再將所述各個動畫節點的骨骼動畫相乘結果進行疊加得到所述肢體動作對應的骨骼動畫權重;
[0093]骨骼變換矩陣確定子模塊5033,用于將所述肢體動作對應的物理權重和所述物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將所述肢體動作對應的骨骼動畫權重和所述骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將所述第一相乘結果和所述第二相乘結果進行融合,得到所述肢體動作對應的骨骼變換矩陣。
[0094]在本發明的一些實施例中,如圖5-d所示,所述物理權重獲取模塊502,包括:
[0095]角色狀態確定子模塊5023,用于根據由骨骼運動驅動產生的肢體動作確定所述動畫模型在所述多個播放時間的角色狀態,所述角色狀態包括:所述動畫模型處于靜止狀態、或所述動畫模型處于從靜止狀態進入移動狀態、或所述動畫模型處于從移動狀態進入靜止狀態;
[0096]物理權重計算子模塊5024,用于根據所述動畫模型在所述多個播放時間的角色狀態計算所述肢體動作對應的物理權重。
[0097]在本發明的一些實施例中,所述物理權重計算子模塊5024,具體用于當所述動畫模型的角色狀態為處于靜止狀態時,計算出所述肢體動作對應的物理權重為O;當所述動畫模型的角色狀態為從靜止狀態進入移動狀態時,根據BlendIn混合函數計算所述肢體動作對應的物理權重;當所述動畫模型的角色狀態為從移動狀態進入靜止狀態時,根據BlendOut混合函數計算所述肢體動作對應的物理權重。
[0098]在本發明的一些實施例中,所述物理權重獲取模塊502,具體用于根據由骨骼運動驅動產生的肢體動作獲取所述肢體動作的骨骼肌輸出力量曲線;根據所述肢體動作的骨骼肌輸出力量曲線確定所述肢體動作對應的物理權重。
[0099]通過以上對本發明實施例的描述可知,首先采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣,然后根據動畫模型在多個播放時間需要更新的骨骼運動確定由骨骼運動驅動產生的肢體動作,并獲取肢體動作對應的物理權重,該物理權重可以包括:對應于多個播放時間的權重值,然后根據物理權重對物理模擬的骨骼變換矩陣和骨骼動畫的骨骼變換矩陣進行融合,得到肢體動作對應的骨骼變換矩陣,最后根據肢體動作對應的骨骼變換矩陣在多個播放時間分別播放動畫模型的各個肢體動作。由于動畫模型在不同的播放時間都會有相應的肢體動作,由于動畫模型在不同的播放時間模擬出的骨骼運動可以驅動產生相應的肢體動作,因此根據由骨骼運動驅動產生的肢體動作獲取到的物理權重可以包括有對應于多個播放時間的權重值,也就是說,本發明實施例提供的物理權重是根據由骨骼運動驅動產生的肢體動作而獲取到的多個權重值,物理權重由動畫模型在由骨骼運動驅動產生的肢體動作進行動態調整,避免現有技術中只使用一個固定取值的物理權重,通過動態調整物理權重的取值可以實現物理模擬和骨骼動畫的動態融合,適用于動畫模型在放松自主控制和加強自主控制時的各種動作,提高肢體動作模擬的逼真效果。由于本發明實施例中不會純粹使用骨骼動畫的方式,因此可以解決動畫資源量大、內存占用高等問題。
[0100]本發明實施例還提供了另一種終端,如圖6所示,為了便于說明,僅示出了與本發明實施例相關的部分,具體技術細節未揭示的,請參照本發明實施例方法部分。該終端可以為包括手機、平板電腦、PDA(Personal Digital Assistant,個人數字助理)、P0S(Point ofSales,銷售終端)、車載電腦等任意終端設備,以終端為手機為例:
[0101]圖6示出的是與本發明實施例提供的終端相關的手機的部分結構的框圖。參考圖6,手機包括:射頻(Rad1 Frequency,RF)電路610、存儲器620、輸入單元630、顯示單元640、傳感器650、音頻電路660、無線保真(wireless fidelity,WiFi)模塊670、處理器680、以及電源690等部件。本領域技術人員可以理解,圖6中示出的手機結構并不構成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0102]下面結合圖6對手機的各個構成部件進行具體的介紹:
[0103]RF電路610可用于收發信息或通話過程中,信號的接收和發送,特別地,將基站的下行信息接收后,給處理器680處理;另外,將設計上行的數據發送給基站。通常,RF電路610包括但不限于天線、至少一個放大器、收發信機、耦合器、低噪聲放大器(Low NoiseAmpl if ier,LNA)、雙工器等。此外,RF電路610還可以通過無線通信與網絡和其他設備通信。上述無線通信可以使用任一通信標準或協議,包括但不限于全球移動通訊系統(GlobalSystem of Mobile communicat1n,GSM)、通用分組無線服務(General Packet Rad1Service,GPRS)、碼分多址(Code Divis1n Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Divis1n Multiple Access ,WCDMA)、長期演進(Long Term Evolut1n,LTE)、電子郵件、短消息服務(Short Messaging Service,SMS)等。
[0104]存儲器620可用于存儲軟件程序以及模塊,處理器680通過運行存儲在存儲器620的軟件程序以及模塊,從而執行手機的各種功能應用以及數據處理。存儲器620可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據手機的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態存儲器件。
[0105]輸入單元630可用于接收輸入的數字或字符信息,以及產生與手機的用戶設置以及功能控制有關的鍵信號輸入。具體地,輸入單元630可包括觸控面板631以及其他輸入設備632。觸控面板631,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板631上或在觸控面板631附近的操作),并根據預先設定的程式驅動相應的連接裝置。可選的,觸控面板631可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給處理器680,并能接收處理器680發來的命令并加以執行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸控面板631。除了觸控面板631,輸入單元630還可以包括其他輸入設備632。具體地,其他輸入設備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
[0106]顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機的各種菜單。顯示單元640可包括顯示面板641,可選的,可以采用液晶顯示器(Liquid CrystalDisplay,IXD)、有機發光二極管(Organic Light-Emitting D1de,0LED)等形式來配置顯示面板641。進一步的,觸控面板631可覆蓋顯示面板641,當觸控面板631檢測到在其上或附近的觸摸操作后,傳送給處理器680以確定觸摸事件的類型,隨后處理器680根據觸摸事件的類型在顯示面板641上提供相應的視覺輸出。雖然在圖6中,觸控面板631與顯示面板641是作為兩個獨立的部件來實現手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板631與顯示面板641集成而實現手機的輸入和輸出功能。
[0107]手機還可包括至少一種傳感器650,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示面板641的亮度,接近傳感器可在手機移動到耳邊時,關閉顯示面板641和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態的應用(比如橫豎屏切換、相關游戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至于手機還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0108]音頻電路660、揚聲器661,傳聲器662可提供用戶與手機之間的音頻接口。音頻電路660可將接收到的音頻數據轉換后的電信號,傳輸到揚聲器661,由揚聲器661轉換為聲音信號輸出;另一方面,傳聲器662將收集的聲音信號轉換為電信號,由音頻電路660接收后轉換為音頻數據,再將音頻數據輸出處理器680處理后,經RF電路610以發送給比如另一手機,或者將音頻數據輸出至存儲器620以便進一步處理。
[0109]WiFi屬于短距離無線傳輸技術,手機通過WiFi模塊670可以幫助用戶收發電子郵件、瀏覽網頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯網訪問。雖然圖6示出了WiFi模塊670,但是可以理解的是,其并不屬于手機的必須構成,完全可以根據需要在不改變發明的本質的范圍內而省略。
[0110]處理器680是手機的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在存儲器620內的軟件程序和/或模塊,以及調用存儲在存儲器620內的數據,執行手機的各種功能和處理數據,從而對手機進行整體監控。可選的,處理器680可包括一個或多個處理單元;優選的,處理器680可集成應用處理器和調制解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程序等,調制解調處理器主要處理無線通信。可以理解的是,上述調制解調處理器也可以不集成到處理器680中。
[0111]手機還包括給各個部件供電的電源690(比如電池),優選的,電源可以通過電源管理系統與處理器680邏輯相連,從而通過電源管理系統實現管理充電、放電、以及功耗管理等功能。
[0112]盡管未示出,手機還可以包括攝像頭、藍牙模塊等,在此不再贅述。
[0113]在本發明實施例中,上述實施例中由終端所執行的動畫模型的肢體動作模擬方法可以基于該圖6所示的終端結構,詳見前述的方法實施例。
[0114]另外需說明的是,以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。另外,本發明提供的裝置實施例附圖中,模塊之間的連接關系表示它們之間具有通信連接,具體可以實現為一條或多條通信總線或信號線。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。
[0115]通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件的方式來實現,當然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲器、專用元器件等來實現。一般情況下,凡由計算機程序完成的功能都可以很容易地用相應的硬件來實現,而且,用來實現同一功能的具體硬件結構也可以是多種多樣的,例如模擬電路、數字電路或專用電路等。但是,對本發明而言更多情況下軟件程序實現是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在可讀取的存儲介質中,如計算機的軟盤,U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0116]綜上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照上述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對上述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種動畫模型的肢體動作模擬方法,其特征在于,包括: 采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬所述動畫模型在所述多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣; 根據所述動畫模型在所述多個播放時間需要更新的骨骼運動確定由所述骨骼運動驅動產生的肢體動作,并獲取所述肢體動作對應的物理權重,所述物理權重包括:對應于所述多個播放時間的權重值; 根據所述物理權重對所述物理模擬的骨骼變換矩陣和所述骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣; 根據所述肢體動作對應的骨骼變換矩陣在所述多個播放時間分別播放所述動畫模型的各個肢體動作。2.根據權利要求1所述的方法,其特征在于,所述獲取所述肢體動作對應的物理權重,包括: 根據所述動畫模型在動畫樹中的各個動畫節點在所述多個播放時間的節點狀態獲取所述各個動畫節點的節點自身權重; 將所述各個動畫節點的節點自身權重與對應動畫節點的物理模擬權重相乘,得到所述各個動畫節點的物理模擬相乘結果,再將所述各個動畫節點的物理模擬相乘結果進行疊加得到所述肢體動作對應的物理權重。3.根據權利要求2所述的方法,其特征在于,所述根據所述物理權重對所述物理模擬的骨骼變換矩陣和所述骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣,包括: 根據所述各個動畫節點的物理模擬權重確定所述各個動畫節點的骨骼動畫權重; 將所述各個動畫節點的節點自身權重與對應動畫節點的骨骼動畫權重相乘,得到所述各個動畫節點的骨骼動畫相乘結果,再將所述各個動畫節點的骨骼動畫相乘結果進行疊加得到所述肢體動作對應的骨骼動畫權重; 將所述肢體動作對應的物理權重和所述物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將所述肢體動作對應的骨骼動畫權重和所述骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將所述第一相乘結果和所述第二相乘結果進行融合,得到所述肢體動作對應的骨骼變換矩陣。4.根據權利要求1所述的方法,其特征在于,所述獲取所述肢體動作對應的物理權重,包括: 根據由所述骨骼運動驅動產生的肢體動作確定所述動畫模型在所述多個播放時間的角色狀態,所述角色狀態包括:所述動畫模型處于靜止狀態、或所述動畫模型處于從靜止狀態進入移動狀態、或所述動畫模型處于從移動狀態進入靜止狀態; 根據所述動畫模型在所述多個播放時間的角色狀態計算所述肢體動作對應的物理權重。5.根據權利要求4所述的方法,其特征在于,所述根據所述動畫模型在所述多個播放時間的角色狀態計算所述肢體動作對應的物理權重,包括: 當所述動畫模型的角色狀態為處于靜止狀態時,計算出所述肢體動作對應的物理權重為O;當所述動畫模型的角色狀態為從靜止狀態進入移動狀態時,根據BlendIn混合函數計算所述肢體動作對應的物理權重;當所述動畫模型的角色狀態為從移動狀態進入靜止狀態時,根據BlendOut混合函數計算所述肢體動作對應的物理權重。6.根據權利要求1所述的方法,其特征在于,所述獲取所述肢體動作對應的物理權重,包括: 根據由所述骨骼運動驅動產生的的肢體動作獲取所述肢體動作的骨骼肌輸出力量曲線;根據所述肢體動作的骨骼肌輸出力量曲線確定所述肢體動作對應的物理權重。7.一種動畫模型的肢體動作模擬裝置,其特征在于,包括: 骨骼運動模擬模塊,用于采用物理模擬的方式模擬動畫模型在多個播放時間需要更新的骨骼運動,從而生成物理模擬的骨骼變換矩陣,并采用骨骼動畫的方式模擬所述動畫模型在所述多個播放時間需要更新的骨骼運動,從而生成骨骼動畫的骨骼變換矩陣; 物理權重獲取模塊,用于根據所述動畫模型在所述多個播放時間需要更新的骨骼運動確定由所述骨骼運動驅動產生的肢體動作,并獲取所述肢體動作對應的物理權重,所述物理權重包括:對應于所述多個播放時間的權重值; 融合模塊,用于根據所述物理權重對所述物理模擬的骨骼變換矩陣和所述骨骼動畫的骨骼變換矩陣進行融合,得到所述肢體動作對應的骨骼變換矩陣; 肢體動作模擬模塊,用于根據所述肢體動作對應的骨骼變換矩陣在所述多個播放時間分別播放所述動畫模型的各個肢體動作。8.根據權利要求7所述的裝置,其特征在于,所述物理權重獲取模塊,包括: 節點自身權重獲取子模塊,用于根據所述動畫模型在動畫樹中的各個動畫節點在所述多個播放時間的節點狀態獲取所述各個動畫節點的節點自身權重; 物理權重獲取子模塊,用于將所述各個動畫節點的節點自身權重與對應動畫節點的物理模擬權重相乘,得到所述各個動畫節點的物理模擬相乘結果,再將所述各個動畫節點的物理模擬相乘結果進行疊加得到所述肢體動作對應的物理權重。9.根據權利要求8所述的裝置,其特征在于,所述融合模塊,包括: 骨骼動畫權重獲取子模塊,用于根據所述各個動畫節點的物理模擬權重確定所述各個動畫節點的骨骼動畫權重; 骨骼動畫權重疊加子模塊,用于將所述各個動畫節點的節點自身權重與對應動畫節點的骨骼動畫權重相乘,得到所述各個動畫節點的骨骼動畫相乘結果,再將所述各個動畫節點的骨骼動畫相乘結果進行疊加得到所述肢體動作對應的骨骼動畫權重; 骨骼變換矩陣確定子模塊,用于將所述肢體動作對應的物理權重和所述物理模擬的骨骼變換矩陣相乘得到第一相乘結果,將所述肢體動作對應的骨骼動畫權重和所述骨骼動畫的骨骼變換矩陣相乘得到第二相乘結果,再將所述第一相乘結果和所述第二相乘結果進行融合,得到所述肢體動作對應的骨骼變換矩陣。10.根據權利要求7所述的裝置,其特征在于,所述物理權重獲取模塊,包括: 角色狀態確定子模塊,用于根據由所述骨骼運動驅動產生的肢體動作確定所述動畫模型在所述多個播放時間的角色狀態,所述角色狀態包括:所述動畫模型處于靜止狀態、或所述動畫模型處于從靜止狀態進入移動狀態、或所述動畫模型處于從移動狀態進入靜止狀態; 物理權重計算子模塊,用于根據所述動畫模型在所述多個播放時間的角色狀態計算所述肢體動作對應的物理權重。11.根據權利要求10所述的裝置,其特征在于,所述物理權重計算子模塊,具體用于當所述動畫模型的角色狀態為處于靜止狀態時,計算出所述肢體動作對應的物理權重為O;當所述動畫模型的角色狀態為從靜止狀態進入移動狀態時,根據BlendIn混合函數計算所述肢體動作對應的物理權重;當所述動畫模型的角色狀態為從移動狀態進入靜止狀態時,根據BlendOut混合函數計算所述肢體動作對應的物理權重。12.根據權利要求7所述的裝置,其特征在于,所述物理權重獲取模塊,具體用于根據由所述骨骼運動驅動產生的肢體動作獲取所述肢體動作的骨骼肌輸出力量曲線;根據所述肢體動作的骨骼肌輸出力量曲線確定所述肢體動作對應的物理權重。
【文檔編號】G06T13/40GK105894555SQ201610192578
【公開日】2016年8月24日
【申請日】2016年3月30日
【發明人】王俊宏
【申請人】騰訊科技(深圳)有限公司