熱評 小沙子

感謝大佬分享,下篇等了好久了,啥時候出來呀

著色是卡通數字人角色設計的重要元素之一,它對于角色有著基本的色彩表現和結構表現等造型作用,并且能夠表達角色的情感、塑造角色的性格,甚至通過其象征作用賦予角色某種特殊屬性或成為角色的縮影。隨著 3D 角色建模技術發展至今,色彩在角色設計上的功能和作用得到了較為充分的發揮和體現。本文通過分析 Blender 材質節點的應用,并結合 UV 和烘焙技術,來完成卡通數字人展 UV、著色、烘焙的工作。

上期回顧:

一、展 UV

1. 什么是 UV?

在 Blender 中,可以為一個面關聯一個獨立的圖像。UV 用于定義二維紋理坐標系,稱為“UV 紋理空間”。UV 紋理空間使用字母 U 和 V 來指示二維空間中的軸。UV 紋理空間有助于將圖像紋理貼圖放置在 3D 曲面上,然后圖像可以用于渲染或實時顯示。在 3D 視圖中選擇面選擇模式,才能指定圖像或修改活動網格物體對應的 UV 坐標。這樣一個面可以有多張 UV 貼圖。默認情況下,網格是沒有 UV 的。首先得映射面,然后才能編輯它們 。展開模型的過程是在 3D 視圖編輯器的編輯模式下進行的,過程中會在 UV 編輯器創建一個或多個 UV 孤島。

2. UV 映射

UV 映射是將三維表面轉換為平面位圖圖像的二維坐標系。原始曲面的每個頂點在 UV 貼圖上都有一個坐標,中間的像素值在平面多邊形曲面上進行插值,以實現高精度的紋理控制(特別選擇 U 軸和 V 軸名稱,以免與實際模型的 X、Y 和 Z 軸重名)。UV 貼圖坐標值被組織成一個網格系統,其中圖像本身出現在網格的 0-1 區域中,而該圖塊之外的區域只是向外重復圖像。因此,傳統上只真正使用了 UV0-1 空間。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

UV 映射-圖片來源于網絡

3. UV 通道

在網格標簽頁的 UVMaps 面板有一個列出所有為網格創建的 UV 映射的列表視圖。被選中的映射會在 UV/圖像編輯器顯示。單擊相機圖標,啟用渲染該 UV 貼圖。

4. UV 展開

展 UV 前先重置模型:Ctrl+A,選擇「全部變換」。這是為了避免 UV 有拉伸。和縫紉一樣,縫合線是圖像/布拼接的位置。展開時,只要選中邊,然后按下 Ctrl-E 并選擇標記縫合邊,即可將一條邊標記為縫合線;使用 Ctrl-E 并選擇清除縫合邊即可清除標記。

工作流程如下:Create seams-展開-反復調整縫合線-手動調整 UV,角色模型的 uv 展開方式有很多,具體如何拆分,需要綜合考慮角色的風格、性能、精細度等。

在展開對稱物體時,比如身體,沿對稱軸標記縫合線,在展開時,可以把兩個半邊重疊到同一個紋理空間,這樣右手和左手可以共用圖像像素;左腳匹配右腳等等。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

展 UV-圖片來源于 Blender 官方

3. UDIM Workflow

UDIM 是對 UV 貼圖和紋理工作流程的增強,它使 UV 貼圖的生成和分配紋理變得更加簡單。

從本質上講,UDIM 只是一個自動 UV 偏移系統,它將圖像分配到特定的 UV 平鋪上,它允許你對相鄰表面使用多個較低分辨率的紋理貼圖,從而產生更高分辨率的結果,而不必求助于使用單個、超高分辨率圖像。為了理解 UDIM 工作流的好處,需要對 UV 貼圖的工作原理有一個基本的了解。

使用 UDIM 工作流程,0-1、1-2、2-3 等每個完整的圖塊部分都可以分配給它自己的獨立圖像映射,所有這些都在同一個表面內。每個圖像也可以有自己的分辨率。UDIM 工作流程只是一種相應命名圖像的符號格式,因此它們會自動分配給特定的 UV 平鋪。編號從 UV 原點開始,沿正方向向外移動十個圖塊(到 1010),然后重復堆疊在一起的行,向上移動 9999 行。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

UV 圖塊

使用 UDIM 工作流程從實際幾何體的 UV 映射開始。在此階段決定如何劃分模型,通常基于項目所需的分辨率程度。對于一個普通的角色項目,可以分成頭部一個圖塊,身體一個圖塊。如果想要更高的分辨率,還可以將手和腳分配到單獨的圖塊上。

如何在 Blender 中使用 UDIM 分塊?

  1. 先選中角色模型,在 UV 編輯器中新建圖像,注意圖像選擇平鋪。
  2. 在右側圖像菜單,源選項下選擇 UDIM 分塊。
  3. 在 UDIM 分塊下添加分塊,設置所需的分塊數量。
  4. 將模型的 UV 孤島分配到各個 UDIM 分塊。

二、著色

1. body 材質

