999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于兩段式IK與關鍵幀的虛擬人運動控制

2012-07-25 11:06:28陳明志許春耀
計算機工程與設計 2012年7期

陳明志,陳 健,許春耀

(1.福州大學 數學與計算機科學學院,福建 福州350003;2.福州大學 物理與信息工程學院,福建 福州350002;3.網絡系統信息安全福建省高校重點實驗室,福建 福州350108)

0 引 言

虛擬人 (virtual human)是網絡虛擬環境中最基本的交互實體,由網絡虛擬環境的參與者控制的虛擬人,被稱為參與者的化身[1]。虛擬人的真實展現可以增強用戶與虛擬環境交互的自然性,改善虛擬環境的逼真度和沉浸感。

通常用戶希望網絡虛擬環境系統能實現實時性響應,并且虛擬人模型和運動呈現高逼真度效果,實時性的前提是系統的計算量與數據的網絡傳輸時間要盡可能的少,而高逼真度卻需要較多的基礎數據與較復雜的計算量。因此如何增強用戶與虛擬環境交互的自然性,提高虛擬人運動控制的效率與改善顯示效果是一個很現實的問題。

目前對虛擬人的研究還主要集中在計算機動畫和仿真理論和方法的研究。通常采用運動學和動力學等技術模擬人體的運動[2-4],通過這種模擬反映虛擬人在復雜三維環境中的運動情況。目前對虛擬人通過復雜的網絡虛擬環境進行長距離的運動則研究得不多,原因在于這方面的研究涉及到虛擬環境的表示、視覺平滑、虛擬人運動控制、路徑規劃等一系列復雜問題。

針對網絡虛擬環境的應用需要,研究虛擬人的運動控制,提出一種新的兩段式計算策略,在逆運動學中設計改進的CCD (cyclic-coordinate descent)算法實現分段IK計算,當虛擬人長距離運動時因回溯路徑的縮短,大大減少了計算量,提高了系統實時性響應的效率。引入四元數插值法在關鍵幀中插入中間幀,提高虛擬人運動的真實感。

1 虛擬人建模與運動控制

常見的虛擬人的幾何建模方法主要分為:線框建模(wire frame modeling)、實體建模 (solid modeling)與曲面建模 (surface modeling)等[5]。

由于網絡虛擬環境對數據傳輸速度與模型渲染的實時性要求比較高,因此本文采用了線框建模方法。線框建模的特點是數據存儲量少,對其編輯、修改非常快。當然也存在著具有二義性、真實感偏差的缺點,但在網絡環境中這種缺點可適當忽略。用線框表示的虛擬人模型由主干骨架、線框圖元組成的曲面模型,如圖1所示。

圖1 虛擬人的3D曲面模型

由于運動控制和骨架模型關系密切,故本文重點討論骨架建模。人體骨架模型由一系列關節和骨骼塊構成,他們之間存在鏈接關系,通常是關節為點,骨骼為鏈。本文的人體骨架模型如圖2所示。

圖2 虛擬人體骨骼模型

虛擬人的運動生成與控制方法通常有參數關鍵幀法、運動學法、動力學法及運動捕捉法等[4-5]。參數關鍵幀技術簡便,但只能描述一些特定的運動,靈活性不夠。而運動學法把人體的關節和骨骼看成運動鏈,并利用運動鏈對人體運動進行控制,能較好體現運動的靈活性,但計算量較大。運動學法可分正向運動學與逆運動學。如圖3所示。

圖3 正向與逆向運動學求解

逆運動學指己知末端效應器的位置信息,從末端反向地求解鏈上各個關節的旋轉角,因其只需要提供末端感應器位置參數,數據量較少,所以較適合網絡虛擬環境應用,當然我們還要考慮其方程求解的不確定性、平衡保持、關節角度等問題[6]。

考慮到網絡虛擬環境中響應實時性與運動逼真度的平衡,及參數關鍵幀法與逆運動學法的優缺點,本文采用逆運動學法與參數關鍵幀法相結合的運動控制方法,以達到揚長避短與優勢互補。

