计算机动画

動畫類型

计算机动画Computer Animation),又稱计算机繪圖,是通过使用计算机制作动画的技术。它是计算机图形学动画的子领域。近年動畫師越来越多的借助于三维计算机图形学,縱使二维计算机图形学仍然被广泛使用着。有时动画最后播放的地方就是计算机本身,有时候则是另外的媒体,譬如电影

计算机图形軟體

为了制造运动的影像,画面显示在计算机屏幕上,然后很快被一幅和前面的画面相似但移动一些的新画面所代替。这个技术和电视电影制造移动的假象的原理一样。

三维计算机动画本质上是定格动画(stop motion,或称静帧采集)的数字化后代;动画中的形象建立在计算机屏幕上并被装上了一个骨架。然后,三维形象的四肢,眼睛,嘴巴,衣服由动画制作者来操纵。最后,动画由计算机绘制出来。

一个简单的例子

 
簡單的计算机动画实例

畫面被清空至背景颜色,例如黑色。然后一只山羊被画在屏幕的右边。接下来屏幕再次被清空,但是山羊被画在比原来稍偏左一点的位置。这个过程被重复,每次画的时候山羊都向左移动一些。如果这个过程重复得足够快的话,山羊看起来就会像是在平滑地向左移动。这个基本原理也被电视和电影广泛使用。

解释

要成功欺骗,使它们觉得看到了平滑运动的物体,图片更换的速度必须达到大约12每秒(一帧就一幅完整的图像)。到70帧每秒的时候,真实感和平滑度不能再有改善了,因为眼和脑的处理图像的方式使得这个速度成为极限。12帧每秒以下的速度,多数人能够觉察到绘制新图片所引起的跳跃性,这使得真实运动的假象受到干扰。传统手工卡通经常使用15帧每秒的速度以节约所需的画数,由于卡通的风格这通常是可接受的。由于更多的帧数能提高真实感,通常计算机动画要求有更高的帧率。

高速的时候没有跳跃感的原因在于“视觉暂留”。时不时地,眼和脑一起工作把所看到的景象存储几分之一秒,然后自动将小跳跃“平滑掉”。电影院里播放的电影通常以24帧每秒运行,这足以产生连续运动的假象。

设备

计算机动画可以用计算机和动画软件制作。一些常见的动画软件包括:Amorphium(3D)、造型软件(3D)、Ray Dream Studio(3D)、BryceCinema 4DMayaBlenderTruespace(3-D)、3D Studio Max(3D)以及SoftImage XSI(3D)。它们的价格随着目标市场的不同而有很大不同。有些令人印象深刻的动画可能用相当简单的程序生成。但是,在普通家用机上绘制会耗时很久。电子游戏动画制作者倾向于使用低分辨率,低多边形数的绘制器,使得图形得以在家用机上实时绘制。高真实感动画在这种情形下是不现实的。

电影、电视和录像的专业动画师采用高细节层次的真实感动画。这种电影动画在家用机上可能要花几十几百年来制作。所以,很多强大的工作站被用来進行動畫繪製。图形工作站比家用机快100多倍,并且善长于著色。大量的工作站(称为著色農場)联机起来,象一个巨型机那样工作。这样一部计算机动画电影可以在一到五年完成(当然这不只包括绘制)。一个工作站通常价值$5000到$25000。PixarRenderman动画软件被广泛用于电影动画的行业标准。它可以约$5000至$8000的价钱在Pixar官方网页上购买。它只运行于基于Linux的图形工作站。专业人员也采用数字摄像机运动捕获或者表演捕获蓝幕、影片编辑软件、小道具,以及其他工具来制作动画电影。

技术细节

当一幅图像被绘制到屏幕上,通常它先被绘制到成为后缓冲的地方。计算机在那里绘制图像,在全部完成之前作各种改动。而计算机在绘制时,屏幕显示称为主缓冲或活动缓冲的地方的内容。

当图像完成时,计算机告诉屏幕从后缓冲显示新的内容。有两种做法:把后缓冲的内容拷贝到主缓冲(或称活动缓冲—其内容正在被显示的缓冲)或者交换两个缓冲,把后缓冲变成新的主缓冲。这种情况下,主缓冲变成了后台缓冲。这个进程通常称为双重缓冲,或者非正式的叫做“翻转”(“flipping”),因为计算机翻转了主缓冲和后台缓冲的使用。

这个变换必须在用户注意不到的时候发生。所以,它必须在称为“v-sync”垂直同步的时候开始。在阴极射线管中,垂直同步发生在电子枪到达屏幕右下角时,电子束必须重新回到屏幕的左上角。这个动作很快,当它往回移动的时候,电子枪原来投射的影像还残留在屏幕上。在电子枪重定位的时候,计算机有足够的时间翻转两个缓冲,这样电子枪下次扫描出来的就是新图像。新图像会继续被反复绘制直到缓冲再次翻转。

