復(fù)雜動畫的實現(xiàn)往往需要大量代碼控制,同時要有精細(xì)的骨骼綁定與動作設(shè)置,需要復(fù)雜的技術(shù)與操作。但在團(tuán)結(jié)引擎 1.7.0_preview 版本起,更新的動畫系統(tǒng)基于原有框架,引入動畫節(jié)點編輯器(AnimGraph)、骨骼程序化綁定編輯器(RigGraph)、逆向運動解算與骨骼重定向(IK & Retarget)三大核心功能,顛覆傳統(tǒng)工作流,實現(xiàn)可視化節(jié)點動畫編輯、IK、動作遷移等新功能,更好賦能開發(fā)創(chuàng)作者,使用團(tuán)結(jié)引擎實現(xiàn)節(jié)點式的動畫制作。
新功能關(guān)鍵特性介紹
AnimGraph(動畫節(jié)點編輯器)
告別代碼堆砌,通過節(jié)點拖拽實現(xiàn)復(fù)雜動畫邏輯:
不同于以往的代碼控制動畫的觸發(fā)、順序、混合等,AnimGraph 采用節(jié)點圖編程范式,通過圖形化界面構(gòu)建、調(diào)試、運行動畫邏輯流程,能夠在可視化界面上支持 Clip 播放、Pose 混合、狀態(tài)機(jī)控制及腳本參數(shù)驅(qū)動等功能。
同時支持引入多種類型參數(shù),可根據(jù)需要自定義圖表行為,實現(xiàn)動畫的靈活控制。
可視化的動畫節(jié)點編輯器用于控制節(jié)點化的動畫功能編輯和動畫節(jié)點的執(zhí)行順序。
Eventgraph & Function Graph 可視化的腳本編輯用于各種事件響應(yīng),控制動畫參數(shù)和動畫執(zhí)行邏輯。
支持自定義的節(jié)點反射為 Node 到 Graph 中使用,在 ProjectSettings 中添加需要反射的腳本,即可使用自定義節(jié)點,同時不會產(chǎn)生大量無用節(jié)點反射,做到方便管理節(jié)點
Playable 系統(tǒng)作為 Unity 的底層動畫框架,團(tuán)結(jié)引擎的動畫系統(tǒng)以 Playable 為核心單元,通過節(jié)點化層級,原子化操作實現(xiàn)動畫的組合、混合與控制,突破傳統(tǒng)狀態(tài)機(jī)限制,支持靈活構(gòu)建復(fù)雜動畫邏輯。
而 AnimGraph 在此基礎(chǔ)上,采用可視化節(jié)點的方式進(jìn)行上述的原子化操作,優(yōu)勢顯著:可自由組合細(xì)粒度單元,靈活構(gòu)建復(fù)雜動畫;能精準(zhǔn)控制單個 Playable 屬性,實現(xiàn)細(xì)膩表現(xiàn);按需創(chuàng)建 Playable 節(jié)點,優(yōu)化性能;便于單獨調(diào)試,提升復(fù)用性,降低復(fù)雜動畫實現(xiàn)門檻。
團(tuán)結(jié)引擎的 Graph 系統(tǒng)中,Statemachine 每個 State 對應(yīng)獨立 PoseOutput ,支持更靈活的狀態(tài) Pose 編輯。這意味著一個 State 可以更高維度地融合角色Pose,不僅僅為傳統(tǒng)的 clip 和 blendtree,大大增加了可操作的空間。
這種高維度融合突破傳統(tǒng)層級限制,各維度動畫可獨立調(diào)整權(quán)重,既保持運動連貫性,又實現(xiàn)細(xì)節(jié)豐富的復(fù)合動畫效果,大幅提升表現(xiàn)力與開發(fā)效率。
動畫功能節(jié)點舉例
- Constraints Node
Constraints Node(約束節(jié)點)在 AnimGraph 中通過位置、旋轉(zhuǎn)、縮放等約束把一個骨骼實時對齊到目標(biāo);常用于裝備附著、道具跟隨、IK 對齊,減少武器動畫制作工作量。
- Apply Additive Node
Apply Additive Node 提供了一種新的動畫疊加模式,將設(shè)定為 additive 模式的動畫與選定的一幀靜態(tài)姿態(tài)做差值,將該變化量疊加到另外一個 base 動畫上,以實現(xiàn)提取動作語義并應(yīng)用動作語義的效果。
- BlendTree Node 資產(chǎn)化
BlendTree Node 資產(chǎn)化提供了創(chuàng)建資產(chǎn)、使用資產(chǎn)、保存資產(chǎn)等使用方式,可以實現(xiàn)同一個 BlendTree Node 在多個角色上的資產(chǎn)復(fù)用。
- Mirror Node
基于通用骨骼的動畫鏡像節(jié)點可以在運行時將角色動畫進(jìn)行鏡像,提升動畫資源復(fù)用效率。
RigGraph(骨骼程序化綁定編輯器)
基于圖編程范式的新綁定系統(tǒng)
和 AnimGraph 類似,RigGraph 同樣采用節(jié)點圖編程范式,通過連接可視化節(jié)點來組織動畫邏輯,直觀呈現(xiàn)構(gòu)建角色運動控制流程。
RigGraph 使用逆向解算控制器運動+前向解算骨骼運動,允許用戶快速將自己的動畫轉(zhuǎn)拆解成 Rig 動畫,并根據(jù)用戶想要的效果進(jìn)行控制器微調(diào),RigGraph 同時允許單獨編輯角色肢體動畫,實現(xiàn)角色快速姿勢調(diào)整。
RigGraph 允許開發(fā)者通過默認(rèn) Rig 預(yù)制件或空白 Graph 開始自定義動畫邏輯,通過在 ScriptGraph 中自定義綁定邏輯并鏈接對應(yīng)節(jié)點,支持實時編輯調(diào)試,讓骨骼綁定、IK 約束等邏輯設(shè)計,對比傳統(tǒng)綁骨方式更加直觀高效。
RigGraph 包含了多種工作流,用戶可以使用這些工作流進(jìn)行多組件協(xié)作,例如使用 timline 錄制動畫,使用 animator 快速編輯角色動畫效果,使用 animgraph 制作程序化動畫等。
新增的基于人型(Humanoid)的高級骨骼綁定解決方案:
RigGraph 新增了人型角色資產(chǎn)通用模板,可智能識別角色身體部位,實現(xiàn)對人型角色肢體的快速綁定,用戶只需要簡單的操作就可以讓自己的角色獲得一套高級骨骼綁定。
新增的人型角色資產(chǎn)通用模板包含了 IK/FK 等多種控制方式,用戶可以通過切換他們來實現(xiàn)對角色的獨特控制與使用。
和 AnimGraph 類似,RigGraph 同樣采用節(jié)點圖編程范式,通過連接可視化節(jié)點來組織動畫邏輯,直觀呈現(xiàn)構(gòu)建角色運動控制流程
![]()
獨特的 CodeGenerate 系統(tǒng)可將藍(lán)圖自動轉(zhuǎn)化為可使用 burst 編譯的高性能代碼,既保留藍(lán)圖可視化的靈活易用性,又解決了傳統(tǒng)藍(lán)圖運行效率問題,實現(xiàn)綁定邏輯開發(fā)效率與運行性能的完美平衡,大幅降低角色骨骼綁定的技術(shù)門檻與優(yōu)化成本。
![]()
在節(jié)點圖當(dāng)中執(zhí)行
![]()
Generatecode后執(zhí)行
IK & Retarget(骨骼逆向運動解算與重定向)
跨角色動作快速遷移,完美解決不同比例角色的動作適配難題:
團(tuán)結(jié)引擎的 Retarget 系統(tǒng)支持運行時重定向角色骨骼行為,能快速將現(xiàn)有動畫遷移到其他角色,無需復(fù)雜的骨骼配置與肌肉調(diào)整。無論角色體型、骨骼結(jié)構(gòu)差異如何,系統(tǒng)可自動匹配對應(yīng)骨骼運動,保留動畫精髓,大幅降低跨角色復(fù)用動畫的成本,提升資產(chǎn)利用率與開發(fā)效率。
根據(jù)客戶需求新增 PlayableGraph API
新增AnimationStream的Api:
用于訪問和修改動畫驅(qū)動骨骼的位置、旋轉(zhuǎn)和縮放,可以通過骨骼名稱直接獲取或設(shè)置來自動畫評估流程上游的骨骼姿勢信息
https://docs.unity.cn/cn/tuanjiemanual/ScriptReference/Animations.AnimationStream.GetBonePosition.html
新增 AnimationPlayableOutputExtensions 和 Animator 的 Api:
用于預(yù)設(shè)運行時所需的 AnimationClip,避免在運行階段切換 SourcePlayable 時觸發(fā) Rebind
https://docs.unity.cn/cn/tuanjiemanual/ScriptReference/Experimental.Animations.AnimationPlayableOutputExtensions.SetSourcePlayableWithoutRebind.html
https://docs.unity.cn/cn/tuanjiemanual/ScriptReference/Animator.SetupAnimationClipsUserCache.html
新增 AnimationClipPlayable 的 Api:
用于自定義PlayableGraph中的AnimationClipPlayable開啟或關(guān)閉WriteDefaults,以使已綁定但本幀未從 AnimationClip 取值的屬性使用默認(rèn)值或上一次評估值
https://docs.unity.cn/cn/tuanjiemanual/ScriptReference/Animations.AnimationClipPlayable.SetWriteDefaultValues.html
1.點擊菜單欄,Editor -> Project Settings
2.Player -> Other Settings 當(dāng)中勾選 Add AnimationGraph Package 和 Add RigGraph Package
3.運行測試場景查看項目
??注意事項
盡量避免同時打開同一個角色的 Animator 和 AnimGraph
接下來,團(tuán)結(jié)引擎仍會不斷優(yōu)化、增強(qiáng)動畫系統(tǒng)的功能,繼續(xù)往“模塊化”“智能化”發(fā)展,進(jìn)一步拓展功能邊界,為開發(fā)者與創(chuàng)作者帶來更高效、更自由的動畫創(chuàng)作體驗。基于 AnimGraph、RigGraph 以及 Retarget 三大新功能模塊,繼續(xù)優(yōu)化 Graph 系統(tǒng)性能,實現(xiàn)更加流暢、高效的工作流;不斷加強(qiáng)骨骼識別算法與動態(tài)約束推理能力,增強(qiáng)骨骼的適配度;增加更多類型節(jié)點,提供更多、更靈活的動畫創(chuàng)作選擇。
更多使用指南:
https://docs.unity.cn/cn/tuanjiemanual/Manual/Animation-whats-new.html
Unity 官方微信
第一時間了解Unity引擎動向,學(xué)習(xí)進(jìn)階開發(fā)技能
每一個“點贊”、“在看”,都是我們前進(jìn)的動力


特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.