專利名稱:基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機三維動畫技術(shù)領(lǐng)域,尤其涉及三維人體運動生成技術(shù)。
技術(shù)背景在三維計算機動畫中,人體動畫是最具難度和挑戰(zhàn)的研究課題之一。同樣,虛擬人的 運動生成及控制也是虛擬人技術(shù)的重要研究方向。然而,由于人體具有200多個自由度, 不同個體的運動又具有不同的動作特點和情緒特征。同時,虛擬人體運動的生成,還要符 合人體運動的基本規(guī)律,具有簡單可控的操作方式,需要同時滿足運動的逼真性和控制的 有效性。因此三維虛擬人體運動生成,包括設(shè)計、制作和控制各部分,十分復(fù)雜。目前,三維虛擬人體運動生成方法可分為兩類 一是以計算機生成的人體模型為基礎(chǔ) 的運動生成方法,二是基于運動捕獲的運動生成方法。計算機生成人體模型的運動生成方法是以數(shù)學(xué)模型為基礎(chǔ),通過關(guān)鍵幀動畫技術(shù)、運 動學(xué)等方法來產(chǎn)生人體動作。最早的關(guān)鍵幀概念來源于早期迪斯尼的動畫制作,熟練的動 畫師設(shè)計卡通動畫片中的關(guān)鍵幀畫面,然后由一般的動畫師來設(shè)計中間過渡中畫面。在當(dāng)前計算機的三維虛擬人體運動生成中,關(guān)鍵幀方法仍然被廣泛的使用。該方法包 括以下步驟1) 確定虛擬人體的幾何模型。可以選擇多種現(xiàn)有的幾何模型,如基于骨骼結(jié)構(gòu)的多 剛體模型、表面模型、體模型等。2) 確定虛擬人體的靜態(tài)姿勢描述方式。即在該模型下使用哪些參數(shù)就可以生成不同 的人體靜態(tài)姿勢。不同的幾何模型使用的參數(shù)往往不同,如人體骨骼結(jié)構(gòu)的多剛體模型,多使用表示關(guān)節(jié)自由度的角度參數(shù)(通常選擇主要活動關(guān)節(jié),及其表示自由度的40 60個 角k參數(shù)),或是各個關(guān)節(jié)的位置參數(shù)來描述人體靜態(tài)姿勢。對于表面模型和體模型,則 主要通過控制表面皮膚層的面片點集來產(chǎn)生各種姿勢效果。3) 設(shè)計運動過程中許多個關(guān)鍵幀時刻的人體靜態(tài)姿勢。對于骨骼結(jié)構(gòu)的多剛體模型, 可以采用正向運動學(xué)或是逆向運動學(xué)的方法來生成人體靜態(tài)姿勢。正向運動學(xué)的方法,是 通過給定各個關(guān)節(jié)的自由度參數(shù),從而確定人體各個關(guān)節(jié)的位置以及末端效應(yīng)器的方位。 逆向運動學(xué)的方法則恰恰相反,通過給定末端效應(yīng)器的位置和方向后,然后逆向求解各個 中間關(guān)節(jié)自由度的參數(shù)值。4) 根據(jù)設(shè)計好的多個關(guān)鍵幀靜態(tài)姿勢,采用插值運算由計算機自動生成中間幀畫面。 常用的插值方法有雙插值,三次樣條插值,Bezier樣條插值等等。5) 最后,連續(xù)播放各運動時刻的人體靜態(tài)姿勢,所觀看到的就是虛擬人體的運動全過程。該方法簡單直觀,但是需要設(shè)計很多個關(guān)鍵幀,才能保證插值后的運動過程精確連貫。 每一幀的設(shè)計過程操作繁重,同時對于中間幀的運動生成又缺少控制,難以實現(xiàn)對某個動 作環(huán)節(jié)的細(xì)微調(diào)整,整個方法缺少靈活性和方便性。近年來,隨著運動捕捉系統(tǒng)的普及和推廣,出現(xiàn)了越來越多的具有高度真實感的人體 運動捕捉系統(tǒng)及商用數(shù)據(jù)庫。這種基于運動捕獲的人體運動生成方法則是運用傳感器跟蹤 人體運動來獲取真實感三維運動數(shù)據(jù)為基礎(chǔ),采用數(shù)據(jù)驅(qū)動方式來生成個性化的三維人體 運動。該方法已在運動仿真、視頻游戲、影視特技等領(lǐng)域得到廣泛應(yīng)用。運動捕獲方法準(zhǔn) 確的說是一種運動重現(xiàn),而非真正意義的運動生成。這種方法具有較高的人體運動真實度, 但是需要特殊的昂貴的捕獲設(shè)備,以及真人的實際表演,具有較高的人力物力代價。此外, 依據(jù)這種方法獲得的真實感運動數(shù)據(jù)難以被重用到不同的人體上、更難于對部分運動細(xì)節(jié) 進行編輯和修改。在目甜,上述一些三維虛擬人體運動生成方法己形成商業(yè)軟件被用于動畫產(chǎn)品的制作 中,如Maya, 3D Max, Kaydara Motion Builder, Softimage, Poser等。使用上述軟件 來完成人體運動制作的過程中,操作繁瑣、效率低下,需要使用者具有較高的經(jīng)驗。同時, 這些軟件還都存在數(shù)據(jù)重用性低、智能性不高、需要大量人工干預(yù)等缺陷。與本發(fā)明方法相關(guān)的已有技術(shù)介紹如下時空約束方法在虛擬環(huán)境中,常把障礙物、人體運動的初始位置和目標(biāo)位置等對人 體運動施加的限制統(tǒng)稱為約束。它既可以是空間上的,也可以是整個運動序列上的,因此 又稱作時空約束。時空約束的方法常用來進行運動編輯、運動重定向等研究領(lǐng)域中。加權(quán)最小二乘支持向量方法支持向量機(SVM)具有完備的統(tǒng)計學(xué)習(xí)理論基礎(chǔ),特 別是對小樣本、非線性、高維數(shù)數(shù)據(jù)點的模式識別和函數(shù)估計具有出色的學(xué)習(xí)和推廣性能。 最小二乘支持向量機(LS-SVM)作為SVM的擴展,將SVM對二次規(guī)劃問題轉(zhuǎn)換為求解線性 方程組的問題,較SVM方法有更優(yōu)良的學(xué)習(xí)速度且結(jié)構(gòu)簡單。但是,LS-SVM丟失了SVM的 松散型和魯棒性,為了克服這一問題,提出了加權(quán)最小二乘支持向量機方法(WLS-SVM), 多fe于解決模式識別和函數(shù)估計等問題。發(fā)明內(nèi)容本發(fā)明為克服上述現(xiàn)有技術(shù)的缺點和不足,提出了一種基于關(guān)鍵幀和時空約束的三維 虛擬人體動作生成方法。該方法無需特殊的視頻捕獲設(shè)備,提高了三維人體動畫制作的簡 易性,具有方便、高效、靈活的特點。本發(fā)明的上述目的通過以下技術(shù)方案實現(xiàn)。本發(fā)明的基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法,包括以下步驟1)首先,使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,并確定控制該幾何模型運動所需要的關(guān)節(jié)及其自由度的個數(shù);2) 由所述虛擬人幾何模型中確定的所有表示自由度的角度參數(shù)構(gòu)成的矢量,作為虛 擬人體靜態(tài)姿勢形式化描述的參數(shù);每一個虛擬人體的靜態(tài)姿勢,對應(yīng)一組自由度的角度 參數(shù)值;3) 對待生成的人體動作,根據(jù)正向運動學(xué)或逆向運動學(xué)制作最小運動跨度和最大運 動跨度這兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢;4) 對待生成的虛擬人體運動全過程的時間序列進行等時間間隔采樣,將該運動過程 劃分為時間相等的運動段;判斷是否需要增加采樣點,若是則根據(jù)確定的采樣點個數(shù)及其 在時間序列上的位置,繼續(xù)進行非等時間間隔采樣,否則直接進行下一步;5) 采用基于時空約束的方法,對步驟4)中確定的每個時間采樣點,通過調(diào)節(jié)各采樣 點時刻人體靜態(tài)姿勢的自由度的角度參數(shù)相對于最小或最大運動跨度關(guān)鍵幀時刻的偏移 量(具體作法為以最小運動跨度關(guān)鍵幀時刻的自由度的角度參數(shù)作為最小值0,以最大 運動跨度關(guān)鍵幀時刻的自由度的角度參數(shù)作為最大值1,則在0 1之間調(diào)節(jié)每個時間采樣 點的自由度的角度參數(shù);),得出待生成運動過程中各時間采樣點的角度參數(shù);對步驟4) 中等時間間隔采樣得到的所有時間點,判斷是否需要增加中間幀,若是,則轉(zhuǎn)步驟6),否 則轉(zhuǎn)步驟7);對于步驟4)中非等時間間隔采樣得到的時間點,轉(zhuǎn)步驟6);6) 對步驟5)生成的所有采樣時刻的角度參數(shù)進行擬合(可采用加權(quán)最小二乘支持向 量機實現(xiàn)),生成一條人休運動在所有時刻的連續(xù)的角度參,間變化曲l使得人體運 動的生成畫面更加平滑流暢;7) 判斷待生成的虛擬人體運動在三維空間中的相對位置是否發(fā)生變化,若否,則虛擬人體在三維空間中始終位于最初的位置上,直接轉(zhuǎn)步驟8);若是,則給出不同時刻虛擬 人在三維空間中的位置參數(shù),轉(zhuǎn)步驟8);8) 根據(jù)步驟5)和6)得到的各時刻的自由度的角度參數(shù)以及正向運動學(xué)方法,生成 該時刻虛擬人體的靜態(tài)姿勢,并根據(jù)步驟7)中給出的該時刻虛擬人在三維空間中的位置參數(shù),在虛擬世界中的指定位置處加以顯示,通過連續(xù)播放運動序列,最終生成虛擬人體 在三維空間中的運動全過程。-本發(fā)明的特點及效果本發(fā)明的方法,選擇待設(shè)計動作中運動跨度最大的兩個極值時刻作為關(guān)鍵幀,其他運 動時刻的角度參數(shù)均落在該跨度范圍之內(nèi)。對于這兩個關(guān)鍵幀,需要由用戶設(shè)置該時刻的 虛擬人體靜態(tài)姿勢。對于其他中間幀,采用時空約束的方式,對采樣的時間點交互設(shè)計角 度參數(shù)相對于最小(或最大)運動跨度關(guān)鍵幀的角度偏移量,通過加權(quán)最小二乘支持向量 機來擬合出角度變化曲線,完成角度插值。最后,通過在用戶指定的三維虛擬空間位置中連te播放不同時刻的人體靜態(tài)姿勢,即生成虛擬人在三維虛擬空間中運動的全過程。本發(fā)明的方法,需要設(shè)置的關(guān)鍵幀數(shù)目少,動畫師只需對待生成動作的兩個關(guān)鍵幀設(shè) 計虛擬人體靜態(tài)姿勢即可。而對于中間的運動過程,用戶只需確定采樣時間點,調(diào)節(jié)每個 時間點上的角度偏移量,以及給出虛擬人相對于三維空間的位置參數(shù),就可以實時、自動地生成虛擬人體運動的全過程。該方法,無需調(diào)節(jié)其他特殊參數(shù),也無需各種數(shù)學(xué)公式和 經(jīng)驗的困擾,能夠完全根據(jù)用戶的需要來設(shè)計人體動作。該方法為用戶提供了簡單、方便、 快捷、直觀的動作設(shè)計平臺,將用戶從繁瑣的設(shè)計中解脫出來。同時,在靜態(tài)姿勢和動態(tài) 運動的設(shè)置過程中,可以實時、全方位地觀看三維效果。此外,用該方法設(shè)計虛擬人體的 靜態(tài)姿勢和動態(tài)運動,能夠方便的進行修改、編輯、保存和重用,大大降低了動作設(shè)計成 本。
圖1是按照本發(fā)明的虛擬人體運動生成方法流程圖;圖2是右手揮手動作的等時間間隔采樣點下的自由度的角度參數(shù)偏移量的設(shè)定;圖3是人體上跳動作中采樣點時刻的自由度的角度參數(shù)及其角度參數(shù)擬合曲線;圖4是人體上跳動作中采樣點時刻虛擬人體在三維空間中的位置參數(shù)及其位置參數(shù)擬合曲線;具體實施方式
本發(fā)明提出的基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法結(jié)合附圖及實施 例詳細(xì)說明如下本發(fā)明基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法,如圖1所示,包括以下 步驟1) 首先,使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,并確 定控制該幾何模型運動所需要的關(guān)節(jié)及其自由度的個數(shù)n, n為正整數(shù);2) 由所述虛擬人幾何模型中確定的所有表示自由度的角度參數(shù)構(gòu)成的矢量[《,《,...《],作為虛擬人體靜態(tài)姿勢形式化描述的參數(shù);每一個虛擬人體的靜態(tài)姿勢,對 應(yīng)一組自由度的角度參數(shù)值;3) 對待生成的人體動作,根據(jù)正向運動學(xué)或逆向運動學(xué)制作最小運動跨度和最大運動跨度這兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢(人體運動過程中,人體運動部位的運動軌跡會 在空間內(nèi)形成一個平面,該運動空間平面的兩個邊界位置的時刻,即選取為最小和最大運動跨度關(guān)鍵幀;其他時刻的運動軌跡均包含在由最小、最大運動跨度關(guān)鍵幀所形成空間平 面內(nèi));4) 對待生成的虛擬人體運動全過程的時間序列進行等時間間隔采樣,將該運動過程 劃分為時間相等的運動段;判斷是否需要增加采樣點,若是,則根據(jù)確定的采樣點個數(shù)及 其在時間序列上的位置,繼續(xù)進行非等時間間隔釆樣,否則直接進行下一步;5) 采用基于時空約束的方法,對步驟4)中確定的每個時間采樣點,通過調(diào)節(jié)該時刻 人體靜態(tài)姿勢的自由度的角度參數(shù)的偏移量(具體調(diào)節(jié)方法為以最小運動跨度關(guān)鍵幀時 刻的自由度的角度參數(shù)作為最小值0,以最大運動跨度關(guān)鍵幀時刻的自由度的角度參數(shù)作為最大值l,則在0 1之間調(diào)節(jié)每個時間采樣點的自由度的角度參數(shù)),得出待生成運動 過程中各時間采樣點的角度參數(shù);對步驟4)中的等時間間隔采樣得到的所有時間點,判 斷是否需要增加中間幀,若是,則轉(zhuǎn)步驟6),否則轉(zhuǎn)步驟7);對于步驟4)中非等時間間隔采樣得到的時間點,轉(zhuǎn)步驟6);6) 對步驟5)生成的所有采樣時刻的角度參數(shù)進行擬合(擬合方法可采用加權(quán)最小二乘支持向量機實現(xiàn)),生成一條人體運動在所有時刻的連續(xù)的角度參數(shù)時間變化曲線,使得人體運動的生成畫面更加平滑流暢; .7) 判斷待生成的虛擬人體運動在三維空間中的相對位置是否發(fā)生變化,若否,則虛 擬人體在三維空間中始終位于最初的位置[;c。,y。,z。]上,直接轉(zhuǎn)步驟8);若是,則給出不 同時刻虛擬人在三維空間中的位置參數(shù)[;c,,;/,,z,.],轉(zhuǎn)步驟8);8) 根據(jù)步驟5)和6)得到的各時刻的自由度的角度參數(shù)以及正向運動學(xué)方法,生成 該時刻虛擬人體的靜態(tài)姿勢,并根據(jù)步驟7)中給出的該時刻虛擬人在三維空間中的位置 參數(shù),在虛擬世界中的指定位置處加以顯示,通過連續(xù)播放運動序列,最終生成虛擬人體 在三維空間中的運動全過程。本發(fā)明方法的設(shè)計的兩種實施例說明如下 實施例1:以右手揮手動作作為待生成的虛擬人體運動。該揮手動作,右手手臂最初位于 中間處,先向左揮動到最小運動跨度處,再向右揮動到最大運動跨度處,最后再向左擺回 至中間位置,完成擺動全過程。本實施例的上述三維虛擬人體運動生成方法,包括以下步驟1) 首先,使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,并確 定控制該幾何模型運動所需要的關(guān)節(jié)及其自由度的個數(shù);由于人體有多達200多個自由度, 為了平衡虛擬人體運動的逼真性和可控性,本實施例選取了 18個主要關(guān)節(jié)的45個自由度(未考慮手腳的關(guān)節(jié)劃分),包括骶骨關(guān)節(jié)(6個自由度)、腰關(guān)節(jié)(3個自由度)、胸關(guān)節(jié) (3個自由度)、頸關(guān)節(jié)(3個自由度)、左(右)胸骨鎖骨關(guān)節(jié)(2個自由度)、左(右) 肩關(guān)節(jié)(3個自由度)、左(右)肘關(guān)節(jié)(2個自由度)、左(右)腕關(guān)節(jié)(2個自由度)、 左(右)髖關(guān)節(jié)(3個自由度)、左(右)膝關(guān)節(jié)(2個自由度)、左(右)踝關(guān)節(jié)(l個自 由度)。虛擬人體的質(zhì)心設(shè)置在骶骨關(guān)節(jié)處,質(zhì)心位置則代表了虛擬人在三維空間的位置。 骶骨關(guān)節(jié)的六個自由度確定了虛擬人體與所在三維空間中的方位關(guān)系,三個角度參數(shù) h,《,《]甴定了虛擬人體在三維空間中的朝向,三個位置參數(shù)[;c。,:^,^j確定了虛擬人體 在三維空間的位置;這45個自由度包括42個自由度的角度參數(shù)和3個自由度的位置參數(shù);2) 由上述虛擬人幾何模型中確定的表示自由度的42個角度參數(shù)構(gòu)成的矢量 [《,02,...042],作為虛擬人體靜態(tài)姿勢形式化描述的參數(shù)3) 對待生成的右手揮手動作,根據(jù)正向運動學(xué)制作最小運動跨度和最大運動跨度這 兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢;揮手動作中手臂處在最左端的狀態(tài)設(shè)定為最小運動跨度 關(guān)鍵幀(該時刻自由度的角度參數(shù)作為最小值O),手臂處在最右端的狀態(tài)設(shè)定為最大運動關(guān)鍵幀(該時刻自由度的角度參數(shù)作為最大值l);4) 對待生成的右手揮手動作的全過程進行等時間間隔采樣,選取ll個采樣點,將運 動過程劃分為IO個時間相等的運動段(本實施例無需增加其他采樣點);5) 根據(jù)該揮手動作,手臂的最初位置位于中間處,先向左揮動到最小運動跨度處, 再向右揮動到最大運動跨度處,最后再向左擺回至中間位置結(jié)束該動作,采用基于時空約 束的方法,對步驟4)中確定的ll個時間采樣點,在0 1之間調(diào)節(jié)各時刻人體靜態(tài)姿勢 的自由度的角度參數(shù)偏移量,得出運動過程中各采樣點時刻的角度參數(shù);具體采樣時刻的 角度參數(shù)的設(shè)置如圖2所示,圖中的小黑點為各采樣點時刻的角度參數(shù);這11個時間釆 樣點已經(jīng)足夠控制揮手動作的運動過程,本實施例也不需要再增加中間幀;6) 本實施例中只是右手揮動的動作,只是右臂在運動,虛擬人體相對于三維空間的位置并未發(fā)生改變,始終處于[x。,;vz。]處;7) 對步驟5)中得到的各時刻的自由度的角度參數(shù)使用正向運動學(xué)方法,生成該時刻虛擬人體的靜態(tài)姿勢,通過連續(xù)播放運動序列,最終生成虛擬人體在三維空間中的右手揮動動作。 '實施例2:以人體上跳動作作為待生成的虛擬人體運動。該運動過程為準(zhǔn)備上跳時,人 體微微半蹲,略向下深蹲后,向上起跳,離地,懸于空中片刻后,落地,微微下蹲緩沖, 最后全身直立站在地面,完成整個上跳運動。本實施例的上述三維虛擬人體運動生成方法,包括以下步驟1) 首先,使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,并確 定控制該幾何模型運動所需要的關(guān)節(jié)和及其自由度的個數(shù);與實施例l相同,選取了控制 人體運動的18個主要關(guān)節(jié)及其45個自由度,包括42個自由度的角度參數(shù)和3個自由度 的位置參數(shù);2) 由上述虛擬人幾何模型中確定的表示自由度的42個角度參數(shù)構(gòu)成的矢量 [《,《,...《2],作為虛擬人體靜態(tài)姿勢形式化描述的參數(shù);3) 對待生成的人體上跳動作,根據(jù)正向運動學(xué)制作最小運動跨度和最大運動跨度這 兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢;人體上跳過程中,下肢屈膝彎曲的最大程度狀態(tài)設(shè)置為 最小運動跨度關(guān)鍵幀(該時刻自由度的角度參數(shù)作為最小值O),人體全身保持直立的狀態(tài) 為最大運動跨度關(guān)鍵幀(該時刻自由度的角度參數(shù)作為最大值1)。4) 對待生成的虛擬人體上跳動作的全過程進行等時間間隔采樣,選取4個采樣點, 將運動過程劃分3個時間相等的運動段,第一段表示全身從最初的半蹲狀態(tài)到離開地面的 起跳過程,第二段表示全身直立懸于空中的過程,第三段表示落回地面的過程;為了更細(xì) 致的描述具體過程,本實施例增加了6個時間采樣點第一個采樣點是在第一段起跳的過 程中,加入了一個下蹲到最大程度狀態(tài)的采樣點。接下來的四個采樣點加在第二段全身直 立于空中的過程中;最后一個點是在第三段落地的過程中,加入了一個落地后緩沖到半蹲狀態(tài)的采樣點;這樣就構(gòu)成了有IO個采樣點的非等時間間隔采樣;5) 采用基于時空約束的方法,對步驟4)中確定的IO個時間采樣點上,通過調(diào)節(jié)該 時刻人體靜態(tài)姿勢的自由度的角度參數(shù)偏移量,得出運動過程中各采樣點時刻的角度參 數(shù)第一個采樣點時刻,人體微微半蹲,準(zhǔn)備起跳;第二個采樣點時刻,人體繼續(xù)向下下 蹲到最大程度,即是最小運動跨度時刻的關(guān)鍵幀;第三個采樣點,人體即將離地,全身保 持直立;接下來的四個采樣點,保持全身直立,懸于空中;第八個采樣點,人體剛剛落地, 全身保持直立;第九個采樣點,人體落地緩沖后微微半蹲;最后一個采樣點,全身直立站 在地上,結(jié)束上跳動作;6) 對步驟5)生成的10個采樣時刻的角度參數(shù),用加權(quán)最小二乘支持向量機方法進 行擬合,生成一條人體運動在所有時刻的連續(xù)的角度參數(shù)和時間的變化曲線,如圖3所示, 圖中,圖中的小黑點為各采樣點時刻的角度參數(shù),曲線為用角度參數(shù)擬合后的曲線;在進 行擬合中,由于最小、最大運動跨度關(guān)鍵幀的角度參數(shù)是設(shè)定的,比較精確,因此給予較 高的權(quán)重,例如設(shè)置為0.1,而對于運動過程中其他時間采樣點上的角度參數(shù),可以給予 較低的權(quán)重,例如設(shè)置為0.02;用這種加權(quán)最小二乘支持向量機方法,能夠擬合得到一條 平滑的各關(guān)節(jié)角度變化曲線,其一階導(dǎo)數(shù)角速度的變化也是連續(xù)的,符合人體運動的基本 規(guī)律;7) 判斷待生成的虛擬人體上跳動作在三維空間中的相對位置是否發(fā)生變化。由于人 體下蹲和上跳懸空的狀態(tài)下,人體質(zhì)心位置均發(fā)生了變化,即虛擬人體在三維空間中的相 對位置發(fā)生了變化,因此需要給出不同時刻虛擬人體在三維空間中的位置參數(shù)[JC,,乂,Z,];在此人體上跳運動中,人體質(zhì)心的位置在上下(y軸)方位上發(fā)生了移動,而沒有在左右 U軸)和前后(z軸)的方向上發(fā)生移動,因此只有y的值發(fā)生了變化;具體的人體位 置和時間變化關(guān)系如圖4所示,圖中小黑點為采樣點時刻的位置參數(shù),曲線為質(zhì)心位置擬 合后的曲線。8) 對步驟6)中得到的各時刻的自由度的角度參數(shù)使用正向運動學(xué)方法,生成該時刻 虛擬人體的靜態(tài)姿勢,并根據(jù)步驟7)中給出的該時刻虛擬人在三維空間中的位置參數(shù), 在虛擬世界中的指定位置處加以顯示,通過連續(xù)播放運動序列,最終生成虛擬人體在三維 空間中的上跳動作。
權(quán)利要求
1、基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法,其特征在于,包括以下步驟1)首先,使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,并確定控制該幾何模型運動所需要的關(guān)節(jié)及其自由度的個數(shù);2)由所述虛擬人幾何模型中確定的所有表示自由度的角度參數(shù)構(gòu)成的矢量作為虛擬人體靜態(tài)姿勢形式化描述的參數(shù);每一個虛擬人體的靜態(tài)姿勢,對應(yīng)一組自由度的角度參數(shù)值;3)對待生成的人體動作,根據(jù)正向運動學(xué)或逆向運動學(xué)制作最小運動跨度和最大運動跨度這兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢;4)對待生成的虛擬人體運動全過程的時間序列進行等時間間隔采樣,將該運動過程劃分為時間相等的運動段;判斷是否需要增加采樣點,若是則根據(jù)確定的采樣點個數(shù)及其在時間序列上的位置,繼續(xù)進行非等時間間隔采樣,否則直接進行下一步;5)采用基于時空約束的方法,對步驟4)中確定的每個時間采樣點,通過調(diào)節(jié)該時刻人體靜態(tài)姿勢的自由度的角度參數(shù)相對于最小或最大運動跨度關(guān)鍵幀時刻的偏移量,得出待生成運動過程中各時間采樣點的角度參數(shù);對步驟4)中等時間間隔采樣得到的所有時間點,判斷是否需要增加中間幀,若是,則轉(zhuǎn)步驟6),否則轉(zhuǎn)步驟7);對于步驟4)中非等時間間隔采樣得到的時間點,轉(zhuǎn)步驟6);6)對步驟5)生成的所有采樣時刻的角度參數(shù)進行擬合,生成一條人體運動在所有時刻的連續(xù)的角度參數(shù)時間變化曲線,使得人體運動的生成畫面更加平滑流暢;7)判斷待生成的虛擬人體運動在三維空間中的相對位置是否發(fā)生變化,若否,則虛擬人體在三維空間中始終位于最初的位置上,直接轉(zhuǎn)步驟8);若是,則給出不同時刻虛擬人在三維空間中的位置參數(shù),轉(zhuǎn)步驟8);8)根據(jù)得到的各時刻的自由度的角度參數(shù)以及正向運動學(xué)方法,生成該時刻虛擬人體的靜態(tài)姿勢,并根據(jù)步驟7)中給出的該時刻虛擬人在三維空間中的位置參數(shù),在虛擬世界中的指定位置處加以顯示,通過連續(xù)播放運動序列,最終生成虛擬人體在三維空間中的運動全過程。
2、 如權(quán)利要求1所述方法,所述步驟的調(diào)節(jié)各采樣點時刻人體靜態(tài)姿勢的自由度的角度參數(shù)相對于最小或最大運動跨度關(guān)鍵幀時刻的偏移量的方法為以最小運動跨度關(guān)鍵幀時刻的自由度的角度參數(shù)作為最小值0,以最大運動跨度關(guān)鍵幀時刻的自由度的角度參 數(shù)作為最大值1,則在0 1之間調(diào)節(jié)每個時間采樣點的自由度的角度參數(shù)。
3、 如權(quán)利要求l所述方法,其特征在于,所述步驟6)中的擬合方法采用加權(quán)最小二 乘支持向量機實現(xiàn)。
全文摘要
本發(fā)明涉及基于關(guān)鍵幀和時空約束的三維虛擬人體運動生成方法,屬于計算機三維動畫技術(shù)領(lǐng)域,該方法包括使用骨骼結(jié)構(gòu)的多剛體模型作為三維虛擬人體運動控制的幾何模型,由幾何模型中確定的所有表示自由度的角度參數(shù)構(gòu)成的矢量作為虛擬人體靜態(tài)姿勢形式化描述的參數(shù);制作最小運動跨度和最大運動跨度兩個關(guān)鍵幀時刻的人體靜態(tài)姿勢;對運動的時間序列進行等時間或非等時間采樣,確定的每個時間采樣點的角度偏移量,得出待生成運動過程中各時間采樣點的角度參數(shù);再生成該時刻虛擬人體的靜態(tài)姿勢并確定位置參數(shù),生成虛擬人體在三維空間中的運動全過程。該方法無需特殊的視頻捕獲設(shè)備,提高了三維人體動畫制作的簡易性,具有方便、高效、靈活的特點。
文檔編號G06T15/70GK101246601SQ20081010150
公開日2008年8月20日 申請日期2008年3月7日 優(yōu)先權(quán)日2008年3月7日
發(fā)明者力 丁, 宋亦旭, 華 徐, 斌 楊, 楊澤紅, 賈培發(fā), 鄧俊輝, 盟 那 申請人:清華大學(xué)