艺术抽象科学,科学证明艺术——Spacetime Optimization 与迪士尼动画十二法则的联...
这篇文章的题图,来自于¹,是一个由计算机自动生成的台灯跳跃动作的序列,其中并没有任何人为手调,人们只是给定了台灯的起始位置和终点,所有的中间跳跃过程由计算机通过计算自动得出,用于自动生成这个动画序列的计算机程序主要是解算了一种名 Spacetime Optimization 的问题。
在我们进一步了解 Spacetime Optimization 这个算法的细节之前,请容许我回到这一篇的主题:科学与艺术的联系。
所以为了解释科学,我想要先解释一下我们今天面对的另一个主题「艺术」,为此,我先来带领大家看一下迪士尼在多年动画中总结出来的著名的迪士尼动画十二法则。
迪士尼的动画十分生动,富有才华的迪士尼动画师,也从他们广博的动画经验中总结出了令动画显得生动的几大法则²,在此我复习一下其中的几个。
1. 挤压与拉伸
为了表现一个物体的运动冲量,我们最好适当的对其进行挤压和拉伸,使动作看起来更为自然。
2. 准备动作。anticipation
当你想要出拳打出去时,当然最好是先把拳充分地往回缩。比如这个小盒子,准备像左翻滚时,先向右准备这个翻滚动作。
3. 既然我是一个搞物理的人,我喜欢把他们总结的第五点和第六点放在一起讲,因为本质上这都是关于加速和减速的过程:
4. 运动的弧线(某种程度上和视觉上的流畅性有关)
值得注意的是,在所有的这些规律中,没有任何一个是独立存在的,比如在上头这个弧形运动的例子中,为了启动小方盒的运动(anticipation),就先有了挤压和拉伸,然后再进行了弧线运动,同时动作的起始和终点也满足slow in slow out。
在进行接下来的阐述之前,我先提出一个观点:迪士尼动画师们对于动画法则的提炼,不仅仅是一种艺术上的经验总结,实际上,更是出于对在动画中重现客观世界的自然物理所作出的一种规律总结。一切的一切,并不是出于艺术家的纸上谈兵的空想,而是出于满足制片需求的应运而生。艺术家的这些抽象,是源自于对于客观物理世界的理性分析。
接下来,我将从科学的角度来补充论证我以上的观点。为此让我们考虑一个问题:如何让计算机来画动画?
为了让计算机来完成动画,我们首先得有一个对于这个问题的数学-物理描述。在宏观物理的范围内,物质都可以看成是由无数的小的粒子组合成的,那么我们就考虑如何去动画一个小粒子。假设我们有一个很小的粒子它身上携带这一个很小的喷射引擎,这个引擎可以产生力来推动这个粒子走动。
我们希望计算机可以通过一种算法,来自动地产生引擎该给出的喷射力,使得这个小粒子可以从一开始给定的初始位置X(0),运动到我们想让它达到的终点位置X(T)。
对此,我们有几个约束条件:
牛顿约束:
粒子在任意时刻的加速度,等于重力和外力作用下的合力。
位置约束:粒子在运动时的起点和终点。(pose to pose)
目标约束:我们希望在整个过程中这个粒子的耗能是最小的(使用最少的燃料/最省力)
有关于这样的系统的求解方法,在 ¹ 和 ³ 中都有详细讨论,在此不做展开,感兴趣的读者请自行查阅。在此,笔者倒是很想展示一下对于这样的系统进行方程求解后,所得到的结果。
所有在接下来所讨论的运动中,物体都是一种具有某种弹性的材质,计算机通过求解相应的弹性体物理方程的约束来完成动画的生成。
案例一:X 的运动。在这个运动中,人们告诉计算机程序,我们想要求解出一个X的运动序列,这个序列满足如下几个约束:起始时 X 所在的位置,初速度为 0. 之后的某几个有限的时刻和最终时刻,X 是上下调转的,并且告诉计算机程序调转时 X 贴地的那一面的速度约束。注意这些约束就是所有的人为输入了,没有任何再多的关键帧了!!
接下来我们看一下此时计算机程序求解得到的结果。
请注意上面这个计算机自动生成的动画序列,整个序列的得到完全是为了满足给定的物理约束,然而这个结果与迪士尼总结出来的「弧形运动」规律是多么的偶合?!
案例二:在这个例子中,人们告诉计算机,我想要得到一个长方体拉伸的动画,让这个长方体可以通过给自己施加正确的力然后使自己的「头」顶到一个给定的位置,注意此处的位置约束和 t1 时刻的速度约束就是所有的人工输入了,人类并不会告诉计算机该让这个长方体如何去动,如何去给自己施加那个初始的力。
我们看看计算机通过计算后,得到了怎样的一段动画:
注意,此处这个长方体很自然的给自己施加了一个压力,使得自己在弹性变化后可以顶到预先设定的天花板,这与迪士尼动画规律中的挤压与拉伸,何其的偶合?!亦或者说,挤压与拉伸这一艺术总结,不就正是满足「耗能最小化」这一物理约束的必然结果吗?当然,我们也能从这个结果中看到诸如「slow in slow out」等的运动规律。
案例三:在这个例子中,人们希望那个长方体能产生适当的力来让自己完成一个转体运动,注意此次的天花板还额外指定了它要旋转 180 度。
我们来看一看计算机根据优化物理上的耗能最小原理,得到的动画是怎样的:
注意到此处长方体为了顺应耗能最小而自动产生的扭力,让它自己的目标虽然是逆时针旋转,却预先顺时针旋转去储备动势了,这不正是迪士尼动画规律所说的 anticipation「准备动作」吗?!!!
又在如以下这个例子里所产生出的运动,多么自然的包括了迪士尼动画规律中的 1,2,4,5,6 条。
再看一个复杂一些的例子,在这个例子中,我们的程序员想让一个仙人掌跳起来,于是他们告诉计算机:现在我有这样一个仙人掌,他一开始是这样站着,我们希望它在起跳的瞬间有这样一个初速度,然后让它的「脚部」到达这样一个高度。注意在整个过程中,人们并没有告诉计算机,这个仙人掌该使用一个怎样的动作和给自己添加一个怎样的力去完成这个跳跃,所有的动作和过程中力都是由算法在满足耗能最小这个物理约束下自动产生的:
看见了吗???!!在产生出来的动画序列中,甚至还自动赋予了「手部的动作」,整个动画序列完全满足 pose to pose,squash and stretch,anticipation,solw in slow out,等等动画规律。
同样的算法施加在 X 身上,则是这样的,注意手部动作如何帮助身体省力的:
同样的算法还可以生动地产生出一些更复杂的动画序列。
注意,此处算法产生复杂动画的能力并不是我最感兴趣的,而是说在通过算法能产生出的动画中,它与迪士尼的动画规律竟然有如此大的偶合!而所有的这些,完全是基于一个很简洁的物理假设:物体沿着能耗最小的方式运动。
今天之所以想到写这篇文章,一个原因是看到动画手册推送的《动画圈打砸抢烧派舌战群儒》。
里头动画师和「理论派」们为了动画规律产生了火药味十足的争论,我在这里要顺带总结一下个人的观点,其实所谓的动画规律,都是为了满足和顺应现实世界的物理规则,每个人可以有每个人的理解。
从本质上来讲,不是说迪士尼的十二金律就是对的,而只能是说,在牛顿宏观力学的环境下,在目前所观测的材质属性中,迪士尼动画师所总结的 12 条规律,凑巧对了,凑巧抽象出了客观的物理运动法则,以此为参考创作出的动画,固然要更为真实可信一些。
然而对于以上那个公众推送中很多「理论派」人士居高临下的样子,我是很不支持的,中国某些学者需要注意一下自己那种发几篇灌水论文就真把自己当成了教授的心态。
科学研究和理论研究固然重要,但目标一定是对于我们的客观物质世界更为深刻,更为本质的理解,而不是为了灌水,为了自圆其说,为了评职称而产生的废纸论文。志存高远的,就真正地去发表一些被行内外都能认同和尊重的理论研究。发表一些在行内得到广大认同和应用的文学理论或者科学技术。
如果要我做一个比喻,文章中的舌战就好像是外科风云中的陆晨曦与其它胸外科的医生在争论。而我的观点则是,既然你的论文和研究已经不是具有重大科研意义的科学或者理论进步了,那不如就好好拿好手术刀,做好临床。
1.Witkin, Andrew, and Michael Kass. 'Spacetime constraints.' ACM Siggraph Computer Graphics 22.4 (1988): 159-168.
2.Thomas, F., & Johnston, O. (1981). Disney animation: The illusion of life. New York: Abbeville Press.
3.Christian Schulz, Christoph von Tycowicz, Hans-Peter Seidel, and Klaus Hildebrandt. 2014. Animating deformable objects using sparse spacetime constraints. ACM Trans. Graph. 33, 4, Article 109 (July 2014), 10 pages.
推 荐 閱 讀
R E C O M M E N D
▼
动 画 手 册
All our dreams can come true
if we have the courage to pursue them