賈飛鵬,何冬冬
(泉州信息工程學院,福建 泉州 362000)
基于Kinect的快速動畫制作應用研究
賈飛鵬,何冬冬
(泉州信息工程學院,福建 泉州 362000)
由于傳統的動畫在生成過程中存在著實時性差、清晰度低和生成過程繁瑣以及高成本等一系列問題,本文運用Kinect的體感捕捉技術來制作動畫提高工作效率.Kinect在醫療領域已經獲得了廣泛的應用,例如第十四醫院的智能探測機器人,利用正向運動學的方法建立拓撲骨架結構的動畫人物模型,并能夠定向創建虛擬人物模型,進而操作模型做出與真實行為一致的運動.為了消除虛擬人物在運動中懸浮和人體的某些肢體丟失的現象,所以就有了平移補償和關節點丟失的保持機制.大量的實驗表明,利用Kinect可以更好的呈現實時逼真的虛擬人物運動并生成動畫,且該方法易于實現、實用性強.
Kinect;快速動畫;應用研究
Kinect在游戲開發中也有廣泛的應用,我們傳統的動畫制作都是通過一些游戲開發軟件與其人物模型進行綁定,再利用動畫的設計理念對其進行設計和修飾,這種方式不僅在動畫的制作,需要對動畫制作人員的技術有很高的要求,于此同時,還會浪費制作人員的大量時間.
Kinect動作捕捉技術的快速發展,一些專業人員通過Kinect技術和iClone5動畫制作方式制作插件,來給游戲軟件制作的人物進行配置動畫,并利用Unity3D引擎再對動畫進行開發,經過不斷地測試,最終證明這種開發方式在游戲動畫的制作過程中更具有經濟實用性.在2010年微軟就將XBOX360的體感正式命名為Kinect.隨著這個命名的出現,Kinect技術的開發應用的領域越來越廣泛,尤其是在游戲領域的應用,Kinect系統能夠實現系統的動態捕獲、視頻識別、麥克風語音輸入以及朋友之間的互動等一些動態獲取的功能,這就為開發提供了便利,能夠使玩家可以不受手柄的局限,而是能夠調動玩家自身身體的全部肢體來玩游戲,真實的模擬現實中的游戲,讓用戶能夠感受的身臨其境的效果.Kinect有三個眼系統,他們分別為中間的彩色攝像頭,控制模擬任務協調的左右紅外攝像機,以便感應到更加深度的信息.在現在的游戲開發中,主要是通過Kinect技術來對人體骨骼來進行跟蹤.iClone5是臺灣的公司研發的一款能夠輔助3D游戲開發的軟件系統,用戶能夠很方便的利用這種技術創建數字角色、視覺效果和體感捕捉.Unity Technogoies 公司開發的Unity3D是可以讓開發人員開發出三維的視頻游戲和建筑模型的內容的游戲開發的工具,這是一個很全面的游戲引擎系統.
運動重定向是將骨骼運動的數據重新利用的方式,可以為動畫的后期制作進行調整,以便于解決動畫中人物動作的無法模擬逼真的高難度動作,所以王萬良利用Kinect的數據流作為輸入信號,也就提出了將低維信號轉換為高維信號的方式,然后就通過模塊是無法跟數據庫中相似動作片段,在最后需要將多個動作片段制作成動畫.
目前國內的Kinect的應用也很廣泛,在一些醫療行業、游戲設備和動畫制作上都有著廣泛的應用.
醫院對手術的環境要求很高,但是就當前的醫務人員之間的交流方式還不利于手術的操作,這樣就在無形之間加大了醫院手術人員的工作負擔,不能保證手術的及時性和準確性.Kinect的肢體感應來操作游戲能夠很好的應對當前的難題,在使用手機的整個過程中,能夠利用手機來查詢相關的醫學資料,不能夠局限于觸摸的方式,還可以利用手勢和語音的形式來對圖片進行縮放和查閱來進行控制操作.例如在瑞士的伯爾尼大學應用Kinect技術為醫療圖像的瀏覽OsirixPACS系統,利用系統的語音控制和體感效果來取代傳統的檢查程序,利用這種方式就可以實現尸體檢查的無菌性,避免了醫務人員的接觸感染的可能,在我國應用中,第四軍醫大學西京醫院以Kinect為基礎條件,開發出能夠自動識路的機器人設備.當機器人在進入到一個陌生的環境中,可以利用Kinect技術對地理位置進行分析來獲取并及時的繪制出三維地圖的數據庫,從而利用地圖來進行判斷并進行的路徑的分析和規劃.使用的人可以通過手勢來遠距離的控制機器人,讓它來模擬操控者做出一樣的動作,如同電影中的場景,幾年之后,人們就能夠利用特定的收拾手勢和語音來控制機器人,來幫我們打掃衛生、收拾房間、擺放物品等一系列的家務.部分移動機器人的團隊利用Kinect技術開發了一款救援機器人,這樣就能夠在大型災害后坍塌的建筑物和危險地帶等惡劣環境,通過獲取的地理信息分析從而繪制出三維地圖數據,從而找到合適的路線去救助受災人員.
以Kinect為基礎制作的影像瀏覽系統已經在脊柱骨瘤的外科手術中應用成功,醫生則可以不用佩戴任何的附加設備,利用體感控制就能夠獲取患者的病例的影像資料,從而在很大程度上降低了室內的交叉感染的風險,使得外科手術能夠高效、安全地進行.
Kinect與我們傳統的康復訓練設備相比較,不僅成本低廉還能夠時時捕獲動作、對骨骼進行跟蹤和獲取深數據,從而能夠準確的捕獲中風病人的肢體運動信息,再分析這些數據能夠更加準確的掌握病人康復情況,時時的對其病情進行監控.現在醫院可以利用Kinect技術可以遠程監控病人鍛煉的康復系統,能夠更好的幫助中風和老年病患者,這個技術在醫療上的應用前景廣闊.
Kinect是通過iClone5軟件制作出能夠識別骨骼的運動模式,骨骼的運動模式iClone5設置的窗體中有著相應的記錄,其中3DsMax就是綁定者骨骼.目前的骨骼適配的畫面,系統能夠設定綠色人形,他是根據人的體形樣式而制成的.然而,藍色人形則是通過Kinect技術來拍攝對象的一定姿勢,主要目的是需要拍攝人員的姿勢能夠與系統設定的人員姿勢是一樣的.綠色人形與體型相匹配后構建的能被Kinect技術所識別而形成的圖像,因此,被拍攝人員的任何動作都會被Kinect辨識,如果在圖像的拍攝過程中對數據進行記錄.還應該利用i-Clone5中的按鈕,來對“Record”命令進行點擊和配置,這樣我們捕捉的畫面才能夠合理的將動畫的數據進行分析和處理.
動畫捕捉技術既能夠單個捕捉,同時還可以將一系列的動作放在一個文件中進行動作存儲,在i-Clone5中就需要將角色模型和動畫的數據進行分開來存儲,并完成模型和動畫輸入到3DXChange中,然后將模型中和動畫數據以FBX格式將文件進行存儲,但是由于必須要在Unity3D的游戲引擎中進行輸出,所以將輸出的參數設定為“GameEngine_Unity3D”.
動畫的制作者可以利用3DXCchange轉換的模型和動畫導入到Unity3D的游戲引擎中,如此,我們就需要建立一個Unity3D的項目,3DXChange輸出的模型和貼圖文件一并復制到Unity3D的項目文件中Assets的目錄下,Unity3D則會自動將傳入的模型及動畫進行檢測.動畫的制作者就能夠在編輯器中對動畫的人物模型和動畫設計進行合理的調試來滿足制作者制作動畫的實際需求,最后完成模型及動畫數據并將其數據導出為UnityPackage格式的文件交給程序設計人員.
2.3.1 創建虛擬人模型
在動畫中的虛擬人物可以利用Kinect只能對20多個關節點之間的信息,與此同時,為了將206塊骨骼來降低建模和計算的復雜度降低到只有20塊關節點復雜度以下,這就需要對其進行一對一的映射才能夠實現.這個重定向的骨骼模型的拓撲圖中,虛擬人物的主脊柱將會是一個最為基本的支柱,而且上下級的關節之間會相互牽制和影響.
2.3.2 基于正向運動學的重定向技術
對于虛擬人物的骨骼運動的重定向技術是利用兩種矩陣,他們分別有初始變換矩陣和組合變換矩陣,初始變換矩陣可以表示骨骼的初始位置,而組合變換矩陣則是對骨骼的各種運動進行計算的,只有將這兩種矩陣相結合才能夠實現對骨骼位置的更新.利用圖像特征的相似度匹配算法主要成分來降低重定向的效率和使用的實效性不是很高.因此,本文就提出了一種基于Kinect的骨骼實時的跟蹤重定位技術,并利用這個技術實現一個虛擬人物在動畫中的逼真效果,同時也將虛擬人物在動畫重定向應用過程中有關的滲透、懸空和關節點的暫時不能丟失現象,提出了平移補償和丟失關節機制等基于正向重定向技術運動是骨骼.分別對于初始變換矩陣和組合變換矩陣,則初始變換矩陣代表虛擬人物的初始位置,然而組合變換矩陣主要是將存儲的骨骼運動的獲取出來,并計算骨骼之間的運動,這兩種矩陣相互協調可以共同實現骨骼位置的更新.由于虛擬人模型必須要利用正向運動學的重定向來,通過骨骼運動的原理動畫,創建人物模型的幀表示骨骼關節點,并根據每幀對骨骼關節進行更新.將上級節點上的骨骼節點的運動傳遞給子關節運動.確定正向矢量給出的狀態的向量液晶,關于運動之間的方程來就每個關節點的位置來進行計算.就正向運動學的解決思路:就對于根的節點的變換則需要利用平移和旋轉的矩陣來更新狀態,對于字節點需要從根節點逐漸應用于旋轉矩陣遍歷到目標字節點,計算出各個關節點在模型坐標系的三維位置.
2.3.3 平移補償
在虛擬人物模型創建骨骼的時候,為了利用平移補償讓Kinect骨骼的拓撲結構相保持一致,文中是利用虛擬人物的幾何模型的坐標相對應的根節點處,但是由于人體的全部動作都是將腳步為坐標系中原點,然而,將會將腿部以下的肢體關節在運動的工程中出現的現象.為了能夠將這個問題解決,可以從幾何關系上著手,來定義肢體的運動原理.按照算法計算,假設虛擬人物模型腿部的長度為L,另外假設根節點的spine進行發生了偏移,會讓根節點的轉換.用于推算出根節點需要平移和補償數據,利用平移補償的技術的數據來使節點的腳步發生偏移.這樣制作出的動畫更為逼真、生動,同時還能夠可以對復雜度進行小的改動.當虛擬人隨著根節點旋轉的時候,利用計算的角度推出平移距離,并對spine根節點進行平移補償,并對賦值給根節點的矩陣.
2.3.4 關節點丟失保持
因為Kinect的硬件的本身的缺陷導致部分關節點的缺少和遮擋問題,本文對于失真處理辦法對關節保持機制.當關節點丟失的時候,需要保證矩陣信息,就從某種程度上,避免了人物的肢體失真問題.當Kinect的API定義了關節點被跟蹤的狀態是 TRACKEDN、INFERRED和 NOT_TRACKED三種狀態.他們分別用來表示跟蹤到,跟蹤中,未跟蹤等三個狀態.主要的算法思路和流程是(1)通過Kinect的骨骼的算法來計算關節點為NOT_TRACKED,如果判斷是true,就可以按其以下步驟進行(.2)他能夠將其父關節點的前一幀進行記錄和保存為pV0和表示變換成四個元素分別為pQ0,節點前一個幀的四個元素為childQ0(.3)據當前的childQ0和Qt相乘得出的當前四個元素為childQ1.(4) 將 childQ0乘以 Qt的四個元素 childQ1,將childQ1應用到骨骼的長度上,計算當前幀的三維坐標childV1.(5)在某個時刻這個節點的狀態能夠為TRACKED或者INFERRED時,則能夠替換下一個幀.
傳統的軟件行業對動畫的制作缺乏可行性,本文通過利用Kinect技術,來獲取骨骼運動的真實信息系統,然后再利用相對運動學對人物進行驅動.實驗數據表明,這個方法可以獲取實際效果.隨著Kinect技術的快速發展,將會對重定位技術的算法進行改進并進行優化處理,可以在時空的約束下獲取一致的驅動模型設計,并可以將虛擬人物進行3D場景的交互性處理,也能夠通過骨骼拓撲結構進行定位.
〔1〕張龍.三維動畫中運動重定向技術的研究與實現[D].武漢:華中科技大學,2008.
〔2〕楊熙年,張家銘.基于骨干長度比例之運動重定目標算法[J].中國圖像圖形學報,2002,7(9):871-875.
〔3〕郭力,何明耘,陳雷霆.基于BVH驅動的OGRE骨骼動畫[J].計算機應用研究,2009,26(9):3550-3552.
〔4〕李紅巖.基于雅比克矩陣的虛擬人運動控制研究[D].哈爾濱:哈爾濱工程大學,2008.
〔5〕王萬良,馬慶,王鑫,等.基于 Kinect的高維人體動畫實時合成研究 [J].計算機應用與軟件,2012,28(11):184-187.
〔6〕雷濤,羅維薇,王毅.一種具有逼真效果的虛擬人動畫生成方法 [J].計算機應用研究,2012,29(10):3983-3986.
〔7〕李連東,樊養余,雷濤,等.一種可編輯的三維人體蒙皮網格動畫合成方法[J].計算機應用研究,2010,27(3):1176-1179.
〔8〕潘志庚,程熙,唐冰,等.一種實時虛擬人反應式動畫生成算法 [J].計算機研究與發展,2009,46(1):151-158.
〔9〕王廣軍.基于運動捕捉數據的交互式智能控制與虛擬仿真[D].安慶師范學院,2013.
〔10〕楊道談.一種基于Kinect的實時虛擬人動畫生成方法[J].電子科技,2015(07):149-152.
〔11〕李紅波,冉光勇,吳渝,丁林建.一種基于Kinect的角色骨骼動畫方法[J].重慶郵電大學學報,2014(04):530-535.
J93
A
1673-260X(2017)10-0038-03
2017-07-20