本文首發於極客電影,已獲得授權轉載
《阿麗塔:戰鬥天使》是一部相當「炫技」的電影。帶著詹姆斯·卡梅隆「光環」,導演羅德裡茲格聯手維塔工作室,給觀眾們展現出電影視覺幻術的最高技藝。
我看到幾個在電影特效技術上很「顯功力」的場景,想給大家一一拆解,讓你們也感受到我的震撼(有點「魔術揭秘」的意思)。帶著這些背景知識再看《阿麗塔》,你肯定會有不同的感觸。
張心欣
簡介:加拿大 UBC 大學計算機科學博士,前皮克斯工程師,曾在維塔工作室參與《霍比特人3》等影片的特效算法研發,還曾任 Lytro 高級算法工程師;在北京電影學院高精尖未來影像創新中心,開發針對影視應用的大規模並髮式物理仿真程序。(微博/知乎 @張心欣)
細緻到令人震驚的大眼睛
CGI 眼睛的渲染和製作非常困難,因為從眼球壁到血管膜到視網膜,每一層結構都要製作和渲染。
人類的眼珠不是一個單純的球體,為了復現它複雜的光學表現,需要計算光線在其中複雜的光路運動。
另外, 眼珠內部的幾何結構也十分複雜,此次阿麗塔的眼珠特寫鏡頭運用到了 830 萬多邊形數量的幾何建模, 並使用自主研發的算法進行了複雜的光路追蹤。
「眼睛」是傳達情感、感染觀眾最重要的窗口。很多人看完電影都覺得,阿麗塔的「大眼睛」深深印在自己的腦海裡、揮之不去,她從純真到成熟的變化都映射到眼神的變化上——看來這些努力沒白費。
看似簡單卻充滿炫耀感的 CG 毛衣
CGI 衣服裡面最難製作的就是毛衣,因為毛衣的物理形變涉及到很複雜的微觀物理交互,除非仿真程序的模擬細緻到了每一根線頭,否則無法仿真出真實的毛衣布料形態。
而阿麗塔恰恰就選擇在登場的時候穿了一件——毛衣。
這樣的 CG 毛衣市面上沒有現成軟體可以完成,應該是維塔自己開發軟體製作的,筆者以為,這大約是維塔在炫耀他們領先的仿真程序(開玩笑啦)~
這個算法是魔鬼嗎?真的連每一根毛線都模擬啊¹
「毛衣仿真技術」源自 2017 年由華人科學家蔣陳凡夫等人合作發表於 SIGGRAPH 2017 上的論文。
被水浸泡的頭髮
長期以來,「毛髮模擬」和「液體模擬」在電影特效真實感的營造中起著至關重要的作用。電影中有一處場景,阿麗塔縱深跳入水中,找到水底戰艦上的「狂戰士鎧甲」。
畫面中她的頭髮因為浸泡在水中,髮絲被打溼耷拉下來,呈現出從頭到腳溼漉漉的觀感。
這短短幾分鐘,逼真的模擬出了「頭髮」和「液體」之間的相互作用,是相當有技術含量的。
毛髮和液體之間的作用是一種跨越多個空間尺度的物理現象。當毛髮完全浸沒在液體中時,它呈現為一種多孔介質,而且可以對周圍液體流動產生拖曳效應。
當把毛髮從液體中提出來後,毛髮上會粘連一定量的液體,這些液體會沿發束流動、並最終滴落。
同時,潮溼的毛髮相互之間不僅會發生碰撞,而且表面液體也會產生液體橋,表面張力效應會導致毛髮凝聚成團塊。
對於這樣複雜的物理現象,設計出最合適的模型是關鍵。
通常來說,大塊液體可以用仿射粒子胞元法(Affine Particle-in-Cell)來模擬,而毛髮可以用離散彈性棒(Discrete Elastic Rods)來建模。
為模擬毛髮表面較薄的液體,我們在毛髮表面再增加一個液體的高度場,同時用淺水方程來計算表面液體流動。
展示毛髮內液體僅為作對比,形態是不模擬的
在為頭髮、大塊液體和薄層液體都建立了物理模型之後,通過引入碰撞和黏連模型,就可以模擬出溼毛髮之間的內聚現象。
同時通過計算水下毛髮與它周圍流體之間的拖曳力,就可以生成毛髮和液體互相拖曳的效果。
最後,再建立一組算法來模擬大塊液體被頭髮捕獲成為薄層液體,以及薄層液體匯流、滴落成為大塊液體的過程。
此處貢獻者費雲(Raymond)²
這樣,才能實現出最終《阿麗塔》電影裡那種「溼頭髮」的自然視效。
充滿技術含量的驚鴻一吻
有沒有被阿麗塔和男主角接吻的畫面感動到?我也是,但理由可能不大一樣:因為 CG 人物和真人接吻,在電影特效上真的很!難!搞!
接吻時需要調用面部的 146 塊肌肉(群),為真實再現接吻的動作,就有可能需要真實地再現這些肌群的運動;嘴唇肌肉是軟的,而裡面的骨骼和肌肉卻較為硬,所以在仿真程序需要能夠處理這些不同的材質的碰撞和形變。
接下來我要在技術上物理拆解「接吻」這件事,溫馨提示:圖可能有點驚悚...
下面是人類接吻的 X 光拍攝, 注意其中所展現的該行為的複雜度: 面部肌肉驅動剛體的骨骼和牙齒運動, 而柔軟地皮膚相互碰撞擠壓產生複雜的形變。
維塔的獨門絕技之一,從骨骼到肌肉到脂肪層、再到皮膚和毛髮的有限元仿真程序,以製作出逼真的數字角色。
維塔的肌肉仿真工具從人猿星球的早期就開始研發,經歷了多個製作的錘鍊。
《阿麗塔》中的親吻鏡頭完成度之高,以致於它甩開了被認為是同級別製作水平的作品幾條街!
在技術上同樣被認為是世界頂級的皮克斯(迪士尼),接吻鏡頭也不敢做特寫,《阿麗塔》的接吻鏡頭,居然就敢做成特寫!
CG 人和真人的對手戲怎麼演
表演捕捉本身是常規操作, CG 數字角色與實拍結合也也是常規操作。
然而能把這件事做到爐火純青之境界的, 特別的是能熟練地進行數字角色和真人高難度動作戲拍攝而絲毫看不出破綻的, 有很多常規中的不常規。
表演捕捉方面,維塔工作室歷經了《指環王》系列、《猩球崛起》系列和《阿凡達》等多個項目的洗禮,積累下豐富的製作經驗。
《猩球崛起3》動捕演員安迪·瑟克斯
在阿麗塔中,充滿了這樣的表演捕捉,其中數字角色單獨出現的表演捕捉製作難度並不是特別大, 更具有挑戰的是數字角色和真人會產生互動的表演捕捉。
在表演捕捉與真人結合的拍攝中, 同一場戲,即使一條過,也至少得拍兩遍。
第一遍:表演捕捉。實拍演員與捕捉演員一起表演一遍,目的是為了捕捉下捕捉演員與實拍角色互動的真實感。
阿麗塔動捕演員羅莎·薩拉查
第二遍:實拍演員獨自表演。此次拍攝又稱為「clean plate」,目的是為了得到沒有任何遮擋情況下實拍演員的畫面。
然後才能是合成。將表演捕捉得到的數字動作賦予數字角色後,再往 clean plate 上去合成,才得到了我們最終看到的畫面。
整個操作的原理不難,然而能使最後的畫面看起來毫無破綻,就有大量的製作經驗與手段的千錘百鍊,就好像魔術一般,即使知道了原理,也並不是每個人都能變的。
結語
最後想說,《阿麗塔:戰鬥天使》是一部完成度高超的科幻電影,而用於製作以及完成它的畫面表現的科學技術和藝術家的技藝、其中物理學、數學、計算機科學的研發與製作緊密結合的思路, 對當前的中國影視製作能力來說,也可謂是很「科幻」了。
慶幸我們從《流浪地球》走出了第一步,更希望我們能從《阿麗塔》中看到我們前進的方向。
我不敢妄稱專家,我是一個極客,也是一個影視熱愛者,也是數位化影視製作的萬千研發和實踐者之一,以下僅從個人所熟悉之專業來提供一份觀點,希望能成為諸位極客影迷們看阿麗塔時的佐餐良菜。
1.《Anisotropic Elastoplasticity for Cloth, Knit and Hair Frictional Contact》
Chenfanfu Jiang, University of Pennsylvania & Jixie Effects inc.
Theodore Gast, University of California, Los Angeles & Jixie Effects inc.
Joseph Teran, University of California, Los Angeles & Jixie Effects inc.
2.《A Multi-Scale Model for Simulating Liquid-Hair Interactions》
Yun (Raymond) Fei and Henrique Teles Maia, Columbia University
Christopher Batty, University of Waterloo
Changxi Zheng and Eitan Grinspun, Columbia University
Source Code and Data Assets(GitHub)