為一部毛茸茸風格的長片打造完整動畫 pipeline — BCON26(第 2/4 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
講長片的風格探索、look dev 流程重整、毛髮穿插與 Fresnel 解法,以及全程序化道具
- 13:18 起初沒人確定要什麼:想做 2D 角色的片,但要更專業、更像長片、更好賣
- 20:00 建議建立兩個 collection:一個給角色自身,可在局部以毫米級微調處理自身穿插
- 26:06 那是早期開發階段;他們把所有東西打包成一個 group,讓 artist 可以調整
💡 你可以怎麼用:開始做任何細節前,先用分鏡或草圖確認那個東西在畫面上實際有多大,再決定要花多少力氣。如果你在 Blender 裡做毛茸茸的角色又不想跑物理模擬,可以參考「從毛髮射線檢查、在物體裡面就剪掉」的思路,用幾何節點處理穿插。
看全部 48 條重點
🧑🏫 這段講一部長片從「還不知道要什麼風格」一路走到定案,以及為了做出滿滿毛茸茸的質感,他們怎麼重新安排製作流程、怎麼解決毛髮穿插和邊緣光的問題。對想了解真實動畫製作怎麼取捨預算、力氣要花在哪裡的人,很有參考價值。
- 13:18 起初沒人確定要什麼:想做 2D 角色的片,但要更專業、更像長片、更好賣↳ 一開始方向很模糊,只知道角色來自 2D 設計,但希望成品看起來像正式院線長片,拿出去也賣得動。
- 13:18 製片要可觸摸、偏寫實的感覺,讓小孩想抱、想摸、想玩↳ 製片想要的是「摸得到」的感覺:材質偏真實,讓小朋友看了會想抱、想捏,像實體玩偶一樣。
- 13:55 試過不同方向,包括講者從去年開始用 Ray Portal node 做的實驗(講者很愛這個 node)↳ 他們試了好幾種方向。Ray Portal node 是 Blender 算圖引擎裡的一種材質節點,能讓光線換個位置和方向繼續走,講者很愛拿它做實驗。
- 13:55 早期探索過卡通、風格化的感覺,但製片覺得不太對↳ 早期試過比較卡通、誇張的風格,製片看了覺得不對味,所以沒採用。
- 14:29 也用 Ray Portal 試過更絲絨(velvety)的質感;風格來回改了很多次,最後走比較經典的路線↳ 也用 Ray Portal 試過 velvety,也就是絲絨那種柔軟、有光澤的表面。風格改來改去好幾輪,最後回到比較經典、穩當的做法。
- 14:29 角色幾乎都是鳥,但幾乎全身到處都是毛、毛氈(felt)↳ 片中角色幾乎都是鳥,身上到處都是毛,還有 felt(毛氈,壓實的羊毛布料)的質感,所以毛就是這部片的核心難題。
- 15:00 有一個不想劇透的魔法聖誕角色,眼睛做了類似 universe parallax shader 的效果,和製片來回開發很久↳ 有個魔法聖誕角色,眼睛用了 parallax shader。shader 是決定材質長相的設定,parallax(視差)讓眼睛裡像有一片有深度的宇宙,轉角度時會跟著動。
- 15:36 最終畫面幾乎看不到這個 shader;comp 決定這裡要加反射↳ 花很多時間做的眼睛效果,成片裡幾乎看不到。comp(合成,把算好的畫面疊起來做最後調整)決定在眼睛上加反光,就把它蓋掉了。
- 15:36 建議:仔細看 animatic 再決定力氣花在哪裡;這個 shader 在最近的鏡頭裡大概只有 20 像素左右↳ 教訓:先仔細看 animatic(用粗略畫面和時間排好的動態分鏡),確認東西在畫面裡多大再投入。這個眼睛在最近的鏡頭也只有大約 20 像素。
- 16:08 在特寫鏡頭中可以看到刺繡(embroidery)細節↳ embroidery 指的是刺繡。拉近的特寫鏡頭裡,能看到衣物上一針一線的細節。
- 16:08 以前的製作用較經典的 pipeline:modeling 負責模型、UV 等;look dev 與 surfacing 負責材質,兩者完全分開↳ 以前的 pipeline(製作流水線)分工清楚:modeling 做模型形狀和 UV(把立體表面攤平成平面好貼圖),look dev/surfacing 負責定外觀和材質,兩邊互不干涉。
- 16:40 舊流程是把模型用 link 加上一些 overrides,但這次製作行不通↳ 舊做法是用 link 把模型從別的檔案引用進來,再用 overrides 在引用上局部改設定。這次要改的東西太多,這樣做撐不住。
- 16:40 講者要從 look dev 控制一切:UV、normals、各種 attributes、modifiers、hair 等↳ 講者想在 look dev 這一步就能改所有東西,包括 UV、normals(表面朝向的方向)、attributes(附在點或面上的自訂資料)、modifiers(疊在模型上、隨時可拿掉的調整)和毛髮。
- 16:40 因此在 modeling 與 look dev 之間建立一個「Frankenstein」步驟,把所有東西都推到這裡控制↳ 所以在做模型和定外觀中間,多塞了一個「科學怪人」式的拼裝步驟,把原本分散的控制全部集中到這裡。
- 17:20 連 groom 都放進 look dev,look dev 變成幾乎包辦一切的龐然大物;內部稱這一步為 mesh tech↳ 連 groom(替毛髮梳理造型,決定長度、方向、密度)都歸 look dev 管,這一步變得超級龐大。他們內部把它叫做 mesh tech。
- 17:20 原本是 2D 點子,預算偏緊;全片都是毛、密度極高、角色和毛到處都是,每一步都要很小心↳ 原本只是 2D 點子,錢不多,偏偏全片毛又多又密、角色一大堆,每個環節都得精打細算,不然電腦算不動、預算也不夠。
- 18:03 只做一個 hair generator,綜合外面找到的各種實作與自訂方案,加入他們需要的小細節↳ 他們不為每個角色各做一套,只做一個 hair generator(毛髮生成工具),參考外面的各種做法再加上自己的方案,補進這部片需要的細節。
- 18:03 參考了 Jacques Lucke 等人的做法,也利用 Blender 本身已經做好的 hair 開發↳ 他們參考了 Jacques Lucke 等人的做法,也直接用 Blender 官方已經做好的毛髮功能,不從零開始。
- 18:35 大量使用 Jacques Lucke 的 nodes,講者特別致謝↳ Jacques Lucke 是 Blender 節點系統的重要開發者,他做的節點被大量用在這套工具裡,講者特別向他道謝。
- 18:35 為了撐過這次製作,決定不做任何模擬(simulation)↳ simulation(模擬)是讓電腦依物理算出毛怎麼晃、怎麼被擠開。這很吃時間和運算量,為了把片做完,他們乾脆完全不做。
- 18:35 沒有模擬帶來的大問題:毛會穿過所有東西,也就是 intersections(穿插)↳ 不做模擬的代價是毛不會自己避開東西,會直接穿過身體、衣服、道具,這種穿過去的現象就叫 intersections(穿插)。
- 19:11 因為接觸非常多(圍巾、帽子等道具都有大量毛),需要一套兩個 collection/兩層的系統↳ 角色身上接觸點太多,圍巾、帽子本身也滿是毛,所以他們設計了兩層的處理方式。collection 是 Blender 裡把物件分組的資料夾。
- 20:00 建議建立兩個 collection:一個給角色自身,可在局部以毫米級微調處理自身穿插↳ 第一個 collection 管角色自己,例如翅膀的毛插進身體,可以在局部做到毫米等級的微調。
- 20:31 第二個 collection 專門處理穿透與碰撞,例如角色的毛穿過門的幾何,畫面中有處理前後對比↳ 第二個 collection 專管碰到外物,例如角色靠著門時毛穿進門板。影片有放處理前後的對照。
- 20:31 講者說很難找到出問題的鏡頭,因為這套系統運作得相當好↳ 講者說要找出這套系統出包的鏡頭反而很難,意思是它實際用起來很可靠。
- 21:01 這套系統在全片大致避免了穿插,講者說大約 99.9%↳ 整部片的穿插問題幾乎都被擋掉了,講者估計大約 99.9%。
- 21:01 方法一 proximity:簡單又 hacky,毛太靠近來源幾何或設定好的 collection 就刪掉↳ 方法一叫 proximity(距離判斷):毛太靠近指定的物體就直接刪掉。做法很粗暴,但簡單。
- 21:33 proximity 的缺點:靠近道具的毛都會消失,到處出現禿塊(baldness)與邊界問題↳ 缺點很明顯:只要靠近道具的毛都會不見,角色身上會出現一塊塊禿掉的地方,邊界也很難看。
- 21:33 方法二 ray cast:從毛發射大量射線,檢查 culling geometry 的 normals,若在內部就乾淨地剪掉↳ 方法二叫 ray cast:從每根毛射出很多條檢查線,用來判斷的物體叫 culling geometry,看它的表面朝向就知道毛在不在裡面,在裡面才把那段剪掉。
- 21:33 ray cast 做法很簡單,講者形容非常經濟↳ ray cast 的邏輯不複雜,講者形容很省,也就是花的運算不多,效果卻好很多。
- 22:05 這套系統讓他們做片時不必顧慮所有接觸,直接就能用↳ 有了這套系統,做鏡頭時不用每次擔心角色碰到什麼,直接用就好,省下大量逐鏡修正的時間。
- 22:05 原始 2D 設計與角色的邊緣都有 Fresnel 效果,所以毛也需要做出 Fresnel↳ 原本的 2D 設計中,角色邊緣有一圈 Fresnel 效果。Fresnel 是斜看表面時反光變強、邊緣比較亮的現象。毛也得做出這種邊緣感。
- 22:39 一般角色做 Fresnel 很簡單,但在上百萬根毛上做只會得到滿滿雜訊,行不通↳ 光滑的角色做 Fresnel 很容易,但每根毛朝向都不同,上百萬根毛各自算,結果是一片閃爍的雜點,完全不能用。
- 22:39 解法:做簡單修改,把原始表面的 normal 傳到毛上,再做 shading 混合↳ 解法是讓每根毛借用它長出來那塊皮膚的表面朝向,再依此混合顏色。這樣整體看起來就像一個平順的表面。
- 22:39 這樣就能得到漂亮的 Fresnel 與顏色變化,例如 mole、肚子等處↳ 改完之後有了乾淨好看的邊緣光和顏色漸層,例如痣、肚子這些部位都能做出變化。
- 23:13 這正是他們需要自訂方案的原因之一↳ 這種需求現成工具做不到,這也是他們堅持自己做毛髮方案的理由之一。
- 23:13 主要用 GPU 算圖,記憶體很受限,通常是 16 到 32 GB,這就是他們的 render farm↳ 他們主要用 GPU(顯示卡)算圖,速度快但記憶體小,每台通常只有 16 到 32 GB。他們的 render farm(一群專門算圖的電腦)就是這個規格。
- 23:13 因此要很聰明地決定細節和資源放在哪裡↳ 記憶體有限,就不能每個東西都做到最精細,要看清楚哪裡觀眾看得到,細節和資源只放在那裡。
- 23:46 做了一個「有爭議的」決定:角色道具全部程序化,能這樣做是因為工作室有很多聰明的人↳ 他們決定角色的道具全用 procedural(程序化)做,也就是用規則和數學算出來,不是手畫貼圖。講者承認有人會質疑,能做成是因為團隊裡有很多厲害的人。
- 23:46 圍巾、帽子等的纖維全部程序化生成↳ 圍巾、帽子上一根根的纖維都是用程式規則生成的,沒有一根是手動擺的。
- 23:46 程序化的好處:可烘焙超低解析度的 2K 版本,用在 95% 的片中↳ 程序化的好處是可以 bake(烘焙,把算好的結果存成一張圖),存成 2K 的低解析版本。全片約 95% 的鏡頭用這個就夠了,省記憶體。
- 25:00 需要時再切回程序化的原始解析度,取得非常清晰的細節↳ 遇到特寫需要細節時,再切回即時運算的原始版本,就能拿到非常清楚的纖維。
- 25:00 示範中改 scale 只是為了展示它是程序化的,片中並不會改 scale↳ 影片裡他們拖動大小參數,只是想證明這是程序化生成的,正式鏡頭裡並不會這樣改。
- 25:00 帽子等也全部程序化;講者認為這甚至是必要的,因為道具的觸感語言必須被觀眾讀到↳ 帽子這些道具也全是程序化。講者認為非這樣不可,因為這部片要讓觀眾「看得出摸起來是什麼感覺」。
- 25:32 若在外部貼圖軟體做這些材質,會失去在 Cycles 裡能看到的大量細節↳ 如果改用外部貼圖軟體做材質,就看不到 Cycles(Blender 內建、模擬真實光線的算圖引擎)裡那些細微的纖維細節。
- 25:32 其他環境沒有 Blender 提供的 hair、即時真實光線等優點,所以決定一切在 Blender 裡、一切程序化↳ 其他軟體沒有 Blender 的毛髮工具,也沒辦法在同一個地方即時看到真實光影。所以他們決定全部留在 Blender 裡做,而且全部用程序化。
- 25:32 代價是節點很多:光一頂帽子就有一大堆 nodes(講者反諷說「a few nodes」)↳ 代價是節點多到誇張,光一頂帽子就接了一大片。講者說「只有幾個節點」是在開玩笑。
- 26:06 那是早期開發階段;他們把所有東西打包成一個 group,讓 artist 可以調整↳ 畫面裡是早期開發版本。後來他們把整堆節點包成一個 group(節點群組),外面只露出幾個旋鈕,讓美術人員不用懂內部也能調。
📘 術語
Ray Portal node(Ray Portal 節點):講者從去年開始用來做實驗、非常喜歡的節點,曾用於早期風格探索
velvety(絲絨質感):早期用 Ray Portal 嘗試過的一種質感方向
parallax shader(視差著色器):用在魔法角色眼睛,呈現類似宇宙的視差效果
shader(著色器):字幕未解釋;指決定材質外觀的設定,例如眼睛效果
animatic(動態分鏡):講者建議先仔細看它,再決定力氣要花在哪裡
comp(合成):由 comp 決定眼睛那裡需要加上反射
pipeline(製作流程):製作的步驟;以前較經典,modeling 與 look dev 分開
modeling(建模):舊流程中負責做模型、UV 等的步驟
UV(UV 展開):字幕未解釋;舊流程在 modeling 處理,這次改由 look dev 控制
look dev / surfacing(外觀開發/表面材質):舊流程中做材質的步驟,與 modeling 完全分開
link / overrides(連結/覆寫):舊流程把模型 link 進來再加一些 overrides,這次行不通
normals(法線):look dev 需要控制的項目之一;也用來做 Fresnel 與 ray cast 判斷
attributes(屬性):look dev 需要控制的各種類型屬性
modifiers(修改器):look dev 需要控制的項目之一
groom(毛髮梳理):這次連 groom 都放進 look dev 裡處理
mesh tech(mesh tech(內部名稱)):modeling 與 look dev 之間那個「Frankenstein」步驟的內部叫法
hair generator(毛髮產生器):綜合外部實作與自訂方案做成的單一毛髮生成工具
simulation(模擬):為了撐過製作決定完全不做,因此產生穿插問題
intersections(穿插):沒有模擬時,毛會穿過自身、道具或其他物體
collection(集合):用兩個 collection 分別處理角色自身穿插與外部碰撞
proximity(鄰近判斷):毛靠近設定的幾何就刪掉;簡單但會造成禿塊
ray cast(射線投射):從毛發射射線,檢查 culling geometry 的 normals,在內部就剪掉
culling geometry(剔除用幾何):ray cast 時用來判斷毛是否在內部的幾何
Fresnel(菲涅耳效果):原始 2D 設計在邊緣的效果;直接套在毛上只會得到雜訊
GPU(顯示卡):主要用 GPU 算圖,記憶體受限,通常 16 到 32 GB
render farm(算圖農場):他們的算圖環境,記憶體通常 16 到 32 GB
procedural(程序化):道具纖維全用程序化生成,可烘焙低解析版,需要時再切回原始解析度
baked(烘焙):把程序化結果做成 2K 低解析版本,用在 95% 的片中
Cycles(Cycles 算圖引擎):在 Cycles 裡能看到的細節,換到外部貼圖軟體會失去
group(節點群組):把帽子的大量 nodes 打包起來,讓 artist 可以調整
velvety(絲絨質感):早期用 Ray Portal 嘗試過的一種質感方向
parallax shader(視差著色器):用在魔法角色眼睛,呈現類似宇宙的視差效果
shader(著色器):字幕未解釋;指決定材質外觀的設定,例如眼睛效果
animatic(動態分鏡):講者建議先仔細看它,再決定力氣要花在哪裡
comp(合成):由 comp 決定眼睛那裡需要加上反射
pipeline(製作流程):製作的步驟;以前較經典,modeling 與 look dev 分開
modeling(建模):舊流程中負責做模型、UV 等的步驟
UV(UV 展開):字幕未解釋;舊流程在 modeling 處理,這次改由 look dev 控制
look dev / surfacing(外觀開發/表面材質):舊流程中做材質的步驟,與 modeling 完全分開
link / overrides(連結/覆寫):舊流程把模型 link 進來再加一些 overrides,這次行不通
normals(法線):look dev 需要控制的項目之一;也用來做 Fresnel 與 ray cast 判斷
attributes(屬性):look dev 需要控制的各種類型屬性
modifiers(修改器):look dev 需要控制的項目之一
groom(毛髮梳理):這次連 groom 都放進 look dev 裡處理
mesh tech(mesh tech(內部名稱)):modeling 與 look dev 之間那個「Frankenstein」步驟的內部叫法
hair generator(毛髮產生器):綜合外部實作與自訂方案做成的單一毛髮生成工具
simulation(模擬):為了撐過製作決定完全不做,因此產生穿插問題
intersections(穿插):沒有模擬時,毛會穿過自身、道具或其他物體
collection(集合):用兩個 collection 分別處理角色自身穿插與外部碰撞
proximity(鄰近判斷):毛靠近設定的幾何就刪掉;簡單但會造成禿塊
ray cast(射線投射):從毛發射射線,檢查 culling geometry 的 normals,在內部就剪掉
culling geometry(剔除用幾何):ray cast 時用來判斷毛是否在內部的幾何
Fresnel(菲涅耳效果):原始 2D 設計在邊緣的效果;直接套在毛上只會得到雜訊
GPU(顯示卡):主要用 GPU 算圖,記憶體受限,通常 16 到 32 GB
render farm(算圖農場):他們的算圖環境,記憶體通常 16 到 32 GB
procedural(程序化):道具纖維全用程序化生成,可烘焙低解析版,需要時再切回原始解析度
baked(烘焙):把程序化結果做成 2K 低解析版本,用在 95% 的片中
Cycles(Cycles 算圖引擎):在 Cycles 裡能看到的細節,換到外部貼圖軟體會失去
group(節點群組):把帽子的大量 nodes 打包起來,讓 artist 可以調整
✏️ 小考一題
講者提到他們主要用 GPU 算圖,記憶體通常是多少?
A. 32 到 64 GBB. 16 到 32 GBC. 8 到 16 GBD. 64 到 128 GB看答案
答案:B。[23:13] 講者說 we work with GPU mainly... We are normally like 16 to 32 gigabytes. It's kind of our render farm.
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