Motion Sculpting:一種新的動畫範式 — BCON26(第 1/5 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
講者從 rig 的摩擦點出發,介紹用密集動畫與自製工具做更有手感的動畫
- 00:00 講者分享一系列實驗,想找出不同的動畫做法。他認為 rigging 對動畫是一道門檻,即使他自己也兼做 rigger 與 animator
- 05:32 一般常認為需要 spline animation 才能完全掌控。以前建模多用 box modeling、NURBS 或 spline modeling,過程相當繁瑣
- 10:44 畫面中兩個範例以 IK 方式運作:系統能原生判斷鏈的終點,遇到 disconnected bone 就視為鏈的結尾,行為類似 auto-IK
💡 你可以怎麼用:如果你拿到的是每格都有 key 的動作,例如 Mixamo 的現成動作或動作捕捉資料,不用急著刪 key 重做。可以先找能把修改擴散到前後影格的工具(像 animOffset 這一類)直接調整,再打開 motion paths 或 onion skinning,用眼睛檢查動作順不順。
看全部 36 條重點
🧑🏫 這是 BCON26 一場演講的第一段。講者 Nacho 是遊戲動畫師,他覺得傳統動畫流程被 rig 綁得太重,想做出像捏黏土一樣、直接動手的動畫方式。這段先講清楚現有流程卡在哪,再展示他自製的第一批工具,適合想知道 3D 動畫為什麼難上手、以及未來可能怎麼變簡單的人。
- 00:00 講者分享一系列實驗,想找出不同的動畫做法。他認為 rigging 對動畫是一道門檻,即使他自己也兼做 rigger 與 animator↳ rigging 是幫角色裝骨架和控制器,讓人能擺動作的工作;rigger 是專做這件事的人。講者兩邊都做過,還是覺得「要先有 rig 才能動」是一道門檻。
- 00:00 目標是讓動畫更有觸感(tactile),感覺像在桌上實際捏黏土做動畫↳ 他追求的是手感:不要對著一堆控制器和數值慢慢調,而是像在桌上捏黏土,直接動手、馬上看到結果。
- 00:33 講者小時候做過很多黏土動畫與 stop motion。他強調這只是一種 pipeline,不是要取代 rig,因為其他用途仍然需要 rig↳ stop motion(定格動畫)是一格一格擺好拍下再連起來播。pipeline 指整條製作流程。他說這只是多一條路可選,遊戲等用途還是需要 rig,並不是要大家丟掉 rig。
- 01:04 講者 Nacho 是遊戲動畫師,曾任職 Blizzard Entertainment,也為 Fabledom、Manor Lords 做過動畫,一直使用 Blender 製作動畫↳ 講者背景:遊戲動畫師,待過 Blizzard,做過 Fabledom、Manor Lords 的動畫,而且一直用 Blender 做。代表他是真的在業界用 Blender 做案子的人。
- 01:04 他發現手上工具有限制,約四年前學了 Python 開始自製工具,例如把 child of constraints 放進 character panel↳ constraint 是讓物件跟著另一個物件動的規則,child of 就是讓東西暫時跟著某物走,例如杯子被手拿起。他四年前學 Python,把這類設定放進角色面板,方便直接操作。
- 01:37 後來有大型工作室的動畫師找上他。他和幾位在業餘時間使用 Blender 的 Pixar、Disney 人員一起開發工具↳ 他的工具做出口碑後,大工作室的動畫師主動找上門。幾位 Pixar、Disney 的人利用業餘時間用 Blender,和他一起開發工具。
- 01:37 他有一整套給 production rig 用的動畫工具,部分實驗成果已經回流到這些工具裡,但本場講的是另一套東西↳ production rig 是正式製作用的完整 rig,控制器多、功能齊。他已經有一套配合這種 rig 的工具,部分實驗成果也放了進去;但這場講的是另一套新做法。
- 02:07 他懷念能直接開工的感覺:手上拿著有觸感的東西、心裡有想法就一路做下去。那種方式只有一次機會、很難回頭,或許也有改進空間↳ 他懷念拿著實體東西、有想法就一路做下去的感覺。不過黏土動畫做錯很難回頭,等於只有一次機會。他想留住那種直接感,同時補上可以修改的彈性。
- 02:37 他先找出流程中的摩擦點。角色的基本構成:mesh(範例為 Mixamo mesh)、skeleton、負責帶動 mesh 的 deform bones、決定頂點跟隨程度的 weight paints,以及 control rig↳ 角色的基本組成:mesh 是模型外皮;skeleton 是整副骨頭;deform bones 是真正帶動外皮變形的骨頭;weight paint 標出每個點跟骨頭動多少;control rig 是給動畫師操作的控制層。
- 02:37 範例用的是 Mixamo add-on 產生的簡單 control rig,刻意讓東西保持相對簡單↳ Mixamo 是提供角色和現成動作的網路服務,它的 add-on(外掛)能自動生成簡單的 control rig。他刻意用簡單範例,讓大家把注意力放在流程上。
- 03:08 有了模型後可以加骨頭、用 automatic weights 綁定,大致能撐過初步測試↳ 有了模型後加上骨頭,用 automatic weights 讓 Blender 自動算權重、把模型綁到骨頭上。結果不完美,但拿來做初步測試大致夠用。
- 03:08 如果想改骨頭,再疊一層 control rig 會很嚇人,也很耗時耗工。要做出正確的機制與切換,對多數動畫師已是一大步↳ 麻煩在後面:想改骨頭時,上面那層 control rig 也得跟著重做,機制和切換都要設對。這對多數動畫師來說,已經等於跨到另一個專業。
- 03:08 rig 常見問題包括 FK/IK 切換的 rig states、pole drift,以及 Blender 內部機制造成 stretchy bones 等骨頭有小小錯位↳ FK 是從肩膀一節一節轉到手,IK 是抓著手讓手臂自動跟上,兩種模式切換會出狀態問題。pole drift 字幕只列出名稱;stretchy bones(可拉長的骨頭)常因 Blender 內部機制有小錯位。
- 03:39 這些問題讓鏡頭管理變困難,例如需要在中途切換,總會有各種複雜狀況↳ 這些問題到了實際做鏡頭時會被放大。例如動作做到一半要從 FK 換成 IK,前後得對齊,各種狀況就會冒出來要處理。
- 03:39 以朋友 Pierrick 的動畫為例說明後續還有很多階段:先要有構想,再做 blocking、polishing,決定 key poses 的位置,最後動用所有 rig controls↳ 以朋友 Pierrick 的動畫為例:先有構想,再 blocking(先擺出大致姿勢)、polishing(細修到順),還要決定 key poses(關鍵姿勢)放在哪幾格,最後把所有控制器都用上。
- 04:10 有些 rig controls 非常複雜,必須很熟悉該 rig,而且不同 rig 的控制方式不一定相同,這是 pipeline 中另一種摩擦↳ 有些 rig 的控制器很複雜,得先花時間熟悉。換一個 rig,操作方式又可能不一樣,每換一次就要重學一次,這也是流程裡的摩擦。
- 04:10 Blender 目前無法原生做即時 motion paths 與 onion skinning↳ motion paths 是把身體某部位走過的軌跡畫成線;onion skinning 是把前後幾格姿勢淡淡疊在畫面上,像描圖紙。Blender 目前沒辦法原生做到邊改邊即時更新。
- 05:00 原因是在當前影格做修改時,Blender 必須去評估未來影格,讀取整個 rig 依賴鏈上的所有變化,才能顯示改動並更新路徑↳ 原因是你改了這一格,Blender 就得把後面每一格重算,而且要沿著 rig 裡控制器互相牽動的整條依賴鏈(chain of dependency)讀一遍。rig 越複雜就越慢。
- 05:00 講者要談 dense animation(密集動畫),主張它可以是優勢而不是問題。建模業界已有類似先例↳ key 是記錄某個時間點姿勢的關鍵影格。dense animation 就是每一格都有 key 的動畫,通常被認為很難改。講者反過來主張它可以是優勢,並拿建模的演變當前例。
- 05:32 一般常認為需要 spline animation 才能完全掌控。以前建模多用 box modeling、NURBS 或 spline modeling,過程相當繁瑣↳ spline animation 只設少數 key,中間由曲線自動補,改幾個點就能動整段,所以大家覺得這樣才好控制。以前建模也靠少量控制點,像 box modeling、NURBS,做起來很繁瑣。
- 05:32 ZBrush、Nomad Sculpt 與 Blender 出現後,不再需要低面數模型,可以直接雕塑、做得很密,越密越好,而且仍保有完全掌控↳ sculpt(雕塑)是像捏黏土一樣直接推拉模型表面。ZBrush、Nomad Sculpt、Blender 普及後,不用先做低面數模型,可以直接雕,面越多越細,而且一樣控制得住。
- 06:04 現在叫人回頭做 NURBS 模型,對方大概寧可去雕塑。讓這件事成為可能的唯一因素是「工具」,在那之前這被認為是不可能的↳ 現在叫雕塑的人回頭做 NURBS,大概沒人想做。雕塑以前被認為做不到,是工具出現後才改變。他的意思是:密集動畫也一樣,缺的只是對的工具。
- 06:04 類比工具需求:簡單的東西移動單一頂點就夠;複雜一點需要影響範圍;非常高密度時,需要一整套全新工具,才能維持與以前相同的掌控度↳ 他用建模來比:簡單的東西動一個點就夠;複雜一點,就要能一次影響一片範圍;密度非常高時,得有一整套新工具,才能跟以前一樣控制自如。
- 06:36 控制密集動畫已有多種工具,例如講者移植進自己動畫工具中的 animOffset。示範用的是一般 rig,但也可以是很複雜的 rig↳ 處理密集動畫已經有一些工具,例如他移植進自己工具組的 animOffset,大致是把一格的修改套到一段影格上。示範用的是一般 rig,複雜的 rig 也能用。
- 07:06 auto IK 可以不用 rig 直接控制,但在密集動畫中,它不會在你已有的關鍵影格周圍打 key↳ auto IK 是 Blender 內建功能,拖一根骨頭,整條骨鏈會自動跟著動,不需要另外做 rig。但在密集動畫裡,它只改當下這一格,不會處理周圍已有的 key,前後容易接不上。
- 07:06 講者開發的 propagate:改一個姿勢後,可以把影響擴散到鄰近影格,並控制姿勢如何外推。即使用 production rig,也能把全新姿勢無縫融入動畫↳ propagate 是他開發的工具:改了一格姿勢後,把改動往前後幾格擴散出去,還能控制怎麼延伸。即使是複雜的 production rig,新姿勢也能自然融進原本的動作。
- 07:36 這些工具仍不足以達成他的目標,於是他回到原點:最簡單的組成就是 skeleton,加上已經定義好的 weight paints↳ 但這些工具還達不到他要的手感,所以他回到最基本的東西:只留骨架和已經畫好的 weight paint,從這兩樣重新出發。
- 07:36 第一個成果:利用 weight paint 資訊直接在 mesh 上選取,而不必直接選骨頭,讓選骨頭變得更有觸感、更直觀↳ 第一個成果:直接點模型表面就能選到對應的骨頭。系統靠 weight paint 知道你點的位置主要由哪根骨頭控制,不用在一堆骨頭線條裡找。
- 08:09 為了避開 Blender 評估複雜 rig 未來影格造成的延遲問題,他自我限制只用 FK rig↳ 為了避開前面說的「Blender 算未來影格很慢」,他給自己設限:只用 FK rig,也就是骨頭一節接一節、各自旋轉的簡單結構。
- 08:09 原因是 FK 鏈隨時間的行為很容易預測:每根骨頭都有 parent,並在 parent 空間中移動與旋轉,所以不必詢問 Blender,只讀 F-curves 就能預知未來↳ FK 很好預測:每根骨頭都掛在上一根(parent)底下,跟著它動。所以不必請 Blender 重算,直接讀 F-curves(記錄數值隨時間變化的曲線)就能算出未來位置。
- 08:40 他做出類似 animation cache 的東西,用來讀取骨頭的未來狀態並衍生出許多功能。它有些限制,其中最主要、最明顯的是 FK rig 不能做 IK,而他已找到繞過的方法↳ cache 是先算好存起來、要用時直接拿的資料。他的 animation cache 事先掌握骨頭未來的狀態,很多功能都建在它上面。最大限制是純 FK 做不了 IK,但他已經找到繞過的方法。
- 09:10 如此一來,密集動畫從令人害怕變成有用:選任何骨頭,幾乎免費就能即時取得路徑,還能疊上多種設定方式的 onionskins↳ 結果密集動畫反而變好用:選任何一根骨頭,幾乎不耗效能就能即時看到軌跡,還能疊上前後姿勢的半透明殘影,顯示方式也可以調。
- 09:10 他原本做了一次性的姿勢 propagation,現在完整的 propagation 系統可以即時運作:設定範圍(range)、衰減(decay)、影響度(influence),照眼睛看到的樣子操作動作↳ 原本 propagate 只能一次性套用,現在可以即時運作。range 是影響幾格,decay 是往外逐漸減弱的程度,influence 是整體強度。調的時候直接看畫面,用眼睛判斷。
- 09:41 目標之一是完全不看曲線圖(graph)就能做動畫:既然是密集動畫、每格都有 key,就依畫面所見來做,而不是依圖表↳ 他的目標之一是完全不打開曲線圖。每格都有 key,曲線只會密密麻麻,不如直接看角色動得對不對,照畫面去調。
- 10:13 針對「懷念 spline 控制、不想太鬆散」的需求,他做了另一個工具:設定幾個影格作為 spline 邊界,把實際路徑轉成 spline,就能像操作 spline 一樣變形密集動畫↳ 有人會懷念 spline 那種「拉幾個點就改一整段」的感覺。他另外做了工具:挑幾格當邊界,把中間的實際軌跡轉成曲線,拉動曲線就能改整段密集動畫。
- 10:44 畫面中兩個範例以 IK 方式運作:系統能原生判斷鏈的終點,遇到 disconnected bone 就視為鏈的結尾,行為類似 auto-IK↳ 畫面上兩個範例表現得像 IK:拖末端,整條鏈跟著動。系統會自己找鏈的終點,遇到 disconnected bone(沒跟上一根接在一起的骨頭)就當成鏈的結尾,效果類似 auto IK。
📘 術語
rigging / rigger(綁定/綁定師):講者認為這是做動畫的一道門檻,他本人也部分身兼 rigger
stop motion(定格動畫):講者小時候常做,與黏土動畫並列,是他想追求的觸感來源
pipeline(製作流程):講者說這套方法只是一種 pipeline,其他用途仍然需要 rig
child of constraints(Child Of 約束):講者最早寫的工具之一,是把它放進 character panel 顯示
production rig(正式製作用 rig):講者的工具組服務對象,propagate 在這種 rig 上也能運作
mesh(網格):角色模型本體,由 deform bones 帶動
skeleton(骨架):角色的骨頭結構,講者認為它是最簡單的基本組成
deform bones(變形骨骼):負責帶動 mesh 移動的骨頭
weight paint(權重繪製):決定頂點跟隨骨頭程度多寡的資訊
control rig(控制綁定):疊在骨架上的控制系統,範例為 Mixamo add-on 產生的簡單版本
automatic weights(自動權重):加骨頭後自動綁定,大致足以做初步測試
FK / IK switch(正向/反向動力學切換):rig 的狀態切換,是 rig 造成的摩擦之一
pole drift(極向量漂移):字幕列為 rig 常見問題之一,未進一步解釋
stretchy bones(可伸縮骨頭):因 Blender 內部機制,常有小小的錯位
blocking / polishing(粗排/精修):動畫製作的階段,之後還要決定 key poses 位置
key poses(關鍵姿勢):動畫中需要事先決定位置的主要姿勢
motion paths(運動路徑):Blender 無法原生即時顯示,因為必須評估未來影格
onion skinning(洋蔥皮):Blender 無法原生即時做到;講者的系統可疊上並以多種方式設定
chain of dependency(依賴鏈):Blender 更新路徑時,必須讀取整個 rig 依賴鏈上的所有變化
dense animation(密集動畫):每格都有 key 的動畫,講者主張它是優勢而非問題
spline animation(樣條曲線動畫):一般認為需要它才能完全掌控動畫
box modeling / NURBS / spline modeling(方塊建模/NURBS/樣條建模):雕塑普及前的主要建模方式,過程繁瑣
sculpt(雕塑):ZBrush 等工具帶來的做法,不需低面數、越密越好,仍保有控制
animOffset(animOffset 工具):講者移植進自己動畫工具中,用來處理密集動畫
auto IK(自動 IK):可免 rig 直接控制,但不會在既有 key 周圍打 key
propagate(姿勢擴散):講者的工具,把一個姿勢的影響擴散到鄰近影格並無縫融入
F-curves(F 曲線):FK rig 下讀取 F-curves 就能預測骨頭未來位置
animation cache(動畫快取):講者做的系統,能讀取骨頭的未來狀態並衍生許多功能
range / decay / influence(範圍/衰減/影響度):即時 propagation 可設定的參數
disconnected bone(未連接的骨頭):系統遇到它就判定為鏈的結尾
stop motion(定格動畫):講者小時候常做,與黏土動畫並列,是他想追求的觸感來源
pipeline(製作流程):講者說這套方法只是一種 pipeline,其他用途仍然需要 rig
child of constraints(Child Of 約束):講者最早寫的工具之一,是把它放進 character panel 顯示
production rig(正式製作用 rig):講者的工具組服務對象,propagate 在這種 rig 上也能運作
mesh(網格):角色模型本體,由 deform bones 帶動
skeleton(骨架):角色的骨頭結構,講者認為它是最簡單的基本組成
deform bones(變形骨骼):負責帶動 mesh 移動的骨頭
weight paint(權重繪製):決定頂點跟隨骨頭程度多寡的資訊
control rig(控制綁定):疊在骨架上的控制系統,範例為 Mixamo add-on 產生的簡單版本
automatic weights(自動權重):加骨頭後自動綁定,大致足以做初步測試
FK / IK switch(正向/反向動力學切換):rig 的狀態切換,是 rig 造成的摩擦之一
pole drift(極向量漂移):字幕列為 rig 常見問題之一,未進一步解釋
stretchy bones(可伸縮骨頭):因 Blender 內部機制,常有小小的錯位
blocking / polishing(粗排/精修):動畫製作的階段,之後還要決定 key poses 位置
key poses(關鍵姿勢):動畫中需要事先決定位置的主要姿勢
motion paths(運動路徑):Blender 無法原生即時顯示,因為必須評估未來影格
onion skinning(洋蔥皮):Blender 無法原生即時做到;講者的系統可疊上並以多種方式設定
chain of dependency(依賴鏈):Blender 更新路徑時,必須讀取整個 rig 依賴鏈上的所有變化
dense animation(密集動畫):每格都有 key 的動畫,講者主張它是優勢而非問題
spline animation(樣條曲線動畫):一般認為需要它才能完全掌控動畫
box modeling / NURBS / spline modeling(方塊建模/NURBS/樣條建模):雕塑普及前的主要建模方式,過程繁瑣
sculpt(雕塑):ZBrush 等工具帶來的做法,不需低面數、越密越好,仍保有控制
animOffset(animOffset 工具):講者移植進自己動畫工具中,用來處理密集動畫
auto IK(自動 IK):可免 rig 直接控制,但不會在既有 key 周圍打 key
propagate(姿勢擴散):講者的工具,把一個姿勢的影響擴散到鄰近影格並無縫融入
F-curves(F 曲線):FK rig 下讀取 F-curves 就能預測骨頭未來位置
animation cache(動畫快取):講者做的系統,能讀取骨頭的未來狀態並衍生許多功能
range / decay / influence(範圍/衰減/影響度):即時 propagation 可設定的參數
disconnected bone(未連接的骨頭):系統遇到它就判定為鏈的結尾
✏️ 小考一題
講者為什麼自我限制只用 FK rig?
A. 因為 FK rig 可以直接使用 Mixamo add-on 的 IK 功能B. 因為 FK 鏈隨時間的行為容易預測,不必問 Blender 就能從 F-curves 讀出未來C. 因為 Pixar 與 Disney 的工作室只接受 FK rigD. 因為 FK rig 不需要 weight paint 資訊看答案
答案:B。[08:09]~[08:40] 講者說 FK 鏈很容易預測,每根骨頭在 parent 空間中移動旋轉,所以不必詢問 Blender 就能從 F-curves 預知未來,藉此避開 Blender 評估複雜 rig 的延遲問題
💛 覺得有幫助?支持一下


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