AdvancedSkeleton(俗稱ADV)是大家在Maya中使用得非常多的一個(gè)綁定+動(dòng)畫(huà)插件梧宫,功能強(qiáng)大困食,簡(jiǎn)單易學(xué)荆残。我們可以使用ADV來(lái)綁定角色肋层,key出動(dòng)畫(huà)亿笤,然后輸出成FBX供游戲引擎(比如Unity)來(lái)使用。
不過(guò)栋猖,由于ADV的開(kāi)發(fā)初衷并非針對(duì)游戲净薛,所以默認(rèn)的骨骼設(shè)計(jì)比較繁瑣,與Unity的Humanoid角色設(shè)定并不能完美通用蒲拉。
比如肃拜,我們選擇DeformationSystem節(jié)點(diǎn)(這是ADV放蒙皮骨骼的地方)和Geometry節(jié)點(diǎn)(通常將模型放在這里)然后導(dǎo)出的FBX痴腌,如果在Unity中以Rig: Animation Type = Humanoid
的設(shè)定導(dǎo)入的話,骨骼的識(shí)別匹配是有問(wèn)題的燃领,通常會(huì)表現(xiàn)為明明Maya中腳步?jīng)]有滑動(dòng)士聪,但導(dǎo)入U(xiǎn)nity以后腳步就出現(xiàn)明顯的滑動(dòng)現(xiàn)象。
這是因?yàn)锳DV的Deformation Rig的骨骼數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)Humanoild的骨骼數(shù)量猛蔽,轉(zhuǎn)換后必然會(huì)丟掉很多骨骼的動(dòng)畫(huà)剥悟,這樣累積起來(lái)就會(huì)造成動(dòng)畫(huà)的明顯偏差。
解決的辦法有兩個(gè):
一個(gè)辦法是不使用Unity的Humanoid系統(tǒng)枢舶,將Rig: Animation Type
設(shè)為Generic
懦胞,這樣能夠完美保留動(dòng)畫(huà)的全部細(xì)節(jié),但缺陷也很明顯凉泄,設(shè)為Generic
之后基本上就只能用自己調(diào)的動(dòng)畫(huà)了躏尉,不能直接套用海量的Unity動(dòng)作資源庫(kù)。對(duì)于我這種用習(xí)慣了資源庫(kù)的懶人來(lái)說(shuō)簡(jiǎn)直是不可忍受的后众。
另一個(gè)辦法是利用ADV的“游戲骨骼(Game Skeleton)”功能胀糜,這個(gè)功能可以自動(dòng)建立一套符合Unreal規(guī)范的標(biāo)準(zhǔn)骨骼系統(tǒng),甚至還可以將原本DeformationSystem的蒙皮轉(zhuǎn)移到這套新骨骼上去蒂誉。Unreal標(biāo)準(zhǔn)骨骼系統(tǒng)和Unity的Humanoid是完美匹配的教藻,這樣我們就可以很愉快的在Unity中利用Humanoid系統(tǒng)同時(shí)使用自己制作的動(dòng)畫(huà)以及海量動(dòng)作資源庫(kù)的素材了。
具體操作步驟如下:
導(dǎo)出帶骨骼蒙皮的模型:
首先在Rig文件中點(diǎn)擊Game Skeleton -> Create
右锨,場(chǎng)景中會(huì)創(chuàng)建一套以root
節(jié)點(diǎn)開(kāi)頭的骨骼括堤,這套骨骼是完美匹配我們的Rig的,大家在配圖中看到多出來(lái)的骨骼是原本Rig中就沒(méi)有的手指結(jié)構(gòu)(是的绍移,原本的Rig中就沒(méi)有做5根手指悄窃,所以這個(gè)Game Skeleton就匹配不了),這些多余的結(jié)構(gòu)是可以直接刪除的蹂窖。
然后轧抗,點(diǎn)擊Transfer Skinning
,ADV會(huì)將蒙皮權(quán)重轉(zhuǎn)移給新的游戲骨骼系統(tǒng)瞬测。大家要注意Maya底端的提示横媚,如果看到// Skinning transferred to Unreal Skeleton
字樣就說(shuō)明轉(zhuǎn)換成功了。如果再次點(diǎn)擊Transfer Skinning
月趟,ADV會(huì)將蒙皮權(quán)重轉(zhuǎn)回給原來(lái)的DeformationSystem灯蝴。
轉(zhuǎn)移權(quán)重成功后,就可以選擇這個(gè)新的root
節(jié)點(diǎn)和原來(lái)的Geometry
節(jié)點(diǎn)孝宗,導(dǎo)出成FBX穷躁,這就是我們的可以在Unity中使用的帶骨骼蒙皮的角色資產(chǎn)了。通常我會(huì)在Unity的FBX導(dǎo)入設(shè)置中設(shè)置無(wú)動(dòng)畫(huà)碳褒、無(wú)材質(zhì)折砸、Humanoid類(lèi)型Rig看疗。
導(dǎo)出動(dòng)畫(huà):
動(dòng)畫(huà)的導(dǎo)出更為簡(jiǎn)單。首先還是點(diǎn)擊Game Skeleton -> Create
來(lái)創(chuàng)建Game Skeleton睦授。我個(gè)人建議先將模型復(fù)原成綁定姿態(tài)再創(chuàng)建Game Skeleton两芳,可以到實(shí)際動(dòng)畫(huà)曲線之外的幀,點(diǎn)擊ADV最底下的Go To Build Pose
按鈕去枷。
然后直接選擇root
節(jié)點(diǎn)怖辆,導(dǎo)出成FBX,這就是純骨骼動(dòng)畫(huà)資產(chǎn)删顶。要注意:root
以及其下的骨骼都是受驅(qū)動(dòng)控制的竖螃,并沒(méi)有關(guān)鍵幀和動(dòng)畫(huà)曲線,在導(dǎo)出FBX的設(shè)置中不僅需要勾選動(dòng)畫(huà)
逗余,還需要勾選烘焙動(dòng)畫(huà)
并設(shè)置烘焙范圍特咆。
我自己以前都是喜歡自己手動(dòng)烘焙關(guān)鍵幀,然后再導(dǎo)出FBX录粱,現(xiàn)在看來(lái)浪費(fèi)了不少時(shí)間啊腻格。
動(dòng)畫(huà)FBX在Unity中的設(shè)置也是無(wú)材質(zhì)+Humanoid Type,不過(guò)Rig中的Avatar我會(huì)拷貝前面Rig模型所創(chuàng)建的Avatar啥繁,不喜歡工程中多出一堆無(wú)用的Avatar來(lái)菜职。
Animation那里需要修改下動(dòng)畫(huà)片段名稱,并設(shè)置動(dòng)畫(huà)片段范圍旗闽。希望動(dòng)畫(huà)片段循環(huán)播放的可以勾選Loop Time
選項(xiàng)酬核。
默認(rèn)的Animation導(dǎo)入設(shè)置會(huì)將動(dòng)畫(huà)曲線做一些優(yōu)化,通常情況下就都讓它優(yōu)化吧适室,但如果發(fā)現(xiàn)優(yōu)化后的動(dòng)畫(huà)出現(xiàn)了明顯的問(wèn)題嫡意,可以將Anim. Compression
設(shè)置為Off
。
最后不要忘記了點(diǎn)擊Apply
按鈕確認(rèn)修改亭病。
白模是轉(zhuǎn)成Game Skeleton后導(dǎo)出的Humanoid Type鹅很,有貼圖的是原始動(dòng)畫(huà)導(dǎo)出的Generic Type嘶居,兩者基本看不出差異來(lái)罪帖。