李青










你還記得動畫電影《玩具總動員》里那個忠誠又機靈的牛仔伍迪嗎?還記得《飛屋環游記》里那個八歲的探險家小胖羅素嗎?和傳統二維動畫片相比,你會不會覺得還是三維動畫的色彩更豐富,人物形象和情景更細膩、更逼真呢?是的,因為這類影片是利用日新月異的計算機技術處理、加工而成的新一代動畫片。那你知道動畫師是如何利用計算機技術制作動畫片的嗎?那些栩栩如生的人物形象是如何設計出來的呢?你可能沒有想過,設計這些形象還和數學有著密不可分的關系呢!
小小動畫 ?巨大工程
我們在觀看動畫電影的時候往往會感嘆:“為什么這么短?。 焙每吹膭赢嬰娪霸谖覀兛磥懋斎皇窃介L越好,但實際上這些“太短”的動畫電影能夠呈現在我們面前可是凝聚了制作人員大量的心血與勞動。
傳統動畫片的誕生過程
二維畫面是平面上的畫面。用紙張、照片或計算機屏幕顯示,無論畫面的立體感有多強,終究只是在二維空間上模擬真實的三維空間效果。我們先來簡單地了解一下像《木偶奇遇記》這類傳統動畫片是如何制作出來的。二維動畫片里的畫面看上去只有寬度和高度,動畫師根據故事腳本用鉛筆在紙上勾畫出其中的人物和故事進展,然后在叫作“透明片”的塑料紙上為這些連續的畫面著色。每一張透明片上的畫面在電影里算作一幀,要制作一部動畫片需要繪制出成千上萬張這樣的畫片。接著,在手繪的彩色背景映襯下,用特殊的照相機把所有著了色的畫片一一拍下,再用膠片把這些照片以每秒24幀的速度翻拍成電影。當然,在制作過程中還要加上對話、音效、音樂等配套工作。過去制作二維動畫片是一項非常繁重的工作,現在隨著計算機性能的提高,很多制作環節已經被計算機軟件取代了,比如動畫師可以直接用電子畫板繪制畫面,用計算機軟件著色,模擬攝像機的運動和效果等。
計算機上完成的三維動畫片
三維動畫看上去既有寬度和高度,同時也有深度,因此表現得更真實生動。制作之前首先得有一個動人的故事腳本,然后繪制出其中的人物、主要場景和故事情節,并根據人物個性設計出他們的造型。接著把故事二維化,此后關鍵,就是在計算機的三維動畫軟件中為這些人物造型設計模型。為了讓模型能做出各種自然的表情和動作,還要配上可操作的虛擬骨骼和肌肉運動工具。一切準備就緒以后,動畫師就開始根據事先編排好的故事情節,像擺弄木偶那樣操控模型的一舉一動,讓他們按照故事進展的需要說話、跳躍、奔跑等。再配上合適的虛擬燈光、背景、道具的效果和人物對話,在一個裝有數百臺高性能計算機的叫作“渲染農場”的地方,完成動畫片每幀的制作以及幀的合成。后期加上修補、潤色和音效,一部動畫片就算基本完成了。
制作一部長約90分鐘的三維動畫電影,其投入是巨大的。20年前的《玩具總動員1》,是世界上首部完全用計算機制作的動畫電影,具有里程碑的意義。當時動用了27位動畫師、22位技術指導、61位藝術家和工程師,設計了400個計算機三維模型。制作這部電影總共花了80萬個機器工時、完成了114240幀的動畫。而且渲染階段相當耗時,就當時的計算機性能而言,117臺計算機全天運行,1周能渲染完成3分鐘的動畫片段,90分鐘的片子光渲染就需要花30周,7個多月的時間,而寫故事竟然花了他們3年的時間,因此,用3、4年的時間制作完成一部動畫片并不足為奇,有的甚至要花更長的時間。
精益求精的主角
牛仔伍迪是影片《玩具總動員》的主角,因此制作團隊對他的模型設計要求特別高:他身上需要控制的活動點多達723個,其中臉部有212個,僅嘴巴就有58個。整部影片的合成渲染使用了117臺計算機、300個計算機處理器。他的制作簡直可以說是精益求精。
數學概念 ?無處不在
在生活中,我們看得見摸得到的任何物體都有形狀,而大多數物體的形狀都是由連續圓滑的曲線和曲面組成的。藝術家和動畫師關心的是事物的形象和形狀,而計算機能懂的只有一串串數字和方程式。如何讓計算機模擬出看似簡單的圓滑曲面或者說自然立體的形狀呢?換個專業的問法就是,如何找出合理的計算機算法生成這樣的圖像呢?這就需要先找到合理的算術、幾何、代數的運算法則,然后將這些數學運算法則翻譯成計算機可以操作的語言來實現。
如果你仔細觀看動畫片,可能不難覺察到,其實數學的概念無所不在。比如,《玩具總動員》里的伍迪從A點走到B點,就可以用方程式XB=XA+LAB表達伍迪現在在直角坐標系里的位置。
動畫人物伍迪在直角坐標系里平移的呈現
如果突然看到一個人物或者道具隨著鏡頭的拉近比原先的大了,比如說大了兩倍,那就可以用方程得到變大的那個數。如果有物體旋轉,就要涉及到更為復雜的包括正弦函數和余弦函數在內的三角函數理論,而平移、按比例縮/放、旋轉都離不開坐標幾何的應用。
真實視效 ?數學助力
上面曾提到,對于三維動畫片來說,要解決的關鍵問題是,如何讓人物和道具看上去像真的那樣有著自然流暢的曲線和曲面。皮克斯動畫工作室的科學家們找到了一種非常精妙的數學方法,解決了這個難題,這就是中點細分法,其中還用到了拋物線的原理。獲得完美曲線的基本思路是從一條線段開始的,先把線段從中間對分,然后再把對分過的兩段線再分別對分,按照這個規律一直分下去,找到每次對分線段的中點坐標。這一過程是可以用方程表現的。
用這個基本解析幾何原理,我們就可以把一個四邊形變成一個橢圓形。首先畫一個等邊四邊形(a),然后均分每個邊獲得8個點、8條線段(b),這時候圖形基本沒有變化。接著,把這8個點都按照順時針方向移動線段長的1/2(c)。然后均分里圈上的線段(d),得到16個點。再把這16個點按照順時針方向移動線段長的1/2,就形成了(e)比較圓滑的曲線。再細分下去就得到32個點的圖形(f),如果還不滿意,可以繼續細分到64個點的曲線。
用中點細分法不僅能生成曲線和自然形狀,而且還能生成平滑的曲面。在三維動畫計算機軟件里,這些點和線組成的網格就像虛擬的骨骼和肌肉,可以任由動畫師隨意操縱。中點細分次數越多,物體表面越圓滑自然。
一部動畫片是否好看,不僅要看人物的臉部是否逼真,還要看他們運動時,以及周圍道具和自然景觀是否同樣具有真實感,而這些視效也必須以數學為基礎。
動畫片里用到的數學原理,有簡單的算術,也有復雜的幾何、函數、代數,甚至高等數學,如微分、積分。讀了上面的大致介紹,當你再欣賞動畫片的時候,不要忘了在那些美麗動人的故事背后還有數學的功勞。數學是研究科學問題的基礎,無論你將來想從事化學、生物學、物理學,還是經濟學等領域的工作,或者做動畫片,都要學好數學。
(責任編輯/王楓)