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


🏦 台灣Pay 銀行轉帳 💙 PayPal
示範 Motion Sculpting 工具:用 screen space、IK、鎖定、spline、brush 直接在視窗裡改動畫
- 21:59 概念是「五維動畫」:一般用 X、Y、Z 加時間四個維度,這裡再加上 screen space,用來看動畫的來向與去向。
- 27:30 雙腳繼續播自己的動畫:它們不是被鎖在空間中,而是被鎖在自己的動畫裡。這裡是在 FK chain 上從 root 往下做 IK。
- 32:51 講者覺得畫面有點干擾,準備調整 onion skin 的顯示(字幕在此中斷)。
💡 你可以怎麼用:在 Blender 做動畫時,可以先打開 onion skin 和 motion path,看清楚動作從哪來、往哪去。要改某個動作前,先想好要影響前後幾格、哪些部位要鎖住不動(例如腳),再動手拖。
看全部 40 條重點
🧑🏫 這段是 BCON26 的實機示範。講者展示自己做的 Motion Sculpting 工具,重點是不用進曲線編輯器,直接在 3D 畫面裡抓著角色改動畫,還能同時看到前後時間的變化。想了解動畫還能怎麼「直接動手改」的人,可以看看他的思路。
- 21:59 概念是「五維動畫」:一般用 X、Y、Z 加時間四個維度,這裡再加上 screen space,用來看動畫的來向與去向。↳ 一般動畫只有位置(X、Y、Z)和時間四個維度。講者多加一個 screen space,也就是螢幕平面上的方向,把時間攤開在畫面上,一眼就看出動作從哪來、往哪去。
- 21:59 就算角色在該段沒有移動也看得到時間變化,靜態與動態的動畫都適用。↳ 就算角色這段站著不動,時間的變化一樣能攤開來看。所以不管是靜止的姿勢,還是大動作,都能用這招檢查。
- 22:33 做法是把空間資訊拆到 screen space(由右到左),讓 onion skin 散開排列在周圍。↳ onion skin 是把前後幾格姿勢半透明疊在一起顯示。平常它們擠在同一處很難看清楚,這裡把時間沿畫面由右到左排開,前後幾格就散在周圍,一格一格看得清楚。
- 22:33 motion path 也會跟著展開。原本難以判讀的路徑,換個角度就能看出頭部的傾斜(aim space),另一個角度則能看出相對自身的 tilt。↳ motion path 是把某個部位的移動畫成一條軌跡線。它也會跟著攤開,從一個角度看得出頭朝哪裡歪(aim space,指的方向),換個角度又看得出頭相對身體本身的傾斜(tilt)。
- 22:33 移動當前這一格時,範圍內其他所有格都會跟著受影響。↳ 拖動目前這一格的姿勢時,改到的不只這一格,設定範圍內前後的影格也會一起被帶著改,不用一格一格調。
- 23:05 範例範圍是往前 19 格、往後 22 格,講者表示大概不想超出這個範圍。↳ 範例把影響範圍設成往前 19 格、往後 22 格。講者說他大概不會開得比這更大。
- 23:05 可以控制 decay,選項有 smooth、linear、ease in、ease out,決定修改如何擴散到相鄰影格。↳ decay 是「衰減」,決定改動傳到旁邊影格時怎麼逐漸變弱。smooth 是平順,linear 是等量遞減,ease in、ease out 是慢進、慢出的變化方式。
- 23:37 這個 timeline 可以像在 viewport 一樣用滑鼠中鍵拖曳捲動,不需要其他工具。↳ timeline(時間軸)可以直接按住滑鼠中鍵拖著捲動,手感跟在 viewport(看 3D 場景的主視窗)裡轉畫面一樣,不用切換到其他工具。
- 23:37 講者自己另一個工具可以按住 space 在影格間移動,他比較習慣這樣,而不是在 timeline 上 scrub。↳ 講者自己另外寫的工具可以按住空白鍵在影格之間移動,他比較習慣這樣,不習慣在 timeline 上 scrub(用滑鼠拖著時間軸來回看)。
- 24:10 系統除了傳統 FK,也能用 IK 操作,讓移動與影響的方式符合使用者看到時的直覺預期。↳ FK(正向運動)是從肩膀、手肘一節一節轉到手。IK(反向運動)是直接拉手,關節會自己算出怎麼彎。兩種都能用,拉哪裡、哪裡就照直覺動。
- 24:10 這很接近講者最初的目標:stop-motion 風格、可觸摸的動畫,但又能看見時間,回到各格互動修改,這是傳統動畫做不到的。↳ stop-motion(定格動畫)是一格一格親手擺偶。講者想要那種摸得到的手感,同時又能看到前後時間、隨時回去改某一格,這是傳統定格動畫做不到的。
- 24:47 只要是有效的 IK chain,pole 就會自動出現。chain 可以是任意數量、任意長度。↳ IK chain 是一串由 IK 控制的骨頭,例如大腿到腳。只要設定正確,pole(控制膝蓋或手肘朝向的控制點)就會自動出現,要幾條、多長都可以。
- 25:23 pole 可以隨意調整,整條腿的骨頭會把動畫分散到時間上,onion skin 上看得到修改的擴散。↳ 拖動 pole 時,整條腿的骨頭會把這次改動分攤到前後影格。旁邊散開的 onion skin 會即時顯示改動一路擴散的樣子。
- 25:23 只想調膝蓋時,可以用 rotation lock,它可以設在操作點的上游(upstream)或下游(downstream)。↳ 只想動膝蓋、不想連帶轉到其他地方時,可以用 rotation lock(鎖住旋轉)。它能鎖操作點的上游(往身體那側)或下游(往末端那側)。
- 25:54 範例鎖下游:操作時腳的旋轉被鎖住。這個鎖只對「這一次 gesture」有效,不是狀態,也不是全域設定。↳ 範例鎖的是下游,所以拖的時候腳掌角度不會跟著轉。這個鎖只對「這一次拖動」(gesture)有效,放手就解除,不是一直開著的開關。
- 25:54 想移動身體但讓腳保持原位時,選取要固定的部位按 lock,會同時鎖定位置與旋轉,同樣只對該次 gesture 有效。↳ 想移動身體、又要腳踩在原地時,就選取腳按 lock,位置和角度會一起鎖住。這個鎖同樣只管這一次操作。
- 26:24 操作有點慢,因為每個被操作的骨頭、每一格都要前後計算 50 格的動畫傳遞,再加上 onion skin 與 motion path。↳ 操作起來有點慢,因為每動一根骨頭,每一格都要往前、往後各算 50 格的傳遞,還要重畫 onion skin 和 motion path,計算量很大。
- 26:55 實例:角色先有預備動作(anticipation)再揮砍,講者要把 anticipation 做得更誇張。↳ 實際例子:角色揮砍前有個 anticipation,也就是預備動作,例如先往後縮蓄力。講者想把這個預備動作做得更誇張。
- 26:55 範圍會顯示在 onion skin 和曲線上。範例把範圍設成約 10 格,往後延伸到揮砍開始之前。↳ 影響範圍會直接標在 onion skin 和曲線上。範例設約 10 格,往後延伸到揮砍開始之前。
- 26:55 直接按 G 移動即可,也可以打開 gizmo 做同樣的事;講者偏好用 hotkey。↳ 直接按 G(移動的快捷鍵)拖就行。也可以打開 gizmo(畫面上可以拖的箭頭把手),效果一樣。講者偏好用 hotkey,也就是快捷鍵。
- 27:30 雙腳繼續播自己的動畫:它們不是被鎖在空間中,而是被鎖在自己的動畫裡。這裡是在 FK chain 上從 root 往下做 IK。↳ 身體改了,雙腳還是照原本的動畫走。腳是鎖在「自己的動畫」裡,不是被釘在空中某個點。做法是從 root(骨架的根部)往下,在 FK 骨頭上算 IK。
- 27:30 保留原範圍,讓動作更往前攻擊:先下沉、往前攻,再接著播放其餘動畫。↳ 範圍不變,把動作改成更往前攻:先往下沉、再往前衝,接著照原本剩下的動畫繼續播。
- 27:30 假設在為電子遊戲編輯動畫,想改這次揮砍。因為是很大的弧線,講者選擇直接看弧線,不用 wormhole。↳ 假設在改遊戲用的揮砍動作。揮砍是一條很大的弧線,講者選擇直接看弧線來改,這次不用 wormhole(工具裡的另一個功能,影片這段沒細講)。
- 28:07 改用 spline 工具。講者在正式製作的 rig 上有另一版工具會保留原路徑,這裡示範的版本則會破壞原路徑。↳ 接著改用 spline 工具,也就是用少數控制點拉出平滑曲線。這裡示範的版本會把原本的路徑蓋掉;講者在正式角色骨架上用的版本會保留原路徑。
- 28:37 他在控制手臂 IK 的密集動畫上加了兩個 spline 控制點,可以即時決定 IK 攻擊的位置。↳ 他在手臂 IK 那段很密的動畫上加了兩個 spline 控制點,拖動控制點就能即時決定手要攻擊到哪裡。
- 28:37 另外加了 tension slider,控制有多少動畫被送往兩端中的哪一端,也能控制肢體描出的 tangent。↳ 另外還有 tension slider(張力滑桿),決定動作比較偏向曲線的哪一端。它也能控制 tangent,也就是手臂劃過時曲線的切線走向。
- 29:09 如果 spline 超出肢體能達到的範圍,肢體就不會再延伸。講者計畫之後支援 stretchy limbs。↳ 曲線如果拉到手伸不到的地方,手臂停在最長處就不會再伸。講者打算之後支援 stretchy limbs,也就是可以拉長的四肢。
- 29:09 把揮砍調低一點,讓結尾加速、開頭變慢。因為目前的計算方式,會看到一點小跳動。↳ 把揮砍壓低一點,讓開頭慢、結尾快。以目前的計算方式,畫面上會看到一點小跳動。
- 29:40 講者強調他不是說 spline 不重要,而是不想待在 graph editor 裡。↳ graph editor 是把動作畫成數值曲線來調的編輯器。講者強調曲線本身很重要,他只是不想整天待在那種看數值曲線的畫面裡。
- 29:40 他認為 graph editor 是一種抽象:當年無法即時畫出路徑,所以才把動作拆解成 XYZ 座標。↳ 他認為 graph editor 是一種抽象:早年電腦沒辦法即時畫出動作路徑,只好把動作拆成 X、Y、Z 三條數值曲線來調。
- 30:14 graph editor 的簡化確實有助於賣出動作,很多動畫工具都有利用這點。↳ 他也承認,這種拆解後的簡化確實能讓動作更有說服力,很多動畫工具都有利用這一點。
- 30:14 但講者更重視能直接觸碰動畫:與其拉曲線做 overshoot,不如抓住物體自己做出 overshoot。↳ 但他更在乎能直接碰到動畫。overshoot 是動作衝過頭再彈回來;與其拉曲線做出這個效果,他寧可直接抓著物體衝過頭再拉回來。
- 30:44 按住 Alt 可以即時看到結果,也能再次修改。講者不喜歡 graph editor,只喜歡看得到、能直接移動的介面。↳ 按住 Alt 可以即時看到改完的結果,還能接著再改。講者不喜歡 graph editor,只喜歡看得到、能直接拖的介面。
- 30:44 手肘彎曲可能是因為已達最大角度,所以稍微彎一點、往內收來修正。↳ 手肘彎得怪,可能是已經伸到最大角度了。所以讓手肘稍微多彎一點、往內收,就修正過來。
- 31:16 這個 IK 關節沒有其他規則,只會避免拉伸超過最大長度的 99%,以防 pop,因此也有一些限制。↳ 這個 IK 關節沒有其他規則,只會避免拉到超過最大長度的 99%,防止 pop(關節快伸直時突然跳一下)。也因為這樣,有些狀況處理不了。
- 31:47 修改後可能產生問題,需要留意。可以選取 pole 讓軌跡 smooth 一點,即時讓曲線更符合需求。↳ 改完可能會冒出新問題,要留意。例如可以選取 pole,把它的軌跡 smooth(平滑)一下,曲線就會即時變順。
- 31:47 隨時可以逐格修改:不用 influence,回到上一格直接把 pole 設成想要的樣子,不必依賴傳播工具。↳ 隨時都能回到單一格手動改:不開 influence(影響範圍),直接回到上一格把 pole 擺到想要的位置,不必靠傳播工具。
- 32:21 結尾動作有點突兀,所以改用 brush 工具處理。↳ 結尾的動作有點突兀,所以改用 brush(筆刷)來處理,像塗抹一樣去修。
- 32:21 brush 有自己的範圍,它用 influence 而不是 flag。onion skin 的深淺代表受影響的程度。↳ brush 有自己的範圍,用 influence 決定每格被影響多少,不是用 flag(一格一格標記要不要改)。onion skin 的深淺代表那一格被影響的程度。
- 32:51 講者覺得畫面有點干擾,準備調整 onion skin 的顯示(字幕在此中斷)。↳ 講者覺得畫面有點雜,準備調整 onion skin 的顯示方式,字幕在這裡中斷。
📘 術語
screen space(螢幕空間):在 X、Y、Z、時間之外加入的維度,用來在畫面上攤開顯示動畫的前後。
onion skin(洋蔥皮):顯示前後影格。在這裡會散開排列,深淺代表 brush 的影響程度。
motion path / path(運動路徑):在 screen space 中會展開,能看出頭部傾斜等資訊。
aim space(朝向空間):字幕用它描述從路徑可看出的頭部傾斜方向。
decay(衰減):控制修改如何擴散到相鄰影格,有 smooth、linear、ease in、ease out。
ease in / ease out(漸入/漸出):decay 的選項之一,決定修改傳播到鄰近影格的方式。
timeline(時間軸):可用滑鼠中鍵拖曳捲動,操作方式和 viewport 一樣。
scrubbing(拖曳時間軸):在 timeline 上拖動來切換影格,講者比較習慣按住 space 的方式。
FK(正向運動學):字幕稱為傳統 FK,是系統預設的操作方式之一。
IK(inverse kinematics)(反向運動學):讓物體移動與影響的方式符合看到時的預期。
IK chain(IK 鏈):有效的 IK chain 會自動產生 pole,可以是任意數量、任意長度。
pole(極向控制器):IK chain 自動產生的控制器,可隨意調整,也能 smooth 其軌跡。
rotation lock(旋轉鎖定):可鎖操作點的上游或下游旋轉,只對該次 gesture 有效。
lock(鎖定):選取部位後鎖住位置與旋轉,只對該次 gesture 有效。
gesture(單次操作):鎖定的有效範圍,不是狀態也不是全域設定。
upstream / downstream(上游/下游):rotation lock 可以設在操作點的上游或下游。
root(根骨):範例中從 root 往下,在 FK chain 上做 IK。
anticipation(預備動作):揮砍前的準備動作,範例中把它改得更誇張。
gizmo(操作控制器):可以打開 gizmo 做和按 G 一樣的移動,講者偏好 hotkey。
hotkey(快捷鍵):講者偏好用快捷鍵(例如 G)而不是 gizmo。
wormhole(wormhole):揮砍是很大的弧線,講者想直接看弧線,所以這次不用它。
spline(樣條曲線):加兩個 spline 控制點,即時決定 IK 攻擊位置;此版本會破壞原路徑。
tension slider(張力滑桿):講者自訂的控制器,決定多少動畫被送往兩端中的哪一端。
tangent(切線):用 tension slider 可以控制肢體描出的 tangent。
stretchy limbs(可伸縮肢體):目前不支援,spline 超出範圍時肢體不會再延伸,講者計畫之後支援。
graph editor(曲線編輯器):講者認為是抽象:過去無法即時畫路徑,才拆成 XYZ 座標。
overshoot(過衝):講者主張直接抓住物體自己做出 overshoot,而不是拉曲線。
pop(彈跳/跳動):IK 關節避免拉伸超過最大長度的 99%,就是為了防止 pop。
influence(影響程度):brush 用 influence 決定範圍,onion skin 的深淺表示影響大小。
brush(筆刷):有自己的範圍,用 influence 而非 flag,用來修正突兀的動作。
propagation tools(傳播工具):把修改擴散到其他影格的工具,逐格修改時可以不依賴它。
onion skin(洋蔥皮):顯示前後影格。在這裡會散開排列,深淺代表 brush 的影響程度。
motion path / path(運動路徑):在 screen space 中會展開,能看出頭部傾斜等資訊。
aim space(朝向空間):字幕用它描述從路徑可看出的頭部傾斜方向。
decay(衰減):控制修改如何擴散到相鄰影格,有 smooth、linear、ease in、ease out。
ease in / ease out(漸入/漸出):decay 的選項之一,決定修改傳播到鄰近影格的方式。
timeline(時間軸):可用滑鼠中鍵拖曳捲動,操作方式和 viewport 一樣。
scrubbing(拖曳時間軸):在 timeline 上拖動來切換影格,講者比較習慣按住 space 的方式。
FK(正向運動學):字幕稱為傳統 FK,是系統預設的操作方式之一。
IK(inverse kinematics)(反向運動學):讓物體移動與影響的方式符合看到時的預期。
IK chain(IK 鏈):有效的 IK chain 會自動產生 pole,可以是任意數量、任意長度。
pole(極向控制器):IK chain 自動產生的控制器,可隨意調整,也能 smooth 其軌跡。
rotation lock(旋轉鎖定):可鎖操作點的上游或下游旋轉,只對該次 gesture 有效。
lock(鎖定):選取部位後鎖住位置與旋轉,只對該次 gesture 有效。
gesture(單次操作):鎖定的有效範圍,不是狀態也不是全域設定。
upstream / downstream(上游/下游):rotation lock 可以設在操作點的上游或下游。
root(根骨):範例中從 root 往下,在 FK chain 上做 IK。
anticipation(預備動作):揮砍前的準備動作,範例中把它改得更誇張。
gizmo(操作控制器):可以打開 gizmo 做和按 G 一樣的移動,講者偏好 hotkey。
hotkey(快捷鍵):講者偏好用快捷鍵(例如 G)而不是 gizmo。
wormhole(wormhole):揮砍是很大的弧線,講者想直接看弧線,所以這次不用它。
spline(樣條曲線):加兩個 spline 控制點,即時決定 IK 攻擊位置;此版本會破壞原路徑。
tension slider(張力滑桿):講者自訂的控制器,決定多少動畫被送往兩端中的哪一端。
tangent(切線):用 tension slider 可以控制肢體描出的 tangent。
stretchy limbs(可伸縮肢體):目前不支援,spline 超出範圍時肢體不會再延伸,講者計畫之後支援。
graph editor(曲線編輯器):講者認為是抽象:過去無法即時畫路徑,才拆成 XYZ 座標。
overshoot(過衝):講者主張直接抓住物體自己做出 overshoot,而不是拉曲線。
pop(彈跳/跳動):IK 關節避免拉伸超過最大長度的 99%,就是為了防止 pop。
influence(影響程度):brush 用 influence 決定範圍,onion skin 的深淺表示影響大小。
brush(筆刷):有自己的範圍,用 influence 而非 flag,用來修正突兀的動作。
propagation tools(傳播工具):把修改擴散到其他影格的工具,逐格修改時可以不依賴它。
✏️ 小考一題
關於示範中的 rotation lock/lock,下列敘述何者正確?
A. 鎖定後會成為全域狀態,直到手動解除為止B. rotation lock 只能鎖定操作點的上游C. lock 只會鎖定位置,不會鎖定旋轉D. 鎖定只對當次操作(gesture)有效,不是狀態也不是全域設定看答案
答案:D。[25:54] 講者說「It's not a state, it's not a global thing, it's for that gesture」,並說明 rotation lock 可設在上游或下游,lock 會同時鎖位置與旋轉([25:54]–[26:24])。
💛 覺得有幫助?支持一下


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