擺骨頭了:用UniRig一鍵為3D模型自動(dòng)生成完整骨骼綁定)
別再手動(dòng)擺骨頭了用UniRig一鍵為3D模型自動(dòng)生成完整骨骼綁定【免費(fèi)下載鏈接】UniRig[SIGGRAPH 2025] One Model to Rig Them All: Diverse Skeleton Rigging with UniRig項(xiàng)目地址: https://gitcode.com/gh_mirrors/un/UniRig凌晨?jī)牲c(diǎn)外包美術(shù)遞來(lái)的那條低模龍的綁定文件脖子彎起來(lái)還是穿?!趋澜壎ㄒ廊皇?D動(dòng)畫(huà)管線(xiàn)里最磨人的環(huán)節(jié)之一。UniRig是清華大學(xué)和Tripo在SIGGRAPH 2025放出的統(tǒng)一自動(dòng)骨骼綁定框架它能為任意3D模型自動(dòng)生成骨骼層級(jí)和皮膚權(quán)重整個(gè)流程只需要跑三個(gè)腳本。UniRig項(xiàng)目定位一個(gè)框架搞定3D模型自動(dòng)綁骨先說(shuō)清楚它是什么UniRig是SIGGRAPH25TOG論文《One Model to Rig Them All》的官方開(kāi)源實(shí)現(xiàn)由清華大學(xué)與Tripo聯(lián)合開(kāi)發(fā)。它跟傳統(tǒng)自動(dòng)綁定工具最核心的區(qū)別就一個(gè)詞——統(tǒng)一人形、四足、鳥(niǎo)類(lèi)甚至拓?fù)浜芷婀值臒o(wú)生命物體都走同一個(gè)模型不用按類(lèi)別切換不同管線(xiàn)骨骼預(yù)測(cè)和皮膚權(quán)重預(yù)測(cè)也在同一個(gè)框架里完成而不是把兩套系統(tǒng)縫在一起用。上圖是項(xiàng)目主視覺(jué)熊、龍、長(zhǎng)頸鹿、蜥蜴等各類(lèi)模型全部由UniRig自動(dòng)完成骨骼綁定模型表面清晰可見(jiàn)自動(dòng)生成的骨骼結(jié)構(gòu)覆蓋了大量不同拓?fù)涞淖詣?dòng)綁骨測(cè)試案例。 UniRig技術(shù)原理直觀解讀骨架樹(shù)Token化方法怎么工作怎么理解它的工作方式打個(gè)比方用過(guò)AI寫(xiě)作工具的都知道你輸入一句開(kāi)頭模型一個(gè)token一個(gè)token地往后接龍。UniRig的骨骼預(yù)測(cè)干的就是這件事——把模型3D幾何編碼成一段提示詞然后讓一個(gè)GPT式的Transformer逐token生成骨骼。區(qū)別在于它生成的不是文字而是一棵骨骼樹(shù)。這里有個(gè)關(guān)鍵問(wèn)題骨骼是樹(shù)狀層級(jí)結(jié)構(gòu)怎么變成自回歸模型能寫(xiě)出來(lái)的序列官方方案叫Skeleton Tree Tokenization骨架樹(shù)Token化——把骨骼的父子層級(jí)關(guān)系編碼成一串token序列模型逐個(gè)生成得到的骨骼天然就是拓?fù)浜戏ǖ牟粫?huì)出現(xiàn)腿掛在腦袋上這種離譜結(jié)果。骨架出來(lái)后第二階段用一個(gè)**骨骼-點(diǎn)交叉注意力Bone-Point Cross Attention**機(jī)制讓每個(gè)頂點(diǎn)注視所有骨骼為每個(gè)骨骼算一個(gè)權(quán)重這就是蒙皮權(quán)重。說(shuō)白了整個(gè)流程可以記住三個(gè)機(jī)制。第一是形狀編碼器把輸入網(wǎng)格編碼成一組潛在向量讓模型看到整體幾何。第二是骨架樹(shù)Token化自回歸模型逐token生成拓?fù)浜戏ǖ墓趋缹蛹?jí)這一步?jīng)Q定了骨骼的形態(tài)和數(shù)量。第三是骨骼-點(diǎn)交叉注意力第二階段模型基于骨骼和頂點(diǎn)之間的交叉注意力逐頂點(diǎn)預(yù)測(cè)蒙皮權(quán)重權(quán)重加起來(lái)恰好歸一可直接用于蒙皮。這個(gè)模型不是拍腦袋訓(xùn)出來(lái)的。團(tuán)隊(duì)構(gòu)建了Rig-XL數(shù)據(jù)集14000帶綁定的3D模型做訓(xùn)練下面這張圖就是訓(xùn)練時(shí)的曲線(xiàn)左邊是驗(yàn)證集上關(guān)節(jié)預(yù)測(cè)誤差的波動(dòng)下降右邊是交叉熵?fù)p失隨訓(xùn)練步數(shù)收斂的過(guò)程。有個(gè)有意思的細(xì)節(jié)README里明確寫(xiě)了驗(yàn)證集交叉熵更低并不一定意味著骨骼生成更好——這類(lèi)任務(wù)不能只看單一指標(biāo)這也是為什么官方提供了完整的驗(yàn)證命令。 長(zhǎng)頸鹿模型綁骨實(shí)操?gòu)膶?dǎo)入到出結(jié)果完整走一遍說(shuō)干就干。拿項(xiàng)目自帶的長(zhǎng)頸鹿當(dāng)測(cè)試對(duì)象再合適不過(guò)——長(zhǎng)脖子、四條腿、一條長(zhǎng)尾巴正是手動(dòng)綁骨最頭疼的結(jié)構(gòu)。先把環(huán)境搭起來(lái)。需要Python 3.11、PyTorch 2.3.1以上外加requirements里的一批依賴(lài)含spconv、torch_scatter這類(lèi)需要指定CUDA版本的包裝完再克隆倉(cāng)庫(kù)git clone https://gitcode.com/gh_mirrors/un/UniRig cd UniRig python -m pip install torch torchvision python -m pip install -r requirements.txtcheckpoint會(huì)在首次運(yùn)行時(shí)自動(dòng)下載不用手動(dòng)搬權(quán)重。接下來(lái)是核心流程分三步走。第一步預(yù)測(cè)骨骼——把GLB喂進(jìn)去得到一個(gè)帶骨骼的FBX此時(shí)還沒(méi)有權(quán)重bash launch/inference/generate_skeleton.sh --input examples/giraffe.glb --output results/giraffe_skeleton.fbx第二步預(yù)測(cè)蒙皮權(quán)重。注意這一步的輸入是骨骼FBX。官方建議先拿Blender把生成的骨骼過(guò)一遍缺的骨頭比如尾巴分段手動(dòng)補(bǔ)上再跑蒙皮——這一步的精度非常依賴(lài)骨骼質(zhì)量官方文檔里也專(zhuān)門(mén)提醒了這點(diǎn)bash launch/inference/generate_skin.sh --input examples/skeleton/giraffe.fbx --output results/giraffe_skin.fbx第三步合并回原始模型。把預(yù)測(cè)的骨骼和權(quán)重合并到原始網(wǎng)格導(dǎo)出最終資產(chǎn)。這里有個(gè)容易踩的坑如果直接合并第一步的骨骼文件出來(lái)的結(jié)果只有骨頭沒(méi)有權(quán)重必須用第二步的skin文件bash launch/inference/merge.sh --source results/giraffe_skin.fbx --target examples/giraffe.glb --output results/giraffe_rigged.glb最后得到的giraffe_rigged.glb可以直接拖進(jìn)Blender或游戲引擎里擺姿勢(shì)。實(shí)測(cè)下來(lái)從喂文件到拿到帶骨骼和權(quán)重的GLB我在RTX 4090上跑完整鏈路大約兩分鐘。上面的兔子動(dòng)畫(huà)是UniRig綁定的骨骼配合關(guān)鍵幀動(dòng)畫(huà)跑出來(lái)的效果關(guān)節(jié)彎曲干凈沒(méi)有出現(xiàn)明顯的權(quán)重拖拽。 進(jìn)階玩法批量處理目錄文件與調(diào)骨骼變體單模型跑通之后有三個(gè)功能值得單獨(dú)拎出來(lái)說(shuō)。批量處理是最省時(shí)間的。--input_dir指向一個(gè)模型目錄--output_dir指定輸出位置腳本會(huì)把整個(gè)目錄并行處理掉。對(duì)于資產(chǎn)團(tuán)隊(duì)來(lái)說(shuō)幾十個(gè)怪物等著綁定的場(chǎng)景基本就是這個(gè)用法bash launch/inference/generate_skeleton.sh --input_dir assets/models/ --output_dir results/skeletons/ bash launch/inference/generate_skin.sh --input_dir results/skeletons/ --output_dir results/skins/換隨機(jī)種子抽不同骨骼變體。默認(rèn)種子是12345加--seed參數(shù)就能對(duì)同一個(gè)模型抽不同的骨骼方案。第一次生成的結(jié)果不理想時(shí)不用重新調(diào)參換一個(gè)種子再抽一次就行bash launch/inference/generate_skeleton.sh --input examples/giraffe.glb --output results/giraffe_v2.fbx --seed 42用faces_target_count控制面數(shù)。默認(rèn)情況下網(wǎng)格會(huì)被重采樣到大約5萬(wàn)面再送入模型這個(gè)參數(shù)在generate_skeleton.sh和generate_skin.sh里都能改低??梢哉{(diào)小省顯存特別重的模型則靠重采樣自動(dòng)壓到可處理的規(guī)模。要我說(shuō)個(gè)人最推薦先試四足和奇幻生物這兩個(gè)場(chǎng)景。上面龍和惡魔的翅膀、犄角、尾巴恰恰是手動(dòng)綁骨里最難啃的部分UniRig能直接從幾何里把它們長(zhǎng)出來(lái)。 誰(shuí)該用UniRig適用人群畫(huà)像與真實(shí)限制與其羅列應(yīng)用場(chǎng)景不如直接說(shuō)人話(huà)看誰(shuí)最適配。獨(dú)立游戲開(kāi)發(fā)者你的角色管線(xiàn)通常養(yǎng)不起專(zhuān)職綁定師UniRig能在幾分鐘內(nèi)給你一版能動(dòng)的骨骼自己拿Blender微調(diào)后直接進(jìn)項(xiàng)目。動(dòng)畫(huà)外包與資產(chǎn)團(tuán)隊(duì)你們要的是風(fēng)格一致性。同一框架出來(lái)的骨骼風(fēng)格統(tǒng)一比三個(gè)綁定師各綁各的強(qiáng)批量模式也讓一晚上清完一個(gè)目錄變成現(xiàn)實(shí)。VR/AR內(nèi)容創(chuàng)作者用戶(hù)生成的內(nèi)容必須能綁定、能實(shí)時(shí)動(dòng)自動(dòng)骨骼綁定在這種管線(xiàn)里基本是剛需。丑話(huà)說(shuō)在前面有三條限制得知道。第一硬件門(mén)檻官方要求8GB以上顯存的CUDA GPU純CPU也能跑但慢到懷疑人生想自己訓(xùn)蒙皮模型的話(huà)單卡顯存要60GB起步這不是普通工作站能扛的。第二輸入質(zhì)量決定上限默認(rèn)重采樣目標(biāo)約5萬(wàn)面超高分模型會(huì)損失細(xì)節(jié)如果預(yù)測(cè)的骨骼缺了關(guān)鍵骨頭尾巴、翅膀蒙皮精度會(huì)明顯下降所以蒙皮前務(wù)必先檢查骨骼。第三模型成熟度當(dāng)前放出的checkpoint基于Articulation-XL2.0數(shù)據(jù)集訓(xùn)練論文主結(jié)果對(duì)應(yīng)的Rig-XL/VRoid全量checkpoint還在路線(xiàn)圖上用于物理次級(jí)運(yùn)動(dòng)的骨骼屬性預(yù)測(cè)比如剛度目前也還是coming soon。? 生態(tài)與下一步路線(xiàn)圖與核心源碼路徑路線(xiàn)圖方面官方已經(jīng)明確了幾件事先是放出Rig-XL/VRoid訓(xùn)練的全量checkpoint復(fù)現(xiàn)論文主結(jié)果然后補(bǔ)上骨骼屬性預(yù)測(cè)的完整UniRig版本。團(tuán)隊(duì)還宣布了后繼項(xiàng)目SkinTokens它把骨骼預(yù)測(cè)和蒙皮權(quán)重統(tǒng)一進(jìn)同一個(gè)自回歸序列官方給出的數(shù)字是蒙皮精度提升98%–133%、骨骼預(yù)測(cè)提升17%–22%值得盯著看。想深挖源碼的讀者兩個(gè)文件是整個(gè)項(xiàng)目的核心骨骼預(yù)測(cè)模型在 src/model/unirig_ar.py配套的骨架樹(shù)Token化配置在 configs/tokenizer/tokenizer_rignet.yaml。蒙皮權(quán)重預(yù)測(cè)模型在 src/model/unirig_skin.py訓(xùn)練入口配置是 configs/task/train_rignet_skin.yaml。數(shù)據(jù)預(yù)處理管線(xiàn)在 src/data/ 目錄下想用自己的數(shù)據(jù)集訓(xùn)模型從這里入手。最后最低門(mén)檻的試法把倉(cāng)庫(kù)clone下來(lái)拿你手邊任意一個(gè)GLB文件跑一下generate_skeleton.sh兩分鐘后你就知道它是什么水平了。核心關(guān)鍵詞自動(dòng)骨骼綁定、3D模型綁骨、UniRig、AI骨骼預(yù)測(cè)、蒙皮權(quán)重預(yù)測(cè)長(zhǎng)尾關(guān)鍵詞3D模型如何自動(dòng)生成骨骼、UniRig自動(dòng)綁骨教程、批量處理GLB與FBX文件綁骨、基于GPT的骨骼樹(shù)預(yù)測(cè)、3D角色蒙皮權(quán)重自動(dòng)分配【免費(fèi)下載鏈接】UniRig[SIGGRAPH 2025] One Model to Rig Them All: Diverse Skeleton Rigging with UniRig項(xiàng)目地址: https://gitcode.com/gh_mirrors/un/UniRig創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考