為了避免制作貼圖時每一步都需要繪畫的痛苦,我們求助于攪拌機最大的力量——材料節點編輯器!我們通過添加一些頂點繪畫并添加一些次表面散射來完成角色的皮膚著色。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

body 著色

① 設置光源

將世界環境的背景色改為略帶灰白色的顏色,這樣做的好處就是,在場景中我們不需要任何燈光,并且為場景中的模型提供了非常勻稱的光源。

② 使用(AO)添加基礎顏色

給角色模型添加一個原理化 BSDF 材質,然后給基礎色添加一個環境光遮蔽(AO),這時候我們可以看到角色的夾縫中看到一些暗部陰影。在環境光遮蔽節點與主節點之間添加一個漸變節點,調節滑塊模擬陰影部分的深淺,調節漸變顏色模擬皮膚的色調。這樣得到一個非?;A的膚色,可以多添加幾種顏色,豐富皮膚顏色的細節和過渡。需要注意的是,在著色和烘焙的時候,需要將渲染屬性的顏色管理改成標準,以便我們更準確的觀察色彩變化。

③ 添加皮膚高光

有了基礎顏色,接下來我們來調整高光部分,添加一個幾何數據節點,再添加一個漸變節點,將尖銳度連接到漸變系數上,按住鍵盤快捷鍵 ctrl+shift,然后點擊漸變節點,預覽節點效果。調整滑塊,最終調整得到我們滿意的高光部分為止,然后將此部分節點和基礎色節點通過節點混合鏈接到主節點,需要注意的是高光部分的節點連接到系數,最后設置一下另一個顏色(高光顏色),這樣就得到了皮膚的高光,繼續調整高光節點的漸變滑塊,以達到最佳的效果。

④ 添加次表面效果

最后添加次表面顏色,讓皮膚在光照下顯得更加通透,通常次表面體現在皮膚相對薄弱的區域,譬如手指、眉毛、眼瞼、鼻子、耳朵、和其他肉質部分。接下來我們添加一個頂點色,命名為 sss,我們為這些地方繪制頂點色,繪制完記得使用模糊畫筆模糊一下。最后添加次頂點顏色節點和漸變節點,鏈接到主節點的次表面上,設定一個次表面顏色,調整漸變滑塊,以達到滿意的次表面效果。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

角色 body 著色材質節點

2. 眼睛材質

實現眼球材質的方法多種多樣,但最終都需要以貼圖的形式輸出,這里主要使用材質+烘焙的方式。通過觀察,我們可以將眼睛的材質分為眼球和虹膜兩個主要材質,而眼球眼球實際上可以分為三種材質:白色的基地、鞏膜上的血絲、透明的角膜,這里我們依托于 blender 強大的節點,將三者結合到一個材質里,盡量少的材質,亦能節省引擎渲染的性能。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

眼睛材質

① 眼球的材質

通過觀察,我們在制作眼球的材質時可以將其歸納為白色基底、透明的角膜、眼球中的血絲三個部分:

step 一:白色基底

對于白色基底,新建一個原理化 BSDF 節點,基礎色直接選取白色,只要把糙度調低即可。

step 二:透明的角膜

角膜的關鍵在于它是透明的,且為了保證過渡自然,需要用到漸變紋理來控制白眼球的透射率實現。顏色漸變模塊的滑塊拖動可以控制漸變范圍,這里漸變區域一般不要設置太大,有一點就可以了。(將虹膜添加一個深色材質,便于觀察過渡的效果)

step 三:眼球中的血絲

眼球中的血絲可以分為底色和血絲部分,由于血絲的位置主要分布在白眼球處,所以可以復用前面的漸變紋理作為輸入,新建一個漸變即可,通過調整漸變的范圍即可以調整顏色分布。沃羅諾伊紋理作為血絲的紋理,由于該紋理具有一致的方向性,和血絲的不規則不同,故還需要通過噪聲紋理對齊形狀進行調整。然后將紋理染成紅色并與底色柔光疊加即可達到血絲的效果,為了增加細節,可以再添加一些小血管,小血管的材質和大血管的流程完全一樣,只是紋理的參數不同,通過增加沃羅諾伊紋理的縮放系數,來增加紋理的密度,并將大血管的輸出通過混合節點混合后輸出為血管紋理。

至此眼球的部分的材質就做好了,接下來我們制作虹膜部分的材質。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

CORNEA/SCLERA 的材質節點

② 虹膜的材質

在制作虹膜的材質之前,我們可以先將虹膜部分的 UV 展開,因為后續紋理映射將會使用 UV 坐標來制作。

通過觀察,我們不難發現,瞳孔中心是黑色的顏色,然后是淺色的虹膜,然后逐漸消失,因此,可以將虹膜部分看作是虹膜和瞳孔兩部分,虹膜紋理部分使用噪波+鏡像漸變紋理,而虹膜的漸變則可以使用球形漸變紋理制作,然后通過混合 RGB 節點(正片疊底)進行混合。

為了讓虹膜的紋理不顯得單調,還可以使用沃羅諾伊紋理增加虹膜部分的細節,最后使用混合 RGB 節點(顏色減淡)與前面的顏色節點相連。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