首先利用關鍵幀法 (key frame)來降低數據計算量,采用四元數方法對關鍵幀進行插值以提高逼真度;然后運用逆運動學法實現對姿態的逼近,采用改進的CCD算法分段計算IK,避免了虛擬人長距離運動時大量回溯計算,提高IK的效率。

這種方法的好處:首先,應用逆運動學法采集末端感應器的數據,依此局部調整關鍵幀插值得到的運動,以增強真實感;其次,兩個方法結合可以產生高復雜度的動畫過程。

2 兩段法的IK計算

2.1 IK問題與CCD算法簡介

(1)IK問題:反問運動學在計算機動畫中效果明顯,盡管它無法保證最終姿態完全自然真實的,但逆運動學給出的最后姿態是對end-effector的一個逼近。

從根節點到end-effector的矩陣變換:M=R1×T1×R2×T2×…×Rn×Tn。其中Ri(i=1,2,…,n)表示旋轉矩陣,Ti(i=1,2,…,n)表示平移矩陣

求解IK問題的方法不少,但基本歸結為兩大類:解析法與數值法[7]。

(2)CCD算法:CCD算法[8]是沿著運動鏈逆向依次調整每個關節的旋轉角度,讓end-effector逐漸逼近目標。

圖4實例說明應用以上算法實現手臂的運動:從人體骨骼左臂末端開始沿運動鏈做反向迭代,逐漸改變每個關節旋轉角度,最終實現左手到達一個指定的位置 (左上方)。

圖4 初始狀態與運動后狀態

CCD的算法實現簡單,容易控制,并且便于在鏈中加入新的節點等優點。但由于CCD每一次內循環都最終回溯到根節點,這樣計算量就相當的大,其實這并非都是必需的。設想對于距離較近的目標,一般不需要運動到根節點,可以通過調整前端幾個關節的角度就可以達到目標點,比如用手去拿放在邊上的書,可能只需要肩、肘、腕關節的適度運動就可以獲得,而不用讓胸、腰、根關節都參與運動。因此根節點的定義就相當關鍵,若根節點定義不當,一方面可能會導致回溯的計算工作量,另一方面也可能會導致影響身體質心運動的偏差。

2.2 改進的CCD算法

根節點與質心的位置密切相關,而質心運動軌跡的確定是高復雜度的工作,考慮到骨盆的運動和身體質心的運動的相似性,因此本文選擇用骨盆中心表示質心位置 (稱次根節點),并以此作為人體下肢運動鏈關節的根節點。假設當目標距離較遠時,可以先用下肢關節鏈運動到相對較近的距離后再用上肢的關節運動,這樣我們可以讓下肢的關節每次運行CCD算法只需回溯到質心位置,而不需要每次迭代都回溯到頸部 (即主根節點),只有當較近距離時才開始回溯到根節點,使用根的其他分支來配合。此策略因減少回溯的工作,故能以較少的計算量和較快的速度實現關節旋轉到達指定的位置。當然這種的方法由于回溯的有限性,也會帶來虛擬人運動逼真度一定程度的損失,因此需要根據具體應用對二者做一個平衡,達到合理取舍。

用腿部關節角求解過程說明算法的工作原理。當腳踝和質心的運動軌跡確定之后,任一時刻的腳踝和骨盆中心的位置可以解出,即通過幾何方程法進行IK求解[9],就可以迅速地求得腿部關節角。

設虛擬人的腳掌著于水平地面,如圖5所示。若已知骨盆中心P1(zb,yb)、腳踝關節點P2(zc,yc)、膝關節點P(z,y),可以很容易求出大腿長度Llap與小腿長度Lcalf,骨盆彎曲角度θhip,膝蓋彎曲角度θknee與腳踝彎曲角度θank。

大腿長度Llap與小腿長度Lcalf求解如下式

圖5 求解關節旋轉角度

此方程組解不唯一,根據事先建立約束條件可以舍棄一些不符合生理結構的解。

在由P,P1與P2這3個點構成的三角形內,應用余弦定理求解出3個關節旋轉角度,分別如下式

