Professional Documents
Culture Documents
动画曲线大百科
动画曲线大百科
动画曲线大百科
http://www.navone.org/HTML/Tutorial_Splines1_2.htm
许多新手 3D 动画师(甚至有些老手)都会对他们所使用的动画软件里面的曲线编辑器(spline editor)感到不适应,
甚至有些犯怵。也许他们像儿童一样,被那些带着小球的彩色纱线迷花了眼睛;也许他们感觉好像是伦敦的地铁线路
一样让人迷惑;又或者也许他们只是看见彩色的乱麻理不出头绪来。不论什么原因,都很丢人呵,因为曲线编辑器可
是一个很强大的动画工具哦。
我个人非常喜欢调节这些动画曲线;有事我甚至直接在曲线编辑器里直接做动画,碰都不碰我的模型。只要知道
曲线应该看起来怎样,我就能大体上预测出我的物体会怎样运动了,诊断并修复我动画中的问题,然后就跳到我的调
节细节(polish)的阶段。
在这两部分教程中,我将要试图传授给你们一些简单的规则和概念,来帮助你们更好的理解动画曲线的含义和功
能(或者叫“功能曲线”function curves,它们有时候这么叫)。我将使用 Maya 的 Graph Editor 来讲述我的例子。但
是我这里阐述的规律适用于任何主流 3D 动画程序。希望看完这篇教程,你就已经上了曲线调节的正途了!
在这些课程里我会使用一些基本的动画术语,诸如“渐入”(ease-in),“间隔”(spacing),“关键帧”(key),
和“交迭”(overlap);如果你对这些不够熟悉的话,那么你可能还没准备好看这篇教程。但是如果你想重温一下你记
忆里关于这些东西的印象,还有基本动画规律,那么请看这里,或者拾取一个“Illusion of Life”的拷贝。
基础
为了避免让任何人掉队,我将要从曲线编辑器最基础的解释开始讲起。这里我用一个简单的动画实例:一个球从
一个地方移动到另一个地方(我称之为"Pose A"和"Pose B")。
http://www.uecg.cn/an/video/Ball_02_FlatTans.mov
Ease-In's 和 Ease-Out's:
这些是最普通的了,而且非常容易在曲线编辑器中做正确。如我先前指出的,每个 pose 都有个 copy 的 key,以使得它
们保持在位置上。但是如果我稍微提高一些第二个 key 或者放低一些第三个 key 的话,我会分别得到一个 ease-out 或
ease-in,让我们先集中看看到 Pose B 的 ease-in。我选择第三个 key 并把它降低一点,然后旋转它的切线手柄使得曲
线平滑的经过它。现在球不再是停止并保持在 Pose B 了,而是几乎要到达 Pose B 时开始慢入 ease-in。这样在动作的结
尾处增加了一些缓冲,也给了球更多真实的减速和重量的感觉。
http://www.uecg.cn/an/video/Ball_03_EaseIn.mov
注意在上面的片段中,更多的点聚集在靠近 Pose B 的地方。换句话说,这个动画更偏爱 Pose B。如果我用同样的方式
抬高第二个 key 的话,我就得到 Pose A 的 ease-out 慢出。现在球不是从保持突然开始动,而是逐渐加速开始移动。
http://www.uecg.cn/an/video/Ball_04_EaseOutEaseIn.mov
我不想在动作中做一样的慢入和慢出(像上例)因为那样会使 timing 和 spacing 显得对称,也不是很有趣。最好偏向
某一端的 pose。
Fast-In & Out's 快入和快出:你不用调节任何 key 的数值来得到 fast-in 和 fast-out。你可以把 key 变成线性 linear 的,
打断 key 两端的切线手柄,或者让它们变短直到它们几乎影响不到曲线形状为止。这个例子里曲线的倾斜处理成在 key
前后有个陡峭的尖角,所以这里会有个突然的停止或者移动。一般你可以用这种 timing 来处理一个物体突然受到外力
作用。比如,一个球被高尔夫球杆打飞,它会从保持状态突然 fast-out 快出。这里是一个 Pose A 的快出加上一个 Pose
B 的慢入。
http://www.uecg.cn/an/video/Ball_08_FastOutEaseIn.mov
在上面的片段中你可以看到 spacing 没有加速,只有减速,因为球刚刚被击打时是最快的,然后它只会减速。
如果球正在滚动然后突然撞到什么东西停下来,它会在撞击处快入。这里我融合了一个 Pose A 的慢出和 Pose B 的快
入,好像球开始沿着斜坡滚下,然后撞到墙停了下来。
http://www.uecg.cn/an/video/Ball_08a_EaseOutFastIn.mov
这次没有减速;惯性和重力让球一直滚动直到一个不动的物体阻挡了它。
http://www.uecg.cn/an/video/Ball_10_Antic.mov
这次你同样也可以按照物理规律和品味偏好来调节这些 key 的变化量。这个方法不总是给你完美的 antic 和 OVS,但是
对于简单的动作来说这是一个快速和简单的捷径。我也可以通过不改变数值,仅仅倾斜 key2 和 3 的切线手柄来得到近
似的效果,但是这样会让曲线超过它的 key 的范围,这是我要尽力避免的。
更多关于这个话题的内容在 Hygiene 曲线卫生学部分。
对于那些 Ease,Antic 和 Overshoot 你也可以通过偏移 key 的时间上的位置或者添加一些 key 来缩短或者加长影响效
果。到现在我把 key 留在所在的时间上,集中精力调节数值和切线手柄。现在有一个更加复杂的例子,综合了多种
timing 的方案。本例中,我添加了更多的 key 并沿着时间移动它们,但是所有的前期概念还是可见的。这个动画完全是
在 Graph Editor 中创建的。想法是这样的:一个球打算从屏幕的右边出画,但是被一堵看不见的墙挡住了去路。这个动
画不是要获得 Annie 奖的,它只是要告诉你在一个 Translate channel 中你能做些什么,并且能够理解曲线调节。
http://www.uecg.cn/an/video/Ball_11_Combo.mov
这里是动画的 breakdown:
Frame 1-3:这是一个 hold 保持,因为动画曲线没有倾斜。
Frame 4-12:这是一个大的 Antic 预备动作,而且在 frame 7 上有个对 Antic 的 ease-in。因为它看起来正计划下一步
的动作,所以暗示你这个球是活的。
Frame 12-18:球快速向右边移动,加速。
Frame 18-24:球撞到了看不见的墙,有个 fast-in,然后马上弹回来,接一个 fast-out。
Frame 24-33:球又撞在墙上弹了几次,在接触的 key 上一直是 fast-in 和 fast-out。
Frame 35-38:球停下来,保持。
注意:上图中的许多切线手柄都有 free Tangent weight 而且打断了切线连续。Maya 让你的工作变得有点艰苦,这样
才能获得你想要的精确的 tangent 形状,但是不要让这一点阻碍了你!