如何在不同骨骼通道上編輯唇形同步與身體動畫
若要編輯唇形同步而不影響身體動畫,請為每種表演各建立一個動作,只包含它應控制的屬性,然後在不同動畫軌道上同時播放這些動作。將下顎和嘴唇控制項放在嘴部動作中;將根部移動、四肢、軀幹、頸部和頭部轉動放在身體動作中。
本教學使用 Blender 4.5 LTS,以及一個嘴部和身體控制項都已正常運作的角色。具體任務是在保留既有身體表演的同時,調整嘴型和對白時序。Blender 的非線性動畫編輯器(NLA 編輯器)提供可用來組合這些動作的軌道。Blender 手冊:軌道
究竟是什麼讓嘴部動畫與身體動畫彼此分開?
在 Blender 中,動作會儲存動畫資料。F 曲線描述個別屬性如何隨時間變化,例如骨骼的旋轉或控制項的自訂屬性。骨骼名稱下方顯示的通道群組有助於整理這些曲線,但群組名稱不會限定角色各部位由誰控制。Blender 手冊:動作
實用的原則是,每個動畫屬性都指定一個負責的動作。即使兩個動作分別命名為 Body 和 LipSync,只要都包含同一個下顎控制項的曲線,仍可能互相干擾。反之,同一個骨架上的不同動作,只要動畫屬性彼此分開,就能順利搭配運作。這個工作流程的依據,就是將曲線本身分開。
動作槽有不同用途:它們會整理動作中的資料區塊所對應的不同動畫資料。在這種單一骨架的工作流程中,請分別使用身體動作和嘴部動作,並為骨架物件指派適當的槽。建立名為「mouth」和「body」的槽,不會自動將骨骼分類到對應類別中。Blender 手冊:動作槽
哪些控制項應分別歸屬於各個動作?
開始編輯前,先列一份簡單的歸屬表。以下是建議配置,並非 Blender 強制要求的命名慣例:
| 控制項或屬性 | 建議歸屬 | 編輯原則 |
|---|---|---|
| 根部移動、軀幹、四肢 | 身體動作 | 修改對白時保留 |
| 頸部和頭部轉動 | 身體動作 | 將角色的整體表演維持在一起 |
| 下顎張合和嘴唇控制項 | 唇形同步動作 | 根據對白調整 |
| 眨眼和眉毛控制項 | 可選的表情動作 | 只有在獨立編輯有幫助時才分開 |
| 驅動嘴型的自訂屬性 | 唇形同步動作 | 對實際產生嘴型的屬性設定關鍵影格 |
記錄關鍵影格前,先測試骨架。移動一個嘴部控制項,觀察哪些部分會改變,然後將它還原。確認可見的嘴型是來自控制項的變換、自訂屬性,還是驅動關係。Blender 的最終動畫除了關鍵影格變換,也可能包含驅動器和約束,因此變形骨骼通道看起來是空的,並不能證明嘴部沒有動畫。Blender 手冊:編輯片段—烘焙動作
保留既有階層結構。子骨骼通常會繼承父骨骼的位置、旋轉和縮放。因此,嘴部控制項可以有獨立的局部動畫,同時仍跟隨頭部轉動。通常不需要為了分開編輯而斷開下顎,或更改骨骼的父子關係。Blender 手冊:關係
如何在既有身體動作旁建立嘴部動作?
先儲存一份可供作業的專案副本。選取骨架,開啟 Dope Sheet 的 Action Editor 模式,並檢查既有的身體動作。展開通道,確認其中包含歸屬表中指定給身體的屬性。
使用 Push Down Action 將該動作移至 NLA 片段。這會讓骨架不再有作用中的動作。Blender 的 Stash Action 功能則會將動作放到靜音軌道,以便日後使用。若希望身體動畫在作業時繼續播放,請使用 Push Down。Blender 手冊:動作編輯器
在現在空白的 Action Editor 中建立新動作,並為它取一個清楚的名稱,例如 LipSync_Line01。進入 Pose Mode,選取一個嘴部控制項,並在其預定屬性上插入初始關鍵影格。繼續之前,確認新動作及其槽都已指派給骨架。
只對嘴部清單中的屬性設定關鍵影格。若會重複進行這項工作,可以建立包含這些屬性的自訂關鍵影格集。關鍵影格集會為一組指定的屬性插入關鍵影格,因此每次作業前都要檢查目前作用中的集合;一般的角色集合可能包含超出本任務需求的控制項。Blender 手冊:關鍵影格集
完成嘴部動畫後,也將它推送至 NLA。把嘴部片段放在身體軌道上方的另一個 NLA 軌道,並讓兩個片段都涵蓋預定的表演區間。現在,你有了可分別選取、檢查和修改的片段。
如何拆分已經包含兩種表演的動作?
如果原始動作已包含嘴部和身體關鍵影格,請先保留原始版本,再移除任何通道。一種實用方法是將它推送至 NLA 編輯器,使用 Strip → Duplicate 複製片段,並將複本放在另一個軌道上。這個命令會複製所參照的動作;Linked Duplicate 則會共用該動作。若現有動作已被共用,可以使用 Make Single User,在編輯前建立獨立動作。Blender 手冊:編輯片段
將兩個動作分別重新命名為 Body 和 LipSync。編輯身體動作複本,只移除歸屬於嘴部的通道。接著編輯唇形同步動作複本,只移除歸屬於身體的通道。保留一份未修改的專案副本,以便找回不慎漏掉的控制項。
使用 Channel → Delete Channels 移除整個不需要的通道。使用鍵盤快速鍵時,指標必須位於通道區域;若指標在關鍵影格區域,刪除的會是選取的關鍵影格。若一個控制項有多種用途,請檢查其屬性路徑,而不要未確認內容就刪除整個骨骼群組。Blender 手冊:編輯通道
分別單獨測試兩個結果。身體動作應能重現身體表演,但不包含已錄製的嘴部動作。唇形同步動作應包含對白嘴型,但不包含根部移動或手勢。然後同時啟用兩者,檢查組合後的結果。
哪些混合設定能讓動作彼此獨立?
若兩個動作各自控制不同屬性,請先使用 Replace 混合模式並設定完整影響力。Replace 會以較上方片段的值覆寫較下方軌道中受動畫控制的屬性,但不會建立骨骼篩選器。如果啟用唇形同步後身體姿勢也改變,請先檢查嘴部動作是否包含多餘的身體曲線,再調整混合模式。Blender 手冊:NLA 側欄
若嘴部片段只應在其邊界範圍內作用,請將延伸方式設為 Nothing。Hold 和 Hold Forward 會讓端點值延伸至片段之外。若需要受控的過渡,也請在開始和結束附近為預期的靜止嘴型設定關鍵影格;單靠延伸方式無法設計過渡。
請將以下控制項分開看待:歸屬關係決定片段為哪些屬性製作動畫,混合決定重疊的值如何組合,延伸方式則決定片段以外會發生什麼事。依此順序排查。
如何調整唇形同步時序,又不移動手勢?
選取嘴部片段,然後在 NLA 編輯器中按 Tab 進入 Tweak Mode。Blender 的完整堆疊微調模式會讓其他軌道保持啟用,同時顯示所選動作的關鍵影格。這樣就能在看到身體表演的同時,微調嘴部動作。移動片段本身之前,請先退出 Tweak Mode。Blender 手冊:開始微調片段動作
選擇能解決問題的最小幅度時序調整。如果只有一個嘴型出現得太早或太晚,就移動個別嘴部關鍵影格。如果整句台詞都有一致的偏移,就移動整個嘴部片段。只有在整體時長需要改變時才縮放片段。Blender 將移動片段、裁切動作範圍和調整播放比例視為不同操作。Blender 手冊:NLA 側欄
舉例來說,假設專案以每秒 24 格播放,而且每個嘴型都晚了 0.25 秒。偏移量是 24 × 0.25 = 6 frames。將嘴部片段提前六格,身體片段和音訊參考都保持原位。如果開頭對齊,但結尾逐漸偏離,單純調整偏移量無法修正整句台詞;請改為檢查時長和中間的嘴型。
每次修改後,都重新播放整句台詞,並檢查開頭和結尾的嘴型。局部修正可能讓某個音節變得更好,卻使旁邊的過渡變得突兀。在最後檢查時,請讓身體軌道保持可見。
如何快速排查動畫互相干擾的原因?
依照以下順序找出原因,再決定是否需要重建動畫:
- 檢查通道歸屬。 查看嘴部動作中是否有根部、四肢、頭部或不相關的自訂屬性曲線。
- 單獨播放各個軌道。 Blender 的 Solo 控制項會隔離軌道,也會將作用中的 Action Track 設為靜音。確認每個片段都包含預期的表演。Blender 手冊:軌道
- 檢查共用動作。 如果變更一個片段也會改變另一個,請檢查它們是否參照同一個動作;必要時建立獨立複本。
- 檢查片段邊界。 如果對白結束後嘴型仍持續,請檢查延伸方式和端點關鍵影格。
- 檢查驅動器和約束。 如果曲線彼此分開,但骨架中的動作仍會互相牽動,請追查產生最終姿勢的控制項。
不要用通道鎖定來取代分離。受保護的通道無法編輯,而靜音的通道則不會影響動畫。這兩種操作都不會將通道從動作中移除。若要製作可重複使用的純嘴部片段,整理好通道歸屬比暫時停用一堆曲線更容易檢查。Blender 手冊:編輯通道
匯出時如何保留組合後的結果?
如果工作只需輸出 Blender 渲染,請保留分開的動作,方便日後修改。如果需要 glTF 角色檔案,請仔細選擇匯出模式:匯出器的 NLA Tracks 模式會將各個軌道匯出為獨立動畫,而 Scene 模式會匯出評估後的場景動畫。因此,即使畫面上有兩個軌道,也不代表它們會自動匯出為一個組合片段。Khronos glTF-Blender-IO 文件:動畫
若要輸出一段組合後的表演,請使用可擷取評估後場景的匯出設定,並在匯出後於目的地檢查檔案。確認對白時序、頭部動作、嘴部端點和所選影格範圍。匯出器文件也指出,若要取樣由骨骼驅動的形狀鍵動畫,網格必須是骨架的直接子物件。如果嘴部骨架採用這種配置,請確認符合此條件。Khronos glTF-Blender-IO 文件:匯出
完成後的設定應能讓你分別修改嘴型、移動對白片段和調整手勢。請在來源專案中保留可編輯的動作,確認它們的屬性歸屬,並在每次調整時序後檢查組合播放結果。