綜合以上分析,改進算法如下:

步驟1 輸入虛擬人的初始狀態信息:確定運動鏈上主要結點的位置P,P1,P2,及各關節角的初值與骨骼的長度參量;目標位置D;設置允許誤差ε,循環變量i(i=0,1,…,Jroot);

步驟2 計算末端效應器的位置E;若|D-E|≤ε則算法成功,并結束;

步驟3 從節點Ji向末端效應器E與目標點D分別作向量VE,VD;

步驟4 計算兩個向量的夾角θ(VE,VD)及其旋轉軸VR,讓Ji下的子鏈繞軸VR轉θ(VE,VD)調整;

步驟5 按式 (2)~式 (4)計算各關節旋轉的角度θ0…θi,根據約束條件修正不滿足要求的旋轉角;

步驟6 按θ0…θi控制各關節運動;

步驟7 循環變量i=i+1,若i<Jroot,則轉步驟2,否則結束。

當腳踝和質心的運動軌跡發生改變時,所估計出的某個時刻的腳踝和骨盆 (髖關節點)的位置也發生改變,于是相應地關節的旋轉角度也有不同的值,如圖6所示。

3 關鍵幀四元數插值法

關鍵幀方法是控制虛擬人運動細節的傳統方法[10-11]。在得到關鍵幀后,還需要在關鍵幀之間內插中間幀以實現較高逼真度。關鍵幀插值問題可歸結為參數插值問題,所有影響畫面圖像的參數,如位置、旋轉角度等都可都列為關鍵幀的參數[12]。一般來說,傳統的插值方法都可應用到關鍵幀方法中,但關鍵幀插值有其特殊性[13]。還涉及兩個問題:一是插值過程中的時間控制問題;二是物體朝向的插值問題,涉及Euler角的解。考慮到四元數除可表示物體的旋轉,且對旋轉角度進行插值比較簡單。在文獻 [14]的基礎上,本文采用Euler角表示關節的旋轉,然后將Euler角用四元數來替代,然后用四元數球狀線性插值法實現插值。步驟如下。

圖6 關節點位置改變導致的旋轉角度不同

步驟1 將Euler角 (α,β,φ)轉換為對應的旋轉矩陣M,因軸的朝向與旋轉次序有關,故設定旋轉的次序為:先繞Y軸旋轉β,再繞X軸旋轉α,最后繞Z軸旋轉φ;

步驟2 將旋轉矩陣M轉換為四元數Q;

步驟3 四元數插值法:根據旋轉矩陣,設關鍵幀中某一關節對應的2個四元數q1,q2,現需要插值求得q,要求q與q1,q2在同一個四維球面圓弧上,并可用q1,q2線性表示q。根據式 (5),即四維幾何學的球狀線性插值方程,可求四元數q

式中:t——指定的插值參數 (通常0≤t≤1)

步驟4 將插值所得的四元數q轉換為旋轉矩陣M;

步驟5 將旋轉矩陣M轉換為Euler角 (α,β,φ)。

需要注意的是在轉換過程中,要考慮 “萬向節鎖”問題,并做相應的避錯處理。

4 行走運動算法設計

(1)運動周期定義:行走運動是最常見的人體運動,它是一種周期性的重復運動,這種的運動周期過程可以看成是左右兩腳不斷交替支撐人體的運動過程[15]。

一個步行運動周期的時序關系如圖7所示。

Dc表示一個步行周期,Ds為支撐周期,Dss為單腳支撐周期,Dds為雙腳支撐周期。

(2)運動參量的設置:為增加人體運動特征的多樣性,本文加入動作參量:步幅 (Step)、步行速度 (Speed),通過調節Step、Speed就可以生成不同步幅、步速,實現運動多樣性。

圖7 行走時序

(3)算法設計:由于行走是左右腿交替的周期性運動,這里以半個周期 (即圖7中Dc的前半段)為例,如圖8所示,圖中綠色實線代表右腿,藍色虛線代表左腿。

圖8 半個運動周期雙腿運動

