By accepting you will be accessing a service provided by a third-party external to https://www.incgmedia.com/
Braulio " BraV" FG是一位來自哥斯大黎加的 3D 藝術家。而他最新的作品,以UE4來彩現出一個極度擬真的人物角色,栩栩如生的動作與材質讓人感到讚嘆。而他也將角色的製作過程從建模到最後成果的步驟分享到國外CG資訊網站 80 Level,由編輯 Kirill Tokarev 做整理。本文翻譯也獲得 Kirill Tokarev 的授權轉發。
受訪者-Braulio"BraV" FG
大家好,我是 Braulio"BraV" FG,來自哥斯大黎加聖荷西。我是一位 3D 數位藝術家,熱愛即時運算中的貼圖、燈光和材質以及動態捕捉。同時我也在學習數位動畫製作。但目前大部份的時間是投入 Unreal Engine 的即時運算技術。目前也正在為自己的 IP 作品製作遊戲轉場動畫,這也是製作這個專案的原因,希望能達到我想達成的品質。
擬真的人類角色
身為一位人類,不管是不是藝術家,在看著一個臉部的時候都可以輕易地看出有問題的地方,也許無法立刻指出問題所在,但就是能夠感受出哪裡怪怪的。而身為藝術家的我們,必須能夠指出問題所在,並試著去解決它。有一段時間,初階的 3D 掃描技術解決了比例以及相似程度的問題,而在 Mocap 的幫助下,解決了部份動作上的問題。這兩種方法有著類似情形;就是能紀錄下微小的細節,像是皮膚的不完美,或是人類動作的自然節奏,像是暫停以及改變步伐。這些對於一個擬真的臉部動作都是非常加分的。我其中一個目標是把這些解決方案也加入到專案當中,並且在 Real-time 引擎中完成,來看看我是否能以較低的成本製作出一個接近真人的動態臉部表情。
關於此專案
首先,我想要感謝 David Marmor 提供我基本模型以及主要的 Blendshape 動作。另外,Baongoc 也讓我使用他的 UE4 眼球材質。這麼說好了,這一切開始於我看到這個角色在 Maya 中的動態表現。當時我不禁思考如果能讓這個角色在 Real-time 引擎中呈現的話一定很酷,有著很高解析度的細節,以及搭配 Mocap 捕捉下來的真實動態。而從 David 那裡接手的骨架,原本就不是設計給在 Maya 以外軟體的中所使用的,因為其骨架的連結與限制對於 Real-time 運算是不大友善。而原本的模型並沒有任何貼圖,只有一個預設的灰色材質,甚至沒有 UV,而有些部份的面數非常高。所以即便有一個起頭,依然有很長的路要走才能達到最後成果。以下便是從開始到結尾的過程:
完成角色的特徵
儘管我是從基本模型開始做起,它就像一塊白色畫布一樣,可以為她的臉部套用各種外表。為了測試,我想讓這個女性看起來真實,她不會有完美光滑的肌膚,因為大家常常想到為女性角色製作貼圖時總要有著光滑完美的膚質。我想完全走相反的路,希望讓她的臉有著粉刺、痣、以及一絲歲月的痕跡,但依然充滿著女性閃亮的唇感和妝色。為了達成這個目的,我從 TextureingXYZ 採用兩組 Displacement 以及顏色貼圖,一個女性一個男性。所以在 UV 貼圖過程完成後,我接著使用 MARI 來完成所有貼圖並且把這兩組貼圖整合在一起。
一旦貼圖完成後,轉換到 ZBrush 中實際將這些細節加入到 Mesh 身上,並且手動創造出額外的細節。使用 ZBrush 的圖層是很重要的,因為我想要把不同層次的細節都保留下來,主要分成「主要」、「次要」、「細微」和「特製」四個圖層。對我來說,儘可能的把細節加入,然後你可以在後期決定這些細節呈現的力道。這也造就了我最後得到一個充滿細節又獨特的女性皮膚表面。用相同的方法來完成舌頭、牙齦和牙齒等。
頭髮
第一步就是在 ZBrush 中很快地把頭髮描繪出來,來確定出我理想中的髮型是什麼。完成後,我開始研讀 Epic Games 最近釋出的毛髮材質,主要是了解遊戲引擎是如何去計算毛髮,了解我需要創造什麼樣的貼圖。我發現 Unreal 在處理毛髮是與其它即時引擎很不同的,例如 Marmoset。所以最後頭髮總共用了五張貼圖: Alpha、顏色、深度、ID和髮尖。我使用 Maya 的 Xgen 功能來創造 Alpha 和顏色貼圖,剩下的就在 Photoshop 中結合 AO 貼圖與手繪來完成。
在製作頭髮的過程其實蠻緩慢的,因為我決定把每片頭髮用手動方式放上去,這麼做的原因是因為我希望它是能被控制的,想要從單純到複雜。最後總共有七層頭髮,從大片髮片到細小毛燥的髮絲,並且打破對稱感來得到更真實的樣貌。眼睫毛也是用類似的方法,但比較簡單的,只是單純的 Alpha 和顏色,以及單一片幾何物件來表示,因為我知道這些眼睫毛最後會被加入骨架做 Blendshape。因為我不必為每一根眼睫毛去設定節點。至於眉毛的話,因為它是很薄的,我不認為需要額外添加棤型,最終選擇直接把眉毛當成貼圖繪製出來。
皮膚
皮膚材質則是從頭開始建立,我知道 Epic Games 提供了皮膚材質的範例可使用,但如我先前所說的,我想要能夠控制我的材質,而那些範例所提供的有時候會變得困惑或太過複雜而難以了解。所以一直以來,我在 UE4 所建立的皮膚材質效果都很好。
使用 MARI 和 Photoshop 創造五種基礎貼圖: 顏色、粗糙、光澤、半透明和 AO,以及三個 Normal 貼圖: 主要、次要和額外的細節。這樣做讓我能夠控制每張 Normal 貼圖的總量,不需要離開 Unreal Engine再回到 ZBrush 增加細節。這對我很有幫助,因為在近距離近頭中,你會需要非常高解析度的細節,但當鏡頭拉遠之後,就可以將那些貼圖關掉。此外,我也為這些貼圖產生三種遮罩貼圖,方便我獨立控制耳朵和嘴巴。這些貼圖尺寸的範圍最小從 1K 的遮罩到 8K 大的 Normal 貼圖。
在最後,皮膚材質總共有二十個可控制的參數,讓我能視需求做任何調整,從粗糙量、Fresnel、細分質、SSS 到眼瞼顏色或皺紋的凹凸感。
眼睛
不久前 Baongoc Vu 分享了他在《刺客教條》UE4 的場景,我也很高興有這個機會能夠研究這個對我一直是個挑戰的眼睛。Bao 的眼睛材質對使用者來說是非常易懂的。並能夠滿足我所要的,因為這個專案有著迫切的死線,所以並不是很頭開始做,在得到 Bao 的許可之後讓我直接使用他的材質。因為這個材質適用於特定的 UV 位置和物件,但因為我已經有自己的幾何物件,所以第一項挑戰便是將女性角色的眼睛 UV 去吻合 Bao 的眼睛材質。
接著我能夠客製化這些眼睛、改變顏色、虹膜和瞳孔大小等等。但我發現到在這個專案中,因為是很近距離的鏡頭,我需要讓眼睛材質發揮到極致,所以我修改了他的材質,藉由增加另一個假的陰影圖層,讓陰影只會影響眼球的一半,並且使用 LinearBurn 去做圖層混合。這讓我能夠單獨控制假的陰影,來重現出眼球和眼瞼之間紅色粉紅色的漸變,賦予眼睛更自然的感覺。這些都只是很細微的效果,但對於後期加入動態效果後會有很大的幫助。 >
動畫
對於動畫和動態捕捉方面,首先我需要重新為這個女性角色設定骨架,包含臉部、眼睛、牙齒、舌頭和耳朵等等。並且製作所有相對應的權重繪製。接著所有 David 的 Blendshape 都需要重新連接。整個骨架有超過五十組 Blendshapes。
為了紀錄所有的 Mocap 資料,我使用 Faceshift 這套軟體。它屬於不需要追蹤點的動捕技術,能夠依據影片的深度資料來追蹤臉部。我使用家中的 Xbox 360 Kinect來錄製。而這也是我遇到的其中一個問題,沒有足夠的預算來使用好的攝影機來錄製,來取得高品質的畫質。面對這個問題,我決定把捕捉下來的資料丟到 Maya 中來修正所有的瑕疵和噪點,接著將它們重新匯入回 Unreal。所有的資料需要烘焙成 FBX 格式,好讓 Unreal 可以讀取。這時候也是許多錯誤開始發生,所以確定使用最新版本的 FBX。
一旦在 Unreal Engine 裡面後,我放置數種燈光,並且使用 Sequencer 設計攝影機的動態。
結論
在進行這個專案的測試中,最主要的目的不只是要展現品質而已,而且要能夠了解這些即時運算的引擎會如何去處理這一個複雜的模型。所以我創造了這個測試,來看看這個即時運算的解決方案能否與 Pre-Render 的品質相匹配。讓我驚訝的是 Unreal 處理起來的效果非常好,其效率能達到 1080p 還能有 50-60 fps 的手現,記住,這個模型是為了以能做出「劇院等級」動畫所準備的模型,其複雜的 Shader 以及甚至高達 8K 的貼圖。幾年前以這樣的規格來說,當時應該沒人覺得可以達成的。
以硬體的角度來說,幾乎每個月都有全新更加優化的顯示卡投入市場,主機平台也比上一代更加強大,所以我對於這樣子高解析度的模型能夠在遊戲引擎中自在遨遊是抱有很正面的態度。也許時候還未到,但這都只是時間問題而已。
希望以上資訊對大家有幫助。如果對我未來的專案有興趣的話,請關注我的臉書 www.facebook.com/BraVlio.FG,謝謝!