CG短片 – Desert Snail 製作教學(#1)

在年初 CGV頭版分享過本地CG製作人Mill Leung 的個人短片- ”Desert Snail”  , 了解到他本人有記錄製作過程, 故再次邀請他在此平台分享相關製作 ~
其實我們在十多年前已經訪問過Mill  , 他從事CG及數碼後期製作已十多年經驗,  近日轉戰教學培訓相關的工作 , 再次感謝他的分享 !!

Mill Leung 的個人短片 Desert Snail 短片 : 


Hi 大家好, 我係Mill , 我喺公餘時間製作這個人CG短片項目 – Desert Snail,目標係想實踐一下Next-Gen CG 嘅必備standards , 當中包括 :

1)  Digital sculpting for high details
從數碼雕刻中獲取高精度特徵

2) Displacement and normal maps usage
displacement map 和 normal maps 之間嘅互補運用

3) Manipulation of large amount of UDIM textures

大量 UDIM,大texture file size 的配置。(經常喺網上面讀到外國啲making of 或者係artStation睇到人哋用四十幾個UDIM,8k textures,點配置嘅呢?)

4) Subsurface scattering(noise judgement,denoise methods)

5) Light Path Expression (light based render elements)

  • Project configuration: 24fps,sRGB colour space,output size: 2048×858 (部分係4096)
  • 製作時使用的電腦裝備:

兩部2013年的Mac Pro (俗稱黑色垃圾桶),64GB ram。一個16TB hard disk作 network drive。Cloud render 選擇用Fox render farm。

軟件: ZBrush 2022,Maya 2022,Clarisse IFX 5 SP7,RizomUV,Substance Designer,Substance Painter,Substance Sampler,After Effect v18.0,Nuke v12

 

  • 必備工序:

1) 所有assets 都必須根據physical scale 設定大小 (這個非常重要,displacement maps, normal maps,SSS,fur and hair settings,lighting falloff 等等全部都要根據你的scene scale嚟set attributes,如你不預先設定一個 scale 比例就只會在往後工序添煩添亂。)Maya asset scene file 係用centimeter做system unit;Clarisse default 本身就用meter做system unit。

2)grey18 as default shade (a simple Arnold shader or Disney principle shader, linear colourspace,diffuse colour/albedo colour 0.18 as mid-grey,reflect roughness 0.5) 它用作一個shading standard,除咗係shading room (我喜歡創建一個scene file 叫shading room) 用嚟 calibrate 日光,陰天 ,黃昏和夜晚 的HDRI。它亦都作為一個標準 (anchor point),在其他軟體例如Substance Designer,Substance Painter 調教environment lighting比較容易作出客觀判斷,export 出嚟嘅basecolour同埋highlight 喺lighting and render 嘅app製作時候唔會偏差太大。亦都可以係其他 renderer(如係Houdini render volumetric 時或Terragen render)時作為lighting標準。

sRGB: sRGB 在區間 [0,1] 上的中間灰階值為 0.36。在 0-255 的範圍內,這將是 92。因此 sRGB 中的 rgb(92,92,92) 是中灰色。

sRGB linear:

Linear sRGB 和 ACES 都是線性的,而且中性色的編碼方式相同。即r=0.18、g=0.18、b=0.18在ACES和Linear sRGB中是相同的。

3) HDRI Calibration 非常重要,部分HDR個太陽嘅intensity好鬼勁,好容易render 時產生fireflies。要整走fireflies會加長好多rendering嘅時間。

4) 作業結構 Project folder structure:
由於我係用mac機來製作這個project,而cloud render farm render 時我揀選用linux OS,放上cloud rendering時所有asset path 都係用relative path to 你用來render嘅project file。Clarisse 有 $PDIR system variable (Maya 本身就用relative path 㗎喇,Houdini 有 $hip)

一開始我為了慳位,在master project folder 之下有個global assets folder裏面裝住所有重複運用嘅assets。另外喺master project folder之下有一個production folder,Production folder之下有 scene####_shot####命名嘅folder用嚟製作。相同嘅scene,不同嘅shot(camera angle或animation不同都save係同一個folder)。咁結果每逢cloud  render嘅時候呢就要做大量remap path,非常之麻煩。最後解決方法:一開始製作嘅時候都係用global asset folder 內的assets,差唔多成形嘅時候,寫咗個bash script (rsync comment)薑用咗嘅assets抄落去嗰個shot folder內嘅sub-folder,remap 一次path,跟住繼續微調個scene。(poor guy CGer 係咁㗎啦)

 

ZBrush 要點:

Digital sculpting 都係要多練習多觀察,都冇乜特別要訣。在此提供一些ZBrush運用時要留意嘅要點。

ZBursh效果最佳的大小約為 2×2 ZBrush unit cube時, ZBursh預設刻度為毫米。

在Export Scale panel中,如果比例為0,則在匯入時,ZBrush將調整比例並偏移物件以適合2X2 cube。當您將第一個模型匯入第一個(非常重要)subtool時,比例和偏移已獲得補償。如果將匯出/比例更改為 1 並作為第一個subtool匯入,ZBursh 將不會補償比例,但雕刻會很困難,因為畫筆尺寸很小。
在 ZBrush 中,要雕刻的模型的立方體尺寸(Bounding Box)不大於 8。 2(2X2 立方體)更好。當為2時,所有the dynamic features均正常運作。

