16.1玩具世界的卡通物理學
電影《侏羅紀公園》裡的恐龍最了不起的地方就在於它們有足夠長的人工生命,可以在電影《石頭城樂園》中被再次用作卡通恐龍。
當然,再次出場的恐龍不會完全一樣。它們會更為馴服、更長、更圓,也更聽從指揮。不過,這些恐龍的身體內,跳動的卻是一顆數字心臟,一顆屬於霸王龍或速龍的心臟----不同的身體,同樣的恐龍之心。作為工業光魔公司的奇才、虛擬恐龍的發明者,馬克·戴普只要改變這些生物的數字基因設定就可以把它們變成可愛的寵物,同時又讓它們保持逼真的銀幕形態。
《侏羅紀公園》中的那些恐龍不過是些行屍走肉。它們有逼真的身體,卻缺少自己的行為、自己的意志,自己的生存力。它們是由計算機動畫師操縱的幽靈般的提線木偶。不過有朝一日,這些恐龍會像匹諾曹一樣獲得屬於自己的生命。
在這些侏羅紀恐龍進入到栩栩如生的電影世界之前,它們棲居在一個空曠的三維世界裡。在這片幻想世界中,除了音量、燈光、空間之外,幾乎一無所有。風、重力、慣性、摩擦力、硬度以及物質世界所具有的細枝末節全都不存在,需要想象力豐富的動畫師來構建。
"傳統動畫中所有的物理習性都取決於動畫師的認知,"說這話的是邁克爾·凱斯,他是蘋果電腦公司的一位計算機圖形工程師。比如,當沃特·迪斯尼畫出米老鼠屁顛屁顛地從樓梯上滾下來的時候,他在畫紙上展示出的效果來自他對萬有引力的認識。不管是真還是假,米老鼠遵循的是迪斯尼對物理學的理解。這種理解通常都不怎麼真實,而這也恰恰是動畫片的魅力所在。很多動畫師都會藉助誇張、變異,甚至乾脆忽視真實世界的物理定律以博一笑。不過,現代電影風格追求嚴格的真實感。觀眾們希望電影《外星人》裡的飛行腳踏車像"真的"飛行著的腳踏車,而不是卡通版腳踏車。
凱斯想要嘗試的,就是把物理學引入模擬世界。"我們參考了把物理學裝進動畫師腦子的傳統做法,決定改一下,讓計算機也懂得一些物理學知識。"
讓我們從那個一無所有的幻想世界說起,想象裡面有一個漂浮的徽標。凱斯說,這個簡單世界的問題之一是"裡面的東西看起來輕飄飄沒有一點重量"。為了增加這個世界的真實感,我們可以給物件新增質量屬性,同時給環境設定重力定律。這樣一來,如果一個飄浮的徽標掉在地板上,它墜落的加速度會跟一個實物在地球上掉落的加速度一樣。重力公式非常簡單,把它置入一個小世界也不難。我們可以給徽標再加上一個彈性公式,這樣它就能"自然而然"地以非常有規律的方式從地板上彈起來。它遵守重力定律、動能定律以及讓它減速的摩擦力定律。我們還可以給它加上硬度----比如塑膠的硬度或者金屬的硬度,這樣它對沖擊的反應也變得真實起來。最後的結果就有一種真實感,當鍍鉻徽標摔到地上的時候,它反彈的幅度越來越小,直到咔嗒一下停下來。
我們可以繼續運用更多的物理定律和公式,比如彈性係數、表面張力、旋轉效果,然後把它們編碼到環境中去。隨著我們為這些人工環境加入更多的複雜度,它們就會成為合成生命成長的沃土。
這就是這些侏羅紀的恐龍如此逼真的原因。當它們抬腿的時候,它們要克服虛擬的軀體的重量,它們的肌肉會伸縮或下垂。當腳落下的時候,重力會拉扯它,落地時帶來的衝擊同時向上反射到腿部。
迪斯尼於1993年夏天發行的電影《人嚇鬼》中那隻會說話的貓,也是一個類似於恐龍的虛擬角色,但更逼真。動畫師們首先製做一個數字貓的外形,然後以一張照片裡的貓為參照,為這隻數字貓披上質感的皮毛。要不是它那非同尋常的講話能力,它和那隻貓簡直像極了。它嘴部的動作是從人那裡對映來的。所以,這隻虛擬動物其實是一個貓-人混血兒。
電影觀眾看到秋葉被吹到街上。他們沒有意識到這個場景其實是計算機生成的動畫。這個畫面之所以看起來很真實,是因為這段影像中確實有某種真實性:片片虛擬的葉子被一陣虛擬的風吹到了虛擬的街道上。就像雷諾茲的那群虛擬蝙蝠一樣,真的有大量東西按照物理定律被某股力量真實地推動著。那些虛擬的樹葉是有屬性的,比如重量、形狀和表面積。當把這些樹葉釋放到某一陣虛擬的風裡的時候,它們所遵循的那套定律,跟真的樹葉所遵循的物理定律是一樣的。所以,在這個虛擬場景中,各部分之間的關係就如同你的身體髮膚一樣真實。儘管葉子的細節不足以近看,但飄零的落葉其實也不需要太多的畫工。
讓動畫形象遵循自己的物理學法則是現實主義的新秘訣。當終結者ii號機器人從一灘熔化的鉻裡冒出來時,那效果逼真得令人震驚,因為它遵循的是液體在真實世界裡的物理規律(譬如表面張力)。這是一灘"模擬"的液體。
凱斯和他在蘋果公司的同事蓋文·米勒設計出一些計算機程式,來渲染小溪涓涓流下或者雨點滴落在水池中的種種微妙細節。他們把水文學各種定律的公式與一個動畫引擎掛上鉤,把這些定律移植到了模擬世界。在影片短片中你可以看到,在柔和的光線下,一道淺波掃過一片乾燥的沙岸,像真的波浪那樣不規則地破碎,然後退下,留下溼漉漉的沙地。其實這些都不過是些方程式而已。
為了使這些數字世界以後也能有用,所有創造出來的東西都得簡化成某種方程式。其中不僅包括那些恐龍和水,最終還要包括那些恐龍啃咬的樹木,那些吉普車(在《侏羅紀公園》裡,有些場景中的吉普車就是數字的)、建築物、衣服、餐桌還有天氣。這些數字形式並不會僅僅是在拍電影時才用。在不久的將來,不單只是電影,所有制造品都將通過計算機輔助設計軟體進行設計、生產。如今,汽車部件已經先要在計算機螢幕上進行模擬,然後將方程式直接傳送給工廠的車床和焊接機,使這些數字變為真實的形狀。一種名為"自動成型"的新工業流程從計算機輔助設計那裡獲取資料後,能在瞬間由粉末金屬或液態塑膠直接生成三維原型。某個物體這一刻還只是螢幕上的一些線條,下一刻就已經是一個可以拿在手裡或帶著到處走的實實在在的東西了。自動成型技術"列印"出來的是真正的齒輪而不是某個齒輪的圖紙。為工廠機器準備的緊急備用件是用抗壓塑膠在車間就地"列印"出來的;在拿到真正的備用件之前,它們可以頂上一陣子。不久的將來,這種列印出來的零件就會成為真正可用的零件。約翰·沃克是世界上最知名的計算機輔助設計軟體autocad的創始人,他告訴記者:"計算機輔助設計要做的,就是在計算機裡為真實世界中的物體建造模型。我相信,在時機成熟的時候,世界上所有的東西,無論是否是製造出來的,都可以在電腦裡生成模型。這是一個非常非常巨大的市場。這裡包羅永珍。"
生物學當然也不例外。計算機已經可以為花朵建立模型了。普魯辛凱維奇是加拿大卡爾加里大學的一位電腦科學家。他運用植物生長的數學模型創造出三維虛擬花朵。顯然,絕大多數植物的生長過程都符合幾條簡單的定律。開花的訊號可能非常複雜,同一根枝條上花朵的開放順序也可能受到幾個互動資訊的影響。但是將這些相互作用的訊號編製成一個程式卻非常簡單。
16.2合成角色的誕生
米老鼠是人工生命的前輩之一。如今已經60高齡的米奇,很快就要進入數字時代。在迪斯尼格蘭岱爾工作室外景地一棟永久性的"臨時"建築裡,米奇的受託人正在謹慎地規劃著如何把自動化技術運用在動畫角色和背景上。在這兒,我跟鮑勃·蘭伯特聊了起來,他是為迪士尼動畫師提供新技術的負責人。
鮑伯·蘭伯特讓我明白的第一件事情就是,迪斯尼並不急於把自動化技術完全運用在動畫上。動畫是一門手藝,一種藝術。迪斯尼公司的巨大財富就封存在這門手藝之中,而它的皇冠上的那些明珠----米老鼠跟它的夥伴們----在觀眾眼中就是這門藝術的楷模。如果計算機動畫就意味著孩子們在週六早上看到的那種木呆呆的卡通機器人的話,那迪斯尼寧可不碰它的邊。蘭伯特說:"我們可不想人們說,'噢,見鬼,又一門手藝鑽到計算機眼兒裡去了'。"
藝術家們也是一個問題。蘭伯特說:"瞧,我們已經讓400位穿著白大褂的女士為米奇畫了30年。我們不可能一下子就都變過來。"
蘭伯特想要說清楚的第二件事情是,從1990年開始,迪斯尼就已經在他們那些著名的電影裡使用了一些自動化的動畫製作技術。他們正一步一步地數字化他們的世界。他們的動畫師們已經意識到,如果不把藝術家的智慧從自己的腦子裡遷移到某種幾近鮮活的模擬世界中,那麼他們很快就會變成另外一種意義上的恐龍。"老實說,"蘭伯特說,"1992年的時候,我們的動畫師們就已經大吵著要用計算機來完成工作了。"
在動畫片《妙妙探》中,手繪的角色們曾經跑過一個巨大的時鐘,那就是一個計算機生成的時鐘模型。在《救難小英雄之澳洲歷險記》中,信天翁奧維爾穿掠過的就是一座虛擬的紐約城,那是一個完全由計算機生成的環境,資料來自一個大建築承包商為商業目的而收集的資料庫。而在《小美人魚》中,艾瑞兒在模擬出來的魚群中穿梭,海草輕盈地舞動,水泡像在真實世界中一樣散開來。不過,這些計算機生成的背景畫面,每一幀都是在向那400位白衣女士打過招呼後,先列印到精細的畫紙上,然後通過手工上色來與電影的其他部分合為一體。
在《美女與野獸》中,迪斯尼首次在至少一個場景中使用了"無紙動畫"技術。在電影結尾的舞會中,除了野獸和美女仍是手繪之外,其他角色都是用數字方式合成和渲染的。不仔細看的話,是察覺不到電影裡真假卡通之間的轉換的。而之所以能察覺到這種不連貫,並不是因為數字畫面沒有手工畫得好,恰恰相反,它比傳統卡通更逼真。
迪斯尼第一個完全無紙化的角色是《阿拉丁》中那塊飛來飛去(走來走去、跳來跳去、指來指去)的毯子。為了製作它,要先在計算機螢幕上繪出一塊波斯地毯。動畫師通過移動游標為它折出各種姿勢,之後由計算機把各個姿勢之間的中間幀填上。最後,再將數字化了的毯子動作加入到其他手繪部分的數字版本里面。迪斯尼最新的一部動畫片《獅子王》裡有好幾種動物是按製作《侏羅紀公園》裡恐龍的方法由計算機生成的,其中包括一些具有半自動叢集行為的飛禽走獸。現在,迪斯尼正在製作他們的第一部完全數字化的動畫,這部電影會在1994年下半年上映。它將成為前迪斯尼動畫師約翰·拉塞特所從事的工作的活廣告。這部電影幾乎全部的計算機動畫都是由皮克斯公司製作的。這家公司位於加利福尼亞州里齊蒙得市一個翻新的商業園區裡,是一家富於創新意識的小工作室。
我順便拜訪了皮克斯公司,想看看他們到底在孵化什麼樣的人工生命。迄今為止,皮克斯公司已經制作了4部獲獎的計算機動畫短片,而這4部動畫短片的作者都是拉塞特。拉塞特喜歡讓一些正常狀態下沒有生命的東西動起來----腳踏車、玩具、燈,或是書架上的小擺件。儘管皮克斯公司的電影在計算機圖形圈子裡被看成是高水平的電腦動畫作品,可它的動畫部分,絕大部分其實是"手繪"的。只不過拉塞特用於繪畫的工具不是鉛筆,而是滑鼠;他的畫板不是木製的,而是計算機螢幕。如果他想要他的玩具士兵變得沮喪起來,他就會在電腦螢幕上調出玩具士兵的一張笑臉,移動滑鼠把人物的嘴角拉下來。在端詳它的表情後,他可能會認為玩具士兵的眉毛不該垂得這麼快,或者眼睛眨得太慢了。於是他再用滑鼠拉動這些部位。"我不知道除了這個辦法之外,還有什麼辦法來告訴它要怎樣做,才能把嘴變成----比如這個樣子,"拉塞特一邊說,一邊用嘴比了個表示驚訝的o形,"而且比我自己做要更快一點,也更好一些。"
我在皮克斯公司的製作主管拉爾夫·古根海姆那裡聽到了更多有關人機互動的問題:"絕大多數手工動畫師覺得皮克斯公司的做法就是把草圖喂進電腦裡,然後就出來一部電影。我們曾一度因此而被禁止參加動畫電影節。可是,如果我們真的是這麼做的話,是不可能創作出這麼好的影片的......在皮克斯公司,我們每天遇到的最主要問題其實是計算機對傳統動畫流程的顛覆。新的流程要求動畫師們在動手之前先要描述清楚想要畫的東西!"
作為真正的藝術家,動畫師們與作家一樣,在看到自己的作品之前,往往不知道自己到底想要表達什麼。古根海姆反覆強調:"動畫師們在角色沒有畫出之前,是不會知道它是什麼樣的。他們會告訴你,在開始做一個故事的時候會很慢,因為他們要慢慢熟悉他們的角色。之後,隨著他們和角色之間越來越熟悉,繪製速度也就越來越快。等到電影完成過半的時候,他們已經很瞭解這些角色了,而角色們也就開始在畫面上神氣活現起來。"
在動畫短片《小錫兵》中,玩具士兵的帽子上有一根羽毛會非常自然地隨著士兵的頭擺動。這個效果就是用虛擬物理學或者動畫師們稱為"拖,拽,擺"的方法達到的。當羽毛的根部移動的時候,羽毛的其他部分會按照彈簧擺的方式來運動----這是個頗為標準的物理學公式。羽毛的確切搖擺方式不是預先設定的,卻顯得很真實,因為它遵循著搖擺的物理定律。不過,玩具兵的臉完全是由一位經驗豐富的動畫師人工操縱的。換句話說,這個動畫師就是一個替身演員。他扮演角色的方式就是把它畫出來。每一個動畫師的桌子上都有一面鏡子,動畫師利用它來畫出自己的特有誇張表情。
我問過皮克斯公司的藝術家,他們能不能夠想象出一種自動生成的電腦角色----你把粗糙的草圖提供給它,然後就出來一個能夠自己調皮搗蛋的數碼達菲鴨。我得到的回答一概是嚴肅的否定和搖頭。"如果把草圖喂進電腦裡就能畫出好角色來,那這世界上就沒有什麼蹩腳演員了,"古根海姆說,"但是我們知道並不是所有的演員都是好演員。你隨時都能見到一堆模仿貓王和夢露的人。但我們為什麼不會被騙倒?因為模仿者的工作其實非常複雜,你得知道什麼時候抽動一下哪邊的嘴角,話筒又該怎樣拿。人類演員做到這一點都不容易,電腦草圖又怎麼可能做得到呢?"
他們提出的問題就是一個關於控制的問題。事實證明,特效和動畫行業就是各種控制狂的天下。在他們看來,演技的微妙之處是如此的細微,只有人類的掌控者才能夠引導數字角色或者手繪角色做出它們的選擇。他們是對的。
不過,將來他們就不再是正確的了。如果電腦的運算能力像現在這樣繼續增強下去,在5年之內,我們就可以看到合成出來的角色在電影中擔當主角,他們不僅僅身體是合成出來的,行為舉止也是合成出來的。
在《侏羅紀公園》中,那些合成的恐龍其逼真度已經達到了近乎完美的程度。從視覺上說,這些恐龍的肉身已經跟我們所期待的那種直接拍攝下來的恐龍沒有什麼區別了。目前,許多數字特效實驗室都在彙集那些可以用來製作出逼真的數字化人類演員的元素。某個實驗室專攻數字化的頭髮,另一個則把精力集中在手部動作上,第三個則專注於面部表情的生成。事實上,現在已經有數字角色加入到好萊塢的電影裡面了(而且沒有人察覺得到),比如說,一個要求有人在遠處移動的合成場景。不過,做出真實衣物那種自然褶皺懸垂的效果,還是一個挑戰;如果不能做到盡善盡美的話,就會讓虛擬的人物顯得呆板。不過在開端階段,數字角色只會被用來完成危險的特技,或者是插入到複合場景之中----但僅給長鏡頭或者群眾場面,而不會是吸引觀眾注意力的特寫鏡頭。製作以假亂真的虛擬人物形態雖然棘手,但已經近在咫尺了。
而模擬出以假亂真的人物行動則要更遠一些。尤其難的是讓面部動作達到以假亂真的程度。據圖形專家們說,這個領域中的最後堡壘就是人物的表情。控制人物的臉部活動將會是一場攻堅戰。
16.3沒有實體的機器人
在位於舊金山工業區的克洛薩爾影像工作室,布萊德·格拉夫正在進行仿造人類行為的工作。克洛薩爾是一個鮮為人知的特效工作室,很多著名電視動畫廣告的幕後都有它的身影。克洛薩爾還為mtv製作過名為《流動的電視》的先鋒動畫系列。這些動畫片由一些粗線條的形象----騎摩托的落魄布偶、栩栩如生的動畫剪紙以及壞小子癟四和豬腦等----領銜主演。
格拉夫的工作室落戶在一間重新裝修過的倉庫裡,很擁擠。在幾間燈光黯淡的大屋子裡,二十幾臺巨大的顯示器閃爍不已。這是一個20世紀90年代的動畫工作室。計算機都是由矽谷圖形公司製造的強力圖形工作站,上面閃爍著專案不同階段的影像,其中包括一個完全計算機化了的搖滾明星彼得·蓋布瑞爾的半身像。計算機對蓋布瑞爾的頭型以及臉部進行掃描和數字化,再拼接到虛擬的蓋布瑞上去,用來替代他在音樂錄影帶中的真身。這些事情能在錄音棚或者舞池裡就完成,誰還會費那個勁在攝像機面前跳舞呢?我看著一個動畫師擺弄這個虛擬明星。當時她正要通過拖動游標來提起蓋布瑞爾的下巴,好讓他的嘴巴合上。"糟了。"她發出一聲驚歎,剛才她的動作稍微大了些,結果蓋布瑞爾的下嘴唇提得太高穿過了他的鼻子,扯成了一副難看的鬼臉。
我去格拉夫的工作室是想見一見莫西:第一個完全計算機化的動畫人物。在顯示器上看,莫西看起來就像一隻卡通狗。他有一個大鼻子,一隻被啃了的耳朵,戴著白手套的手,還有"橡皮管"一樣的手臂。他還有非常滑稽的聲音。當時他的動作還沒畫好。這些動作是從一個人類演員的動作中提取出來的。在房間的一角,有一個自制的虛擬現實裝置"瓦爾多"。所謂瓦爾多(名字取自一個老科幻小說中的人物)是一種可以讓人遠距離操縱木偶的裝置。第一個以這種方式完成的計算機動畫是帶有試驗性質的《科米蛙》,它是用一個手掌大小的瓦爾多裝置畫出來的。而莫西則是一個擁有完整身體的虛擬角色,一個虛擬木偶。
當動畫師想讓莫西跳舞的時候,他就會戴上一頂黃色的頭盔。盔頂有一個用膠帶固定的小棍,小棍的末端是一個位置感測器。隨後,動畫師在肩膀和胯部也捆上感測器,然後再拎起兩個泡沫板裁成的巨型卡通手----其實是手套。他一邊跳舞一邊揮動這兩隻手----那上面也有位置感測器。於是,卡通狗莫西也在螢幕上它那個古怪的桃木屋裡亦步亦趨地舞起來。
莫西最擅長的把戲就是可以自動地對口型。把錄製好的語音輸入到一個演算法中,這個演算法可以計算出莫西的嘴唇應該怎麼動,然後牽動它們。工作室的高手總是讓莫西用別人的聲音說各種氣人的話。其實,讓莫西動起來的方法有很多。旋轉撥盤,敲命令,移動游標,甚至用演算法生成某種自主行為,都能讓莫西動起來。
格拉夫和其他動畫師下一步想做的事情是:賦予莫西這樣的角色某些基本動作----起立、趴下、負重,這些基本動作可以組合成連貫逼真的活動。然後就可以應用到複雜的人類角色上去了。
如果時間足夠充裕的話,今天的計算機勉強能進行人類動作的計算。但是,要想進行即時計算,就像你的身體在真實生活中那樣隨機應變,這種模擬幾乎是無法計算的。人體大概有200個運動點。這200個運動點所能做出的動作姿態其數量基本上是天文數字。單單是個摳鼻子的即時動作,所需要的計算量就已經超過了我們現在所擁有的大型計算機的能力。
而人類動作的複雜性還不僅僅於此,因為身體的每一個姿勢都可以通過多種不同的途徑來達到。當我把腳伸到鞋裡去的時候,我要通過小腿、腳以及腳趾的數百個動作的配合引導腿精確完成整個運動。事實上,我的四肢在走路時所完成的動作順序是如此地複雜,以至於有足夠的餘地允許用上百萬種不同的方式去完成它。通常,熟人在一百尺開外不用看我的臉就能把我認出來,完全是因為我走路時無意識地使用了慣用的腿部肌肉。模仿他人的動作組合是非常困難的。
那些試圖讓人工形象模擬人類動作的研究者們很快認識到那些製作兔八哥和豬小弟的動畫師們早就知道的事情:就動作而言,某些聯接順序會比其他聯接順序顯得更"自然"。當兔八哥伸手去拿胡蘿蔔的時候,它的手臂伸向胡蘿蔔的路徑更像人類的手臂運動(當然,兔八哥的行為不是模仿自兔子,而是人),並且與各個部位動作的前後時機也很有關係。一個動畫形象即使按照人類的正確順序來行動,如果它甩膀掀胯的相對速度跟不上節奏,仍會顯得很機械。人類大腦能夠輕易地識別出這種贗品。所以說,時機的掌握是動作的又一個複雜面。
創造人工動作的早期嘗試迫使工程師們對動物的行為進行研究。為了建造一個能夠在火星上漫遊的多腿車,研究者們對昆蟲進行了研究,其目的不是為了學會如何做出一條腿來,而是要搞清楚昆蟲是如何即時協調六條腿的動作。
在蘋果電腦公司的實驗室中,我曾經看到一位計算機圖形學專家翻來覆去地播放一段貓走路的錄影來分解它的動作。這盤錄影帶,以及一堆關於貓的四肢本能反射的科學論文,能夠幫助他提煉出貓走路的風格。然後他打算把這個風格植入到一個計算機化的虛擬貓裡。而他的終極目標則是提取出某種具有普遍性的四足運動模式,在相應調整後可以用到狗、豹子、獅子或者隨便什麼東西上去。他根本不關心這些動物的外形;他的模型就是一些粗線條的形象。他關心的是如何組織複雜的腿、踝、腳部的動作。
麻省理工學院媒體實驗室的戴維·塞爾徹帶著一幫研究生研發出了一種能夠在不平的地面上"自己"走動的粗線條形象。這些形象很簡單----一條線段做軀幹,四條線段是四條腿,連在軀幹上。學生們為這個"小活物"設定好一個方向,它就挪動步子,探明哪兒高哪兒低,並隨之調整自己步伐的長短,邁步前進。結果就生成了一個生物走過崎嶇地帶的逼真影像。與我們看到的"嗶嗶鳥"動畫不同,在這個片子裡,動物何時搬動哪條腿,不是由人來決定的。從某種意義上說,是這個角色自己做出了決定。塞爾徹團隊後來還在他們的世界裡加入了六條腿的能自動行走的"小活物",甚至還弄出了一個會到山谷裡逛一圈再回來的兩腿生物。
塞爾徹的學生還組裝了一個能夠自己走路的卡通形象,叫"檸檬頭"。檸檬頭走起路來要比那些線條形象更真實也更復雜,因為它的行動需要更多的身體構件和關節支援。它可以非常逼真地繞過躺倒的樹幹之類的障礙。檸檬頭啟發了塞爾徹實驗室的另外一個學生史蒂文·斯特拉斯曼,他想試試在設計行為庫上到底能走多遠。基本的想法就是給檸檬頭這樣的通用角色提供一本收集有各種動作和姿勢的"剪貼簿"。想要擤鼻涕?行,這有一整張碟的動作可選。
斯特拉斯曼想用簡單易懂的英語來指導角色。你只要告訴它做什麼,它就會從"行為庫"裡找到一組合適的素材,然後再按照恰當的次序把它們組成一個合理的動作。比如說,你告訴它站起來,它就會知道應該先把自己的腳從椅子下面移出來。"瞧,"斯特拉斯曼在演示開始前提醒我說,"這傢伙寫不了奏鳴曲,但它能坐在椅子上。"
斯特拉斯曼啟用了兩個角色,一個叫約翰,一個叫瑪麗。故事發生在一個普通房間裡;視角是從天花板的某個傾角俯視的----這多少有點神之俯視的意味。斯特拉斯曼管這個叫作"桌面劇場"。這對夫婦在戲中時不時會發生口角。而斯特拉斯曼這次是要來一場兩人分手的戲。他是這麼輸入的:"這一幕裡,約翰發火了。他很粗暴地把書遞給了瑪麗,但是她沒接。他把書摔在了桌子上。就在約翰瞪著瑪麗的當兒,瑪麗站了起來。"寫完他就按下了播放鍵。
計算機先是想了幾秒鐘,然後螢幕上的角色們就開演了。約翰皺起了眉毛,他遞書的那個動作非常僵硬;他攥緊了拳頭。瑪麗忽然站了起來。結束。沒什麼出彩的地方,他們的行動也不太像人的動作。要抓住那些轉瞬即逝的姿勢並不容易,因為他們的動作並不能引起觀眾的注意。看的人也沒什麼參與感,就只知道,在這個房間裡有兩個人按照上帝設計的指令碼互動了一下。
"我這個導演很執著,"斯特拉斯曼說,"如果我不喜歡某個場景的效果,就讓他們再來一遍。"於是,他又輸入了一段替代劇情:"這一幕裡,約翰覺得難過。他左手拿著書。他溫柔地把書遞給瑪麗,但她很有禮貌地拒絕了。"角色們按照這個劇本又演了一次。
難點在於人物動作的微妙之處。"我們拿起電話的方式會跟我們拿起一隻死耗子的方式不一樣,"斯特拉斯曼說,"我可以儲存不同的手部動作,但難辦的是不知道什麼東西支配著這些動作。掌管這些選擇的部門又是從哪裡冒出來的呢?"
塞爾徹和他的同事邁克爾·麥肯納從粗線條形象和檸檬頭那裡吸取了經驗,開始給六條腿的小生物添枝加葉,把它變成一隻邪惡的金屬鉻蟑螂,讓這個小昆蟲成為有史以來最古怪的一部計算機動畫片中的明星。他們開玩笑地把這部短片叫作"咧嘴笑的邪惡死神"。這部片子長五分鐘,主要講述了一隻來自外太空的金屬巨蟲入侵地球並摧毀了一座城市的故事。這個故事雖然無聊,但是故事的主角,那個六腿怪物,卻是世界上第一隻"小活物"----一隻內部驅動的人造動物。
當這隻奇大無比的鉻蟑螂在街上爬行時,它的行為是"自由的"。程式設計師告訴它"走過這片建築",計算機裡的虛擬蟑螂就會設法搞明白它的腿應該如何動作,它的軀幹應該轉動到什麼角度,然後煞有其事地扭動著爬過一座5層高的磚房。程式設計師給這隻大蟲子的只是行動的目標,而不是動作的指令。從樓上下來時,一股人工重力會對這個巨大的機器蟑螂形成一種牽引,讓它往下掉。當它掉下來的時候,模擬的重力和模擬的表面摩擦力會讓它的腿像在現實中那樣反彈和打滑。這隻蟑螂不需要它的導演們為它繁瑣的腿部動作傷腦筋就能把動作做好。
人們正在嘗試更進一步的自主虛擬角色:提取出巨型蟑螂那自下而上的行為引擎,為它包裹上侏羅紀恐龍的迷人外殼,就得到了一個數字電影演員。給這個演員上緊發條,給它分配充足的計算機週期,再像指導真人演員那樣對它進行指導。程式設計師只要給它下達一些通用的指令----如"去找吃的",它就會自己弄明白如何通過協調自己的肢體來完成指令。
當然,造夢並不是那麼容易的事情。移動只是行動的一個方面。模擬生物除了移動之外,還必須尋找路線,表達情感,做出反應。為了創造出不僅僅會走路的生物,動畫師們(還有機器人研究者們)需要找出辦法來培育出所有型別的自然行為。
16.4行為學架構中的代理
20世紀40年代,歐洲著名的動物觀察三人組----康拉德·勞倫茲、卡爾·馮·弗裡希和尼可·丁柏根開始描述動物行為背後的邏輯。勞倫茲在家裡養了一群鵝,馮·弗裡希住在蜂窩環繞的房屋裡,丁柏根則天天跟棘背鱸魚和海鷗呆在一起。通過嚴謹而巧妙的實驗,三位動物行為研究者把動物的滑稽行為歸納成值得尊敬的學科----"動物行為學"(粗略地說,就是研究行為特性的科學)。1973年,他們因為這一開創性的成就共同獲得了諾貝爾獎。後來,當漫畫師、工程師還有電腦科學家深入研究有關動物行為的文獻時,他們非常驚訝地發現這三位行為學家早已建立起了一套非常好的行為框架,完全可以直接拿過來就用到計算機上。
行為學架構的核心是"去中心化"這樣一個關鍵概念。正如丁柏根在他1951的著作《昆蟲研究》(thestudyofinsect)中指出的,動物行為是一種去中心化協同,它將許多獨立的動作(驅動)中心像蓋房子一樣搭建到一起。有些行為模組是由反射現象組成的;它們能呼叫一些簡單的功能,比如遇熱時回縮,或者被觸碰時閃避。這些反射現象既不知道自己所處的位置,也不知道外界在發生什麼事,甚至不知道它們所附屬的這個身體當前的目標是什麼。無論什麼時候,只要出現適當的刺激,它們就會被觸發。
雄性鱒魚會本能地對下面這些刺激因素做出反應:一條已經到了交尾期的雌性鱒魚,一條游到附近的蟲子,一個從身後襲來的捕食者。但是,當這三種刺激因素同時出現的時候,捕食者模組總是會壓制交配或者進食本能,搶先反應。當不同的行為模組之間或多個同時出現的刺激之間出現衝突的時候,就有某種模組被啟用以做出決策。比如說,你正在廚房裡,兩手弄得很髒,這時候電話響了,同時外面又有人敲門。在這種情況下,那些相互衝突的衝動----趕快去接電話!不,先擦乾淨手!不,得衝到門口去!----就可能使你手足無措,除非這時有另外一個後天習得的行為模組進行仲裁,也許就是這個模組讓你喊出一聲:"請等一下!"
從一個更積極的角度來看待丁柏根所說的驅動中心,這種驅動中心相當於某種代理。代理(不管它是什麼物理形式)偵測到一個刺激,然後做出反應。它的反應,或者按計算機行話說是"輸出",在其他模組、驅動中心或代理看來可能是輸入。一個代理的輸出可能使其他模組處於能動狀態(拉開撞針),或者啟用處於能動狀態的其他模組(扣動扳機),或者還可能取消鄰近模組的能動狀態(關閉撞針)。同時做揉肚子和拍頭動作相當困難,因為出於某種未知的原因,其中一個動作壓制另一個動作。通常,一個輸出資訊可能會在啟用某些中心的同時抑制其他中心。顯然,這是一個網路的架構,充斥著大量的迴圈因果關係和首尾相銜的怪圈。
外在行為就這樣從錯綜複雜的盲目反射中湧現出來。由於行為源頭的分散式特性,底層最簡單的代理也能在上層產生意料之外的複雜行為。貓的身上並沒有什麼中心模組去決定這隻貓撓自己的耳朵或者舔自己的爪子。相反,這隻貓的所作所為是由獨立的"行為代理"----即各種反射----構成的亂麻般的網路決定的,這些代理彼此交叉啟用,構成一個總體的行為模式(就是稱為舔或撓的動作),從這個分散式的網路中冒了出來。
聽起來這跟布魯克斯的包容結構非常相似。它其實就是一種包容結構!動物就是能夠正常運作的機器人。支配動物的去中心化、分散式控制在機器人和數字生物身上同樣適用。
在電腦科學家的眼裡,行為學教科書上那些相互連線的行為模組網路圖,其實就是計算機的邏輯流程圖。得出的結論是:行為是可以電腦化的。通過對子行為進行安排,任何人格特徵都能夠編成程式。從理論上來說,動物所具有的任何情緒,任何微妙的情感反應,都可以用計算機來生成。用來支配機器人羅比的那種自下而上的行為管理機制也可以用來支配銀幕上的生物,而這也正是從活生生的燕雀和棘背魚那裡借鑑來的機制。與燕雀歌唱和魚兒擺尾所不同的是,分散式系統吞吐著資料,讓計算機螢幕上的大腿動起來。這樣,銀幕上的自主動畫角色就可以按照和真正動物一樣的一般組織規則來行動。儘管是合成的,它們的行為卻是真實的(或者至少是超真實的)。因而可以說,動畫人物就是沒有實體的機器人。
能夠被程式設計的遠不只是動作。性格也同樣可以被封裝到數字裡。沮喪、興奮還有憤怒都可以作為模組新增到造物的作業系統中。某些軟體公司銷售的恐懼情感程式會比其他公司的好。也許,他們還會銷售"關聯式恐懼"----這種恐懼不僅僅表現在生物的身體上,還會滲入到一連串的情感模組中,並隨時間的流逝而逐漸消散。
16.5給自由意志強加宿命
行為想要自由,可如果要為人類所用,人工生成的行為就需要受到監管和控制。我們希望機器人羅比或者兔八哥能夠在不需要我們監管的情況下自行完成任務。與此同時,羅比或兔八哥所做的事情並不都是有成效的。我們怎麼才能向機器人、或者沒有實體的機器人、或者任何一種人工生命頒發自由行動的許可證,同時還繼續引導它們成為對我們有用的東西?
卡內基梅隆大學關於互動文學的研究專案出人意料地揭示出這個問題的部分答案。該專案的研究員約瑟夫·貝茨虛構了一個叫作"奧茲"的世界,這個世界多少有點類似史蒂文·斯特拉斯曼創造的那個居住著約翰和瑪麗的小房間。在奧茲中有各種角色,一個物理環境,還有一個故事----跟古典戲劇中的三元素完全一樣。在傳統戲劇中,故事講述著角色和環境。不過,在奧茲中,這種控制關係略微顛倒過來;在這裡,角色和環境影響著故事。
創造奧茲的目的就是為了好玩。這個奇幻虛擬世界中聚居著自動機器人和受人類控制的角色。遊戲的目的是讓人們參與建立這個環境、故事以及其中的自動機器人,既不會破壞故事情節,又不僅僅是個旁觀者。為這個專案出謀劃策的戴維·塞爾徹舉了一個非常好的例子來作說明:"假設我們為你提供一個數字版的《白鯨》,沒有理由不讓你在裴廓德號上擁有一個小艙。你可以跟正在追蹤白鯨的大副斯達巴克聊天。故事有足夠的空間讓你參與進去,也用不著去改情節。"
奧茲世界涉及了三個控制研究的前沿領域:
◎如何組織一個既允許一定偏離又圍繞著既定結局的故事?
◎如何構建一個能產生意外事件的環境?
◎如何創造自主但又受節制的生物?
我們從史蒂文·斯特拉斯曼的"桌面劇場"來到了約瑟夫·貝茨的"計算戲劇"。貝茨想象的是一種具有分散式控制的戲劇。故事變成了某種型別的共同進化,這種進化也許只有外部的邊界是預先設定的。你可以進入《星際迷航》的某一幕裡施加影響以形成另一條故事線索;你也可以跟合成的堂吉訶德把臂同遊,共同面對新的狂想。貝茨本人最關心的是人類使用者對奧茲的使用體驗。對於他的課題,他是這麼說的:"我研究的問題是,怎樣在不剝奪使用者自由的情況下,給他們設定某種結局?"
我對控制的未來的探尋是從被造物而不是造物主的角度出發的,因此我把貝茨的問題改為:怎樣在不剝奪人工生命角色自由的情況下,給它設定某種結局?