摘 要:提出了一種結合幾何動力學的卡通頭發生成方法。它包括頭發的幾何建模和動力學模擬兩個部分。在幾何建模階段:用戶導入一個頭部模型,交互指定頭發生長區域控制點和頭發模型中心控制點,系統自動生成卡通頭發的幾何模型。在動力學模擬階段:引入基于網格的逆向動力學實現卡通頭發運動。實驗結果表明:系統通過簡單的用戶交互能夠制作出令人滿意的卡通頭發。
關鍵詞:卡通頭發建模; 動畫; 基于網格逆向動力學
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2010)06-2384-03
doi:10.3969/j.issn.10013695.2010.06.111
Cartoon hair generation by combining geometric kinematics
REN Yangchun, ZHAO Hongde, GENG Weidong
(State Key Lab of CADCG, Zhejiang University, Hangzhou 310027, China)
Abstract:This paper presented a cartoon hair generation method that combining geometric kinematics. This method included geometric modeling and kinematics simulation. In modeling part: first user loaded a head model and set the control point of hair, this system generated geometric model of the hair automatically. In simulation part: this paper introduced meshbased inverse kinematics to generate cartoon hair animation. Experimental results show that: with simple interaction, the system can produce satisfactory cartoon hair.
Key words:cartoon hair modeling; animation; meshbased inverse kinematics
0 引言
頭發是卡通人物最主要的視覺元素之一,改變頭型可以完全改變一個人物的外觀和形象。同時,卡通人物的頭發往往還蘊涵著人物的個性和情緒,所以在卡通人物的設計中,頭發的設計對塑造人物形象和人物性格起到關鍵性的作用。傳統卡通頭發創作需要卡通動畫師一幀一幀地繪制,這不僅要求卡通動畫師有高超技術水平和創作經驗,而且使得卡通創作效率低。
為了提高創作效率,研究人員提出了一些利用計算機輔助卡通頭發創作的方法。本文將它們分為卡通頭發建模、繪制和運動三個方面。在頭發建模方面,文獻[1]使用了曲線對單根頭發建模,該方法比較簡單,容易實現,但沒有卡通頭發成簇的效果,同時這種模型因為頭發數量多,計算量大,很難實現頭發的運動。文獻[2~5]利用三維空間中的多邊形對頭發進行建模,中間的控制點控制整個頭發的運動,邊上的曲線控制頭發的外形,這種模型更加符合卡通頭發數量少、聚合成簇的特點,能取得比較好的效果。文獻[6]提出了一種三維的頭發簇,與二維多邊形模型相比,增加了頭發的厚度,這種模型生成的效果也比較好。在繪制方面,文獻[3]提出了一種風格化卡通頭發繪制,首先繪制頭發輪廓,再添加漫射光和高光的效果,獲得較好的卡通效果。文獻[8]利用二色調方法,對卡通頭發進行高光模擬,該方法使頭發簇看上去很自然地粘結在了一起,形成卡通外觀。文獻[5]使用了幀緩沖和深度緩沖技術來繪制卡通頭發。在運動方面,文獻[2]提出了一種卡通頭發重用的技術。從現有的卡通頭發中提取出運動參數,再運用到新的卡通角色上。文獻[7]提出了一種基于模擬的頭發運動。文獻[6]在頭發上添加了動態的粒子,在這些粒子之間使用彈簧來模擬,再使用簡單的牛頓定理和胡克定理來簡單地模擬頭發的運動。文獻[4] 使用了對關鍵幀進行插值的方法實現了卡通頭發的運動。
上述的工作取得了一定的成果,但是沒有在效率和效果上達到統一,這個主要是由于卡通頭發運動不符合物理特性,并且運動過程中存在不一致性造成的。本文的方法實現了效率和效果的統一。
本文提出了一種結合幾何動力學的卡通頭發生成方法。該方法使用對樣本的非線性插值,避免了幾何模型變換中出現不自然現象,使生成的頭發運動更符合卡通特性;同時用戶可以指定控制點和控制點的路徑,使用戶對頭發可控性強,可以取得風格化的效果。用戶首先通過交互,設定頭發的生長區域和頭發模型的控制線。系統結合頭發的參數,形成頭發的幾何模型,并把生成的模型作為網格逆向動力學樣本,用戶只需設定頭發的運動路徑,就能實現頭發的運動。
1 卡通頭發整體流程
本文的整體處理流程如圖1所示。
在幾何建模階段:用戶交互指定控制點,系統自動確定頭發的生長區域;然后用戶設定頭發的控制線和頭發模型參數,系統自動生成對應的幾何模型,當前系統支持多個頭發模型;為了使卡通頭發更加逼真,允許用戶添加發髻。在動力學驅動頭發運動階段:本文把基于網格的逆向動力學運用到卡通頭發的運動中;對于一個頭發模型,用戶建立該模型的幾個狀態,再指定模型運動控制點以及該控制點的運動軌跡,系統就能自動計算每個時刻的頭發模型,從而形成頭發的運動。
2 頭發幾何模型
通過觀察卡通頭發,發現處于頭皮表面的頭發基本處于靜止狀態,可使用靜態模型對這些頭發進行建模,同時把這些頭發所在區域定義為頭發生長區域,其他頭發利用交互建立參數化幾何模型。
2.1 頭發區域設定
用戶在頭部模型上交互設定頭發區域控制點,系統根據這些控制點自動計算頭發的生長區域。
用戶在頭部模型指定控制點(圖2(a)),系統自動連接控制點和頭部頂點,并連接相鄰的控制點,得到一組三角形(圖2(b));對每個三角形,通過兩次線性插值,生成更多的控制點(圖2(c));最后對每個控制點,判斷它是否在頭部模型內部,如果位于模型內部,就對其進行外推操作,使其位于頭部模型的表面(圖2(d))。
2.2 幾何模型建立
本文在文獻[3,6]的卡通頭發模型的基礎上,將模型半徑變化參數由單參數改成雙參數,從而增加了頭發設計的靈活性。用戶通過簡單的交互,即可設計出理想的卡通頭發幾何模型,具體過程如圖3所示。
2.2.1 頭發生長點
首先,本文把頭部模型中心點作為坐標系中心,建立坐標系。用戶在頭部模型上確定頭發生長點P(a,b,c)之后,系統將把平面z=c作為該頭發模型的交互平面(圖3(a)),在這個平面上,用戶可以指定或修改頭發控制點(圖3(b)),當系統處于新建控制點狀態,用戶在平面上點擊便新建一個控制點(圖3(b)中的點);當系統處于編輯控制點狀態,用戶在平面上點擊,系統把離該點最近的點作為編輯點,用戶可以移動編輯點進行修改。這種方法使用戶操作簡單和直觀。
2.2.2 頭發外表面控制
在每個中心控制點,都有一個橢圓確定模型表面控制點,如圖4所示。
每個控制點對應橫截面橢圓水平和垂直方向半徑:
hr=HR×sin(t+α)×πt+α+β(1)
vr=VR×sin(t+α)×πt+α+β(2)
其中:hr、vr分別表示模型橫截面的水平、垂直半徑;HR、VR從整體上控制模型的大小; α、β控制模型半徑的變化;t表示控制點在整個模型中的位置。
在每個控制點對應橢圓上采樣同樣數目的點(圖3(c)),并將相鄰橢圓對應的點相連,形成頭發的模型(圖3(d))。
2.2.3 頭發模型旋轉和發髻添加
對于生成的頭發模型,可以繞頭發的生長點旋轉,取得不同角度的效果(圖3(e))。為了取得更加逼真的效果,系統允許用戶添加發髻。用戶只要指定發髻的位置、長度和顏色,系統就能自動在頭發模型表面對應的位置添加發髻。
3 頭發運動模擬
利用生成的頭發幾何模型,本文引入文獻[8]基于網格的逆向動力學對頭發模型進行驅動,形成頭發的運動。
基于網格的逆向動力學是對樣本網格進行非線性插值來生成新網格模型的算法。因為輸入樣本網格只有三維坐標信息,缺少局部外形屬性,無法知道每個點和其他點的關系,所以在逆向動力學中需要把三維坐標信息轉換成一個特征向量,里面包含了樣本模型中每個三角形的變形梯度。首先隨機地選擇一個模型作為參考模型,變形梯度描述了參考模型中的一個三角形到另外一個模型中對應三角形的變換。把所有樣本對應的特征向量形成的空間稱為特征空間。基于網格逆向動力學就是在特征空間中,在部分點約束下進行的一種有意義的變形。對于參考模型P0和另外一個樣本模型P(都具有m個頂點和n個三角形),需要計算P對應的特征向量f。P中的一個三角形變形梯度就是一個雅可比的仿射變換矩陣,它使P0中一個三角形的位置變成了P中對應三角形的位置。但是三角形的仿射變換并不能惟一確定三角形的旋轉方式,因此,在每個三角形模型中添加第四個元素:
V4=V1+n|n|(3)
其中:n是三角形三個頂點所在平面的法線。這樣,模型中頂點數量變成了m+n。模型中第j個三角形的一個頂點v對應的仿射變換為
Φj(v)=Tjv+tj(4)
其中:Tj是一個3×3的變形梯度矩陣,它包含了旋轉、縮放和偏置信息,tj表示了位移信息。對式(4)求雅克比矩陣,得到變形梯度:
Tj=DpΦj(5)
因為Tj和三角形頂點Vk是線性的關系,所以可以從樣本P中提取出一個線性的操作G,使
f=Gx(6)其中:x=(x1,…,xn,y1,…,yn,z1,…,zn)∈R3n是樣本網格點坐標組成的向量; f是把m個三角形的變形梯度矩陣展開并且連接成的一個特征向量;矩陣G中的系數僅僅與參考網格P0中頂點的位置相關。
把一個特征向量反轉換成一個全局的三維坐標,可以通過下面函數:
x=arg minx|Gx-f|(7)
其中:x是希望求得的網格模型; f是一個特征向量,它是樣本網格特征向量的非線性插值的結果。但因為特征向量相對于網格坐標具有全局平移不變性,所以至少要固定一個點,才能使結果惟一。
由于特征向量是樣本上點坐標的線性組合,如果再對樣本進行線性插值,容易導致生成的網格不自然,這里采用對樣本網格進行非線性插值,問題就變成:
x,w=arg minx|Gx-M(w)|(8)
其中:M是對樣本的特征向量非線性組合的一個函數,w是非線性插值系數。這是一個非線性的最小二乘方問題,可以使用牛頓高斯迭代算法求解。
因為基于網格逆向動力學采用樣本的非線性插值和直觀的交互,可以應用到網格的變形和網格的動畫,本文把該方法應用到卡通頭發的運動中。
在系統的實現中,首先利用本文的幾何建模方法,生成同結構的頭發幾何模型作為樣本(圖5(a)~(c)),用戶選擇模型上的一個點作為運動控制點(圖5(a)~(c)中黑色點);接著由用戶設定頭發運動控制點的運動路徑(圖5(d)),再在路徑上采樣得到一系列點,然后把每個采樣點和頭發的根部作為約束點,利用基于網格的逆向動力學算法計算該時刻的頭發模型,最后形成卡通頭發的運動(圖6)。
圖6是對控制點的運動路徑采樣了40個點,計算得到的網格,圖中分別為第5、10、15、20、25、30、35和40幀的效果。從結果可以看出,使用基于網格的逆向動力學實現的卡通頭發運動可以提高創作的效率,動畫師只要對樣本建立模型,就能夠創作出一段動畫;對生成模型的可控性比較強,模型是樣本模型非線性插值的結果,所以可以調整樣本模型來控制最后生成的模型;對模型運動可控性好,用戶只要指定頭發控制點的運動軌跡,生成的網格模型就能沿著該路徑運動。
4 結束語
本文實現了結合幾何動力學的卡通頭發的原型系統。本文選取“科科”“天眼”和“曹娥”三個卡通人物,利用本文方法實現了卡通頭發運動片段。對于一個20個控制點的模型,有1 520個三角形網格,對于每一幀的模型,需要求解稀疏矩陣,目前普通的機器上只能達到2 fps,所以無法實現實時動畫。圖7展示了《科科》中科科頭發的建模和運動結果,科科頭發結構比較簡單,運動過程也比較簡單。圖8展示了《天眼》中天眼頭發建模和運動結果,頭發結果稍微復雜,并且添加了發髻。圖9展示了《孝女曹娥》中曹娥頭發建模和運動結果,系統支持多個頭發簇的運動。實驗結果表明,本文方法可以創建多種頭發模型,而且能快速驅動卡通頭發的運動。
本文的主要技術貢獻為:a)提出了一種卡通頭發創作流程,用于簡單交互就能設計出卡通頭發幾何模型; b)把基于網格逆向動力學運用到卡通頭發模擬,取得了較好的效果。
該方法還存在一些不足:a)只能用于頭發簇比較少的模型,對于頭發簇比較多的模型,很難用這種方法實現;b)長發模型的所有控制點都在一個平面上,所以生成的模型也在同一平面上,限制了模型形狀;c)頭發運動是孤立的,沒有與頭部運動結合起來。
下一步將研究設計更加方便的交互接口,使動畫師使用更加方便,并實現頭發運動和頭部運動或外力作用的結合。參考文獻:
[1]MAO X Y, KOUICHI K, KATO H, et al.Interactive hairstyle modeling using a sketching interface[C]//Lecture Notes in Computer Science.2002.
[2]EIGI S, YOSUKE K, SHIGEO M, et al.Hair motion cloning from cartoon animation sequences [C]//Proc of Computer Animation and Virtual Worlds.2006.
[3]JUNG S, MICHAEL H R M. A stylized cartoon hair renderer[C]//Proc of the 2006 ACM SIGCHI International Conference on Advances in Computer Entertainment Technology.2006.
[4]MARTIN C, PIERRE M J, CHARLES D, et al.Nonphotorealistic rendering of hair for animated cartoons[C]//Proc of GRAPHICON.2004.
[5]MAO X Y, KATO H, IMAMIYA A, et al. Sketch interface based expressive hairstyle modeling and rendering[C]//Proc of the International Conference on Computer Graphics. 2004.
[6]PAUL N, WEN T .Modeling and animating cartoon hair with NURBS surfaces[C]//Proc of the International Conference on Computer Graphics. 2004.
[7]EIJI S, YU Y Z, KEN A, et al.Simulationbased cartoon hair animation[C]//Proc of the 13th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision.2005.
[8]ROBERT W S, MATTHIAS Z,CRAIG G, et al.Meshbased inverse kinematics[C]//Proc of ACM SIGGRAPH.2005.
[9]MAO X Y, ISOBE S, ANJYO K, et al. Sketchy hairstyles[C]//Proc of International Conference on Computer Graphics. 2005.