設半個周期是從右腳著地左腳開始擺動到左腳著地右腳離地結束,將此運動期間劃分成4個步驟,應用CCD改進算法求解左右腿關節鏈的關節轉動角,算法步驟如下。

步驟1 此時為單腳支撐期,右腿直立,從右腳前掌著地到身體重心垂直,左腿懸空。重心 (即骨盆)的位置、左腳踝的位置及身體的各節角都作為初始值給出。

步驟2 此階段仍為單腳支撐期,身體重心前傾時,移到右腳掌的前側上方,其位置可根據相對速度與運動參量及約束方程求得。此時右腳前掌依然在地面上。可把右腳前掌視為鏈的固定根端,骨盆關節視為末端效應器。當骨盆關節的初始位置和目標位置已經時,采用CCD算法反求關節鏈上的其他關節角,這正是逆運動學要解決的問題。求完此IK后,同理,根據移動時間關系,左腳掌開始向前方移動,把左腳踝看成左腿關節鏈的末端效應器,而把骨盆關節看成是固定根端,在已知左腳踝的初始位置與目標位置情況下,也就很容易求得左腳關節鏈的關節轉動角。

步驟3 此時為雙腳支撐期,因身體重心繼續前移,左腳掌開始著地,右腳掌開始離地。此時重心的初始位置與左腳踝的初始位置已知。而對應的目標位置與也可由約束方程求出。同步驟2相同,利用CCD算法求出此時左右腿關節鏈上各關節角。中間時刻關節角也是采用四元數球狀線性插值法求出。

步驟4 此時為雙腳支撐期向單腳支撐期過渡,此時左腳掌已經完全著地而右腳也基本離地。由于受慣性作用,右腿作自由擺動。此時左右腿關節鏈的根端與末端發生互換,如左腳前掌視為左腿鏈的根,骨盆關節看作左腿鏈的末端效應器;而右腳踝看成右腿關節鏈的末端效應器,而把骨盆中心看成是固定根端。類似步驟2,求解出兩條關節鏈上的關節轉動角;求中間時刻關節角的求法同步驟3。

5 實驗結果與分析

為驗證虛擬人建模與運動控制算法的可行性,本文用3dsMax建立虛擬人的骨架模型、以VC++為開發工具進行各算法的設計。在仿真實驗中,通過交互方式調整步幅Step、步行速度Speed等參量,使生成的行走姿態呈個性化。

在確定虛擬人的行為模式以后,分析行走模型、行走的時間和特征參數,設計虛擬人的運動姿態。為減低模擬的計算復雜度,不考慮人體運動較細微的動作,如腳掌的彎曲等。

理論上講,人體全部關節的位置與角度均可通過逆向運動學計算出。把人體分為上身和下身兩部分來處理,上身運動包含左臂、右臂和頸等3條鏈,;下身運動包含左右腿2條鏈。本文的行走模型重點設計下半身運動序列。首先利用關鍵幀法得到運動過程的關鍵幀,然后再根據以上算法修正關鍵幀之間人體關節部位的位置。

一個周期的運動通常分解為8個動作關鍵幀序列,如圖9所示。

圖9 關鍵幀序列

在圖9中,藍色的表示左腿IK鏈,綠色的表示右腿IK鏈,共有8個動作關鍵幀,8個動作構成為一個完整的運動周期。第1到4幀是前半個運動周期,其中第1到2幀是單腿支撐期,表示是以右腿為支撐腿,左腿為自由腿的運動過程;第3幀是雙腳支撐期,表示重心逐漸由右腿轉移到左腿的運動過程。第5到8幀是后半個周期,和第1到4幀類似,只是交換了左右腿,第5到6幀表示是以左腿為支撐腿,右腿為自由腿的運動過程;第7幀是雙腳支撐期,表示重心逐漸由左腿轉移到右腿的運動過程。其實上,運動周期并不要求必需從靜止開始,此外,前半個周期和后半個周期的運動過程除了左右腿不同之外,其他完全一樣。

