方旭
(中國人民解放軍重慶通信學(xué)院,重慶400035)
隨著虛擬現(xiàn)實(shí)技術(shù)的的迅速發(fā)展,虛擬環(huán)境中虛擬人的運(yùn)動(dòng)生成與控制已經(jīng)成為研究熱點(diǎn)。一般情況下,動(dòng)畫師在設(shè)計(jì)骨骼動(dòng)畫時(shí),只是直接對3維模型進(jìn)行操作,以最常見的關(guān)鍵幀動(dòng)畫為例,先在某一幀內(nèi),修改每塊骨骼的位置、方向,然后將所有的幀連續(xù)播放形成動(dòng)畫。這樣做的缺點(diǎn)是效率低、操作繁瑣,且不易修改。并且由于三維人體運(yùn)動(dòng)極其復(fù)雜,一般都有上百個(gè)自由度,采用關(guān)鍵幀方法很難預(yù)先確定人體每個(gè)關(guān)節(jié)的角度。
本文提出了一種基于動(dòng)畫模板的動(dòng)畫制作方法?;诮o定的動(dòng)畫模板,用戶只需輸入一個(gè)3D骨骼模型和其行走路徑,根據(jù)模型的尺寸和想要實(shí)現(xiàn)的行走風(fēng)格在操作界面上調(diào)節(jié)相應(yīng)的參數(shù),就可快速、方便地制作出具有某種風(fēng)格的動(dòng)畫。
傳統(tǒng)的動(dòng)畫制作方法有一個(gè)共同特點(diǎn),即用戶無法根據(jù)需要自由定制動(dòng)畫效果,且結(jié)果一旦生成,修改起來較麻煩。而本文的動(dòng)畫模板從人機(jī)交互的角度出發(fā)進(jìn)行設(shè)計(jì),更加適于用戶使用,可自由方便地定制動(dòng)畫,操作簡單,效率高,對現(xiàn)有結(jié)果的修改也較容易。
本文實(shí)現(xiàn)的動(dòng)畫系統(tǒng)是在Blender軟件的平臺(tái)下,用Python腳本語言編寫的,適用于制作蒙皮骨骼動(dòng)畫。Blender不僅在開發(fā)過程中大量使用了Python語言,而且在Blender軟件中自帶了Python解釋器和核心的Python模塊,使得我們可以在Blender中方便地使用Python語言開發(fā)自己的程序。
目前,制作3D動(dòng)畫的方法有三種:關(guān)鍵幀方式、運(yùn)動(dòng)曲線方式、路徑方式。我們的方法綜合了關(guān)鍵幀和運(yùn)動(dòng)曲線方式。
本文的動(dòng)畫模板系統(tǒng)由4部分構(gòu)成:用戶操作界面、Python腳本程序、Blender宿主系統(tǒng)和3D顯示窗口,如圖1所示。Python腳本相當(dāng)于一個(gè)驅(qū)動(dòng)程序,動(dòng)畫模板的所有功能都是通過調(diào)用執(zhí)行它來實(shí)現(xiàn)的。Python腳本和用戶界面可實(shí)現(xiàn)雙向的交互,腳本程序既可以從用戶界面得到輸入,又可以把執(zhí)行的結(jié)果和返回的狀態(tài)信息顯示在界面上。用戶操作界面可以看作一個(gè)提供給用戶的接口,能夠接收用戶輸入的參數(shù),同時(shí)顯示當(dāng)前的狀態(tài)信息。Blender宿主系統(tǒng)是整個(gè)架構(gòu)的核心部分,它承擔(dān)著解釋執(zhí)行Python腳本、繪制、顯示等任務(wù),將最后生成的動(dòng)畫在3D窗口中顯示出來。
所謂動(dòng)畫模板,就是利用一段腳本程序控制一個(gè)“虛”的、邏輯的骨骼模型進(jìn)行運(yùn)動(dòng)。要將模板表示的運(yùn)動(dòng)附著在某個(gè)真實(shí)的骨骼模型上,只需將模板中的每個(gè)代理與模型上的某個(gè)關(guān)節(jié)點(diǎn)相關(guān)聯(lián),動(dòng)畫模板通過控制代理物體的運(yùn)動(dòng)來帶動(dòng)骨骼模型運(yùn)動(dòng)。
在實(shí)現(xiàn)人物“走路”的動(dòng)作時(shí),不必控制腿部和腳部的每一個(gè)關(guān)節(jié)點(diǎn)的運(yùn)動(dòng),只需關(guān)注腳部的3個(gè)關(guān)節(jié)點(diǎn):heel、foot、toe。當(dāng)這3個(gè)關(guān)節(jié)點(diǎn)沿著正確的軌跡運(yùn)動(dòng)起來后,在heel關(guān)節(jié)點(diǎn)上加以反向動(dòng)力學(xué)(IK)約束,將IK鏈長度設(shè)為2,即可帶動(dòng)大腿、小腿一起運(yùn)動(dòng)。
本文采用了添加空物體(empty)的方法,如圖2所示。在模型的中心點(diǎn)、雙腳、兩臂共增加9個(gè)空物體,除模型的中心點(diǎn)外,每個(gè)空物體與模型的一個(gè)關(guān)節(jié)點(diǎn)相關(guān)聯(lián)。動(dòng)畫模板實(shí)際上是控制空物體的運(yùn)動(dòng),當(dāng)空物體按照給定的要求形成動(dòng)畫以后,其與相應(yīng)關(guān)節(jié)點(diǎn)的約束關(guān)系由用戶在Blender操作界面中手動(dòng)設(shè)定。
在本文實(shí)現(xiàn)的“行走”動(dòng)畫模板中,對foot和toe部位的關(guān)節(jié)點(diǎn)與骨骼添加“Track To”約束,對heel處的關(guān)節(jié)點(diǎn)與骨骼添加“IK”約束,對arm處的關(guān)節(jié)點(diǎn)與骨骼添加“Track To”約束,此外,中心點(diǎn)處的空物體不是與模型的某一個(gè)關(guān)節(jié)點(diǎn)相關(guān)聯(lián),而是作為整個(gè)模型的父類控制著模型在空間方位、朝向上的變化。
用戶在使用動(dòng)畫模板時(shí),希望得到一定的自由度,能夠根據(jù)需要隨時(shí)修改運(yùn)動(dòng)姿態(tài),得到不同的行走風(fēng)格。在模板中,用戶不僅可以設(shè)置模型的基本屬性,如模型中心點(diǎn)距地面的距離(Center height)、肘部關(guān)節(jié)點(diǎn)距地面的距離(Arm height)、雙腳分開距離(Heel separation),還可以修改和動(dòng)畫有關(guān)的屬性如:
(1)步伐的頻率(Move time):即每個(gè)行走單元所用的時(shí)間,Move time越大,腳部運(yùn)動(dòng)的頻率越慢;反之,Move time越小,腳部運(yùn)動(dòng)的頻率越快。角色行走的步幅(即行走單元的長度)、胳膊擺動(dòng)的幅度也是與Move time相關(guān)的,Move time越大,步幅和胳膊的擺動(dòng)幅度也越大,反之亦然。
(2)腳部抬起的高度(Liftheight):這里的Liftheight為腳部運(yùn)動(dòng)到最高點(diǎn)時(shí)的高度值。
對于角色模型的胳膊的控制相對簡單,只需在肘關(guān)節(jié)處添加一個(gè)空物體,讓空物體相對于模型的中心前后運(yùn)動(dòng),然后對空物體和肘部關(guān)節(jié)點(diǎn)加以“Track To”約束,小臂和大臂就會(huì)跟著擺動(dòng)起來。肘部關(guān)節(jié)點(diǎn)相對于地面的高度用Arm height的值來表示。
為了驗(yàn)證本文的動(dòng)畫模板的有效性,我們將同樣一個(gè)“行走”的動(dòng)作作用于兩個(gè)角色模型。如圖3所示??梢钥闯觯谝唤M圖片基本保持了人物在行走時(shí)的動(dòng)作特征,第二組的小動(dòng)物也模仿了人走路的姿態(tài)。并且,將liftheight值增大,其它參數(shù)值保持不變,得到了人行走的另一組動(dòng)畫。人物的動(dòng)作幅度加大,腿抬起的高度明顯增加。
本章提出了一種基于模板的行走動(dòng)畫定制方法,并實(shí)現(xiàn)了一個(gè)簡單的行走動(dòng)畫系統(tǒng)。使用該模板系統(tǒng)制作動(dòng)畫,不必直接對模型進(jìn)行操作,只需設(shè)置用戶操作界面上的參數(shù)即可。而且,用戶可以根據(jù)特定的需求,隨意的調(diào)整參數(shù),編輯出個(gè)性定制的動(dòng)畫。相比現(xiàn)有的動(dòng)畫制作方法,本文實(shí)現(xiàn)的動(dòng)畫模板使用簡單、方便,可以快速地編輯、修改動(dòng)畫。
[1] 王德才,楊關(guān)勝,劉曉明等.蒙皮骨骼動(dòng)畫角色模型接口的設(shè)計(jì)與實(shí)現(xiàn)[C].第三屆智能CAD與數(shù)字娛樂學(xué)術(shù)會(huì)議(CIDE2006),2-3.
[2] 石敏,朱登明,王兆其等.三維地形中人體運(yùn)動(dòng)生成方法[J].系統(tǒng)仿真學(xué)報(bào),2006,18(5),1247-1252.
[3] IGARASHI,T.,MOSCOVICH,T.,AND HUGHES,J.F.2005.Spatial key framing for performance-driven animation.In Sympo-sium on Computer Animation(SCA),107-115.
[4] IGARASHI,T.,MOSCOVICH,T.,AND HUGHES,J.F.2005.As-rigid-as-possible shape manipulation.ACM Transactions on Graphics 24,3(Aug.),1134-1141.
[5] Isaac Victor Kerlow.3D計(jì)算機(jī)動(dòng)畫與圖像技術(shù)[M].鮑明忠譯.北京:中國水利水電出版社,1998.
[6] 金小剛,彭群生.四元數(shù)及其在計(jì)算機(jī)動(dòng)畫中的應(yīng)用[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),1994,6(3):174-180.