張靖超郭林方
(1.安陽幼兒師范高等專科學(xué)校繼續(xù)教育與對(duì)外合作交流中心安陽456150)(2.安陽幼兒師范高等專科學(xué)校公共教學(xué)部安陽456150)
基于雙肩約束的虛擬人運(yùn)動(dòng)路徑調(diào)整
張靖超1郭林方2
(1.安陽幼兒師范高等??茖W(xué)校繼續(xù)教育與對(duì)外合作交流中心安陽456150)(2.安陽幼兒師范高等專科學(xué)校公共教學(xué)部安陽456150)
虛擬人運(yùn)動(dòng)編輯最大的問題是滑步現(xiàn)象,目前常用關(guān)節(jié)點(diǎn)的平移旋轉(zhuǎn)去滑步。此方法會(huì)使運(yùn)動(dòng)序列的根節(jié)點(diǎn)出現(xiàn)偏移,導(dǎo)致編輯后的運(yùn)動(dòng)路徑與用戶指定的路徑的有較大的偏差。在正常的走、跑運(yùn)動(dòng)中,左右雙肩分別在根節(jié)點(diǎn)的兩側(cè)。去滑步后的雙肩必須滿足在用戶指定路徑兩側(cè)這個(gè)約束條件,否則調(diào)整前鄰近支撐腳的旋轉(zhuǎn)角度,使編輯后的運(yùn)動(dòng)路徑與用戶指定的路徑重合度得到提高。最后利用IUP+OPENGL+LUA搭建運(yùn)動(dòng)編輯系統(tǒng)驗(yàn)證了此方法的有效性。
雙肩約束;路徑偏差處理;運(yùn)動(dòng)路徑;運(yùn)動(dòng)編輯;步長(zhǎng)
Class NumberTP391
虛擬人動(dòng)畫技術(shù)是三維動(dòng)畫技術(shù)的一個(gè)重要分支并且一直是國(guó)際圖形學(xué)界的研究熱點(diǎn)之一。隨著虛擬人技術(shù)的日益成熟,該技術(shù)在軍事、醫(yī)學(xué)、娛樂和藝術(shù)等領(lǐng)域起到了舉足輕重的作用[1]。近年來,運(yùn)動(dòng)捕捉技術(shù)[2]由于其高效性,逼真性得到了快速的發(fā)展。但是由于運(yùn)動(dòng)捕捉設(shè)備的昂貴性、系統(tǒng)操作復(fù)雜、對(duì)人員場(chǎng)地要求過高等因素限制了此技術(shù)的大規(guī)模推廣。為了提高捕捉數(shù)據(jù)的重用性,使之能夠應(yīng)用到新場(chǎng)景并滿足用戶的各種需求,需對(duì)捕捉到的數(shù)據(jù)進(jìn)行編輯處理。
運(yùn)動(dòng)編輯[3]可以按照用戶的需求修改運(yùn)動(dòng)捕捉的人體運(yùn)動(dòng)數(shù)據(jù),提高了捕捉數(shù)據(jù)的重用率?;诼窂降倪\(yùn)動(dòng)編輯[4]就是編輯原始運(yùn)動(dòng)(如走、跑等)使之能夠在新路徑上運(yùn)動(dòng)并盡量保持原始運(yùn)動(dòng)的細(xì)節(jié),它是運(yùn)動(dòng)編輯研究的一個(gè)熱點(diǎn)。編輯后的運(yùn)動(dòng)無滑步現(xiàn)象、運(yùn)動(dòng)自然無明顯失真、編輯后的運(yùn)動(dòng)路徑與用戶指定路徑重合度比較高是我們?cè)u(píng)價(jià)路徑運(yùn)動(dòng)編輯方法的一個(gè)標(biāo)準(zhǔn)。本文提出利用去滑步后的雙肩必須在用戶指定路徑兩側(cè)這個(gè)約束條件調(diào)整前鄰近支撐腳的旋轉(zhuǎn)角度,使編輯后的運(yùn)動(dòng)路徑與用戶指定的路徑重合度得到提高。
2.1 運(yùn)動(dòng)路徑
運(yùn)動(dòng)路徑[5]是從運(yùn)動(dòng)中抽象出來的一個(gè)特征,包含運(yùn)動(dòng)位置信息和方向信息。一條運(yùn)動(dòng)路徑是一個(gè)隨時(shí)間變化的空間曲線,變化值為虛擬人角色在給定時(shí)間的空間位置。通常運(yùn)動(dòng)路徑是指運(yùn)動(dòng)序列每幀根節(jié)點(diǎn)的連線在地面的投影,如圖1。
圖1 虛擬人根節(jié)點(diǎn)運(yùn)動(dòng)軌跡
2.2 步長(zhǎng)
檢測(cè)腳支撐約束是以步長(zhǎng)[6]為單位的,這里步長(zhǎng)定義為:周期運(yùn)動(dòng)的一個(gè)周期內(nèi)的運(yùn)動(dòng)。若以行走為例,即任一腳開始著地的那一幀定義為一步的開始,同一只腳在次著地的那一幀的前一幀定義為這步的結(jié)束。
若以腳著地約束定義步長(zhǎng),本文把行走和跑步分為以下結(jié)果階段,Lcon為左腳支撐階段,Acon為雙腳支撐階段,Rcon為右腳支撐階段,Ncon表示騰空階段。圖2詳細(xì)介紹了行走運(yùn)動(dòng)根據(jù)支撐腳約束劃分的一個(gè)步長(zhǎng),以及每個(gè)約束階段腳的運(yùn)動(dòng)狀態(tài)。
圖2 行走一個(gè)步長(zhǎng)腳尖的狀態(tài)及約束
使用Gleicher[7]的方法進(jìn)行運(yùn)動(dòng)路徑變換得到帶有滑步的運(yùn)動(dòng)序列,但運(yùn)動(dòng)序列的根節(jié)點(diǎn)全部垂直投影到用戶指定路徑上。然后利用關(guān)節(jié)點(diǎn)的平移旋轉(zhuǎn)去滑步[8]導(dǎo)致運(yùn)動(dòng)序列的根節(jié)點(diǎn)出現(xiàn)偏移,使編輯后的運(yùn)動(dòng)路徑與用戶指定路徑的有較大的偏差。通過觀察發(fā)現(xiàn)正常人走或跑時(shí)左右肩分別在路徑的左右兩側(cè),本文規(guī)定雙肩約束為去滑步后的雙肩,必須在用戶指定路徑兩側(cè),若不滿足這個(gè)約束條件,則調(diào)整前臨近支撐腳的旋轉(zhuǎn)角度以改變運(yùn)動(dòng)方向使雙肩重新滿足約束條件。詳細(xì)步驟如下:
1)判定去滑步后的雙肩節(jié)點(diǎn)離用戶指定路徑最臨近的線段。用戶指定路徑是用未去除滑步時(shí)根節(jié)點(diǎn)在地面投影的位置表示的。本文利用黃鐵蘭等[9]提出的方法判定去除滑步后的雙肩節(jié)點(diǎn)與用戶指定路徑的關(guān)系。如圖3所示:表示用戶指定路徑,表示去滑步前第i幀的根節(jié)點(diǎn)在地面的投影,表示去滑步后第k幀根節(jié)點(diǎn)在地面的投影。規(guī)定在用戶指定路徑上到最近距離點(diǎn)為去滑步后第k幀對(duì)應(yīng)的在未去滑步的運(yùn)動(dòng)序列上的幀。若到距離最短,則線段雙肩對(duì)應(yīng)的最鄰近線段。
圖3 利用最短歐拉距離判定最鄰近線段
2)利用向量叉乘判斷去滑步后的運(yùn)動(dòng)是否滿足雙肩約束,如圖4所示:的左肩,右肩對(duì)應(yīng)的最鄰近線段為
12
12
圖4 判定雙肩是否滿足約束檢測(cè)
3)當(dāng)雙肩在路徑的同一側(cè)時(shí)調(diào)整運(yùn)動(dòng)方向既調(diào)整旋轉(zhuǎn)角θ。調(diào)整運(yùn)動(dòng)方向只能在支撐腳Lcon和Rcon階段進(jìn)行。
(1)利用向量叉乘判定運(yùn)動(dòng)序列任一幀在去滑步前后運(yùn)動(dòng)方向的關(guān)系。dk是某一幀去滑步后的運(yùn)動(dòng)方向,
·若zk≥0,則dk在用戶指定路徑方向的逆時(shí)針方向,如圖6。
·若zk<0,則dk在用戶指定路徑方向的順時(shí)針方向,如圖7。
(2)調(diào)整支撐腳旋轉(zhuǎn)角度;
原始運(yùn)動(dòng)序列經(jīng)過編輯后,運(yùn)動(dòng)路徑發(fā)生了改變,為使原始運(yùn)動(dòng)序列的運(yùn)動(dòng)方向與用戶指定路徑方向一致,原始運(yùn)動(dòng)序列每幀需旋轉(zhuǎn)θ。
規(guī)定運(yùn)動(dòng)序列第k幀的運(yùn)動(dòng)方向?yàn)榈趉,k+1幀根節(jié)點(diǎn)連線的向量在地面的投影。在原始運(yùn)動(dòng)第k幀運(yùn)動(dòng)方向?yàn)?,?duì)應(yīng)在新路徑上為為使原始運(yùn)動(dòng)序列與新路徑方向一致,原始運(yùn)動(dòng)第k幀需旋轉(zhuǎn)θ,如圖5所示。
圖5 方向旋轉(zhuǎn)θ度角
首先判定雙肩同時(shí)在用戶指定路徑的哪一側(cè)。
lk
rk
經(jīng)過去滑步雙肩在路徑兩側(cè)的位置發(fā)生變化。
·若zlk>0,zrk>0,則雙肩都在路徑的順時(shí)針側(cè)。
·若zlk<0,zrk<0,則雙肩都在路徑的逆時(shí)針側(cè)。
根據(jù)zk值的不同,雙肩同時(shí)在用戶指定路徑的哪一側(cè)的不同,有以下結(jié)論:
1)若zk≥0并且雙肩在路徑的同一側(cè),如圖6所示,為滿足雙肩約束,調(diào)整此幀前臨近支撐腳旋轉(zhuǎn)角θk
圖6 去滑步后的運(yùn)動(dòng)方向dk,dj在用戶指定路徑的逆時(shí)針方向,調(diào)整角度θm,θn使運(yùn)動(dòng)滿足雙肩約束
2)若zk<0并且雙肩在路徑的同一側(cè),如圖7所示。為滿足雙肩約束,調(diào)整此幀前臨近支撐腳旋轉(zhuǎn)角θk
其中式(2~3)中φ>0,為了保持運(yùn)動(dòng)的連續(xù)性,φ值不能太大。
圖7 原始運(yùn)動(dòng)方向dk,dj在用戶指定路徑的順時(shí)針方向,調(diào)整角度θm,θn使運(yùn)動(dòng)滿足雙肩約束
本文采用LUA+UP+OpenGL編碼,實(shí)驗(yàn)數(shù)據(jù)BVH[10]也均來自于卡內(nèi)基梅隆大學(xué)提供的CMU數(shù)據(jù)庫,如圖8所示。
圖9顯示是否添加雙肩約束對(duì)運(yùn)動(dòng)編輯的影響,(上)顯示未采用雙肩約束編輯后的運(yùn)動(dòng)圖像,(下)顯示采用雙肩約束編輯后的運(yùn)動(dòng)圖像。對(duì)比圖9的(上)(下)可以看出添加雙肩約束,編輯后的運(yùn)動(dòng)路徑與用戶指定的路徑重合度更高。綜上證明了本方法的可行性及有效性。
圖8 虛擬人原始運(yùn)動(dòng)序列
圖9 根據(jù)雙肩約束調(diào)整運(yùn)動(dòng)方向,藍(lán)線代表雙肩軌跡,紅線代表編輯后的運(yùn)動(dòng)路徑軌跡,白線代表用戶指定路徑
本文重點(diǎn)介紹利用去滑步后的雙肩必須在用戶指定路徑兩側(cè)這個(gè)約束條件,使編輯后的運(yùn)動(dòng)路徑與用戶指定的運(yùn)動(dòng)路徑的重合度得到提高。實(shí)驗(yàn)證明本方法對(duì)普通的運(yùn)動(dòng)如走、跑有較好的效果,但對(duì)特殊運(yùn)動(dòng)如側(cè)身走并沒有什么效果。我們利用最鄰近線段法判定雙肩節(jié)點(diǎn)在用戶指定路徑上的最鄰近線段,然后利用向量叉乘判定是否滿足約束,若不滿足約束條件需在上一步長(zhǎng)中的支撐腳狀態(tài)下加大或減小旋轉(zhuǎn)角度使這之后的運(yùn)動(dòng)序列滿足雙肩約束。如何確定旋轉(zhuǎn)角度的幅度值φ是今后研究的重點(diǎn)。
[1]李敏,韓豐.虛擬現(xiàn)實(shí)技術(shù)綜述[J].軟件導(dǎo)刊,2010,(9)6:142-144.
LI Min,HAN Feng.Summarizing of Virtual Reality Technology[J].Software Guide,2010,(9)6:142-144.
[2]劉賢梅,李冰,吳瓊.基于運(yùn)動(dòng)捕獲數(shù)據(jù)的虛擬人動(dòng)畫研究[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(8):113-114.
LIU Xianmei,LI Bing,WU Qiong.Virtual Human Animation based on Motion Capture Data[J].Computer Engineering and Applications,2008,44(8):113-114.
[3]沈娟,李建微.動(dòng)作捕捉中的動(dòng)畫驅(qū)動(dòng)及運(yùn)動(dòng)編輯技術(shù)綜述[J].計(jì)算機(jī)與數(shù)字工程,2008,36(3):103-106.
SHEN Juan,LI Jianwei.Summarizing of Motion Capture Animation and Motion Editing Techniques[J].Computer &Digital Engineering,2008,36(3):103-106.
[4]陳志華,馬利莊,李眾,等.人體運(yùn)動(dòng)路徑的編輯算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(5):651-655.
CHEN Zhihua,MA Lizhuang,LI Zhong,et al.Editing Human Motion Path[J].Journal of Computer-Aided Design &Computer Graphics,2006,18(5):651-655.
[5]王鑫,孫守遷,邵明.運(yùn)動(dòng)路徑驅(qū)動(dòng)的角色動(dòng)畫合成方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009,21(3):319-324.
WANG Xin,SUN Shouqian,SHAO Ming.A Path-Driven Character Animation Synthesis Method[J].Journal of Computer-Aided Design&Computer Graphics,2009,21(3):319-324.
[6]李眾,馬利莊,陳志華,等.基于運(yùn)動(dòng)路徑變換的人體運(yùn)動(dòng)編輯[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(17):86-89.
LI Zhong,MA Lizhuang,CHEN Zhihua,et al.Human Motion Editing on Path Transforming[J].Computer Engineering and Applications,2006,42(17):86-89.
[7]M.Gleicher.Motion path editing[C]//Proc.2001 ACM Symposium on Interactive 3D Graphics.New York:ACM Press.2001:195-202.
[8]Xiaoyue Guo,Shibiao Xu,WuJun Che,et al.Automatic Motion Generation Based on Path Editing from Motion Capture Data[J].Transactions On Edutainment,2010,4:91-104.
[9]黃鐵蘭,花衛(wèi)華,劉修國(guó).二維點(diǎn)與曲線位置關(guān)系判斷的最鄰近線段法[J].計(jì)算機(jī)應(yīng)用,2005,25(b12):262-263.
HUANG Tielan,HUA Weihua,LIU Xiuguo.The Method to Judge the Relationship Between Adjacent Segments and the Position of the 2D Point Curve[J].Journal of Computer Applications,2005,25(b12):262-263.
[10]吳鈴,侯進(jìn),徐芳.BVH文件驅(qū)動(dòng)三維人體動(dòng)畫的實(shí)現(xiàn)[J].沈陽理工大學(xué)學(xué)報(bào),2012,31(1):52-56.
WU Ling,HOU Jin,XU Fang.The Realization of 3D Human Animation by BVH[J].Journal of Shenyang Ligong University,2012,31(1):52-56.
Virtual Human Motion Path Adjustment Based on Double Shoulders Constraints
ZHANG Jingchao1GUO Linfang2
(1.Further-education and Foreign Exchange and Cooperation Center,Anyang Preschool Education College,Anyang456150)(2.Public Teaching Department,Anyang Preschool Education College,Anyang456150)
The biggest problem of virtual human motion editing is sliding phenomenon.At present,translation and rotation of the joint is often used to remove the slide.This method will lead to the offset of the root of the motion sequence and result in the great deviation between edited motion path and the user-specified path.The left and right shoulders are on both sides of our root node,in the normal walking,running sports.Using this constraint that the shoulders after removed the slide must be on both sides of the user-specified path or the rotation angle of the support foot is adjusted,so that the edited motion path and the user-specified path coincidence degree is improved.Finally,the IUP+OPENGL+LUA is used to build a motion editing system to verify the effectiveness of this method.
shoulders constraints,path deviation handling,motion path,motion editing,step
TP391
10.3969/j.issn.1672-9722.2017.06.016
2016年12月14日,
2017年1月21日
張靖超,男,碩士研究生,助教,研究方向:計(jì)算機(jī)動(dòng)畫、圖形學(xué)、教育技術(shù)。郭林方,女,碩士研究生,助教,研究方向:教育學(xué)、教育技術(shù)。