梦工厂采用Linux制作动画

作者:Robin Rowe

梦工厂SKG拥有超过200台Linux桌面和400台Linux服务器,不仅是动画电影的领先制片商,也是Linux的主要用户。梦工厂动画采用三条制作流程线:位于英国布里斯托的阿德曼工作室(小鸡快跑),位于加利福尼亚州帕洛阿尔托的PDI/梦工厂(怪物史莱克蚁哥正传)以及位于加利福尼亚州格伦代尔的梦工厂传统动画部门(通往黄金国埃及王子)。每个制作单位都有自己的动画技术。阿德曼工作室以定格动画闻名,PDI/梦工厂以CG(计算机图形)闻名,而格伦代尔的梦工厂则以传统技术闻名。

我们参观了格伦代尔工作室,那里正在制作主要的动画电影小马王小马王讲述了一匹野马在美国西部荒原的冒险故事,计划于2002年夏季在国内上映。

有些人想知道Linux如何在桌面上取代Windows,因为像Microsoft Office(Word、Excel和Access)这样的主流桌面应用程序在Linux上不可用。但是,如果您是动画电影制作人员,您的大部分日常工具已经在Linux上可用,并且专门为Linux移植甚至制作的工具数量正在以惊人的速度增长。

梦工厂通过三条途径采用Linux:新开发、移植和第三方供应商移植。技术主管Ed Leonard表示:“大幅降低成本是将动画师转移到Linux的主要动机之一。但是,真正重要的是我们动画师的生产力。对我们来说,重要的是把故事讲好,而不是底层技术。” 使用Linux为动画师节省了时间,因为Linux PC的性能比被替换的五年旧电脑快得多,即使那些SGI IRIX工作站是非常强大的机器。Leonard补充说:“Microsoft软件在我们整体业务中继续发挥关键作用,但Linux特别适合动画制作流程线。”

动画师的桌面与高管或秘书的机器不同。动画师需要一台高性能工作站,配备双头、高性能图形系统以及用于电影制作的专用软件。对于典型的计算机用户来说,动画师的软件工具可能很陌生。让我们一起了解梦工厂的制作周期,看看Linux是如何使用的(见表1)。

表1. 动画类型和方法

一部动画长片始于一个故事构想。制作需要两年时间。在名为视觉开发(vizdev)的预制作阶段,会创作许多不同形式的艺术作品,包括油画,以捕捉电影的精髓和外观。有些艺术作品的细节和真实感甚至超越了最终成片中的一般水平。

故事板在外观上类似于漫画书,是在纸上手绘草图,以帮助可视化关键的制作镜头。然后,艺术家使用Alias|Wavefront的3D动画软件包Maya中的自定义插件创建动画故事板电影。虽然动画故事板缺乏成品动画的质量,但它显示了场景的上下文、摄像机视图并有助于角色开发。通过使用动画故事板,制作人员可以在电影进入制作阶段之前,以动态方式可视化电影的各个部分。所有这些预制作内容都不会出现在电影中。它被用作稍后制作真实电影的指南。

场景规划确定要构建的角色、背景和特效。动画、背景和特效是独立的部门。这些部分稍后将使用合成软件组合在一起。

对于角色动画,使用ToonShooter扫描纸质草图。制作软件主管Derek Chan解释说:“ToonShooter是我们为Linux编写的内部工具。它捕获艺术家用来为电影计时的低分辨率640×480线条画。” 这款Linux拍摄台软件创建于一年多前,已部署在三个动画部门。Chan说:“对这款Linux软件的需求非常迫切,我们提前交付了它。梦工厂现在有60个单元在生产中。”

DreamWorks Feature Linux and Animation

ToonShooter 屏幕截图

ToonSketch让艺术家无需纸张或扫描仪即可快速完成类似拷贝台风格的工作。高级软件工程师Nhi Casey演示说:“我们在Wacom平板电脑上素描,就像在纸上一样。它速度快,并且可以无限次撤消。” 软件主管Jim Mainard补充说:“你可以使用重影来查看前后的帧。这比容易堆积的纸张更方便动画师使用。” 利用重影,动画师可以描摹或参考相邻帧。

DreamWorks Feature Linux and Animation

Nhi Casey,高级软件工程师

为了保持传统赛璐珞动画的外观,梦工厂将手绘前景角色。扫描部门使用大型自动进纸扫描仪以高分辨率(2k像素宽)格式捕获每个手绘帧。对于埃及王子,他们处理了超过一百万张纸。

