藝術抽象科學,科學證明藝術。-- Spacetime optimization與迪斯尼的動畫12法則的聯繫

本文作者@張心欣,個人主頁Xinxin Zhang UBC

本文著作權歸原作者張心欣所有,未經原作者許可的轉載均屬侵權行為,作者保留對侵權行為追究責任的權利。

本文已取得原作者授權發布。

題圖: 這篇文章的題圖, 來自於[1], 是一個由計算機自動生成的檯燈跳躍動作的序列,其中並沒有任何人為手調, 人們只是給定了檯燈的起始位置和終點, 所有的中間跳躍過程由計算機通過計算自動得出, 用於自動生成這個動畫序列的計算機程序主要是解算了一種名為Spacetime Optimization的問題。

在我們進一步了解Spacetime optimization這個演算法的細節之前, 請容許我回到這一篇的主題:科學與藝術的聯繫。 所以為了解釋科學, 我想要先解釋一下我們今天面對的另一個主題「藝術」, 為此, 我先來帶領大家看一下迪斯尼在多年動畫中總結出來的著名的迪斯尼動畫十二法則。 迪斯尼的動畫十分生動,富有才華的迪斯尼動畫師,也從他們廣博的動畫經驗中總結出了令動畫顯得生動的幾大法則[2],在此我複習一下其中的幾個。

1. 擠壓與拉伸(動圖請點擊播放)

為了表現一個物體的運動衝量, 我們最好適當的對其進行擠壓和拉伸,使動作看起來更為自然。

2. 準備動作。anticipation(動圖請點擊播放)

當你想要出拳打出去時, 當然最好是先把拳充分地往回縮。比如這個小盒子,準備像左翻滾時, 先向右準備這個翻滾動作。

3. 既然我是一個搞物理的人,我喜歡把他們總結的第五點和第六點放在一起講,因為本質上這都是關於加速和減速的過程:(動圖請點擊播放)

4. 運動的弧線(某種程度上和視覺上的流暢性有關)(動圖請點擊播放)

值得注意的是,在所有的這些規律中,沒有任何一個是獨立存在的, 比如在上頭這個弧形運動的例子中,為了啟動小方盒的運動(anticipation),就先有了擠壓和拉伸,然後再進行了弧線運動,同時動作的起始和終點也滿足slow in slow out。

在進行接下來的闡述之前,我先提出一個觀點: 迪斯尼動畫師們對於動畫法則的提煉,不僅僅是一種藝術上的經驗總結,實際上,更是出於對在動畫中重現客觀世界的自然物理所作出的一種規律總結。 一切的一切, 並不是出於藝術家的紙上談兵的空想,而是出於滿足製片需求的應運而生。藝術家的這些抽象,是源自於對於客觀物理世界的理性分析。

接下來,我將從科學的角度來補充論證我以上的觀點。為此讓我們考慮一個問題: 如何讓計算機來畫動畫?

為了讓計算機來完成動畫, 我們首先得有一個對於這個問題的數學-物理描述。 在宏觀物理的範圍內, 物質都可以看成是由無數的小的粒子組合成的, 那麼我們就考慮如何去動畫一個小粒子。 假設我們有一個很小的粒子它身上攜帶這一個很小的噴射引擎,這個引擎可以產生力來推動這個粒子走動。

我們希望計算機可以通過一種演算法, 來自動地產生引擎該給出的噴射力,使得這個小粒子可以從一開始給定的初始位置X(0), 運動到我們想讓它達到的終點位置X(T)

對此,我們有幾個約束條件:

牛頓約束:mvec{a} = mvec{g} + vec{f}(t), 粒子在任意時刻的加速度, 等於重力和外力作用下的合力。

位置約束: 粒子在運動時的起點和終點。(pose to pose)

目標約束:我們希望在整個過程中這個粒子的耗能是最小的(使用最少的燃料/最省力)

begin{equation}nlarge{min int_{t_0}^{t_n} left| f(t) right|^2 dt}nend{equation}

有關於這樣的系統的求解方法, 在[1]和[3]中都有詳細討論, 在此不做展開, 感興趣的讀者請自行查閱, 在此, 筆者倒是很想展示一下對於這樣的系統進行方程求解後, 所得到的結果。

所有在接下來所討論的運動中, 物體都是一種具有某種彈性的材質, 計算機通過求解相應的彈性體物理方程的約束來完成動畫的生成。

case1: x的運動。 在這個運動中,人們告訴計算機程序,我們想要求解出一個X的運動序列, 這個序列滿足如下幾個約束: 起始時X所在的位置,初速度為0. 之後的某幾個有限的時刻和最終時刻,X是上下調轉的, 並且告訴計算機程序調轉時X貼地的那一面的速度約束。注意這些約束就是所有的人為輸入了,沒有任何再多的關鍵幀了!!(動圖請點擊播放)

接下來我們看一下此時計算機程序求解得到的結果(動圖請點擊播放):

請注意上面這個計算機自動生成的動畫序列,整個序列的得到完全是為了滿足給定的物理約束, 然而這個結果與迪斯尼總結出來的「弧形運動」規律是多麼的偶合?!

案例2: 在這個例子中, 人們告訴計算機, 我想要得到一個長方體拉伸的動畫, 讓這個長方體可以通過給自己施加正確的力然後使自己的「頭」頂到一個給定的位置, 注意此處的位置約束和t1時刻的速度約束就是所有的人工輸入了, 人類並不會告訴計算機該讓這個長方體如何去動,如何去給自己施加那個初始的力(動圖請點擊播放)。