下半身各運動狀態主要通過IK運動來實現,根據以上的算法,可以通過某些的參數設置求解出第1,2幀自由腿旋轉角度;此外,由于支撐腿固定不動,則通過求解該腿的IK鏈來確定其擺動位置。

上半身的運動狀態由左臂、右臂和頭3條IK鏈組成。上半身運動狀態的設計思想比較簡單,本文在此不詳細展開論述。上臂和前臂擺動的幅度和人體運動速度和步距有關,以保持人體運動平衡。

綜合上下身運動設計,一個虛擬人的行走幀序列如圖10所示。

圖10 虛擬人行走幀 (半個行走周期)

圖中 (1),(2),(3),(5)與 (7)為關鍵幀,(4)與(6)為插值得到的中間幀。從效果上看,中間幀的插入使得虛擬人的行走動作顯得更加逼真。

6 結束語

本文構建了一個虛擬人骨骼模型,提出逆運動學和關鍵幀法相結合的運動控制方法。

在逆運動學中設計改進的CCD算法實現分階段運動的IK計算,因回溯路徑的縮短,減少了計算量,提高了IK效率;在關鍵幀中插入由四元數插值法生成的中間幀,提高虛擬人運動的真實感,此外IK求解的關節旋轉角不僅實現對姿態的逼近,還使關節具有彈性感。此外,通過調整運動特征參量以實現虛擬人動作模式的多樣化。實驗結果與分析表明算法的有效性。本文算法對虛擬人的其他運動,如跑步、跳躍以及自動捕捉目標都具有參考價值。

[1]Thalmann D,Musse S.Virtual human animation:Crowd simulation [M].Berlin:Springer,2008:59-87.

[2]HAN Xiao-ning,JIANG Yu-ming.Simulation of walking of virtual human based on inverse kinematics and dynamics [J].Computer Engineering and Design,2006,27 (15):2871-2873(in Chinese).[韓曉寧,姜昱明.基于逆運動學和動力學的虛擬人行走仿真 [J].計算機工程與設計,2006,27(15):2871-2873.]

[3]LI Chun-peng,WANG Zhao-qi,XIA Shi-hong,et al.Inverse kinematics using local support poses [J].Chinese Journal of Computers,2007,30 (11):1982-1987 (in Chinese).[李淳芃,王兆其,夏時洪,等.基于局部支撐姿態的逆運動學求解 [J].計算機學報,2007,30 (11):1982-1987.]

[4]REN Li-feng,PAN Zhi-geng,ZHU Jie-jie,et al.Avatar in virtual environments:research and progress [J].Computer Engineering and Applications,2008,44 (10):1-5 (in Chinese).[任利鋒,潘志庚,朱杰杰,等.虛擬環境中化身技術的研究與進展 [J].計算機工程與應用,2008,44 (10):1-5.]

[5]Kasap M,Magnenat-Thalmann N.Modeling individual animated virtual humans for crowds [C].ACM SIGGRAPH ASIA Courses.Singapore:ACM,2008:1-8.

[6]Cichocki P,Rzeszut J.Interactive character animation in virtual environments [J].Computer Vision and Graphics,2006,32:1043-1048.

[7]Dr Boulic R.Inverse kinematics techniques of the interactive posture control of articulated figures [D].PhD,Swiss Federal Institute of Technology,2001.

[8]Yong-De Z,Yan-Jiang Z.Kinematic modeling of bevel tip flexible needle [G].LNCS 6425:Proceedings of the Third International Conference on Intelligent Robotics and Applications,2010:405-416.

[9]ZHAO Ya,YANG You-hong,LIU Xian-mei,et al.A study on motion control of virtual human in virtual training simulation system [C].Conference on Simulation Technology and Its Applications,2008:308-313 (in Chinese). [趙婭,楊友紅,劉賢梅,等.虛擬訓練仿真系統中虛擬人的運動控制研究[C].系統仿真技術及其應用學術會議,2008:308-313.]

[10]Jab oński B,Kulbacki M.Nonlinear multiscale analysis of motion trajectories[G].LNCS 6374:Proceedings of the International Conference on Computer Vision and Graphics,2010:122-130.