IRIS 的材質節點

三、渲染烘焙

烘焙,一般是為了加速后續的其他過程進行的預先計算。渲染烘焙一個網格物體表面,得到 2D 位圖圖片,這些圖片會通過 UV 坐標重新映射到物體上,這讓實時渲染的效率更高。烘焙是對每個獨立網格完成的,并且網格已經展開 UV。

Blender Cycles 著色器的燈光照明可以烘焙到圖像紋理。這有幾種不同的用途,最常見的是:

  1. 烘焙紋理,如基礎顏色或法線貼圖,用于導出到游戲引擎。
  2. 烘焙環境光遮蔽或程序紋理,作為紋理繪制或進一步編輯的基礎。
  3. 創建光照貼圖以提供全局照明或加快游戲中的渲染速度。

1. UDIM 渲染烘焙

在烘焙之前我們需要確保已經完成 UDIM 分塊,同時在物體數據屬性下為每個 UV 塊添加了定位在主分塊的 UVMap。Blender 的渲染烘焙是一個非常復雜的工作流程,為了提高工作效率,我們選擇使用插件(SimpleBake)來輔助烘焙。

在物體數據屬性中選擇對應的 UVMap,在 SimpleBake 中,選擇需要烘焙的貼圖類型,譬如 Diffuse、sss、Normal 等,選擇貼圖尺寸,貼圖名稱,在物體模式下選中模型,點擊 Bake PBR Maps,最后檢查一下貼圖是否正常,在 ps 或者直接使用 Blender 紋理繪制,在貼圖的基礎上添加細節以及修正瑕疵。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

使用 SimpleBake 完成 UDIM 渲染烘焙

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

烘焙后的貼圖

2. PBR 貼圖應用

在 blender 中我們可以使用程序化節點達到想要的效果,但當模型導入到引擎,這個時候就需要通過貼圖的形式來實現我們想要的效果,也就有了上面烘焙的這步流程,當然,相對程序化節點效果,PBR 讓更為真實但更加復雜更加消耗性能的光照模型算法變為可以大量被使用,在 Blender 中 PBR 紋理到底如何正確使用?下面介紹幾個主要的貼圖的設置方法。

① 基本顏色 Base Color:

基本顏色貼圖定義了表面的顏色。直接將其插入 Principed BSDF 的 Base Color 接口。注意:確保圖像文件的顏色空間設置為“顏色”。

② 粗糙度 Roughness:

粗糙度圖定義表面的粗糙度。應將其插入 Principed BSDF 的“粗糙度”輸入中。確保圖像文件的顏色空間設置為“非顏色數據”。(可選)您可以在圖像后面添加個 Gamma 節點以輕松實現材料的粗糙度。較低的 gamma 表示表面更粗糙,反之亦然。

③ 法線 Nomal:

法線貼圖定義表面的一部分朝向哪個方向,該方向用于創建詳細的陰影和高光。通常,應將其插入法線貼圖節點的“顏色”輸入中,然后將其插入“Principed BSDF”的“法線”輸入中。確保圖像文件的顏色空間設置為“非顏色數據”。

④ 金屬度 Metallic:

金屬貼圖定義了材料的哪些部分是金屬的,哪些不是。應將其插入著色器的金屬輸入中。確保圖像文件的顏色空間設置為“非顏色數據”。只有金屬和非金屬材料都可以使用此貼圖。如果金屬材料沒有此貼圖,則可直接調整 Principled BSDF 中的金屬值。

⑤ 環境光遮蔽 Ambient Occlusion:

環境光遮蔽(AO)貼圖可用于偽造曲面凹凸中的柔和陰影,這在游戲引擎里面尤為有用。(注:Blender 中使用 Cycles 渲染時,AO 貼圖的作用不大)。如果要使用此貼圖,則應使用 MixRGB 節點將其與“基礎顏色”貼圖相乘,其中“環境光遮擋”貼圖是第二個顏色輸入,因此您可以使用 MixRGB 節點的滑塊輕松控制其強度。

最后我們按照上面的方法,新建一個材質,將烘焙好的貼圖連接到對應的原理化 BSDF 節點上,至此,一個附帶 PBR 材質的角色模型就做好了。

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

PBR 節點連接方式

四、效果展示

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

三視圖

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

服裝

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

pose

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

cloth-01

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

cloth-02

Blender 實戰!3D卡通虛擬數字人角色設計完整流程(中)

cloth-03

五、結語

本文著重講述了數字人角色在 Blender 中著色的工作流程,講述了角色如何展 UV,借助 Blender 強大的節點功能,完成角色皮膚及眼睛的材質制作,最終使用 UDIM 工作流提升我們的工作效率,至此,一個角色的形象已經完整的展現在你的眼前,但栩栩如生的數字人,怎能止步于靜止,在下一章節,我們繼續講述角色綁定和動作的知識,讓真人實時驅動角色動起來,以及通過語音驅動數字人說話。

收藏 127
點贊 54

復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。