大开眼界!揭秘《战斗天使·阿丽塔》那些世界碾压级的 CG 技术

@张心欣 :《阿丽塔:战斗天使》是一部相当「炫技」的电影。带着詹姆斯·卡梅隆「光环」,导演罗德里兹格联手维塔工作室,给观众们展现出电影视觉幻术的最高技艺。

我看到几个在电影特效技术上很「显功力」的场景,想给大家一一拆解,让你们也感受到我的震撼(有点「魔术揭秘」的意思)。带着这些背景知识再看《阿丽塔》,你肯定会有不同的感触。

细致到令人震惊的大眼睛

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 上去合成,才得到了我们最终看到的画面。

整个操作的原理不难,然而能使最后的画面看起来毫无破绽,就有大量的制作经验与手段的千锤百炼,就好像魔术一般,即使知道了原理,也并不是每个人都能变的。

结语

最后想说,《阿丽塔:战斗天使》是一部完成度高超的科幻电影,而用于制作以及完成它的画面表现的科学技术和艺术家的技艺,其中物理学、数学、计算机科学的研发与制作紧密结合的思路,对当前的中国影视制作能力来说,也可谓是很「科幻」了。

庆幸我们从《流浪地球》走出了第一步,更希望我们能从《阿丽塔》中看到我们前进的方向。

我不敢妄称专家,我是一个极客,也是一个影视热爱者,也是数字化影视制作的万千研发和实践者之一,以上仅从个人所熟悉之专业来提供一份观点,希望能成为诸位极客影迷们看阿丽塔时的佐餐良菜。

△ 张心欣—本文作者

简介:加拿大 UBC 大学计算机科学博士,前皮克斯工程师,曾在维塔工作室参与《霍比特人3》等影片的特效算法研发,还曾任 Lytro 高级算法工程师;在北京电影学院高精尖未来影像创新中心,开发针对影视应用的大规模并发式物理仿真程序。

优设大课堂

文章来源:

Author:3年2班程远
link:https://www.uisdc.com/battle-angel-alita-cg-technology