ScanLevel,一个基于IRIX的应用程序,将图像保存为专有的压缩栅格格式。Mainard说,一旦扫描仪的驱动程序完成,预计今年晚些时候将切换到Linux版本的这款软件。ProcessLevels,一套专有的基于Linux的工具,执行对比度增强以去除纸张的颜色,即将背景驱动为白色并加深线条画。它还可以自动去除倾斜和光学畸变。

数字InkAndPaint工具获取扫描的线条图并添加颜色。明星画家Tina Staples展示了她使用InkAndPaint(一个内部Linux应用程序)的技巧。它的工作方式有点像GIMP或Photoshop,但专门用于各种桶填充图像操作。Leonard开玩笑说,这有点像打了类固醇的数字填色游戏。Tina绘制一帧的速度非常快,我们不得不要求她放慢速度,以便我们跟上她的操作。Tina惊呼:“我们现在速度太快了!使用Linux使我的速度提高了一倍,我们每周都能完成配额。”

DreamWorks Feature Linux and Animation

Tina Staples,明星画家

DreamWorks Feature Linux and Animation

InkAndPaint 屏幕截图

InkAndPaint具有按区域自动填充、修饰工具和自动补间功能。“随着场景的推进,自动化会失效”,Mainard说。“需要一个好的操作员来为多条线相交的区域着色。” 如果做得不好,你会看到颜色在帧与帧之间的交点处变化而产生的爬行效果。“线条汇聚处的颜色很难自动化,但我们希望在自动填充方面做更多开发”,Mainard说。“Tina使用InkAndPaint的速度太快了,这几乎无关紧要。”

InkAndPaint用Linux PC取代了双头Octane工作站。左侧显示器用于绘画,而右侧显示器显示标记指南。Leonard指出,他们早期克服了许多Linux图形问题,例如覆盖平面,以获得流畅的屏幕性能。这(以及在Wacom平板电脑驱动程序上的工作)已经回馈给开源社区。

大多数背景都是使用传统工具(如油画)或数字工具(如Macintosh Photoshop)手工绘制的2D图像。背景图可能非常大。Mainard说:“在埃及王子中,有些背景图有六到八英尺宽。” ScanBackground,一个基于IRIX的程序,通过36英寸Tangent扫描仪将这些背景数字化。扫描算法将大型背景拼接在一起。

需要展示透视变化的背景在Maya中以3D方式创建。颜色可以是投影纹理(纹理贴图)或绘画。对于3D绘画,梦工厂过去使用Studio Paint,这是Alias|Wavefront的另一款产品。但是,他们正在转向wpaint,这是一款由PDI/梦工厂开发的专有Linux应用程序。

特效部门创建诸如灰尘、火焰、液体、烟雾和粒子等有机特效。负责高级研发未来电影的高级软件工程师Galen Gornowicz一年来一直在为一部未宣布的动画电影开发技术。“我一直在开发一个可以实时渲染的海洋场景。有一些专有系统可以做到这一点,但我们是在Maya之上运行一个插件”,Gornowicz说。Linux带来的生产力提升是一个巨大的优势。“使用旧系统,我们在渲染类似场景时会去吃午饭。而且,水模型是在命令行执行的,不像现在这样是交互式的”,他指出。

DreamWorks Feature Linux and Animation

Galen Gornowicz,高级研发未来电影的高级软件工程师

Gornowicz说:“我们使用Maya进行特效制作,以及包括为Linux开发的Calypso水等一系列插件。” 梦工厂发现Calypso中的水太逼真了,太像电影完美风暴了。Gornowicz正在努力修改水的外观,以匹配电影的视觉开发图像。开发Maya插件涉及编写MEL脚本用于简单特效,或使用C/C++用于更复杂或高性能的插件。当使用编译后的插件时,会使用解释型的MEL脚本(有点像JavaScript)来创建一个菜单选项并将插件连接到Maya。任何函数都可以通过MEL脚本调用。插件没有main()函数。

渲染,即生成计算机生成对象的图像,可以在用户的工作站本地完成,也可以在梦工厂渲染农场完成。渲染农场在三个冰箱大小的SGI Origin 2000服务器(具有8-16个CPU)上接受队列中的作业或作为优先级渲染作业。

DreamWorks Feature Linux and Animation

