2011年4月12日 星期二

Josh Nimoy: Tron Legacy Software Art (中譯)

原文網站:http://jtnimoy.net/workviewer.php?q=178

這是一篇 Josh Nimoy 分享他在《創 ─ 光速戰記》製作特效的過程,這篇翻譯可能有許多錯誤,所以當覺得迷惑時,煩請對照上面原文了!由於內容提及許多艱深的程式字彙,所以我用連結的方式加上註解,滑鼠移上去可看到簡易說明,點下去後可以連結到詳細說明的相關網址。( 因版面限制,圖片有縮小,精彩的原圖請點上方原文連結。)

I spent a half year writing software art to generate special effects for Tron Legacy, working at Digital Domain with Bradley "GMUNK" Munkowitz, Jake Sargeant, and David "dlew" Lewandowski. This page has taken a long time to be published because I've had to await clearance. A lot of my team's work was done using Adobe software and Cinema 4D. The rest of it got written in C++ using OpenFrameworks and wxWidgets, the way I've always done it with this team ;) Uniquely however, Digital Domain's CG artists were able to port my apps over to Houdini for further evolution and better rendering than OpenGL could ever provide. Special thanks to Andy King for showing me that what seasoned CG artists do at DD is actually not so far off from what's going on in the Processing community.

我花了半年的時間,為《創 ─ 光速戰記》撰寫特效軟體。與 Bradley Munkowitz(GMUNK)、Jake Sargeant 和 David Lewandowski (dlew) 一同在 Digital Domain 工作。這個網頁拖了很久才被放上來,因為我得等到有許可才行。我們團隊大部份的工作是透過 Adobe 的軟體和 Cinema 4D 來完成,剩下的部分則是使用 OpenFrameworkswxWidgets 撰寫 C++ ,隨然有點特殊,但我都是這樣和團隊工作的。 Digital Domain 裡的電腦繪圖人員可以將我寫的程式放到 Houdini 裡執行,進而達到比單用 OpenGL 還要更好的算圖效果,以及更多延伸的應用。特別要感謝 Andy King 讓我了解其實 Digital Domain 裡老練的繪圖人員所做的事情,和在 Processing 社群裡相差不遠。


《創》執行終端機程式的畫面



終端機程式 Terminal


In addition to visual effects, I was asked to record myself using a unix terminal doing technologically feasible things. I took extra care in babysitting the elements through to final composite to ensure that the content would not be artistically altered beyond that feasibility. I take representing digital culture in film very seriously in lieu of having grown up in a world of very badly researched user interface greeble. I cringed during the part in Hackers (1995) when a screen saver with extruded "equations" is used to signify that the hacker has reached some sort of neural flow or ambiguous destination. I cringed for Swordfish and Jurassic Park as well. I cheered when Trinity in The Matrix used nmap and ssh (and so did you). Then I cringed again when I saw that inevitably, Hollywood had decided that nmap was the thing to use for all its hacker scenes (see Bourne Ultimatum, Die Hard 4, Girl with Dragon Tattoo, The Listening, 13: Game of Death, Battle Royale, Broken Saints, and on and on). In Tron, the hacker was not supposed to be snooping around on a network; he was supposed to kill a process. So we went with posix kill and also had him pipe ps into grep. I also ended up using emacs eshell to make the terminal more l33t. The team was delighted to see my emacs performance -- splitting the editor into nested panes and running different modes. I was tickled that I got emacs into a block buster movie. I actually do use emacs irl, and although I do not subscribe to alt.religion.emacs, I think that's all incredibly relevant to the world of Tron.

在特效方面,我需要製作一段我自己使用 Unix終端機程式的畫面 (如上圖 ),而這終端機程式要確實是可執行的。我特別花工夫在建立元素到後製的過程之間,以確保內容不會因為藝術上的表現,而超出實際可行的範圍。我非常認真看待呈現數位文化這件事,雖然我成長於一個規畫得很糟又一塊塊的使用者介面的世界中。我仰慕在《駭客》電影中,拉伸方程式的螢幕保護裝置,那代表著一個駭客已經到了某個系統中樞流上,或者未知的區域。我也仰慕《劍魚》、《侏羅紀公園》,當《駭客任務》的女主角 Trinity 使用了 nmapssh ,我感到非常歡喜。我也高興的看到好萊塢決定讓所有駭客的畫面都使用 nmap,(你可以在《神鬼認證》、《終極警探4》、《龍紋身的女孩》、《The Listening》、《死亡遊戲》、《大逃殺》、《折翼聖使》,等電影中看到)。但在《創》中,駭客不是在網路上四處窺探了,而是去刪除程式。所以我們使用 POSIX 式的刪除方法,以及讓他使用 ps 傳送到 grep,最後也用了 emacseshell 去讓這程式更有 L33T 的風格。團隊看到我展示的成果感到歡喜 ─ 分割編輯器到放不同堆疊的視窗,然後跑不同的模組。我對我把 emacs 搬到電影鉅片感到上有些好笑,在現實生活中我的確有在使用 emacs ( 雖然我並沒有訂閱 alt.religion.emacs ),我想那對於《創》的世界來說,是非常恰當的。


《創》中的 emacs 畫面


在會議室裡的系統的使用者介面





地球儀 HexVirus


HexVirus is a spherical map of the globe that features vector outlines of the continents. These continent vectors are slowly eaten away by a more hexagonal representation. Algorithmically, this is a path stepping function which looks ahead for the closest matching 60-degree turns. The HexVirus globe was used in the executive board meeting scene, and also inside the grid as a visual aid in CLU's maniacal plan presentation. In the board room interface, the globe element is surrounded by the lovely work of my team.

