在團結引擎 1.9.0 版本中,動畫系統圍繞角色移動、動畫圖控制和程序化綁定工作流進行了進一步升級。Locomotion 新增 Rotate Root Bone、Stride Warping、Inertialization、Distance Matching 等能力,支持更自然的朝向控制、步幅適配、動畫過渡和位移匹配,有效減少滑步與姿態突變問題。
同時,AnimGraph 增強了 Additive、AnimationClip 與 Event 控制能力,Rig Graph 也在 Code Generate、IK、射線檢測、Gizmo 繪制等方面持續完善,幫助開發者更高效地構建穩定、自然、可控的角色動畫系統。
Locomotion
Stride Warping 步幅變形節點
AnimGraph 新增的 StrideWarping(步幅縮放) 節點提供了另一種思路:不修改動畫資源,在運行時動態縮放步幅,使腳步覆蓋的距離與角色的實際移動速度相匹配。
以下為同一段行走動畫在不同移動速度下的步幅縮放效果:
![]()
Inertialization 慣性化混合節點
動畫切換時的姿態突變,是動作類游戲中常見的動畫品質問題。傳統線性混合雖能緩解突變,但在過渡期間會將兩個姿態按權重混合,導致目標動畫的運動軌跡被稀釋。
AnimGraph 現已新增 Inertialization(慣性化混合) 節點,通過記錄姿態差異并逐步衰減的方式,在過渡期間完整播放目標動畫,避免運動軌跡被稀釋。
以下為同一段動畫切換的三種過渡方式對比:
![]()
性能測試數據: 由于僅需評估目標動畫,過渡期間性能有所提升,100個如上圖所示的角色來回切換動作的場景中,過渡階段性能平均提升4.5%,非過渡階段性能損耗0.4%。較短的過渡時長在過渡階段能獲得更好的性能提升,非過渡階段的性能下降也更少。
![]()
慣性化與線性化過渡性能對比
Rotate Root Bone 旋轉根骨骼節點
旋轉根骨骼節點(Rotate Root Bone Node)的核心作用是根據輸入的偏航角(Yaw)和俯仰角(Pitch)旋轉角色的根骨骼,常用于實現角色頭部/軀干的上下左右朝向控制、瞄準姿態調整等效果。
該節點支持對輸入角度進行范圍映射、鉗制和平滑插值處理,確保旋轉效果自然流暢。
Distance Match 距離匹配功能
距離匹配(Distance Matching)節點的核心作用,在于將動畫播放的驅動邏輯由傳統的“時間軸驅動”轉變為“空間位移驅動”。它能夠根據角色實際移動距離動態匹配動畫進度,從而有效保證起步、急停和快速變向等場景下,腳步動作與物理位移在時間和空間上的一致性。使用距離匹配首先需要在動畫 inspector 上勾選 lockToRoot 來生成一根距離曲線,有了距離曲線之后后續節點會通過采樣曲線數值來計算出實際的位置。
動畫通常依賴時間軸播放,常常導致膠囊體已停止但腳步還在滑動。該功能需與基于物理預測邏輯配合使用:實時計算出角色靜止所需的預測停止距離,節點則據此直接跳轉至對應的動畫幀,確保角色移動表現與物理空間位移的一致性。并引入了基于距離數據的動畫序列評估器,支持查詢并直接輸出動畫曲線中與距離標記相匹配的幀姿態,可有效解決角色滑步問題。
距離匹配需要在 Animation Graph 中通過 Animation Evaluator Node 進行計算,不同于 Animaiton Clip Node,Evaluator 只能通過設置精確時間來采樣姿態,姿態更新需要通過在右側的 bindingFunctions 欄目里根據需要執行的頻率不同來在不同的細分類別中添加函數來進行驅動(如果全局只需要執行一次則在 OnInitFunctions 中添加,如果每幀都需要執行則在 UpdateBindingFunctions 欄里添加,如果每次進入狀態執行一次則在 OnBecameRevalentFunctions 里添加),每個函數需要給定一個 AnimEvaluator 格式的入參,不能有輸出參數。
AnimGraph 動畫控制增強
- Apply Additive 節點和 Dynamic Additive 節點支持 MeshSpace。勾選 MeshSpace,動畫旋轉的差值運算和疊加運算均發生在全局坐標系中;不勾選 MeshSpace,則默認動畫旋轉的差值運算和疊加運算均發生在局部坐標系中。
- Apply Additive 節點和 Dynamic Additive 節點兼容 BlendTree 節點。BlendTree 節點的輸出端口可以連接 Apply Additive 節點和 Dynamic Additive 節點的輸入端口,注意:與 Apply Additive 節點的 Additive 端口相連的 BlendTree 節點內部使用的動畫應正確設置 Additive 參數以控制疊加效果。
![]()
- AnimationClip 節點支持 OverrideLoop 和 StartPosition,可以單獨控制節點的loop和開始播放點位,不用更改clip資產
![]()
- 新增 BecomeRelevantBinding,每次激活對應Node的時候都會執行調用
![]()
- Blendtree 和 Clip 節點通過 EventClip 節點實現 Event 控制機制和 AnimationClip 分離。
![]()
![]()
RigGraph 工作流升級
- Code Generate 功能增強:兼容模塊化資產,并支持 Rig Graph Manager 組件資產列表中包含多個資產的場景。當模塊化資產中包含所有的人體綁定模塊時,使用 Code Generate 并開啟 Brust 時會大幅提升 Runtime 下的運行速度。
![]()
未使用 Code Generate
![]()
使用了 Code Generate
- Bone Render:Rig Graph 資產編輯器界面中,參考模型的骨骼被高亮渲染顯示。用戶可自行編輯骨骼渲染的樣式。
- Ray Cast:新增 Ray Cast Node 實現射線檢測。
- FullBodyIK:在 Rig Graph 中新增基礎的 Full Body IK 功能節點。
- Chain IK Constraint:在 Rig Graph 中新增 Chain IK Constraint 節點,可用于 Script Graph 中的綁定邏輯創建。
- Gizmo 繪制:在script graph中添加Gizmo繪制的相關節點:Draw Cube Safe、Draw Icon Safe、Draw Line Safe、Draw Wire Cube Safe、Draw Sphere Safe、Draw Wire Sphere Safe、Draw Ray Safe (Ray)、Draw Ray Safe (From&Direction),并增加Set Gizmo Color 和 Set Gizmo Matrix 節點以設置 Gizmo 的顏色和變換矩陣。
- Time 節點:Rig Graph 中提供了獲取一些時間屬性的節點,這些節點可以獲取或設置時間相關的屬性。
Event Graph CodeGen
使用 CodeGen 可以使得 EventGraph 和 Function 部分的運行更加快速。使用方法:點擊 Compile 按鈕可以將 EventGraph 和 Functions 編譯為C,C# 代碼存放于 Assets/AnimGraph.Generated 文件夾下面,存在 C# 代碼會自動使用編譯后的代碼,不再通過圖邏輯解釋執行。
![]()
編譯后直接走C# 邏輯更新,可有效提升運行速度并減少GC(垃圾回收)開銷。
![]()
未使用Code Gen
![]()
使用了Code Gen
快速上手
點擊菜單欄,Editor -> Project Settings
Player -> Other Settings 當中勾選 Add AnimationGraph Package和 Add RigGraph Package 運行測試場景查看項目
更多使用指南:https://docs.unity.cn/cn/tuanjiemanual/Manual/Animation-whats-new.html
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.