来源:http://www.siggraph.org/education/materials/HyperGraph/animation/anim0.htm
1. Introduction to Computer Animation
从历史的角度,动画的制作有两种方法。一种方法是由美术师创作一组连续的底画,然后合成为影片。另一种方法是使用物理模型,比如,将金刚放在一个起始位置,记录图像,然后移动它,记录下一个位置,像这样持续。
计算机动画是通过使用渲染机来制作图像不断变化的连续画面。一个简单的动画只需要移动场景中的摄像机或者刚体的相对运动。这和上文描述的第二种方法类似(比如使用物理模型)。更复杂的计算机动画可以用更有趣的方法移动摄像机和物体,比如沿着计算出的曲线路径,甚至可以使用物理定理来控制物体的行为。
动画是用可视化的方法来表现复杂系统中随时间变化的行为。
动画的一个主要部分是运动控制。早期的系统的计算能力不能实现动画的预演和交互式控制。很多早期的动画师同时也是计算机科学家,而非美术家。因此,脚本系统(scripting system)就诞生了。动画师可以使用高级的脚本语言来控制动画。高级的编程语言可以定义复杂的数据类型,而高级脚本语言可以定义具有运动规则的行动对象(actors)。
最新的系统已经可以进行不同类型的运动控制。一种划分动画技术的方法是根据运动控制技术的抽象层。一个底层的系统需要动画师准确的定义每个运动细节,而高层的系统可以使用更通用或者抽象的方法。例如,移动一个类似方块的简单刚体对象,每帧需要六个自由度(degrees of freedom)。更复杂的对象则需要更多的自由度,比如一个鸟可能需要超过20的自由度。现在想象一下一群鸟的动画。
因此,控制分层(control hierarchy)是必须的,高层的控制结构可以对应到更详细的底层的控制结构。这和高级程序语言的复杂控制结构或数据类型在运行时转换成底层的结构单元是一个道理。
2. Types of Animation Systems
2.1 Scripting Systems
脚本系统是最早期的运动控制系统类型。动画师用动画语言写脚本。因此,用户必须学习脚本语言。这种系统是不可交互的。其中一种脚本系统是ASAS(Actor Script Animation Language),其语法类似于LISP。ASAS引入了行动者的概念,它是一个复杂的具有自身运动规则的对象。例如,在自行车动画中,车轮在自身的坐标系中转动,动画师不需要考虑这个细节。行动者可以通过发送消息和其他的行动者通信,以此来实现动作的同步。这和面向对象语言中对象的行为相似。
2.2 Procedural Animation
过程用来定义随时间持续的运动。过程可以是基于物理规律的(Physically-based modeling)或由动画师指定的方法。比如一个运动是其他运动的结果(称为附属运动,secondary action)。举个例子,扔一个球击中另一个物体,会引起该物体的运动。
2.3 Representational Animation
该技术可以使一个对象在动画中改变其形状。有三种类型:第一,有关节的物体(articulated objects),复杂物体由刚性的局部片段通过关节连接而成;第二,类似皮肤或面部肌肉的柔软对象;第三,从一种形状变换成另一种完全不同的形状的变体(morphing)。这些可以发生在二维或三维空间。
2.4 Stochastic Animation
使用随机过程来控制对象群体,比如粒子系统。烟火,火,瀑布等。
2.5 Behavioral Animation
对象或行动者根据给定的规则与周围的环境交互。比如鱼群或鸟群中的每个个体的行为是根据动画师定义的一组规则。
3 Low Level Motion Control
3.1 关键帧
关键帧(Key frame)原理是由像沃特迪斯尼这样的传统动画制作师开发的。一个专业的动画师在制作动画时是通过绘制一组称为关键帧的中间画面。然后其他动画师负责绘制关键帧之间的中间帧(in-between frame)。
一个完整动画的制作过程有以下几步:
- 写动画的剧本
- 设计出剧本框架,包括一组非正式的绘图来表现动画的形式,结构和剧情
- 录制音效
- 动作的详细设计
- 在布局中加入音效
- 制作动画的关键帧。关键帧的选取要保证中间帧容易推测出
- 填充中间帧(称为inbetweening或tweening)
- 制作测试影片(pencil test)
- 将测试帧转换成胶片,称为cels。这些可能包含多个平面,比如一个静态的背景和一个运动的前景。
- 将cels组装成影片
有了计算机,动画师只需要指定关键帧,中间帧由计算机生成。可以对不同的参数进行插值,但是要保证结果的真实性。例如,绕一个轴旋转时,需要对角度插值而不是位置。
最简单的插值方法是线性插值(linear interpolation),插值点沿着一条直线。更好的方法是三次样条插值(cubic splines of interpolation)。动画师可以交互的改变样条线,然后观看插值结果。
4 Camera Animation
4.1 Traditional Film Camera Techniques
在电影和视频制作中,需要由摄影师设置摄像点并决定摄像机如何移动。要学习如何成为一名摄影师,上电影制作课不失为很好的选择。因为电影摄影的方法对计算机动画也是适用的。
计算机动画中一个潜在的问题是,动画师用摄像机尝试了太多花哨的东西——如果观众太过于注意摄像机的动作,那么他们不会注意动画本身。因为大多数观众都看过大量的电影和视频,根据经验用传统的方法使用摄像机更容易抓住观众的注意力。
下面是场景中有关摄像机的元素。
4.1.1 Field of View
视野(field of view, FOV)是指以摄像机所在位置的点以及一个锥形区域形成的可视角度。摄像机的焦距越短,FOV越宽。例如,35mm的FOV对应63度,50mm对应46度(正常),135mm长对应18度(远距摄像机)。宽角度会增加深度,而远距摄像机会使深度差异缩小。
4.1.2 Transitions
电影或视频的场景由一连串的镜头组成。每个镜头从不同的观察点拍摄,然后组合在一起。将这些单独镜头拼接在一起的过程是通过转换完成的。
转换可以是从一个摄像机角度转换到另一个角度,或者从一个摄像机转换到另一个摄像机。当CG动画师做镜头过渡时,他的任务是将一组独立的镜头组合成一个场景。影片剪辑员使用的技术是聚焦于镜头之间一个固定的元素。这个元素可以是一个物体或者是一个合成的元素,比如一个动作,颜色或方向。
最简单的镜头过渡方法是直接剪辑,这种过渡比较突然。还有一种叫做渐变(fade)的过渡类型,即整个场景增加或减少到一种颜色的画面。例如,整个场景渐变成黑色表示了序列的结束。当一个场景淡出,另一个场景淡入时,这叫渐隐(dissolve)。这种渐隐经常用来表示一段时间。例如,现在有一个沿着会场行走的镜头,然后当进入到建筑物的另一部分时有一个渐隐。
还有一种类型的过渡是,当一个场景擦除当前画面来代替上一个场景。擦除可以以任何方向移动,从一边到另一边或者从中心到周围。擦除会比较明显,所以不常用。
4.1.3 Camera Angles
摄像机角度用来帮助确定其观察点。因为观众看多了电影或电视,这他们习惯于将眼睛高度的镜头解释为包含意义。观众希望摄像机显示水平视野。如果摄像机不这么做,这会让他们很不舒服。摄像机相对地面的高度及其角度应该反映现实。鸟瞰或俯视都是不自然的,会吸引自身的注意力。如果有理由就好了。但是,这会损害动画的内容。CG中存在的一个问题是随便的移动或防止虚拟摄像机可能导致大量不合适的摄像机角度。
一个好的方法是通过观察现有的电影和视频,来确定摄像机离地面的高度。例如,在一个广角镜头中,摄像机的位置一般处在观察者坐着时的高度。在特写镜头中,男性一般呈现为高于视线,女性则呈现为低于镜头。摄像机放在站立时视线的高度一般会显的过高。
4.1.4 Camera moves
有一些在摄像机刚发明不久就诞生了的镜头移动方法,这些方法沿用至今。虽然使用虚拟镜头可以随意的移动,但是现实中的移动方法会是很好的借鉴。这些移动包括:
- 追拍和斜拍(Panning and Tilting)
对于这两种镜头,拍摄机是固定的,在水平或垂直平面上旋转。
追拍用来跟踪一个移动的物体或人物,或者无法用单独一个画面展示完的场景,比如追拍穿过一个地形。还用来从一个机位过渡到另一个。
不熟练的操作员可能会因为移动过快导致频闪(或残影,strobing)效果。这也是CG中会遇到的问题,称为tearing。这会导致病态的动作或导致破碎的运动假象。例如,对于一个30fps的动画,一个45度追拍在22帧时表现会快速转动,66帧表现为随意转动。
一种避免频闪的方法是在渲染时使用场景运动模糊。这种模糊是通过画面间信息的共享实现的。注意这中场景运动模糊是来自前一个和后一个场景中信息的共享。与对象运动模糊不同。
通用的情形适用于斜拍。 - 移动式摄影车追拍(Dolly and Tracking shots)
移动式摄影车是一个小型的有把手控制的轮式车,用来在场景中移动摄像机。一个摄影车镜头是一个场景中进出的移动,比如,运动和摄影机镜头的轴平行。一个追拍镜头是指一次与摄影机镜头轴垂直的移动。镜头的关键是运动要真实。通过观察人移动的多快以及实现这个动作需要多少帧来决定摄像机如何运动。不同速度运动的例子如下表:
- 吊拍
摄像机掉在吊杆上,从上往下移动。考虑的情况和追拍相同。 - 变焦镜头和眩晕效果
4.1.5 Zoom Lenses and the Vertigo Effect
变焦镜头的焦距可变,因此可以靠变焦实现摄像机“移动”(实际上没有动)。专业摄影师很少使用变焦,一般更喜欢移动摄像机。业余爱好者喜欢变焦,并通过将变焦和快速摇拍制作出令人作呕的运动效果。变焦改变了显示的角度,空间联系也随之改变。
在电影《迷魂药》中,阿尔弗雷德·希区柯克 利用这种特性制作出了所谓的眩晕拍摄。该镜头将运动主题与镜头缩放同步,因此主题保持大小不变,但是背景却在改变。
4.1.6 Depth of Field Effects
真实的摄像机有一个景深,即在任何时间只有图像的一部分处在焦点。景深是焦距的函数,短焦距(宽角度)的景深大,摄远镜头的景深小。许多CG摄像机的景深是无限的,即所以物体都处在焦点,这看起来很不真实。更高级的CG系统则具有仿真镜头的摄像机。
一种改变场景中注视中心的方法是,使前景处在焦点,背景处在焦点外。然后背景中的对象被带入焦点,而前景中的对象离开焦点。例如,两个人正在一间拥挤的房间谈话,且处在焦点。然后焦点改变了,显示了几英尺外有个人正在注视着这两个人。
正在谈话的两个人
第三个人在注视这两个人