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


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