如果计算机没能等待垂直同步,就会看到称为精灵断裂(sprite breakup)或图像断裂的情况。这是相当不良的情况,需要尽量避免以保持运动的假象。

前景

将来,有些人认为现在的动画(2D、3D)将被虚拟现实所取代;也就是说电影的观众会看到自己处在电影里面象一个站在旁边观看的人。

具体的例子以及伪代码

在2维计算机动画中,运动物体常被称为“精灵(sprite)”。一个精灵是一个有位置的图像。每个帧之间的精灵的位置稍有改变,使得精灵看起来像在动。下面的伪代码使精灵由左向右移动:

 var int x := 0, y := screenHeight / 2;
 while x < screenWidth
     drawBackground() //画背景
     drawSpriteAtXY(x, y)  // 画在背景上
     x := x + 5  //向右移动

现代(2001年)计算机动画采用不同的技术来产生动画。最常见的是,通过复杂的数学操作复杂的三维多边形,再加上“纹理”、光照和其他效果,最后绘制完整的图像。复杂的图形用户界面被用来制作动画并编排它的舞美效果。另一个称为构造实体几何的技术用来定义物体,它用在常见形状上进行布尔操作来制作新物体,使得动画在任何分辨率上都能精确产生。

让我们一步步过一遍绘制带平的木墙的房间中有一个灰色金字塔在中间的简单图像的过程。金字塔有聚光灯打在上面。每堵墙、地板和天花板都是一个简单的多边形,在这个例子中,实际上都是矩形。矩形的每个角由三个数值定义,称为X,Y,Z坐标。X是点在左右方向离给定的原点多远,Y是上下方向的距离,而Z是沿垂直屏幕的方向多远。最靠近我们的墙由四个点定义(依次序为 x,y,z)。下面是这堵墙如何定义的表达式。

 (0, 10, 0)                        (10, 10, 0)





 (0,0,0)                           (10, 0, 0)

远处的墙是:

(0, 10, 20)                        (10, 10, 20)





(0, 0, 20)                         (10, 0, 20)

金字塔由5个多边形组成:矩形的底,4个三角形的面。要绘制这个图像,计算机用数学计算如何投影这个由三维数据定义的图像到二维的计算机屏幕上。

首先,我们必须定义我们的观察点,也就是从哪一点绘制图像。我们的观察点在房间里面比地板高一点的地方,在金字塔的前面。首先计算机会计算哪个多边形可见。最近的墙完全不会被显示,因为它在我们的观察点的后面。金字塔的后面也不会被显示,因为它被金字塔挡住了。

下一步中,每个点被透视投影到屏幕上。因为透视效果,墙距离观察点‘最远’的部分看起来会比近一点的部分更短。要使墙看起来像木头,一个称为纹理的木条纹被画在墙上。要做到这一点,就经常要用称为“纹理映射”技术。一小片木头的图片在拉伸以后以平铺的方式被重复绘制到墙的最终形状上(就像墙纸那样)。金字塔是灰色的,所以它的表面就直接画成灰色。但我们还需要一个聚光灯。光直射的地方我们把颜色变浅,而被物体挡住的地方我们把颜色变深。

最后我们在计算机屏幕上绘制整个场景。如果描述金字塔的位置的数字变化而这个过程被重复,我们就可以看到金字塔在移动。

电影及电视剧

从1970年代开始CGI短片作为独立动画片开始生产,但计算机动画(特别是特技领域)在美国动画片的摩登时代才大量出现。第一个完全计算机生成的动画系列是《ReBoot(重启)》。著名的皮克斯動畫工作室所製做的動畫電影幾乎是用電腦動畫製成。

下面是一些采用了计算机动画技术的电影和电视剧:

偽2D動畫

「偽2D動畫」亦多稱為2.5D動畫[1],是一種動畫繪圖的製作方式。繪圖作法與一般3D數位繪畫的製作方式雷同,從建模( Modeling )、材質和紋理貼圖(Material & Texturing)、攝影機和燈光設定(Camera & Lighting)到算圖(Rendering ),皆以相同的繪圖方式進行。但2.5D數位繪畫,則較接近一般浮雕的表現方式,以單面立體圖形重疊的方式處理,因此2.5D數位繪畫大都只能從單一角度取得所需要的畫面。在動畫製作上,這種手法極適合運用在非人物體如車輛機器人等。偽2D動畫質感上在電腦特效出現時融合感極佳,且靜態畫面與2D動畫的質感幾乎無異,但目前技術在動態畫面仍會有與2D動畫不同的現象。

偽2D動畫列表

参看


外部链接

应用

采用计算机动画的工作室

  1. ^ 絕大多數皆用此稱呼,但2013年開播的日本電視動畫《蒼藍鋼鐵戰艦》製作組首次聲稱自己做的是2.2D,以表示他們修飾的品質更接近2D動畫。