我們看看計算機通過計算後, 得到了怎樣的一段動畫(動圖請點擊播放):

注意, 此處這個長方體很自然的給自己施加了一個壓力, 使得自己在彈性變化後可以頂到預先設定的天花板, 這與迪斯尼動畫規律中的擠壓與拉伸, 何其的偶合?!亦或者說, 擠壓與拉伸這一藝術總結, 不就正是滿足「耗能最小化」這一物理約束的必然結果嗎?當然,我們也能從這個結果中看到諸如「slow in slow out」等的運動規律。

案例3:在這個例子中,人們希望那個長方體能產生適當的力來讓自己完成一個轉體運動, 注意此次的天花板還額外指定了它要旋轉180度(動圖請點擊播放)。

我們來看一看計算機根據優化物理上的耗能最小原理,得到的動畫是怎樣的(動圖請點擊播放):

注意到此處長方體為了順應耗能最小而自動產生的扭力, 讓它自己的目標雖然是逆時針旋轉, 卻預先順時針旋轉去儲備動勢了, 這不正是迪斯尼動畫規律所說的 anticipation「準備動作」嗎?!!!

又在如以下這個例子里所產生出的運動, 多麼自然的包括了迪斯尼動畫規律中的1,2,4,5,6,條(動圖請點擊播放)。

再看一個複雜一些的例子, 在這個例子中, 我們的程序員想讓一個仙人掌跳起來, 於是他們告訴計算機: 現在我有這樣一個仙人掌, 他一開始是這樣站著, 我們希望它在起跳的瞬間有這樣一個初速度, 然後讓它的「腳部」到達這樣一個高度。 注意在整個過程中, 人們並沒有告訴計算機, 這個仙人掌該使用一個怎樣的動作和給自己添加一個怎樣的力去完成這個跳躍, 所有的動作和過程中力都是由演算法在滿足耗能最小這個物理約束下自動產生的(動圖請點擊播放)

看見了嗎???!! 在產生出來的動畫序列中, 甚至還自動賦予了「手部的動作」, 整個動畫序列完全滿足pose to pose, squash and stretch, anticipation, solw in slow out, 等等動畫規律。

同樣的演算法施加在X身上, 則是這樣的(動圖請點擊播放),注意手部動作如何幫助身體省力的:

同樣的演算法還可以生動地產生出一些更複雜的動畫序列(動圖請點擊播放):

注意,此處演算法產生複雜動畫的能力並不是我最感興趣的, 而是說在通過演算法能產生出的動畫中, 它與迪斯尼的動畫規律竟然有如此大的偶合! 而所有的這些,完全是基於一個很簡潔的物理假設: 物體沿著能耗最小的方式運動。

今天之所以想到寫這篇文章, 一個原因是看到了這樣一篇公眾號推送

動畫圈打砸搶燒派舌戰群儒

裡頭動畫師和「理論派」們為了動畫規律產生了火藥味十足的爭論,我在這裡要順帶總結一下個人的觀點,其實所謂的動畫規律, 都是為了滿足和順應現實世界的物理規則, 每個人可以有每個人的理解, 從本質上來講, 不是說迪斯尼的12金律就是對的,而只能是說,在牛頓宏觀力學的環境下, 在目前所觀測的材質屬性中, 迪斯尼動畫師所總結的12條規律, 湊巧對了, 湊巧抽象出了客觀的物理運動法則, 以此為參考創作出的動畫,固然要更為真實可信一些。

然而對於以上那個公眾推送中很多「理論派」人士居高臨下的樣子,我是很不支持的, 中國某些學者需要注意一下自己那種發幾篇灌水論文就真把自己當成教授了的心態。 科學研究和理論研究固然重要,但目標一定是對於我們的客觀物質世界更為深刻,更為本質的理解, 而不是為了灌水,為了自圓其說,為了評職稱而產生的廢紙論文。志存高遠的, 就真正地去發表一些被行內外都能認同和尊重的理論研究。發表一些在行內得到廣大認同和應用的文學理論或者科學技術。

如果要我做一個比喻, 這個推送中的舌戰,就好像是外科風雲中的陸晨曦與其它胸外科的醫生在爭論。 而我的觀點則是, 既然你的論文和研究已經不是具有重大科研意義的, 的科學或者理論進步了, 那不如就好好拿好手術刀, 做好臨床。

_(:3」∠)_ _(?ω?」∠)_ _(:з)∠)_ ∠( ? 」∠)_ _(:зゝ∠)_

請毫不猶豫地關注我們:

我們的網站:GraphiCon

知乎專欄:GraphiCon圖形控 - 知乎專欄

公眾號:GraphiCon

如果你有什麼想法,建議,或者想加入我們,你可以:

給我們發郵件:[email protected]

加入我們的QQ群:SIQGRAPH(342086343)

加入我們的slack群:Join us on Slack!

GraphiCon長期接受投稿,如果你想投稿給我們可以通過上面的方式聯繫我們!

我們是圖形學愛好者,歡迎加入我們!

[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.

推薦閱讀:

簡述47種Shader Map的渲染原理與製作方法
【《Real-Time Rendering 3rd》 提煉總結】(三) 第三章 · GPU渲染管線與可編程著色器
6.向量
極簡的 PNG 編碼函數 svpng()

TAG:动画 | 计算机图形学 | 计算机科学 |