歐訓勇
(瓊州學院 電子信息工程學院,海南 三亞 572022)
在手繪角色動畫中表現頭發(fā)運動的畫面往往存在著不一致性。例如,從圖1的效果中不難看出,頭發(fā)有可能在綹數上是不一致的。由此,頭發(fā)的運動效果在手繪動畫中是一項有難度的工作。事實上,卡通角色頭發(fā)運動效果在計算機圖形學中實現是很困難的。這是因為所有的頭發(fā)的屬性不可能與攝像機位置一致。盡管物理運動方程可以用來獲得正確的身體運動,但它看起來并不總是運動著的。由于手繪卡通動畫中頭發(fā)的運動有時帶有一定的作用,動畫師可以尋找角色本身的形象去表現發(fā)型外觀。這意味著相應關鍵幀中頭發(fā)造型特征(如形狀、數量等)實際上不可能有一致的形象。盡管動畫各幀畫面有一定差異,但其動畫效果還是能令人接受的。利用計算機圖形技術來創(chuàng)建卡通角色頭發(fā)動畫這是最難的部分,也是為什么一直以來卡通頭發(fā)動畫都是手繪效果。這需要投入大量的人力勞動。例如動畫片幽靈公主中,有一段風中場景,5 min的頭發(fā)飄逸動畫,卻需要動畫師們花費一個月的時間來完成制作。
本文提出一種混合技術方法,利用計算機來生成人物頭發(fā)飄逸動畫效果,減少動畫師們對頭發(fā)動畫所耗費的時間,節(jié)約動畫制作成本。
圖1 手繪序列圖形
前人對卡通發(fā)型生成研究集中以表現發(fā)型,考慮發(fā)型構成的每一縷發(fā)絲的形狀和動力學現象。參考文獻[1]使用一個簡化的懸臂梁模型的發(fā)型,并利用一維角動量射影表現發(fā)絲動畫。參考文獻[2]中使用稀疏的頭發(fā)特征表現動畫效果,以減少計算時間。參考文獻[3]提出了一種巧妙的方法,用于創(chuàng)建多分辨率的頭發(fā)模型(MHM)系統,該系統是根據相鄰的頭發(fā)縷數的觀察角度,形成多層次的團簇。參考文獻[4]提出了一種結合幾何動力學的卡通頭發(fā)生成方法。該方法使用對樣本的非線性插值,避免了幾何模型變換中出現不自然現象,使生成的頭發(fā)運動更符合卡通特性;同時用戶可以指定控制點和控制點的路徑,使對頭發(fā)可控性強,可以取得風格化的效果。
上述的研究工作取得了一定的成果,但是沒有在效率和效果上達到統一,這主要是由于卡通頭發(fā)運動缺乏發(fā)絲柔順的運動物理特性,同時運動過程也表現出不一致性。本文提出的方法是基于關鍵幀插值和物理仿真的混合技術,將手繪定型與物理動力學仿真相結合的方法實現了效率和效果的統一。利用輸入一組手繪的發(fā)型造型關鍵幀草圖,這些草圖都描述表現卡通頭發(fā)運動效果的最終形態(tài),再通過計算插值和物理仿真來最終生成卡通頭發(fā)運動的動畫效果。
該方法關鍵的步驟是事先創(chuàng)建一個用于描述頭發(fā)運動的數據庫。庫中詳盡地記錄有卡通發(fā)型包含的股數和每股頭發(fā)的運動節(jié)點數,所確定的頭發(fā)股數和節(jié)點不可再分,這樣,就建立了一個“指導型的頭發(fā)運動數據庫”,并且設定有頭發(fā)沖擊飄蕩的運動力,可用于計算機計算生成一系列的匹配頭發(fā)草圖。即構建一個為每種頭發(fā)運動自定義設計的頭發(fā)動畫數據庫。
對頭發(fā)動畫仿真前需要準備各種發(fā)型數據,首先需要準備高質量的二維手繪卡通角色圖像 (如圖1所示)和人物發(fā)型的草圖(如圖2所示)。這些圖像都是由技術熟練的動畫師們所繪制的,用于作為原始輸入的圖像。由技術熟練的動畫師所繪制的圖像僅是其中一步,同時還需要準備網線顯示的三維人物的頭部模型,通過對該網線模型賦予紋理貼圖就得到一個三維頭部圖像。這一步驟由用戶或動畫師處理。
圖2 發(fā)型草圖
在動畫師手工繪制的高質量二維圖像中,通過手工方式確定坐標位置。再由坐標位置,做好圖像調整以提取適于角色動畫的頭發(fā)模型,并創(chuàng)建一個三維稀疏的頭發(fā)模型。該頭發(fā)模型的邊線構成頭發(fā)的形狀和中心線,以控制頭發(fā)運動 (如圖3所示)。這些曲線由Catmull-Rom樣條表示。中心線與邊界線之間有約束虛位移。
圖3 頭發(fā)節(jié)點
要構造一個為匹配動畫角色的初狀三維模型的頭發(fā),可以使用任意一款三維圖形處理工具,將頭部模型和毛發(fā)同時顯示。3Dmax和maya都能勝任此事。此外把頭發(fā)草圖量化,并將這些數據和數據庫中的頭發(fā)運動數據進行匹配(如圖4所示)。草圖發(fā)絲上的點是為了頭發(fā)的交互運動而繪制的。所繪制的數據最初是二維的。
圖4 發(fā)型匹配過程
利用從草圖派生的角度和由投影來自數據庫序列上的草圖中定義的圖像平面上的三維頭發(fā)數據而獲得的數據之間的相似度,通過應用變形功能的角度之間的差異獲得有吸引力的頭發(fā)造型。此外,插值補充各序列之間內容,以保持它們之間的平滑過渡。
在風吹或頭部運動中產生的力作用于頭發(fā),設計好受力大小后,使用Featherstone多體鏈動力學算法進行模擬仿真得到發(fā)絲運動的動畫效果,受力運動僅控制中心線[5-6]。應用該算法指明三維點的速度矢量,生成每一個過渡幀畫面。
編譯數據庫已成為處理文集或散亂數據的常用方法。本文還處理了發(fā)絲控制點數據作為數據庫。此方法的一個突出點為:這個數據庫是由動畫師為特定目標動畫而定制設計的。數據庫序列中的一個單元大約在5幀長度。為減少數據庫的大小,數據庫中發(fā)絲運動數據都可以由動畫師來設計,使頭發(fā)目標運動效果得以提取。動畫師甚至可以定義需要獲得這不符合一般的物理規(guī)律運動的具體受力大小。該數據庫的大小取決于速度和質量之間的折衷。在模擬中使用的數據庫通常在5 MB以內(這取決于角色造型頭發(fā)的數量)。作用的力由一個沖擊函數產生。根據動畫師的需求來設計勾勒接近頭發(fā)的關鍵幀,設定草圖頭發(fā)運動的指標。例如,彎曲一根頭發(fā)的力度,動畫制作者應該只將力施加到發(fā)束的中間部分。為了使其中發(fā)尖移動,動畫制作者應該定義力僅施加到尖端(如圖5所示)的運動。
圖5 頭發(fā)運動點
本文方法需要動畫師用自己的直覺去決定從頭發(fā)數據庫序列粗糙的毛發(fā)三維位置點的攝像機位置,然后投射到他的草圖圖像平面,從而成為二維的。然后,匹配二維圖像中平面的x軸和y軸,再比較發(fā)段之間的角度(如圖6所示)。更具體地講,測量取得的數據之間的角度差,從粗毛發(fā)的草圖和從運動數據庫毛發(fā)序列投影到圖像平面的數據,然后,用式(1)比較這些數據。從發(fā)根到邊緣。
其中,θ是草圖數據發(fā)絲的角度,φ是從三維圖形投影到草圖表面數據所成的角,i是從發(fā)根開始累積發(fā)絲拐角個數變量。在式(1)中,各相減的結果必須小于給定閾值th。如果差值高,將不選擇數據庫中的數據。由此,從庫中選取最大相似度的草圖。
圖6 頭發(fā)飄蕩角度
對散亂插值采用徑向基函數方法(即RBF),它的基本表達式為:
本插值公式是數據點距離的非線性函數的線性組合,使用于在匹配處理過程中數據庫的幀序列的插值補充。為處理頭發(fā)形狀使它們更接近于毛發(fā)草圖,本文使用了徑向基函數插值方法。通常情況下,僅通過物理方程仿真模擬是不可能得到令人印象深刻和夸張的發(fā)型的。起初,在使用徑向基函數插值補充由三維投影形成的發(fā)型頂點位置在草圖圖像平面上的差異。然而此做法卻讓毛發(fā)效果變得笨拙冗長,顯示不自然,如圖7(b)所示。最后,對徑向基函數進行改良,從發(fā)絲角度上進行插值補充過渡差異[7]。使用的公式如下:
其中,i表示一縷發(fā)絲中鏈接的數量,N是鏈接的總數,k表示數據庫中數據序列的數量,Wi的值是通過φ減去θ而得的(是個絕對值),為前一次從數據庫序列中選擇相應數據計算所得。此后Wi值將下一個發(fā)根到發(fā)梢末端重復此步驟計算,并調整數據庫序列(如圖8所示)。
圖7 動畫過渡插值
圖8 頭發(fā)插值過程
為了實現這個插值過程,可以保留頭發(fā)的長度。一旦在匹配數據庫序列中的第一幀和最后一幀中發(fā)絲角度差值得以計算出來,就執(zhí)行該序列中的所有幀的插值。此做法被重復使用于所有頭發(fā)的控制點,從而將所有發(fā)絲縷數插值補充完善,如圖7(c)所示。此處理過程的第二個優(yōu)點是,保留頭發(fā)的長度并減少了從二維到一維計算的維數。
在兩個鄰近的頭發(fā)序列幀中進行插值補充以使頭發(fā)運動效果流暢。由于使用驅動力來構建了頭發(fā)運動數據庫,動畫效果在沒有插值補充的情況下是不可能表現順暢的。使用如下公式進行插值補充。
其中,c是一個可變參數,如果c值很大,插值過程近似于線性插值;如果c值很小,插值過程成為階躍函數插值。t表示插值時間間隔,此值越小,插值補充動畫效果就越平滑。此公式的優(yōu)點是動畫師可以通過控制c參數,決定插值補充產生的過渡效果是要平滑過渡還是階躍變化。但是,大量使用平滑效果更加接近現實頭發(fā)運動效果,與卡通動畫追求的效果會有偏差。通過c參數,動畫師可以選擇最佳數值以使動畫效果達到所設計的目的。
使用本文的方法,通過輸入兩種類型圖形,已經成功地創(chuàng)建出頭發(fā)運動動畫。對于每個動畫,所有動畫都以每秒24幀的標準速率播放。它清楚地展現了該方法的有效性,使動畫師們利用計算機圖形交互設計技術生成卡通頭發(fā)動畫的效果接近手工繪畫效果。
該方法還存在一些不足:(1)只能用于頭發(fā)簇比較少的模型,對于頭發(fā)簇比較多的模型,動畫過程計算量大,效果不是很理想;(2)長發(fā)模型的所有控制點都在一個平面上,所以生成的模型也在同一平面上,限制了模型形狀。
[1]ANJYO K,USAMI Y,KURIHARA T.A simple method for extracting the natural beauty of hair[C].Proceedings of SIGGRAPH 92,1992:111-120.
[2]ROSENBLUM R E,CARLSON W E,TRIPP E.Simulating the structure and dynamics of human hair:Modeling,rendering and animation[J].The Journal of Visualization and Computer Animation,1991:141-148.
[3]KIM T Y,NEUMANN U.Interactive multiresolution hair modeling and editing[C].Proceedings of SIGGRAPH 2002,San Antonio,2002:620-629.
[4]任陽春,趙洪德,耿衛(wèi)東.結合幾何動力學卡通頭發(fā)生成[J].計算機應用研究,2010(6):2384-2390.
[5]白爭鋒,趙陽,田浩.柔性多體系統碰撞動力學研究[J].振動與沖擊,2009(6):75-78.
[6]LITWINOWICZP,WILLIAMSL.Animatingimageswith drawings[C].SIGGRAPH 94,Orlando,FL,1994:409-412.
[7]魏義坤,楊威,劉靜.關于徑向基函數插值方法及其應用[J].沈陽大學學報,2008(2):7-9.