當dynamesh時,你必須確保沒有polypaint才能保留poly groups。
若要使用 Sculptris Pro,必須為no lower subdivision level,且 UV 自動刪除。

所以如果你要試用嘅話,而又想保留嗰啲polypaint或者uv,最好就係duplicate個subtool嚟試,其實好似photoshop dup個layer嚟試畫咁。(啱啱學成日會手多撳嚟試下,咦!點解啲polypaint唔見咗嘅,點解啲uv又冇咗嘅)

ZBrush 必須將最低SDiv與最高 SDiv等級進行比較。這意味著normal map細節將是最後一個subdivision level,displacement細節將是倒數第二個subdivision level。假設您的subdivision level為 1 到 6 SDiv。displacement為 1 至 5 SDiv,normal map應為 5 至 6。

當您要從 ZBrush 匯出normal maps。預設情況下,它以 OpenGL 格式匯出。如果要以 DirectX (make sure your Substance Painter and Maya settings are also using DirectX) 格式匯出,請按一下 Multi Map Exporter 中的「FlipG」。當您的mesh太密集而無法匯出 Substance Painter (SP) 時,請嘗試從用作 Substance Painter basemesh的 subD level bake normal map到最高 subD level,然後使用該法線貼圖。

由於數碼雕刻嘅工具好繁複,又層層相扣。所以我自己都發展咗啲改file name 嘅 naming,大家可以攞嚟參考。

assetName_1Prep_v#
assetName_(part/subtool name)_2ScP_v#
assetName_(part/subtool name)_3RePrj_v#
assetName_(part/subtool name)_4ScST_v#

assetName_1Prep_v#

主要工作係import model,分好啲subtool layers,準備咗remeshed 嘅model用嚟雕刻,因為你必須要係四分面平均分佈嘅model你雕刻或者用alpha brush嘅時候先至會得到最佳效果。

assetName_(part/subtool name)_2ScP_v#

Sc = sculpting,P = Primary form。主要工作係雕刻大嘅form and shape。

assetName_(part/subtool name)_3RePrj_v#

ReProj = Re project details。主要工作就係可能因為你要做retopology (基於animation/rigging嘅關係)。對於我嚟講另一個原因就係我會assign polygroups,define了一個個loop cut,然後remesh,再reproject 。咁喺拆uv嘅時候呢就好容易揀到個loop cut去split main uv islands。

assetName_(part/subtool name)_4ScST_v#

Sc = sculpting,S = secondary details ,T = tertiary details。主要工作就係喺primary details上面再subdivide 加上細節,但因為ZBrush咁樣加細節就要求subdivide多幾次,架機可能頂唔順。而家外國artist都係興攞去Mari嗰度paint secondary and tertiary details。.

隻蝸牛都係先喺Maya做basic嘅poly modeling,import 入ZBrush再remesh 做all quads model 去雕刻 (喺remesh嘅時候我已經assign咗polygroups方便界定啲loop cut用嚟係RizomUV到拆uv)。

D pattern都係用alpha 逐下逐下drag落去,sculpt layers ,morph target 和 morph brush 是你的好朋友

ZBrush 的 render result


其他assets 大部分都係網上free download 一啲好rough嘅low polygon models ,攞去ZBrush做優化,再攞去Substance Painter做textures。現實,Production 就梗係去Quixel Megascans或者3d scan scene獲得再執執佢, 點會嘥咁多時間喺props到

 

UV 要點:

用UDIM 唔想texture見到 uv seam,你必須要對齊texel density。uv佈局亦都要比較考究,我發覺最好就係將uv Islands gridify(盡量正方形或長方形,其實係要straighten boundaries),另外就要避免uv boundaries有細個90度嘅角,因為edge padding嘅時候會可能產生overlapping問題。Minimum padding 亦都有一定嘅準則可以依據。

通常我嘅步驟係界定好cut seams,unwrap好之後。選擇最重要嘅部分uv patches(例如頭部,手部),layout 好(唔好理其他 uv islands 先)。Load 一張你諗住採用嘅resolution (4k or 8k) 的texture checker,喺render engine zoom 埋去睇下夠唔夠資料 (當然唔係extra close up 嗰隻)。夠嘅話記低個texel density,apply落其他所有uv Islands,評估下需要幾多個UDIM,在distribute落去(呢部分RizomUV 超方便)

 

UV layout of snail in RizmoUV

UV layout of shell in RizmoUV

Load and render 由ZBrush 產生的 UDIM displacement maps 以確定沒有uv seams,並且測試geometry render tessellation 函數。

如果displacement 或 normal maps 都不見uv seams,那麼colour maps 或其他attribute maps也應該沒有問題了 。另外我自己通常都係default UV是一份uv喺0至1 range的uv layout(方便save mask又好,bake weighting又好,bake lighting 又好),UDIM 會放喺第二個uv map channel。

好喇 , 今次教學到此 , 下篇將會講解  Texturing要點以及 Substance Designer使用 , 謝謝觀看 !!!

Social media & sharing icons powered by UltimatelySocial