國寶總動員有段故事橋段是這樣的…
嬰兒枕覺得玩轉心瓶有點無聊,剛好看到翠玉白菜上頭的螽蟴(ㄓㄨㄥ ㄙ),於是很開心地把它抓了起來,急著拿去到處秀。第一個現寶的對像,就是住在一幅國畫–冬日嬰戲圖–宋朝–工筆畫–裏的姐弟倆…
我參與這個案子的任務之一,是不管用什麼手段,負責把嬰戲圖的樣貌搞定。為此,花了三個月的時間,整天和這些所謂的 NPR ( Non-Photorealistic Rendering ) 博鬥,最後,卻是使用合成的方式搞定一切(還好,我們有 Ahdee 這位天字一號的合成大師)。然後呢,這一篇還很幸運地,進了 SIGGRAPH 2007 research poster ( [ACM Portal](http://portal.acm.org/citation.cfm?id=1280720.1280921&coll=ACM&dl=ACM&type=series&idx=1280720&part=Proceedings&WantType=Proceedings&title=International%20Conference%20on%20Computer%20Graphics%20and%20Interactive%20Techniques&CFID=15151515&CFTOKEN=6184618 “NPR in production: animating the Sung dynasty painting “Children at Play” @ ACM Portal” ) )。
這是那幅嬰戲圖的數位縮小版,引用自故宮博物網站。
摘錄部分故宮的介紹文字在這邊,全文請至官方網站。
宋人 冬日嬰戲
絹本 色設畫 軸
縱196.2公分
橫107.1公分
畫姐弟二人在冬天庭院裡玩耍的情景,姐姐的手裡拿著一根色彩斑斕的旗子,小男孩則用細紅繩牽引著一根孔雀羽毛﹐正想逗弄著貓兒。姐姐則挽三鬟於頭頂及兩耳﹐再以紅白相間的錦緞纏繞其間﹐與宋蘇漢臣秋庭嬰戲中的雙鬟同為宋代小女孩常梳之髮式。弟弟的頭髮束結著紅絲繒﹐形如鵓角﹐更增添孩童純稚的神情。
目的 ,導演的要求,動畫的需求
「國寶總動員」的故事是由嬰兒枕發起的,因為他好奇抓起了翠玉白菜上頭的小蟲子(螽蟴),然後在秀給處在「宋朝嬰戲圖」這幅畫裏的姐弟倆時,讓小蟲子逃跑了!! 於是僻邪與玉鴨,只好跟著嬰兒枕到處去找螽螄,一路上遇上了很多其它國寶,最後在…找到了它…
整個「國」片的動畫風格是「擬真」與「可愛」,包括嬰戲圖的這一段,但打一開始就讓人很傷腦筋的是,這幅有將近一千年 (960-1279) 的古畫,要使用 CG 算出來很真實,就已經很不容易了,更何況還要讓畫裏頭的角色動起來也很擬真(關於這點,相信沒有人看過真正會動的國畫)。
導演的要求很簡單,就一句話「讓看的人以為,他真的是在看一幅會動的嬰戲圖,裏頭的角色不管是視覺上的顏色表現,或是動畫上的表演風格,都要很自然,一點兒也不 CG 才行。」(那時很羨慕「導演」這個職位,因為他們總是可以說出很精要而感動人心的話來,但倒底怎麼做,做的樣子究竟要怎麼樣,則是要動用一群人才有辦法做到…)
分析,討論與細節
- 前後景:
- 我們決定把整幅畫分為前景與背景來處理,前景部分由兩姐弟與小貓構成,剩餘的部分,通通歸到背景,包括 畫兩側的那些花花草草,換句話說,這同時暗示了,只有前景的角色會動,整個背景都是靜態的。這樣的作法很直覺,唯一要考慮的,是之後把前後景合起來時,他 們的色調(tone),紋理質感(texture & material)要很協調。
- 背景:
- 這部分,先是請美術人員,把前景的角色挖除掉,然後以人工的方式,手動把挖掉的洞,用旁邊的材質也補回來(這部分,也可以借用 CG 裏頭的一些計術,像是 Snake 演算法來自動補回來,依稀記得,這類補洞的演算法叫 Image Inpainting)。
- 紙的紋理:要把這一幅畫表現得很好,一個重點是紙的紋理。因為年代久遠,所以上頭的紋理還有一些地方有點斑駁不齊的,這是很重要的一點,決定了整個畫面擬真的程度。
- 前景:
- 角色設計:為了讓原來的三隻角色更加的逗趣討喜,前製的美術部門,花了很多時間,依著原來嬰戲圖裏的神韻與元素,重新給三隻角色做設計,讓他們更加符合當下人的審美感。亦即,在這邊,我們的設計要同時做到「擬真」與「可愛」兼具。
- 線條:很幸運地,這一幅畫用的技法,是國畫中的一支「工筆畫」,在線條的表現上,比較一致,變化沒有「水墨畫」來得大,雖然還是有小小的粗細變化,但問題難度已經大大地降低不少。
- 顏色:就直接使用 diffuse map 配合 constant shader 來處理,再給合成部分去修飾。
- 總結來說,這一幅畫要做好,有如下幾個細節要留心:
- 畫紙的紋理 + 年代久遠留下來的痕跡
- 角色的線條 + 線條要反應出下頭的紙紋理
- 角色的動畫要溫合,因為他們是「中國風的小朋友」
- 動態模糊(motion blur)要盡量地小,不然會很容易變得很 CG
- 角色身上的顏色,也會同時有紙的紋理,但不能太明顯,因為角色上的顏料蓋掉不少紋理,同時,太明顯的話,會覺得前景的角色,很像是在前頭「浮動漂移著」
一步一步完成它們吧!!!!
01. 背景( background )。仔細看的話,會發現畫面中央,原來姐弟倆的部分,有人工填過的痕跡。
02. 紙的紋理( canvas texture )。透過一些處理,得到紙的紋理。
03. 前景( foreground figures )。使用 NPR 裏的 toon shading 算出來的姐弟倆。
04. 前景遮罩( foreground matte )。直接取用前景角色的 opacity / alpha channel 來用。
05. 前景的褪色層( aging foreground mask )。緊接著上一個階段,在上頭算出一個可以表示歷史痕跡的斑駁圖層。我們特別給角色也來個一層像「紙的紋理」的東西,一來為了強調角色褪色的程度與純背景不同,二來是想讓角色身上的紋理有些微的變化。這部分我們使用了 Maya 的 volume noise (ken perlin noise)。使用 volume noise 才能確保 noise pattern 的連續性。一般使用 texture uv 的話,會有不連續性,這是因為 texture uv 是人拉的,會在接縫處不連續,而 volume noise 則是使用 point position,就不會有這方面的困擾。(除非,你可以設計出一種在空間上,完全不連線的點分佈…)這部分,也可以使用 Renderman 的 noise function,然後在產生一組 model 的 freezed position。
06. 帶有紙紋理的褪色層( aging foreground matte )。愈來愈有趣感覺。
07. aging foreground figures。把 06 階段的結果與 03 結合起來,這裏因為背景是黑色的,所以無法看出明顯的差異來,但當有背景時,那一點點「透出來的背景」就會出現了。
08. 前後景的合成( composite of foreground and background )。前後景合起來了,並且讓它們之間的色調一致。
09. 加上線條( embeded outlines )。這些線條,我們一樣使用 Maya 的 pfxToon 這個 node 算出來的。為了讓線條與畫面更加地融合,線條的顏色偏咖啡,吸收了一點點線條下方的顏色(可能是紅、黑…),同時,在線條的接合處,把畫紙的紋理考慮進來,讓線條會因為下頭的紋理,而做一點點輕微的褪色與形變(這部分,很像是套用 bump map 的行為,只是是在 2D 的環境下完成)。
10. 打燈( lighting )。最後,假造一個暖色系的燈。這部分一樣是在合成階段完成。
Siggraph 2007
今年(2007)年初(其實是去年年底),主管要求我就「國」片裏頭的製作過程,抽出一段來,寫成一篇稿子,投到 Siggraph,這樣一來,不但太極在 Siggraph 2007 的展場有攤位,連同還有個技術發表,如果再加上來個短片也上了 Siggraph Animation Festival 的話,那就皆大歡喜了。左右猶豫了很久,一直不相信我們的製作過程中有什麼值得發表的,到後來找台大教授求救,找不同部門的同事聊天。最後,決定以「嬰戲圖」的這一段來投稿,結果居然上了…只能說,這就是人生呀。
首先,我想感謝台大資管的陳炳宇教授,他花了很多時間與我討論這篇投稿寫的重點為何,可以怎麼鋪陳,同時又拿出去年的一些例子來鼓勵我,讓我慢慢有信心。接著是感謝台大資工的莊永裕教授,他雖然沒有很直接地協助這一篇 research poster,但他協助了我另一篇「Digital Restoration of Moldy Aged Films」的預講(rehearsal),告訴我幾點應該要注意的地方,我還記得那時的我,整整遲到了十多分鐘,rehearsal room 只剩下十分鐘可以用,而且似乎還沒睡醒,稿子也還寫不全,就硬上了,但他還是給與一定的肯定,讓我寬心不少。最後,我想感謝台大資工的歐陽明教授,他即興地在會場,給我一次機會做口頭上的練習,並且告訴我可以去找個空曠的地方或是牆壁也行,獨自練習上幾回,大聲的唸出來,好聽出自己的問題。
還有還有,感謝 Ahdee 的協助與指導,讓我學到,原來合成可以做的事是如此之多。
忘了說了,演講完,董事長請的慶功宴,實在很好吃呀(Joe’s Crab Shack),哈。
Abstraction of Poster
Research on Non-Photorealistic Rendering (NPR) [Ma et al. 2002] has produced an array of techniques such as outline detection, simulation of brush strokes, cartoon shading, etc. However, the practical application of these techniques to reproduce a specific masterpiece is seldom discussed. During a recent project in cooperation with the National Palace Museum of Taiwan, we were given the task of rendering animated characters in the style of a well-known Chinese Sung dynasty painting, “Children at Play.” This sketch describes a step-by-step method for achieving this effect using a variety of NPR techniques.
投稿 Siggraph 2007 時,附的影片
參展海報
感謝 Naomi 的全力幫忙,讓我們有一張如此棒的海報,Siggraph 2007 年,我最有印象的,就屬這一張海報和那一場演講了 :)
附錄聯結
- 投稿 Siggraph 2007 Sketches/Posters 的 NPR in production: animating the Sung dynasty painting “Children at Play” 的 [pdf](http://graphics.im.ntu.edu.tw/~robin/docs/poster07.pdf “NPR in production: animating the Sung dynasty painting “Children at Play” pdf " ) 檔。
- 投稿 Siggraph 2007 的影片(1024 x 553, mov, 12MB)
- 一開始研究 toon shading 與畫紙紋理的示範影片(1024 x 768, DivX 4, 11MB)
更改紀錄
- 錯字訂正,是螽蟴,不是螽螄。感謝 filipy :)