SGI 渲染农场

DreamWorks Feature Linux and Animation

Linux 渲染农场

在PDI/梦工厂,用于怪物史莱克的渲染农场拥有1000多个处理器,其中80%是Linux,20%是IRIX。甚至在收购PDI之前,格伦代尔的梦工厂就已经在使用Linux进行渲染。他们拥有运行IRIX的旧Origin 200服务器,但正在转向更便宜的奔腾计算机。格伦代尔渲染农场的规模是PDI/梦工厂的一半,因为传统动画比CG的CPU密集程度低。VA Linux提供了格伦代尔的第一批Linux渲染计算机,证明了英特尔PC的能力。梦工厂正在构建一个新的渲染塔,由双1GHz P3 2GB RAM计算机组成,这些计算机封装在1RU(1.75英寸)的机箱中,堆叠了41个单元高。这个冰箱大小的单元正在取代占用40-50英尺数据中心机架空间的计算机。

合成部门将所有部分组合在一起:角色、背景和特效。他们还对前景对象进行遮罩处理,例如角色部分站在岩石后面的情况。Mainard解释说:“梦工厂使用Director的深度修改版本,该版本最初由剑桥动画开发。这款软件类似于Shake,一款流行的商业合成软件包,但已针对X-sheet的使用进行了修改。” X-sheet是帧时序列表,也是动画师传统上喜欢的工作方式。梦工厂的所有工具都经过修改以支持X-sheet。Director还特别支持以正确的分辨率和正确的抗锯齿渲染InkAndPaint图层。

艺术家主要以四分之一分辨率和1k宽的图像工作。对于电影发行,最终渲染以2k完成,对于IMAX发行,则以3k或4k完成。最终渲染将帧输出为TIFF文件到输出服务器,输出服务器将其传递给Cineon Lightening胶片记录仪序列号1。激光胶片记录仪以大约3fps的速度打印每通道16位的2K帧。Mainard说:“一旦一个序列完成,我们就会使用一系列Perl脚本将其拍摄出来,这些脚本为胶片记录仪准备数据。处理后的胶片会以彩色样片的形式返回,通常每天都有。”

Leonard说:“Linux非常适合游戏,但从SGI的丰富图形API移植需要时间。” “HP、IBM和SGI已经为我们提供了良好的Linux解决方案。” Leonard说戴尔也“明白了”,并将更多地扩展到Linux领域。当被问及为什么我们没有看到AMD CPU时,Leonard说:“英特尔上的Linux为多家供应商的高端工作站市场提供了强大而一致的平台。这就是为什么我们不追求像Alpha上的Linux、FreeBSD或专有UNIX解决方案之类的东西。” Leonard补充说:“HP对Linux的支持非常棒。我们每天从他们那里获得两个补丁。” 梦工厂现在购买廉价的备用PC,而不是维护合同。Leonard说,“一次性渲染”将使梦工厂能够每两年而不是五年更换一次桌面和渲染农场。

梦工厂既使用根据其动画制作需求量身定制的内部开发程序,也使用商业上可用的动画软件。梦工厂内部有三百万行代码,其中大部分最初是为SGI IRIX操作系统开发的。Linux比Windows更类似于IRIX,因此,移植如此大量的代码要容易得多。Linux Maya(下个月将在此处进行评测)是一款商业软件包,在其制作中发挥着重要作用。

梦工厂的每条动画流程线(阿德曼工作室、PDI/梦工厂、梦工厂传统动画部门)都有能力每18到24个月制作一部主要的动画电影。由于Linux的经济性,梦工厂正在格伦代尔建造第四条CG制作流程线。新的流程线将于明年年初投入生产,将完全基于Linux,使用英特尔IA-64和奔腾4处理器。我们可以期待更多像怪物史莱克小马王这样的电影由Linux驱动,并期待梦工厂SKG带来更多令人惊叹的动画。

DreamWorks Feature Linux and Animation
Robin Rowe是MovieEditor.com的合伙人,这是一家创建互联网和广播视频应用的技术公司。他曾为Dr. Dobb's Journal, C++ Report, C/C++ Users JournalData Based Advisor撰稿。他的软件设计包括一个客户端/服务器视频编辑系统,该系统在曼哈顿一家24小时广播电视台Time Warner New York One及其相关网站http://www.ny1.com/中使用。您可以通过robin.rowe@movieeditor.com与他联系。
加载Disqus评论