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