Hello . 大家好
我是charming
開年第一篇,今天翻譯一篇
關於毛髮的外網推文
嘿!我的名字是Marcin Cecot,我是一名從2012年開始在遊戲行業工作的3D藝術家。多年來,我一直擔任不同專案的lead artist,致力於3D角色、道具、燈光、著色器和其他與3D藝術相關的遊戲方面,加上一些3D列印的東西。
1目標
當我剛開始製作我最近的髮型資產時,它便成為了我所創造的遊戲角色的一部分。最初原畫設計給的的髮型非常簡單,都是一些黑長直的型別。所以我覺得這是一個很好的機會來加強我的實時髮型技巧。這就是為什麼我決定做一些不一樣的髮型,嘗試一些更有挑戰性的東西,包括更多的盤結,更長的頭髮,更卷。
但仍然保證原畫設計的基本大型。一年多前,我參加了Johan Lithvall的Hair Creation for Games課程。我向任何想要了解行業中最好看的髮型背後的工作流程的人推薦它。所以,對我來說,最近的專案是一個很好的機會來測試我真正學到的東西。
我的整個工作流程很大程度上是基於Johan的技術。不過也不是完全一樣的,部分流程有所更改,因為使用引擎不同的關係。
2參考
可能所有3D類分享的文章都會羅裡吧嗦得提到找參考。是的,參考非常重要。儘可能的找更多的參考吧,並試著把你的參考圖片分成不同的組,比如:正面,背面,側面,細節,特寫,纏繞,辮子,等等。當你收集了一些參考資料後,仔細閱讀它們,想象一下你在工作中將如何使用它們。看看哪一種髮型在做髮型的時候是有用的,哪一種髮型在做細節的時候是有用的。
如果你在工作前研究了它們,你就可以判斷它們是否滿足需要,或者也許你還需要從另一個角度來理解發型的結構。如果有必要,甚至可以花一整天甚至更多的時間在這一步上。你的參考找得越好,後面製作環節就越順心。當你不得不停止製作,回過頭去尋找更多的參考資料時,這可能是相當令人沮喪和分心的。但有時,這種情況總會發生。
3前期規劃
首先,我需要給發片製作頭髮貼圖素材,在進入3D環節之前,我需要有一個計劃,在2d階段的計劃,我其實不太喜歡畫畫,不過反正咱又不需要像大藝術家一樣畫得多流弊,我在一個長寬比2:1的畫布上提前規劃好了不同分組的毛髮,可以看到從左到右呢,毛髮的密集程度是逐漸增加的。
這樣做的目的是右邊頭髮用來做第一層,主要目的是遮住頭皮、阻擋視線,所以他不需要有左邊頭髮那樣太多的縫隙,如果非要有的話,我會在最後加一兩根頭髮來打破剪影。
4發片貼圖製作
然後我就進入Maya 階段了,在Maya中新建同樣2:1大小的面片並賦予剛才的2D草稿貼圖,然後用曲線工具簡單地根據之前的規劃建立曲線,形成簡單地髮束,我嘗試還原每組髮束的剪影輪廓以及髮絲之間的互動關係,它們之後會被用來透過xgen生成為guide引導線。
到這裡我便可以用Maya中xgen來製作真正的毛髮效果了。
Xgen是一個非常強大的工具。它一開始可能會令人生畏,因為它與你通常作為一個3d藝術家所做的工作完全不同。但是當你學習了基礎知識,就很容易開始建立很酷很複雜的效果。
我沒有用任何修飾筆刷,我使用修改器模式。所以第一步是把我的樣條曲線轉換成Xgen引導線,然後稍作調整,並開始使用Xgen修改器得到一些漂亮的頭髮。對我來說最重要的修飾是:clumping成束、noise噪波、cut修剪和corl打卷兒。
我用的基本就是這幾個。我為每束頭髮堆疊了多個不同的修改器例項,除錯引數,最終得到了這個:
我意識到髮束效果相較於最初的設計應該做的更明顯一些,所以你可以看到即便是右邊幾組頭髮,我一樣做了一些小發束的穿插效果,這樣對於後面我組織頭髮會很有幫助。是時候得到頭髮素材了,我將xgen毛髮轉成模型。
經過一些手動調節之後,我把它們匯入xnormal來烘焙幾張基礎的貼圖:Normal、Ambient Occolusion、Height、Alpha、ID.可能還需要其他貼圖,具體還是得依賴你最後階段使用的軟體,但對於我最後在八猴中展示,這幾個貼圖就夠用了。
5發片
拒絕任何花裡胡哨,我僅僅只是建立了面片然後賦予我之前烘焙的貼圖,然後手動修剪了輪廓,儘量匹配我的貼圖,這樣就沒有額外的透貼畫素被浪費,起到了最佳化資源的作用。
然後我將這些發片互相組合,通常情況,三片為一組,但是flyaway遊離的髮絲我選擇兩個片的組合,因為它不需要著重太多體積的表現,而是用來豐富剪影輪廓。這些發片組合會有更多深度體積效果,以此避免平片效果太過明顯。
6放置發片
網路上有很多放置發片的方法(GS外掛很好用),之前我測試了一些奇技淫巧,例如使用zbrush的fibermesh來放置發片(對於短寸好使!),zbrush的insert meshes,透過spline樣條曲線控制發片等等。現如今,我可以肯定的說,如果你想要得到儘可能不錯的效果,尤其是長髮,最好還是手動放置每一個發片吧~
聽起來是不是感覺好麻煩,但是整個過程其實不算太複雜,我能給的意見就是找點小曲兒或者電影邊聽邊做。
結合Maya自帶的非線性變形工具加上手動調點,知道最後得到想要的效果。
在放置發片的過程中,我儘量避免發片之間互相穿插太過明顯。
要知道,一開始的效果肯定不會多好看,所以多花時間留意頭髮大的剪影輪廓,然後再使用細節變化更多的發片組來打破剪影,最後的最後再使用一些flyaways遊離髮絲來收尾。不要太過灰心,一般來說不花個幾天時間反覆調整,是不可能立即出來特別好的效果的。
你必須反覆研究參考素材然後不斷迭代效果。
到這裡我開始在目標軟體(八猴)中提前觀察效果來確保沒有太大問題,所以Maya中我不需要材質體現高光。所以我不時得匯出頭髮到八猴中在各個視角反覆觀察,預設hdr,預設材質就好。
7頂點色
對於製作長髮,很難在貼圖中新增顏色變化,來打破貼圖重複感,整個髮型由裡到外我都是使用的同樣的貼圖素材,所以造成的結果就是我無法新增任何明顯的灰度漸變跟顏色資訊到我的發片貼圖中,因為這樣它們會從整個髮型不同高度不斷重複。
然後我會用頂點色繪製畫刷手動的調節頂點色資訊,增加一些明暗變化,最後再加一層上下漸變(方法不明),這樣我可以在沒有光影的發片素材上輕鬆地得到整個頭髮的明暗變化。八猴軟體在控制頂點色強度這塊不是很好,可能有一些外掛可以達到目的,但是一般來說引擎裡都會有對頂點色很好的控制。
8貼圖賦予+效果展示
我使用的貼圖很簡單:
Normal map (在xnormal中烘焙)
Ambient Occlusion map(在xnormal中烘焙)
Diffuse map是一張透過混和高度圖與基礎灰度來得到的灰度圖,高度圖同樣是xnormal中烘焙,整個貼圖變化比較細微,沒有太明顯對比度。
這張圖還可以多疊加一張真實頭髮素材來增加細節,:
我還用到了一些其他貼圖來幫助我實現一些細節:
Specular map 簡單的躁波,由 ps雜色+動感模糊實現
Alpha map 由xnormal烘焙。
我的diffuse map中可以修改顏色資訊,當你修改了顏色之後,一定要記得修改反射的顏色來模擬光線從頭髮上反射出來的顏色,所以顏色要匹配(反射較與固有色為相同色系,但飽和度略低,明度略高),我最後的頭髮設定基本上是頭髮材質的標準設定。我使用了 vertex color albedo來讓著色器擁有頂點色選項,我在 main 以及 secondary reflections (主要及次要)中同時使用了使用了 anisotropic specular。這樣反射的高光將有一定方向性,當然這需要你的毛髮擺放方向一致,不然就需要額外新增一張flow map來控制高光反射方向了(點選flow map超連結至charming之前的推文,知識一下串聯起來了),所以這裡我的頭髮朝向一致,無需額外製作一張flowmap了。
兩處反射,我都修改了顏色資訊,第一個反射更亮,第二個稍暗,然後我將第二次反射的位置偏移到髮根處。
八猴中,我使用的是經典的三點光源加上額外的用於表現頭髮效果的燈光,我一般在每個角度的燈光都獨立設定一組,所有燈光型別都是spotlight。這裡我使用的是八猴3,所以並沒有光追效果加持。
9最後的總結
這個案例的主要目的用於讓自己跳出舒適區,提升自己的遊戲毛髮製作技術。
這不是一件容易的事,對於長髮製作,你需要保持對每一束髮片組放置的掌控力,對於我對大的挑戰性就是足夠耐心,中間某些過程甚至需要重複最佳化迭代好幾次,不斷花時間反覆研究參考素材。
就技術難點而言,整個過程並不是十分複雜,讀到這裡,你或多或少對於整個流程都有了大概的瞭解。確實,整個製作過程十分耗時,而且這是一件純藝術家乾的事,沒有太多依賴結算或者是程式演算法的技術,不過你對遊戲資產的掌控已經到很細微的部分,至於最後的效果完全取決於你自己。對我來說,最難得環節永遠是動手開始做。(想起個畫技+999BUFF直到拿筆的那一刻結束的梗)
最後當你看著自己完成的效果甚至都感覺有點望而生畏(“這做的也太流弊了”),然後突然意識到,這竟然都是自己純手工一個個擺出來的,不尬吹了,最後的結果在我看來還算是比較滿意的。
- End -