[11]LEI Xiao,LIAO Zhi,LIU Cheng.Virtual human body motion transition based on quaternion [J].Journal of Hunan Institute of Engineering,2008,18 (4):55-57 (in Chinese).[雷曉,廖智,劉琤.基于四元數插值的虛擬人運動平滑過渡研究 [J].湖南工程學院學報,2008,18 (4):55-57.]

[12]YU Mingcai,YANG Xunnian,WANG Guozhao.Interpolation of unit quaternion curve with high order continuity [J].Journal of Computer 2aided Design & Computer Graphics,2005,17 (3):437-441 (in Chinese). [虞銘財,楊勛年,汪國昭.高階連續的單位四元數插值曲線 [J].計算機輔助設計與圖形學學報,2005,17 (3):437-441.]

[13]Rose Iii C F,Sloan P P J,Cohen M F.Interpolation using radial basis functions with application to inverse kinematics[P].US Patent:7024279,2006.

[14]Dunn F,Parberry I.3DMath primer for graphics and game development[M].Wordware Publishing,Inc,2005.

[15]REN Jing-li,YANG Ke-jian,ZHENG Zhu-bin.The research of running motion control methods for virtual human[J].Journal of Wuhan University of Technology,2008,32(5):967-970 (in Chinese).[任靜麗,楊克儉,鄭著彬.虛擬人跑步運動控制技術的研究 [J].武漢理工大學學報,2008,32 (5):967-970.]

主站蜘蛛池模板: 国产系列在线| 国产精品区视频中文字幕| 国产精品熟女亚洲AV麻豆| 亚洲精品第一在线观看视频| 中文字幕无线码一区| 国产成人精品一区二区不卡| 国产91无码福利在线| 免费一极毛片| 亚洲第一黄片大全| 亚洲综合专区| 看国产一级毛片| 超级碰免费视频91| 操美女免费网站| 成人午夜免费观看| 国产欧美亚洲精品第3页在线| 人妻中文久热无码丝袜| 国产精品美人久久久久久AV| 久久午夜夜伦鲁鲁片不卡| 国产乱子伦视频在线播放| 国产香蕉在线视频| 欧美三级日韩三级| 激情国产精品一区| 色婷婷丁香| 日韩小视频网站hq| 久久中文无码精品| 午夜日本永久乱码免费播放片| 国产AV无码专区亚洲精品网站| 少妇极品熟妇人妻专区视频| 国产日韩久久久久无码精品| 国产靠逼视频| 久久精品免费看一| 一级毛片免费不卡在线| 成人精品免费视频| 国产sm重味一区二区三区| 亚洲日韩AV无码一区二区三区人 | 亚洲最黄视频| 2020极品精品国产| 日本成人一区| 91精品专区国产盗摄| 亚洲欧洲一区二区三区| 亚洲天堂精品视频| 国产91线观看| 色综合成人| 成人中文在线| 国产杨幂丝袜av在线播放| 亚洲一区毛片| 片在线无码观看| 色综合五月| 97在线视频免费观看| 国产主播一区二区三区| 成年av福利永久免费观看| 久操线在视频在线观看| 有专无码视频| 久久亚洲天堂| 免费国产小视频在线观看| 亚洲天堂在线视频| 精品免费在线视频| 久久久久九九精品影院| 国产乱子伦手机在线| 亚洲精品波多野结衣| 狠狠做深爱婷婷久久一区| 青青青国产精品国产精品美女| 免费可以看的无遮挡av无码| 伊人福利视频| 又大又硬又爽免费视频| 无码中文AⅤ在线观看| 中文字幕1区2区| 日本91在线| 欧美视频在线不卡| 国产在线观看第二页| 亚洲青涩在线| 国产高颜值露脸在线观看| 不卡无码网| 美女免费黄网站| 2020精品极品国产色在线观看 | 成人va亚洲va欧美天堂| 国产9191精品免费观看| 色AV色 综合网站| 欧美一级视频免费| 波多野结衣视频一区二区| 在线观看免费人成视频色快速| 国产成人狂喷潮在线观看2345|