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


🏦 台灣Pay 銀行轉帳 💙 PayPal
介紹開發中的 Motion Sculpting add-on 原理,並用 Mixamo rig 示範開箱效果
- 11:00 講者在一個很簡單的 FK rig 與骨架上建了一整套工具,得到即時的 stateless rig,不必在 FK 和 IK 之間切換狀態就能直接操作動畫
- 16:38 這套 UI 的目標之一:完全不必看 graph editor 就能做動畫,並且操作起來很 tactile
- 21:33 onion skins 太多時很難看懂、也難操作,所以講者發明了一個叫 wormhole 的東西(本段到此截斷)
💡 你可以怎麼用:如果你用 Blender 做角色動畫,可以先從 Mixamo 下載一個角色和動畫匯入,記得先複製一份動畫當備份,再開 motion path 和 onion skins 觀察軌跡與速度。之後若拿得到這個外掛,優先試 motion brush 直接拖軌跡,以及移動 hips 時腳不滑的 limb locking。
看全部 35 條重點
🧑🏫 這段是 BCON26 的演講,介紹一個還在開發中的 Blender 外掛 Motion Sculpting:讓你像捏黏土一樣,直接在畫面上改角色動畫,不必一直去調曲線或切換模式。後半段用 Mixamo 的現成角色實際示範,能看到它不需要任何設定就能使用的樣子。
- 11:00 講者在一個很簡單的 FK rig 與骨架上建了一整套工具,得到即時的 stateless rig,不必在 FK 和 IK 之間切換狀態就能直接操作動畫↳ 講者在很陽春的 FK rig 上做出 stateless rig。rig 是讓角色能擺動作的骨架控制系統;FK 是一節一節轉關節,IK 是拉手腳末端讓整條跟著動。這套 rig 不必在兩種模式間切換,直接就能操作。
- 11:00 取捨:一操作就是直接寫入動畫,等於在「雕塑你看到的東西」;之後仍有方法 refine、修改並保留控制↳ 代價是:你一動手,改動就直接寫進動畫,等於直接改你眼前看到的樣子,不是先調控制器再產生結果。不過之後仍能細修、調整,控制權還在你手上。
- 11:31 Limb locking 跟傳統 state rig 不同:傳統是把肢體鎖在空間某個位置、不能動;這裡只在 transform 當下鎖定↳ Limb locking 是鎖住四肢(limb)的功能。傳統做法會把手腳釘在空間某個點,之後就動不了;這裡只在你做 transform(移動、旋轉、縮放)的那一刻鎖住,放手就不再綁著。
- 11:31 例:transform hips(upstream controller)時,雙腳在整段動畫中維持原位,而不只是鎖在你鎖定的那個位置↳ 例如移動 hips(臀部)這個 upstream(上游)控制器時,底下的腿本來會被帶著走。開了鎖定後,雙腳在整段動畫每一格都留在原位,不只停在你鎖定的那一格。
- 12:01 可以改一根骨頭的位置而不影響其餘動畫;但仍有待解決的問題,例如要保留一個完全不動的步伐↳ 你可以單獨改一根骨頭的位置,其他部分的動畫不會被波及。講者也承認還有沒解決的問題,例如要讓某一步的腳完全不動、不滑,目前還做不好。
- 12:01 系統仍在開發中,後面示範的是 alpha 版本↳ 整套系統還在開發中。接下來示範的是 alpha 版,也就是早期測試版,功能和表現之後都可能改變。
- 12:01 Rotate from anywhere:可指定從另一個地方旋轉某根骨頭,pivot 不一定要是骨頭,也可以自由移動、選擇位置↳ Rotate from anywhere 是指旋轉骨頭時可以換旋轉中心。這個中心點叫 pivot,不一定要是某根骨頭,可以自由移到任何你想要的位置再轉。
- 12:32 畫面中的修改會把動畫 propagate 到 10、15 個 frames;效能很好,前後 20、50 frames 也行↳ 你在某一格(frame,動畫裡的一張畫面)做的修改,會 propagate(往外擴散)到前後大約 10、15 格。講者說效能夠好,擴到前後 20、50 格也跑得動。
- 12:32 可即時決定 rotation locks,共三種:both、upstream、downstream↳ Rotation lock 決定旋轉時要鎖住骨頭鏈的哪一段,可以當場切換。總共三種:both(兩邊都鎖)、upstream、downstream。
- 13:04 upstream/downstream 代表只鎖定下方或上方的部分;例:鎖 downstream 旋轉時 pivot 可動,pole 不會影響鏈的其他部分↳ upstream 和 downstream 指骨頭鏈的上游和下游,選其中一種就只鎖一側。例如鎖 downstream 時,pivot 仍能移動,pole(控制關節彎曲方向的點)也不會牽動鏈的其他部分。
- 13:04 動畫出現 spike 或要清理時,有 sliders 可 spread、join、smooth keys,更能控制動畫軌跡↳ 動畫出現 spike(某一格突然暴衝的尖點)或需要清理時,可以用 sliders(滑桿)把 keys(關鍵影格)拉開、合併或抹平,讓動作軌跡更好控制。
- 13:35 Motion brush:可直接在 motion paths 上畫,能 smooth、抓著拉動,就像用 ZBrush 雕 mesh↳ Motion brush 是一支筆刷,可以直接在 motion path(骨頭移動的軌跡線)上畫:抹順,或抓住拉動。手感就像在雕刻軟體 ZBrush 裡雕 mesh(3D 模型表面)。
- 14:07 編輯流程:使用者輸入 → solver 解算當前 frame(IK、FK、lock controls 或評估狀態)→ propagation 系統在背景把動畫送到設定的範圍↳ 背後流程分三步:你動手操作 → solver(計算器)先算出眼前這一格該是什麼姿勢,包括 IK、FK 和鎖定 → propagation 系統在背景把結果套到你設定的範圍。
- 14:07 用 brush 時只傳送筆刷底下的 frames;設定 range 時則是該 range 加上 decay↳ 用筆刷時,只更新筆刷蓋到的那些格。改用設定 range(範圍)時,會套用到整個範圍,再加上 decay,大意是往外逐漸減弱的過渡;細節講者說之後再講。
- 15:00 手勢進行中先即時寫入 animation cache,放開後才寫入 F curves 並 commit↳ 你還在拖曳時,改動先寫進 animation cache(暫存區),讓畫面即時更新。放開滑鼠後,才正式寫進 F curves(Blender 記錄動畫數值的曲線)並 commit(確定存入)。
- 15:00 開場第一張投影片其實不是圖片,而是工具實際運作的畫面,onion skins 和 motion path 都是工具本身↳ 開場第一張投影片看起來像圖片,其實是工具實際運作的畫面。上面的 onion skins(半透明顯示前後幾格姿勢的殘影)和 motion path,都是工具自己畫出來的。
- 15:30 講者表示重點不是工具,而是換一種角度看待怎麼做動畫、怎麼實現這些事↳ 講者強調,重點不在這套工具本身,而是希望大家換個角度,重新思考動畫可以怎麼做、這些效果可以用什麼方式達成。
- 16:04 示範:匯入 FBX,是 Mixamo 網站上提供的 rig 與動畫,rig 很簡單;先複製一份動畫以便回復↳ 示範先匯入 FBX 檔(常見的 3D 模型和動畫交換格式),內容是 Mixamo 網站提供的角色和動畫,rig 很簡單。匯入後先複製一份動畫,改壞了還能回到原樣。
- 16:38 這套 UI 的目標之一:完全不必看 graph editor 就能做動畫,並且操作起來很 tactile↳ 這套 UI(操作介面)的目標之一,是完全不用打開 graph editor(看動畫曲線的編輯視窗)就能做動畫,而且操作要 tactile,像用手直接摸著東西調整。
- 17:09 開箱不做任何設定:因為沒用 control rig,直接讀 weight paints,每根骨頭對應自己的 weight paint↳ 開箱不用任何設定。因為沒有另外做 control rig(專給動畫師抓的控制器層),工具直接讀 weight paint(標示每根骨頭會帶動模型哪些部位),讓每根骨頭對應自己的區域。
- 17:09 沒有或只有很小 weight paint 的骨頭有辦法調整;但至少多數 Mixamo rig 開箱就能正常運作↳ 如果某根骨頭沒有 weight paint,或範圍很小,也有辦法調整。不過至少大多數 Mixamo 的 rig 都能直接使用。
- 17:09 在 FK 下把骨頭隱藏,因為它們只會造成視覺雜亂;按 R 有 gizmos↳ 在 FK 模式下,講者把骨頭隱藏起來,因為它們只會讓畫面很亂。要操作時按 R,畫面就會出現 gizmos(可以直接拖拉的操作把手)。
- 17:40 Gizmos 可移動、旋轉、兩者同時,也能縮放↳ 這些 gizmos 可以移動、旋轉、同時移動加旋轉,也可以縮放。
- 17:40 定義 limb 很簡單:選取想當 limb 的骨頭,指定「這是一個 limb」;手指、手臂、胸、腿都可以↳ 定義 limb 很簡單:選好想當成同一組肢體的骨頭,告訴工具「這是一個 limb」就完成了。手指、手臂、胸部、腿都能這樣設定。
- 18:14 骨頭不相連的 rig,double-click 就能自動辨識:腳尖到 hips 一條 limb、spine 三根一組、head 和 neck 兩根、arm 含整隻手加肩膀、每根手指各自一組↳ 就算 rig 的骨頭沒有相連,double-click 也能自動分組:腳尖到 hips 一條、spine(脊椎)三根一組、頭和脖子一組、手臂連手掌和肩膀一組、每根手指各一組。
- 18:45 可直接旋轉、移動,沒有限制、角度或 locks,就是純 FK,只是透過 add-on 的底層系統操作↳ 操作時可以直接轉、直接移,沒有限制、角度範圍或鎖定,就是純 FK。差別只在它透過這個 add-on(Blender 外掛)的底層系統運作。
- 18:45 Flags 定義每次操作往前、往後影響多遠↳ Flags 用來設定每次操作的影響範圍,也就是這一下要往前、往後波及多少格。
- 19:17 可開啟 motion paths,它是即時產生的、不是計算出來的;可設定只顯示 active 或 selected↳ motion path 可以打開,而且是即時畫出來的,不需要先花時間計算。也能設定只顯示 active(目前作用中)或 selected(已選取)的骨頭。
- 19:50 整段動畫每條 motion path(包含手指所有指節 phalanxes)都能在 viewport 以接近 30 frames 即時播放↳ 整段動畫所有骨頭的 motion path,連手指每個指節(phalanxes)都算進去,在 viewport(3D 視窗)裡還能以接近 30 格的速度即時播放。
- 19:50 也能開 onion skins,並即時從實際 mesh 讀取;mesh 約 30,000 triangles 仍能運作↳ onion skins 也能打開,而且直接從真正的角色 mesh 即時讀取。模型約 30,000 個 triangles(組成模型的三角面)也能正常運作。
- 20:24 只讀取某段範圍,動畫技術上可以無限長;下方 visible range 可增減,決定 motion paths 看得到多遠,也是正在快取的範圍↳ 工具一次只讀一段範圍,所以動畫理論上可以無限長。下方的 visible range 可以調大調小,決定 motion path 看得多遠,同時也是正在快取的範圍。
- 20:24 按 play 動畫就會邊播邊快取,曲線等資訊即時出現;目的不只好看,而是提供真正有用的資訊↳ 按下播放,動畫會邊播邊快取,曲線等資訊跟著即時出現。講者說目的不是好看,而是給動畫師真正派得上用場的資訊。
- 21:00 浮動 UI 完全用 GPU module 寫成,能即時讀取講者在 Blender 裡做的實際 panels↳ 畫面上的浮動介面完全用 GPU module(Blender 讓程式直接用顯示卡繪圖的模組)寫成,能即時讀出講者在 Blender 裡做好的實際 panels(面板)。
- 21:00 Onion skins 從 before and after 改成 velocity each,就能看到骨頭在 visible range 內相對於自身動畫的速度↳ 把 onion skins 從 before and after(顯示前後姿勢)切到 velocity each,就能看出每根骨頭在可見範圍內,相對於它自己整段動作是快還是慢。
- 21:33 onion skins 太多時很難看懂、也難操作,所以講者發明了一個叫 wormhole 的東西(本段到此截斷)↳ 殘影一多就很難看懂、也難操作,所以講者發明了一個叫 wormhole 的東西來解決。這段影片講到這裡就斷了,細節要看下一段。
📘 術語
stateless rig(無狀態 rig):不必在 FK 和 IK 之間切換狀態就能直接操作動畫的 rig
FK / IK(正向/反向運動學):字幕未解釋定義;只提到此系統建在 FK rig 上,solver 可做 IK 或 FK
limb locking(肢體鎖定):傳統是鎖在空間位置不能動;這裡只在 transform 當下鎖定,腳在整段動畫保持原位
upstream / downstream(上游/下游):rotation lock 類型,分別只鎖定鏈上方或下方的部分,另有 both
pivot(旋轉軸心):旋轉的中心點,不一定要是骨頭,可移動並自選位置
motion path(運動路徑):顯示骨頭軌跡的路徑;在此工具中即時產生,可用 brush 直接編輯
motion brush(運動筆刷):直接在 motion paths 上畫、smooth、抓動,像用 ZBrush 雕 mesh
solver(解算器):解算當前 frame,執行 IK、FK、lock controls 或評估該 frame 狀態
propagation(傳遞):在背景把修改後的動畫即時送到設定的範圍
decay(衰減):設定 range 時,傳遞修改會搭配 decay(字幕說之後細講)
animation cache(動畫快取):手勢進行中即時寫入的地方,放開後才寫進 F curves
F curves(F 曲線):手勢放開後寫入並 commit 的地方
onion skin(洋蔥皮):從實際 mesh 即時讀取顯示動畫前後狀態,可切換成 velocity each 看速度
Mixamo(Mixamo):示範用的 rig 與動畫來源,網站上可取得,rig 很簡單
FBX(FBX):示範時匯入的檔案格式
graph editor(曲線編輯器):此 UI 的目標是完全不必看它就能做動畫
weight paint(權重繪製):工具開箱直接讀取,每根骨頭對應自己的 weight paint
control rig(控制 rig):講者沒使用 control rig,所以每根骨頭直接對應 weight paint
gizmo(操作把手):按 R 出現,可移動、旋轉、兩者同時或縮放
flags(旗標):定義操作時往前、往後影響多遠
visible range(可見範圍):可增減的範圍,決定 motion paths 顯示多遠,也是快取範圍
GPU module(GPU 模組):講者用它完整打造浮動 UI,可即時讀取 Blender 的 panels
wormhole(蟲洞):講者為解決 onion skins 太多、難懂難操作而發明的東西(本段未講完)
FK / IK(正向/反向運動學):字幕未解釋定義;只提到此系統建在 FK rig 上,solver 可做 IK 或 FK
limb locking(肢體鎖定):傳統是鎖在空間位置不能動;這裡只在 transform 當下鎖定,腳在整段動畫保持原位
upstream / downstream(上游/下游):rotation lock 類型,分別只鎖定鏈上方或下方的部分,另有 both
pivot(旋轉軸心):旋轉的中心點,不一定要是骨頭,可移動並自選位置
motion path(運動路徑):顯示骨頭軌跡的路徑;在此工具中即時產生,可用 brush 直接編輯
motion brush(運動筆刷):直接在 motion paths 上畫、smooth、抓動,像用 ZBrush 雕 mesh
solver(解算器):解算當前 frame,執行 IK、FK、lock controls 或評估該 frame 狀態
propagation(傳遞):在背景把修改後的動畫即時送到設定的範圍
decay(衰減):設定 range 時,傳遞修改會搭配 decay(字幕說之後細講)
animation cache(動畫快取):手勢進行中即時寫入的地方,放開後才寫進 F curves
F curves(F 曲線):手勢放開後寫入並 commit 的地方
onion skin(洋蔥皮):從實際 mesh 即時讀取顯示動畫前後狀態,可切換成 velocity each 看速度
Mixamo(Mixamo):示範用的 rig 與動畫來源,網站上可取得,rig 很簡單
FBX(FBX):示範時匯入的檔案格式
graph editor(曲線編輯器):此 UI 的目標是完全不必看它就能做動畫
weight paint(權重繪製):工具開箱直接讀取,每根骨頭對應自己的 weight paint
control rig(控制 rig):講者沒使用 control rig,所以每根骨頭直接對應 weight paint
gizmo(操作把手):按 R 出現,可移動、旋轉、兩者同時或縮放
flags(旗標):定義操作時往前、往後影響多遠
visible range(可見範圍):可增減的範圍,決定 motion paths 顯示多遠,也是快取範圍
GPU module(GPU 模組):講者用它完整打造浮動 UI,可即時讀取 Blender 的 panels
wormhole(蟲洞):講者為解決 onion skins 太多、難懂難操作而發明的東西(本段未講完)
✏️ 小考一題
依講者說明,使用者在手勢進行中(還沒放開)編輯動畫時,資料會先寫到哪裡?
A. weight paintsB. animation cacheC. graph editorD. 直接寫入 F curves 並 commit看答案
答案:B。[15:00] 講者說手勢進行中會先即時寫入 animation cache,放開後才寫入 F curves 並 commit
💛 覺得有幫助?支持一下


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