2012年7月30日 星期一

Maya Hair System 詳細教學

這篇教學是在講解如何使用 Maya 內建的 Hair System 製做出動態又細緻的頭髮。
儘管 Hair System 可以作出細緻且有物裡效果的頭髮,但運算量十分大,要用於動畫上的話還是得視需求斟酌使用。

第一部分:製作頭髮曲線

1.使用 Curve 繪製髮片
這邊可以畫得稍微蓬一點,因為之後加入物理後會變塌一些

2.產生髮片曲面
選取兩條 Curve,使用上方工具列 Surfaces / Loft (Option小框),Section spans 設為 2
這會由原本兩條 Curve 產生出一個曲面,並且分為兩個 Section

3.調整髮片
調整 CV 點讓頭髮片稍微凸起順著頭型

4.新增 Isoparm
曲面切換到 Ispoarm,按住 Shift 從邊緣拉出多條 Isoparm 等距分部於曲面上
再按上方工具列 Edit NURBS / Insert Isoparms 新增線段

5.由 Isoparm 複製出 Curve
選取所有 Isoparm ,上方工具列 Edit Curve / Duplicate Surface Curves
就會得到一條一條獨立的 Curve 曲線了

第一個部份到這邊結束,目的是產生出順著髮片的曲線
接下來是要由這些曲線轉成物理的動態髮線(Hair System),並在上面賦予頭髮的筆刷,就會看起來像真實的頭髮了。

第二部分:Hair System

6.將曲線轉為物理的動態曲線(Hair Sysem)
選取所有 Curve ,上方工具列 Hair / Assign Hair System / New Hair System
(第二次之後做,就可以選擇套用原有的 HairSytem,而不必再新增(除非是數值需要不一樣))
現在可以直接撥放測試看看頭髮是否有物理的動態
正確的話應該會垂入頭內 (之後會調整動態的部分至正常)

7.附加毛髮筆刷
選取 HairSystem 的毛囊 (紅色一小點,應該位在頭顱內)
上方工具列 Hair / Assign Paint Effects Brush to Hair

就會看到實際的頭髮了!算圖後結果是非常醜的塊狀頭髮
所以接下來就是要微調參數,讓它更像頭髮

8.調整毛髮形狀參數
選取剛產生出的頭髮,展開 Attribute 視窗
hairSystemShape 就是調整頭髮參數的地方,外觀的部分主要在 Clump and Hair Shape 項目中
下面幾個是比較重要的參數,我加上了中文註解,其餘的也是可以嘗試看看

9.調整髮色
髮色在 Shading 項目底下可以調整

10.調整動態
在 Dynamics 項目底下有很多關於動態的物理參數可以調整,下面只講幾個比較重要的
這邊可以按下播放,邊播放邊調整參數,十分方便!
Start Curve Attract:這是與原本線段的貼齊程度。(頭髮就不會一直往下掉了)
Turbulence-Intensity:這是模擬不定方向微風,頭髮可以開始飄逸了。

11.碰撞
同時選取頭髮和頭的模型,點選上方工具列 Hair / Make Collide 就可以讓頭髮和頭產生碰撞
其他物件的作法也相同,細部的參數在 hairSystemShape / Collisions 項目下可以調整
(建議 Collide Over Sampe 設為 1 以上比較精準 )
電腦硬體夠力的話也可以開啟 Self Collide 的選項,讓頭髮與頭髮之間也有碰撞的效果 (運算量很大)

12.結尾
本篇文章只用一片頭髮來測試,建議真的在做的時候可以先把全部頭髮的髮片曲線都先作好
再視情況看是否要分不同 Hair System (顏色、粗細、飄逸程度等)
使用 Hair System 來做頭髮是一項大工程,計算量大,算圖也慢
用到動畫上也會有很多問題會發生,但效果真的是塊狀頭髮無法比擬的
建議視專案與硬體的規格來評估是否要使用 Hair System。

2011年10月10日 星期一

修圖:電影感(色調)

很多人都想要把照片拍成像電影劇照一樣,我也不例外,老實說我拍照主要就是為了這個目的
電影是個後製加工非常多的影像,下面分享一些我的經驗給大家參考。
想做出電影感,第一個要先了解"什麼是電影感?"、"電影感到底是什麼?"
於是我們先找幾部覺得很有"電影感"得畫面來研究一下:



《Rite 現代驅魔師》、《Shutter Island 隔離島》、《Terminator-Salvation 魔鬼終結者-未來救贖》

觀察之後有幾個明顯的共通點:
1.畫面很狹長
2.畫面整個偏藍綠色!
3.景深非常淺 (背景非常模糊) (這部分是關係到相機和鏡頭 (大光圈 + 望遠鏡頭))



使用 Photoshop ,把畫面剪裁成狹長型之後,用"曲線"來調整照片色調 (以下全部皆使用曲線)
一時沒照到適合的照片,先將就用這張很平常的照片來試試




1.光的三原色RGB(紅藍綠),偏藍綠色的意思,可以解釋成"藍色和綠色變多",也可以解釋成"紅色減少"
我比較比較喜歡後者,所以到曲線裡,切換到"紅",把曲線整個往下拉
這樣整個畫面就偏藍綠色了 (這樣其實就差不多了,剩下是微調)。





2.最後我覺得也不全是藍綠色,在最暗的地方會比較藍,所以我把藍色暗部的地方拉高了一點
另外整體亮度也降低一點 (這個看每張的情境而不同了)







這張很暗,所以把RGB(黑線)整體亮度拉高很多,藍綠色加重也很多。故意讓全黑的地方是深藍色。






這張刻意把"亮度調高、對比降低"( = 曲線的黑線中間往上拉之後,暗的方再往上拉一點[參考下圖黑線])
模仿電影放映時會偏亮的感覺,也有一番港片的風味






這張想營造比較清新的國片感覺。就是把畫面加亮(較多),暗部也調亮(導致對比降低,同上一張做法)






這張加了一些雜訊模仿底面的顆粒


電影的風格其實很多,這邊只是舉比較普遍使用的藍綠色風格。
除了畫面色調之外,電影也普遍使用非常淺的景深,讓背景非常模糊,
也有特定幾種慣用構圖,所以上面只是其中自己揣摩色調調整的心得而已,給大家參考。

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.

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