神經(jīng)變形器簡(jiǎn)介
神經(jīng)變形器(Neural Deformer)是團(tuán)結(jié)引擎中的一種基于機(jī)器學(xué)習(xí)的高保真度網(wǎng)格變形解決方案。
![]()
神經(jīng)變形器是什么
角色動(dòng)畫中的蒙皮網(wǎng)格要實(shí)現(xiàn)高質(zhì)量的非線性變形通常依賴復(fù)雜的離線計(jì)算,難以滿足實(shí)時(shí)場(chǎng)景對(duì)性能和響應(yīng)速度的嚴(yán)格要求。
![]()
神經(jīng)變形器提供了一種高效的解決方案:通過(guò)采集并預(yù)處理外部提供的變形數(shù)據(jù),訓(xùn)練輕量級(jí)的神經(jīng)網(wǎng)絡(luò)模型,使其在運(yùn)行時(shí)能夠高效近似還原復(fù)雜的網(wǎng)格變形效果。這使得團(tuán)結(jié)引擎能夠在呈現(xiàn)高質(zhì)量變形效果的同時(shí),有效規(guī)避傳統(tǒng)非線性幾何計(jì)算在實(shí)時(shí)渲染中的性能開(kāi)銷。
神經(jīng)變形器的應(yīng)用場(chǎng)景
肌肉變形
布料變形
神經(jīng)變形器的特性
高保真度實(shí)時(shí)變形:
通過(guò)學(xué)習(xí)外部數(shù)字內(nèi)容創(chuàng)作(Digital Content Creation,DCC)軟件采集的復(fù)雜變形數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)模型能夠在運(yùn)行時(shí)以較低成本重現(xiàn)高精度網(wǎng)格變形,適用于布料、肌肉、裝備等非剛性物體的表現(xiàn)。
開(kāi)箱即用的訓(xùn)練流程:
與生成網(wǎng)格變形模擬數(shù)據(jù)的復(fù)雜過(guò)程解耦,支持從多種 DCC 軟件導(dǎo)入 FBX 動(dòng)畫與 Alembic 網(wǎng)格變形數(shù)據(jù),通過(guò)自動(dòng)化的數(shù)據(jù)處理與模型訓(xùn)練,適應(yīng)多樣化應(yīng)用需求。
高可用性與引擎集成:
所有核心功能(數(shù)據(jù)處理、模型訓(xùn)練和模型推理)均可在團(tuán)結(jié)引擎編輯器中完成,覆蓋從訓(xùn)練數(shù)據(jù)生成到模型部署的全過(guò)程,無(wú)需切換至外部平臺(tái),并且可以嵌入現(xiàn)有團(tuán)結(jié)引擎角色系統(tǒng)與動(dòng)畫控制流程。
多平臺(tái)與多硬件后端支持:
基于 Sentis 推理框架,可以在 Windows、MacOS、Android、iOS 等多個(gè)平臺(tái)運(yùn)行,且模型推理與變形計(jì)算均支持 CPU 和 GPU 后端,允許按需切換以適配不同硬件資源與性能要求。
神經(jīng)變形器的工作流
要使用神經(jīng)變形器包完成一個(gè)網(wǎng)格變形任務(wù),您首先需要安裝神經(jīng)變形器包,再依次執(zhí)行以下步驟:
1.構(gòu)建訓(xùn)練數(shù)據(jù)集
2.訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型
3.應(yīng)用網(wǎng)格變形
![]()
團(tuán)結(jié)引擎中的神經(jīng)變形器包提供了專門的組件分別對(duì)應(yīng)上述各個(gè)步驟,并向用戶開(kāi)放了必要的參數(shù)設(shè)置接口以及便捷的圖形化操作界面:
Neural Deformer Dataset Builder:
用于從角色動(dòng)畫與 Alembic 網(wǎng)格變形數(shù)據(jù)中自動(dòng)構(gòu)建訓(xùn)練所需的數(shù)據(jù)集,包括頂點(diǎn)匹配、動(dòng)畫采樣與數(shù)據(jù)導(dǎo)出等功能;
Neural Deformer Trainer:
提供可視化的模型訓(xùn)練管理界面,允許在團(tuán)結(jié)引擎內(nèi)配置訓(xùn)練超參數(shù)、管理訓(xùn)練流程、查看日志與結(jié)果;
Neural Deformer Player:
加載并運(yùn)行訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,通過(guò) CPU/GPU 硬件后端進(jìn)行推理,驅(qū)動(dòng)網(wǎng)格實(shí)時(shí)變形并完成法線重計(jì)算。
安裝神經(jīng)變形器
要將神經(jīng)變形器包添加到團(tuán)結(jié)引擎項(xiàng)目:
1.創(chuàng)建一個(gè)新的團(tuán)結(jié)引擎項(xiàng)目或打開(kāi)一個(gè)現(xiàn)有的項(xiàng)目;
2.轉(zhuǎn)到Window>Package Manager
3.在Package Manager窗口中,選擇+>Add Package by name...
4.輸入cn.tuanjie.neural-deformer ;
5.點(diǎn)擊“添加”以將包添加到您的項(xiàng)目中。
導(dǎo)入示例場(chǎng)景與快速驗(yàn)證
1.在Package Manager窗口中,選中Neural Deformer,在右側(cè)頁(yè)面選擇“Samples”標(biāo)簽。根據(jù)當(dāng)前項(xiàng)目所適配的渲染管線(URP/HDRP),選擇對(duì)應(yīng)的示例,點(diǎn)擊“Import”導(dǎo)入到當(dāng)前項(xiàng)目中。
![]()
2.打開(kāi)示例場(chǎng)景。
以 Character URP 為例,示例場(chǎng)景的路徑為:
Assets/Samples/Neural Deformer/ / Character URP/Scenes/NeuralDeformer.unityCharacter HDRP 的操作方法與之類似。
3.在 Hierarchy 中導(dǎo)航并選中TG_Hero_Interactive>Hero>LOD0>TG_Outfit_01,這是該人物的服裝 GameObject。在 Inspector 窗口里可看到,該 GameObject 已經(jīng)預(yù)先掛載好和 Neural Deformer 有關(guān)的組件,以及一個(gè)包含 4 組角色動(dòng)畫的 Timeline。
![]()
4.在 Inspector 窗口中找到Neural Deformer Player組件,確保它處于激活狀態(tài)且Enable Deformation被選中。
5.在編輯模式下,打開(kāi) Timeline 窗口,設(shè)置人物動(dòng)畫的時(shí)間節(jié)點(diǎn)。接著,在Neural Deformer Player組件中調(diào)整Deformation Weight和Alpha Mask Influence Weight的值,并在場(chǎng)景中觀察角色服裝的形變情況。
6.點(diǎn)擊“Play”進(jìn)入播放模式,檢查 Runtime 下角色服裝的形變情況。
快速上手
準(zhǔn)備數(shù)據(jù)
為了把神經(jīng)變形器應(yīng)用到您的動(dòng)畫網(wǎng)格,您需要完成如下的數(shù)據(jù)準(zhǔn)備:
1.目標(biāo)網(wǎng)格GameObject,它通過(guò)SkinnedMeshRenderer組件被動(dòng)畫驅(qū)動(dòng),并且已經(jīng)妥善設(shè)置了頂點(diǎn)權(quán)重;
2.關(guān)于目標(biāo)網(wǎng)格的一系列動(dòng)畫剪輯(AnimationClip),通常以 FBX 資產(chǎn)的形式導(dǎo)入引擎。您需要將它們放在同一個(gè)文件夾下,如Assets/path/to/fbx;
3.與動(dòng)畫剪輯逐一對(duì)應(yīng)的Alembic資產(chǎn),它們模擬對(duì)應(yīng)動(dòng)畫中目標(biāo)網(wǎng)格的真實(shí)形變。您需要將它們放在同一個(gè)文件夾下,如Assets/path/to/abc;
4.檢查前兩步導(dǎo)入的所有資產(chǎn),確保它們?cè)谝嬷械木W(wǎng)格頂點(diǎn)數(shù)完全一致。必要時(shí)可在Inspector里調(diào)整 FBX 或 Alembic 的導(dǎo)入設(shè)置,防止同一個(gè)頂點(diǎn)因法線、顏色、UV 等屬性分裂成多個(gè)點(diǎn)。
![]()
![]()
使用Neural Deformer Dataset Builder 構(gòu)建訓(xùn)練數(shù)據(jù)集
Deformer Data Dataset Builder組件的主要作用是:自動(dòng)化地解析原始數(shù)據(jù),提取出從角色的骨骼動(dòng)畫到目標(biāo)網(wǎng)格復(fù)雜變形的對(duì)應(yīng)關(guān)系,從而生成可直接用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)集。
首先,選擇場(chǎng)景中需要變形的游戲?qū)ο螅?code>Inspector下方點(diǎn)擊Add Compoent>Neural Deformer>Neural Deformer Dataset Builder,可添加該組件:
![]()
使用Neural Deformer Trainer 訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型
Deformer Data Trainer組件的主要作用是:設(shè)置神經(jīng)網(wǎng)絡(luò)訓(xùn)練的各種屬性與超參數(shù),直接在編輯器界面啟動(dòng)或終止訓(xùn)練流程,并預(yù)覽訓(xùn)練結(jié)果。全過(guò)程無(wú)需再切換到其他環(huán)境手動(dòng)執(zhí)行,工作流簡(jiǎn)潔流暢。
首先,選擇掛載了Deformer Data Dataset Builder組件的游戲?qū)ο?/strong>,在 Inspector 下方點(diǎn)擊Add Compoent>Neural Deformer>Neural Deformer Trainer,可添加該組件。
![]()
使用Neural Deformer Player 應(yīng)用網(wǎng)格變形
Neural Deformer Player 組件是神經(jīng)變形器的核心組件,其主要作用是基于訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)網(wǎng)格的變形效果。它支持在 CPU 和 GPU 上進(jìn)行推理和變形處理,適用于需要高效、動(dòng)態(tài)角色或物體變形的場(chǎng)景(如數(shù)字人、動(dòng)畫角色等)。
首先,選擇場(chǎng)景中需要變形的網(wǎng)格游戲?qū)ο螅掖_保已綁定了Skinned Mesh Renderer后,在 Inspector 下方點(diǎn)擊Add Compoent>Neural Deformer>Neural Deformer Player,可添加該組件。
![]()
啟用Neural Deformer Player組件,實(shí)現(xiàn)網(wǎng)格變形:
![]()
??注意事項(xiàng)
1.神經(jīng)變形器為數(shù)據(jù)驅(qū)動(dòng)型算法,其變形效果與訓(xùn)練數(shù)據(jù)的分布及范圍密切相關(guān)。若推理時(shí)的姿態(tài)在訓(xùn)練數(shù)據(jù)中出現(xiàn)頻率較低或超出數(shù)據(jù)分布范圍,變形效果可能會(huì)受到影響。因此,建議用戶確保有足夠的訓(xùn)練數(shù)據(jù),并盡可能涵蓋變形對(duì)象的所有潛在運(yùn)動(dòng)范圍,以提升變形質(zhì)量。
2.神經(jīng)變形器未考慮變形對(duì)象在場(chǎng)景中與其他物體的位置關(guān)系,這可能導(dǎo)致穿模、自相交、碰撞檢測(cè)失效等錯(cuò)誤。
更多詳情可參考官方文檔:
https://docs.unity.cn/cn/Packages-cn/cn.tuanjie.neural-deformer@1.0/manual/
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.