1991 年 7 月 3 日,《终结者 2:审判日》上映。观众在电影院里看到一个液态金属人穿过监狱栏杆、脑袋被霰弹枪轰开后重新合拢、从火焰中走出来时还是一团铬合金。这些镜头今天看依然不显得过时,而它们是在一台 1GB 硬盘要价 9000 美元的时代被造出来的。
2017 年,VFX 记者 Ian Failes 采访了十多位当年 ILM 计算机图形部门的成员,整理出一篇口述史。技术落后是已知前提——读完之后最强烈的感受在别处,在于这群人做项目的姿态:他们签了合同,拿到故事板,然后发现最难的几个镜头旁边标着黑色圆点,意思是「还没想好怎么做」。
John Schlag 是 ILM 最早的一批软件工程师,他到岗第一天就碰到了这一幕。他回忆说:「我翻着分镜本,指着一页问,这个看起来挺有意思,你们打算怎么做?他们说,哦,还不知道呢。我当时想,你们疯了吧?你们投了标,拿下了项目,结果不知道怎么干活?」
「然后你就明白了——你赌了一把 Hail Mary,结果真的中了。先庆祝,再害怕。」
20 个人的 CG 部门
1990 年的 ILM 计算机图形部门只有大概 20 个人。《深渊》里那个水触手(他们内部管它叫「water weenie」)刚做出来不久,证明 CGI 可以做有机形态的角色。但《深渊》只有一个 CG 生物,T2 有大约 50 个镜头需要数字特效——今天你接不到少于 300 个镜头的项目,但 1991 年,50 个镜头已经是大活了。
Eric Enderton 是 ILM CG 部门招的第一个「纯软件」人员。在此之前,所有的工具都是做镜头的人自己顺带写的。Enderton 回忆说,当时他被告知要花一百万美元买电脑——「一个极其惊人的数字」。那批机器是 SGI 340 VGX 工作站,性能大概跟现在的手机差不多。晚上下班后,所有工作站锁进机房当渲染农场用。Jonathan French 还记得自己第一次通宵渲染时,多占了几台 CPU,导致别人的镜头没渲完。后来 Brian Knepp 写了个叫 PA(processor allocator)的小工具,用图形界面分配 CPU 配额——今天 Deadline、RenderPal 之类渲染管理器的雏形。
有意思的是,Tom Williams 在 T2 期间同时在给 Pixar 和 ILM 全职干活。直到某天开车回家时睡着了,他才意识到两边跑的玩法不太可持续。T2 后期他正式全职加入 ILM。
用网格和两台摄影机做人肉动捕
T-1000 需要能走路。但 1990 年没有可用的动捕系统。ILM 的做法是把 Robert Patrick 请到工作室,在他全身画上四英寸见方的黑色网格线,让他以十字架姿势站着,然后让他跑。
两台 VistaVision 摄影机同时曝光——一台 85mm 镜头拍正面,一台 50mm 镜头拍侧面。Steve 「Spaz」 Williams 就靠这两组画面逐帧手绘旋转动画。他甚至注意到了 Patrick 因为足球旧伤造成的一点点跛脚,「我不得不在骨架上修正这个,因为他演的是一台机器。」
T-1000 的模型数据也是全手工的。ILM 把 Cyberware 激光扫描仪扫下来的 Robert Patrick 头部数据拿回 Alias 里修。Geoff Campbell 说当时的建模过程「像在用铁丝网雕刻」——每次只能拖动一个控制点,没有遮罩预览,要看效果得点「快速着色」然后等五分钟。当时 Alias 出了个叫 Prop Mod 的工具,可以带衰减地移动周围的控制点,但「用的时候要按住控制点等五秒才能拖,慢到我干脆不用」。
五个 Robert Patrick
Cameron 在剧本里写的是:一个液态金属 blob 逐渐变成穿着警服的人。Spaz 和团队把这个过程拆成了五个阶段,命名为 RP1 到 RP5:
- RP1:一团无定形的 blob
- RP2:光滑的人形轮廓,像银色冲浪手(他们内部叫「Oscar 版」)
- RP3:有一个警察的轮廓,但表面像喷砂金属
- RP4:穿警服的金属警察,有纽扣、徽章和枪带细节
- RP5:真人 Robert Patrick
关键约束是:所有五个阶段的模型必须共享完全相同的控制顶点数量。从 RP4 变到 RP2 不能删点,只能对同一套顶点跑平滑算法。Spaz 的描述很直接:「就是把它做成冰激凌。」
T-1000 从火中走出来的那个镜头(内部编号 CC1),Spaz 把警徽、枪套、纽扣全部藏在模型体腔里,然后在时间线上把它们「长」出来。「媒体管这叫 morph,实际上这是模型插值(model interpolation)。」
Michael Natkin 记得 Spaz 操作 Alias 的速度有多快——当时 Alias 的菜单系统极慢,点底部弹出菜单、选子菜单、输入参数、回车,一步步走。但 Spaz「能在菜单弹出来之前就提前点到位,然后转身跟你聊两句,再转回去,屏幕已经算完了。」
图:T-1000 面部损伤后的液态金属穿模效果。来源:GIPHY / vfxblog.com
Body Sock:给动画模型穿弹力袜
当时的角色模型用均匀三次 B 样条曲面(NURBS 的前身)构建。问题在于,一旦给骨骼做动画,关节处的曲面就会撕裂或者穿模——就像盔甲片在关节处分开。
Enderton 说这个名字的来源是「能不能给这些分开的部件套一只弹力尼龙袜,让表面变得光滑」。最终他们没有真的做弹力袜,而是做了一个自动缝合工具:对每一帧,Body Sock 读入一个配置文件(列出了每条接缝由哪两个曲面、哪两条边构成),逐帧把所有的缝隙缝上。
大部分接缝的数学很简单。但人体模型有三条曲面或五条曲面交汇的角点(比如胯部)——这种地方的缝合数学「远没那么直观,我们摸索了好一阵子才搞明白怎么算」。
Enderton 把这个工具交给 Spaz 之后,「20 秒内他就做了一个胳膊弯曲动画,肌肉隆起,敲了个命令试了一下,屏幕上就有一条胳膊在来回弯。那是我第一次看到一个艺术家拿起我做的工具,创造出我完全做不出来的东西。那种感觉是——这个艺术家被工具的锁链绑住了,而我刚刚砍断了其中一条。」
Make Sticky:UV 贴图的前身
「Head through bars」——T-1000 穿监狱栏杆——是分镜本上标了黑色圆点的镜头之一。问题是:一个 Robert Patrick 的脸要穿过一组金属圆柱,材质纹理不能跟着几何体滑来滑去。
他们写了个工具叫 Make Sticky(最初叫 Make Me Sticky,但没人喜欢这个名字)。原理很简单:在某一帧上,记住纹理贴图在三维几何体表面的坐标。之后不管几何体怎么变形,纹理都钉死在相同的空间位置上,不跟着 UV 参数漂移。John Schlag 还写了个程序化位移生成器,利用栏杆是圆柱体这一事实,把柱体当作位移源,让头部穿过时产生「挤出感」。
Doug Smythe 说这就是一个很简单的 UV 映射思路,只是当年不这么叫。Tom Williams 认为这是他们后来 3D 绘制系统的前身。
图:T-1000 从液态形态重新凝聚的过程。来源:GIPHY / vfxblog.com
没有光线追踪的反射
T-1000 的铬合金表面需要高度反射——但 RenderMan 当时没有可用的光线追踪功能,渲染时间也完全撑不住。Alex Seiden 写了一个「poly alloy」着色器,用反射平面代替光线追踪:在场景中放置多个反射平面,着色器内做快速相交测试来判断该反射哪一块。
最典型的是 T-1000 从火焰中走出来的那个镜头。Stefen Fangmeier 在场景里放了卡片(cards),每帧把火焰素材映射到卡片上,着色器用 RenderMan 的变换能力模拟出火焰在铬合金上的反射。没有光追,但观众看不出来。
还有一个有趣的细节:医院走廊的地板本不是黑白格子的。Liza Keith 为了做测试,写了个着色器生成棋盘格地板——因为当时背景素材还没拿到。Cameron 看了之后觉得黑白地砖「更瘆人」,于是让工作人员给医院走廊里每块白色地砖贴上黑色贴纸。在成片里仔细看,你会发现在有些镜头的背景里,地板根本没有格子。
MORF:从《风云际会》到 T2
T-1000 从液态变成真人的过渡效果,靠的是 Doug Smythe 为 1988 年的《风云际会》写的 MORF 工具。当时 Willow 需要把一个动物变成另一个动物,他们评估了 3D 和 2D 两种方案后选择了二维变形——因为毛发和真实动物太难做了。「我常说这个工具让我保住了工作,」Smythe 说。
MORF 最初跑在 Sun 工作站加 Pixar Image Computer 上。为 T2 扩编时,Smythe 把代码移植到了 SGI 上。MORF 用的是双网格系统:源图像和目标图像各有一个网格,操作员在关键帧拖动网格点,通过双三次样条插值完成变形。还有一个灰度点叠加视图,用来检查哪些区域的变形进度快、哪些慢——用 Smythe 的话说,「很原始,但管用,从 Willow 到 T2 核心原理没变过。」
John Berton, Jr. 用 MORF 做了 T-1000 的那个经典「转身」镜头——被扔到墙上后,T-1000 没有转身,而是从自己身上穿模回头面对敌人。Berton 在基本效果跑通之后主动加了一步:让衣服拉链逐帧拉上、衣褶按时间线翻转方向,「让这看起来不只是特效——它在展示 T-1000 的性格:他在炫耀。」
最后融化的赌注,以及低分辨率
熔炉场景的 T-1000 死亡序列是「death squad」团队的活。John Schlag 描述当时的几何量「在那个年代简直恐怖」——角色要从嘴里把自己的内脏吐出来,头撕开,全身熔化。而且还要加上运动模糊。但当时管线经常连不上起始帧和结束帧的几何体数据,Schlag 为此重写了渲染脚本。
Tom Williams 和 Michael Natkin 负责最后那段 T-1000 在钢水中融化的镜头。Williams 想用分形噪声来做金属溶解的视觉效果。但问题是——分形是随机的。Dennis Muren(视觉特效总监)会在每天看片时说「那边那个往左移一点,那边那个溶得快一点」,而 Natkin 能做的只有不断换随机种子。
两人在旅馆里一帧一帧地磨,每天只渲染低分辨率版本——因为高分辨率耗时太长。最后,Muren 在某一版低分辨率渲染上直接拍板:「Final that。」Natkin 说要渲 1280 高分辨率版,Muren 说:「不,就用这个。出片。」所以成片中有一处画面切换时 T-1000 会突然变得模糊——那是 640 分辨率的画面被硬放进胶片。
忘了告诉光学部门我们在调色
Natkin 还讲了一个故事:他每天调好颜色,送到光学部门做胶片输出,第二天看片发现颜色又变回去了。反复几次之后他亲自去问,才发现胶片部门有一位工作人员,职责就是对每一帧进行手工色彩校正——这位老兄兢兢业业地把每一帧都校回了他觉得「对」的样子。「我们完全不知道还有这回事,」Natkin 说。
这大概是对那个胶片-数字交叉时代最生动的写照。ILM 当时用的是一台自研的激光扫描/录制一体机——先扫描底片到数字格式,做完 CGI,再反向用激光曝光到新胶片上。8-bit log 编码是 George Joblove 设计的,把线性胶片空间压缩到 8-bit 对数空间来省带宽。「在那个磁盘 I/O 决定你能不能在一周内交片的年代,这项优化事关生死。」
Jay Riddle 补充了一个时代切片:要看不同磁盘上的数据,他得跑下楼、进地下室的机房、打开磁盘驱动器、物理更换盘片,再爬回楼上——「就为了确认某个东西到底在不在那个盘上。」
留下来的是什么
Doug Smythe 说 T2 「同时是一辈子做过的最好玩、也最难的项目」。Alex Seiden 说它改变了自己的人生。Jonathan French 描述了一种难以复制的氛围:「每个人都在你脚下现铺路,所以你永远觉得活能干完。」Geoff Campbell 承认当时的工具「原始到令人沮丧」,但软件团队每天都有可见的改进,「那感觉就像在用铁丝网雕刻——只是有人一直在把铁丝网换成更好的材料。」
35 年后回头看,T2 不是一个关于「技术奇迹」的故事。它讲的是:一个小团队,面对一堆不知道能不能做的事,先签了合同,然后一个工具一个工具地造,一帧一帧地磨,最后在某个凌晨的低分辨率渲染上被总监拍板说「就用这个」。
T-1000 的金色铬合金表面会永远留在电影史里。但比视觉效果本身更难复制的,可能是那个 1991 年的 San Rafael 工作室——20 个人,阿富汗餐厅的入职午餐,周五晚上 Spaz 在地下室里把 Thin Lizzy 的音量开到头发往后飘。
参考链接: