摘要:論文闡述了動畫制作中的關鍵幀方法,人體骨骼關節原理以及分析了人體行走過程的重要特征。在此基礎上,作者在Maya軟件中運用關鍵幀技術和逆運動學相結合的方法,詳細論述了虛擬人行走動畫的制作過程,最終完成人體行走運動的仿真。
關鍵詞:Maya;虛擬人;關鍵幀;行走仿真
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)25-1547-05
Walking Motion Simulation of Virtual Human Based on Maya Key Frame Technology
YE Shu-jing, WAN Jing
(School of Mechanical Engineering, University of Science and Technology Beijing, Beijing 100083, China)
Abstract: This paper represent the technology of key frame in animated-drawing and the theory of human skeleton, then analyze the human walking motion. Based on the theory, we do the walking motion simulation of virtual human in Maya, combining the key frame technology and inverse kinematics.
Key words: maya; virtual human; key frame; walking simulation
1 引言
Maya軟件是目前最強大的整合3D建模、動畫、效果和渲染的制作軟件之一。它廣泛的應用在電影、電視、廣告、電腦游戲和電視游戲等的數位特效創作,尤其在角色動畫的制作[1]。
對虛擬人(Virtual Human)行為的模擬在動畫、機械工程、醫學、軍事和空間探索等虛擬環境中,也變得越來越重要,其應用包括工業環境改造學、機械虛擬造型、軍事訓練、體育醫學和空間任務仿真等。虛擬人行走運動仿真是一個具有挑戰性的任務,它涉及到了多學科的交叉,如計算機圖形學、動物學、機器人學、運動學、生物力學、動力學等等[2]。
目前,國外對虛擬人行走運動仿真的研究主要采用 5 種方式:
①關鍵幀方法[3];②基于運動學和逆運動學[4];③基于動力學和逆動力學[5];④時空約束問題[6];⑤使用運動捕捉技術[7]。
本文對虛擬人行走運動仿真是基于Maya軟件,采用關鍵幀方法來實現的。在文中本人闡述了關鍵幀方法,人體骨骼關節原理以及人體行走過程分析,在此基礎上在Maya軟件中用關鍵幀技術和逆運動學相結合的方法,以簡單動力學和實際測量得到的經驗數據為約束限制,最終完成人體行走運動的仿真。
2 關鍵幀方法
關鍵幀的概念來源于傳統的卡通片制作。在早期 Walt Disney 的制作室,熟練的動畫師設計卡通片中的關鍵畫面,即關鍵幀,然后由一般的動畫師設計中間幀。在三維計算機動畫中,中間幀的生成由計算機來完成,插值代替了設計中間幀的動畫師。所有影響畫面圖像的參數都可成為關鍵幀的參數,如位置、旋轉角、紋理的參數等。關鍵幀技術是計算機動畫中最基本并且運用最廣泛的方法。
從原理上講,關鍵幀插值問題可歸結為參數插值問題。為了較好地解決插值過程中的時間控制問題,Steketee等提出了用雙插值的方法來控制運動參數。其中之一為位置樣條,它是位置對關鍵幀的函數;另一條為運動樣條,它是關鍵幀對時間的函數。Kochanek等提出了一類適合于key fame 系統的3次插值樣條,他們把關鍵幀處的切矢量分成入矢量和出矢量2部分,并引入3個參數張量t、連續量c和偏移量b對樣條進行控制,該方法允許動畫師在不調整關鍵幀的情況下調整物體的運動。
關鍵幀插值系統中要解決的另一個問題是物體朝向的插值問題。物體的朝向一般可由Euler 角來表示,因此朝向的插值問題可簡單地轉化為3個歐拉角的插值問題。Shoemake在采用歐拉角的基礎上,最早把四元數引入了動畫中,并提出了用單位四元數空間上的Bezier 樣條來插值四元數。首先把關鍵幀處的旋轉角轉化為四元數,然后把非歐幾里德空間四元數路徑的切向加速度取極小,并用有限差分和最優化方法數值求解得到的能量方程。Kim 通過構造一組新的基,提出了把R3 空間曲線變換到單位四元數空間曲線的一般性方法 。
3 虛擬人模型的建立
我們在分析人體生理結構的基礎上 ,在幾何建模時采用骨架和皮膚兩個層次的混合模型 。這樣做的優點是既可通過骨架模型來指定精確的運動 、表示人體的內部結構 ,又可用皮膚模型來描述人體的外部形狀,刻畫逼真的人物形象。
第一步:建立虛擬人模型。 本文中直接在Maya的界面導入已建好的人體模型。如圖1。
第二步:創建骨骼與裝配骨骼
人體連接體由關節及連接各關節的骨架組成,它描述了人體模型中各肢體之間的運動連帶關系。其中,人體的骨骼由206塊骨頭組成,如圖2。關節總和具有200個以上的自由度,每個關節又具有一定的活動范圍。表1給出了人體各關節旋轉角的生理范圍。人體的姿態和運動都是通過控制這些關節來實現,因此,虛擬人模型中的骨架部分是虛擬人運動得以實現的基礎[5]。
層次骨骼模型(Hierarchical Skeleton Model)是較為常用的一種虛擬人骨架結構,如圖3。這種骨骼模型依據人體解剖學對人體骨骼結構的分析,對人體骨骼系統進行簡化模擬,易于對虛擬人的動作進行有效的控制,因而被廣泛采用[6]。
■
圖2 人體骨骼系統 圖3 層次骨骼模型
表1 成年人肢體的主要活動范圍和舒適度的調節范圍
■
在Maya界面中創建人體骨骼,首先選擇Animation模塊,執行骨骼工具“Skeleton ■ 圖4 人體軀干骨骼的創建圖6 創建好的人體骨骼圖5 虛擬人模型的運動層次結構 創建好人體骨骼系統后,我們繼續給骨骼安裝上控制器。通過控制器的設置,我們在動畫制作中就能更好更有效率的工作。 在Maya界面中,執行“Skeleton>IK Handle Tool”命令,依次對各關節進行骨骼裝配。圖7為完成了的人體模型控制器全圖。在圖8,我們可以看到,通過對控制器的調節,可以很便捷地對手臂,腿部等關節進行旋轉移動操作。 ■ 圖7 人體模型控制器 圖8 人體模型控制器的操作 4 虛擬人行走動作分析 在開始使用關鍵幀制作之前,本文先分析一下人在行走過程中的重要特征變化。 4.1 身體重心上下的變化 人體在行走過程中身體的重心會隨著下肢的運動而發生周期性的上下運動,如圖10所示。 ■ 圖 10 人體行走時身體重心的變化 圖11 人體行走時身體的旋轉動作 4.2身體的旋轉動作 人體其實是一個動態的平衡體,就如一個上下有兩個橫杠(肩部和跨部),中間是一節彈簧的連接的平衡體。當跨部發生旋轉動作時,肩部會隨之發生相反的動作以平衡,如圖11所示。 4.3 身體重心的左右偏移及身體的側旋 在行走的過程中,身體的重心除了上下移動,還會隨著兩腿的交錯循環發生左右偏移,同時身體會有輕微的側旋的動作,以保持身體的平衡,如圖12所示。 在接觸的位置身體的重心位置居中,如圖所示的1位置,當運動到一只腳支撐身體時,身體重心會向支撐腿偏移,如圖中所示2、3位置,在重心偏移的同時身體也會相應地側旋以保持身體平衡。 ■ 圖12 人體行走時身體重心的左右偏移及身體的側旋 4.4 手臂的擺動動作 隨著下肢循環交錯的動作,手臂會出現周期性的擺動以平衡身體,當右腳在前時,左手會相應地擺動到身體前方,反之亦然。手臂的擺動如圖13所示,在重心下降到最低點的位置B、F時,兩手臂的擺動幅度最大,其余的時間兩手臂處在向最大位移運動的位置。 ■ 圖13人體行走時手臂的擺動動作圖14人體行走時腳的動作 4.5 腳的動作 腳從身體的后部移動到身體的前部,如以腳踝為點將腳的運動軌跡描繪下來,大致會出現一條拋物線的形狀。 腳的起步動作速度一般較緩,中間位置加快,落地時也較快,如圖14所示。 5 虛擬人行走的動畫制作流程 本文在Maya界面設定關鍵幀制作動畫大致可以描述為以下幾個步驟: ■ 圖15 人體行走的動畫制作流程 具體操作以步驟a“確定兩腳的步距”為例。 (1) 在第0幀的位置:設置一個關鍵幀,將人體的姿勢擺放成如圖16所示,此時人體身體微微前傾,重心下降,兩腿交錯分開。跨左旋,肩右旋。頭部再做些補償。 ■ 圖16 Maya界面中第0 幀人體的姿勢圖17 Maya界面中第12 幀人體的姿勢 (2) 第12幀的位置:在12幀位置設置一個關鍵幀,此時左腳向前邁進一步。將人體的左腿在z 軸方向上向前移動,身體也在z軸方向上向前移動。調整各關節控制器。跨右旋,肩左旋。頭部再做些補償。如圖17所示。 (3) 第24幀的位置:在24幀位置設置一個關鍵幀,此時右腳向前邁進一步。身體在z軸方向上向前移動。調整各關節控制器。跨左旋,肩右旋。頭部再做些補償。如圖18所示。 ■ 圖18 Maya界面中 第24 幀人體的姿勢 根據前面對人體行走動作的分析:① 身體重心上下的變化;② 身體的旋轉動作;③ 身體重心的左右偏移及身體的側旋;④ 手臂的擺動動作;⑤ 腳的動作,通過調整各關節的控制器達成仿真的人體姿勢,設置關鍵幀。 關鍵幀確定以后,中間過度幀的產生采用B-樣條插值法,為了很好地解決插值過程中的時間控制問題,本文采用雙插值的方法來控制運動參數。其中之一為位置樣條,它是位置對關鍵幀的函數;另一條為運動樣條,它是關鍵幀對時間的函數。 按照圖15人體行走的動畫制作流程完成后,我們就可以得到逼真的人體行走運動仿真了。如圖19,為人體在一個行走周期的仿真截圖。 ■ 圖19 虛擬人行走仿真 6 小結 本人在研究人體行走控制原理的基礎上,結合專業動畫軟件Maya采用關鍵幀的方法做出了較為逼真的虛擬人行走仿真運動。采用關鍵幀方法實現起來相對簡單,并且計算量比較小,所以實時性比較好。缺點是制作關鍵幀時對動畫師的要求比較高且任務比較繁重,動畫的質量與動畫師的水平有很大關系,另外使用這種方法使虛擬人與外界的交互性比較差。 參考文獻: [1] 劉坤,彭冬梅.Maya三維動畫基礎與實例教程[M].山東:山東美術出版社,2006. [2] 洪炳熔,賀懷清.虛擬人的步行和跑步運動控制方法的研究[J].高技術通訊,2001,11(3):91-95. [3] Steketee S N, Balder N I.Parametric Key frame Interpolation Incorporating Kinetic Adjustment and Phrasing Control [J]. In Proceedings of SIGGRAPH' 85,1985:255-262. [4] 何凱,姜昱明. 虛擬人行走運動的研究[J].系統仿真學報,2004,(2)16-19. [5] 楊桂民.Maya角色動畫規律及設定[M].北京:人民郵電出版社,2007. [6] 秦旭果.虛擬人動畫技術[J].計算機應用研究,2005,(3):11-12. [7] 張寶榮.Maya總動員——角色動畫篇[M].北京:兵器工業出版社,2007.