HexVirus 是一個呈現大陸輪廓的地球儀,這些大陸的輪廓會慢慢地以六角型的形狀出現。在演算法上,這是一個路徑行走的程式,它往前尋找最接近 60 度角的轉彎。這個 HexVirus 球體用在片中的執行理事會議一景中,也在虛擬世界中,庫魯瘋狂的演說片段裡扮演視覺輔助呈現。在會議室的電腦界面中,圍繞在這顆球周圍的,就是我們組員的可愛成果。









記分板 Scoreboard


The scoreboard was the first element I worked on. I created a line-generator that produced bursts of lines which turned at adjustable angles. The line generator had "radial mode" which arranged the geometry in concentric circle form. This line generator was used to generate generic elements and layers of style in different things, and is a GMUNK favorite. At this point, I found myself moving to multisampled FBOs because the non-antialiased polygons were just too ugly to work with, and we needed to make film-resolution renders. In fact, this is the highst res I've ever seen my apps render.

記分板,是我第一個做的東西。我製作了一個線條產生器,產出的線條會依調整的角度轉彎。這個線條產生器有輻射模式,它會把形狀排成同心圓的形式,這線條產生器被用來產生不同物件的基本元素和風格層次,這個是 GMUNK 的最愛。然後我轉頭去研究多採樣的 FBOs ( OpenGL裡的緩衝器物件 ),因為沒有反鋸齒化的多邊形實在醜得令人難以工作下去,而且我們必須使用電影規格的算圖。事實上這是我程式算出來最高品質的圖了。


缺口線條產生器






煙火 Fireworks


Fireworks, mmmm. I started with a regular physics simulation where a particle has an upward force applied at birth, sending it upward while gravity pulls it back down resulting in a parabola. I then added particle-children, followed by various artistic styles, including what our team has called "egyptian" across several jobs -- which is a side-stepping behavior. We were trying to create fireworks that looked enough like real fireworks but had interesting techno-aesthetic. As a homage to the original Tron character Bit, we used icosahedrons, dodecahedrons, and similar. I was disappointed that Bit isn't in this one. After doing this simulation, I've grown more aware of how often fireworks are used in movies.

煙火,嗯…,我從一個基本的物理模擬系統開始,分子在產生的時候有賦予一個向上的力量,把它往上送,當地心引力把它拉回來的時候,就產生了一個拋物線,然後我在加上第二層的分子。用了多種藝術的風格,包括我們團隊稱之為”埃及”的效果,因為埃及人在壁畫上都像是橫著走,所以戲稱為side-setpping。我們試著去製造看起來夠真實,但又有科技美感的煙火。出於對第一集《創》的角色 "Bit" 的尊敬,我們用了正二十面體、正十二面體和相似的形狀,但我對於 Bit 沒出現在這裡面感到失望。做了這些模擬之後,我變得更會去注意電影中的煙火了。










傳送通道 Portal


For the portal climax, the TronLines app was used, but also apps like "Twist" from our team's previous jobs. Once the look was mocked up by gmunk, a houdini artist recreated the rig for deeper control.

在傳送通道的高潮戲裡,不只 TronLines 這個程式有被使用到,其他程式像是 Twist (出自我們團隊先前的工作) 也有。是Gmunk把大致的雛形樣貌搞定後,Houdini 的設計師就重新製作更能深入控制的控制器。











分子 Particles


I wrote a particle renderer that could make the head holograms slurp in and out of the data discs. Special thanks to Keith Pasko for CLUing me in about using exponential functions to create a sliding-gooey sort of delay.

我寫了一個分子的算圖器,它可以讓人頭的全息影像在資料碟片上浮現和消失,特別感謝 Keith Pasko "協助" 我使用指數的程式,達到滑動時像黏膠班的延遲效果。





Quorra Heart


When fixing Quorra, there was an element in the DNA interface called the Quorra Heart which looked like a lava lamp. I generated an isosurface from a perlin-noise volume, using the marching cubes function found in the Geometric Tools WildMagic API, a truly wonderful lib for coding biodigital jazz, among other jazzes. The isosurface was then drawn along different axes, including concentric spheres. The app was mesmerizing to stare at.

修復 Quorra 的場景中,有一個在 DNA 界面中的物件叫做 Quorra Heart,它看起還像是一個熔岩燈 (lava lamp),我用 Perlin-noise 產生一個正二十面體,使用方體推進的程式 ( 從 WildMagic API 的 Geometric Tools 裡找到的 ),對於製作 biodigital jazz ( 生物數位的即興演出? ) 之類的效果,這真的是個十分棒的函式庫。最後等值曲面 ( isosurface ) 被畫在不同的軸向上,在加上一些同心圓的球體。這是個容易讓人迷住、不停注視著的程式。







After this project, I was fed up enough with wxWidgets and Carbon that I was ready to author my own OpenGL based UI. The most important thing I could use is a floating-point slider. I also got irritated with the way the Carbon sliders would not slide all the way to the minimum and maximum values. It totally messed with my zen thing. Also, after a job like this, it's clear that a member of the Processing community working within a CG community is greatly restricted by the differences of realtime graphics rendering engines, and that probably messes with an art director's zen thing.

經過這次的案子,我已經對 wxWidgets 和 Carbon 感到厭煩,我已經準備要自己來寫用 OpenGL 跑的界面程式了,最重要的是我可以使用一個有小數點的拉桿。我也對 Carbon 的拉桿,不能從最小值拉到最大值這點感到有些惱怒,這完全打亂了我的思緒。每當結束了一個像這樣的工作,Processing 社群中在 CG 社群工作成員,就會因為即時運算引擎不同,而被大大地被限制住了,而那也可能讓藝術總監的思緒一起被打亂了。

"TRON: Legacy" c Disney Enterprises, Inc. All Rights Reserved.

  • 感謝恩光老師修正了不少錯誤!