本章內(nèi)容主要就是動(dòng)畫(huà)數(shù)據(jù)的獨(dú)立文件使用方式。有了獨(dú)立的動(dòng)畫(huà)文件,我們就可以將其應(yīng)用到其他模型上面了。最簡(jiǎn)單的方式就是,我們可以給其他模型編輯動(dòng)畫(huà)控制器的時(shí)候,使用這些動(dòng)畫(huà)文件。Unity則給我們提供了更加高級(jí)的共享方式,就是對(duì)動(dòng)畫(huà)控制器的共享,也就是說(shuō),我們可以將我們剛剛的動(dòng)畫(huà)控制器拖拽到其他模型的“Animator”組件的“Controller”欄中去。但是,這里有一個(gè)非常重要的前提,就是這些模型的“骨架結(jié)構(gòu)”必須大致保持一致,也就是遵循Unity的人形骨架結(jié)構(gòu)。想要最大程度的共享動(dòng)畫(huà)數(shù)據(jù)(動(dòng)畫(huà)文件或者動(dòng)畫(huà)控制器),我們就需要將模型本身的“骨架結(jié)構(gòu)”映射到Unity的人形骨架結(jié)構(gòu)上,我們稱(chēng)之為“Avatar”,翻譯過(guò)來(lái)就是“阿凡達(dá)”。接下來(lái),我們?cè)谥匦聦?dǎo)入一份“Elf”模型,重新命名文件夾為“Elf3”,如下所示
然后我們點(diǎn)擊“Elf.fbx”這個(gè)文件,在其Inspector檢視視圖中進(jìn)行編輯。
首先取消“Import Animation”選項(xiàng),也就是不再使用模型里面的動(dòng)畫(huà)了。
然后我們需要修改“Animation Type”為“Humanoid”人形動(dòng)畫(huà),
點(diǎn)擊“Apply”保存更改。
點(diǎn)擊“Apply”保存修改之后,就會(huì)出現(xiàn)一個(gè)黃色的嘆號(hào)。這個(gè)嘆號(hào)只是一個(gè)警告,并不代表有錯(cuò)誤發(fā)生。我們只要保證“Configure”的左邊是一個(gè)“對(duì)鉤”就可以了。這說(shuō)明,Unity已經(jīng)成功識(shí)別出我們“Elf”模型中的“骨架結(jié)構(gòu)”。我們可以點(diǎn)擊“Configrue”進(jìn)入看看。
上面截圖中,人形圖像中關(guān)節(jié)出的圓點(diǎn)都表示骨骼,綠色就代表模型骨骼和Unity人形骨骼“映射”成功了。這個(gè)“映射”會(huì)以文件形式保存在“Elf”文件中,如下所示
上圖中的“ElfAvatar”就是這個(gè)“映射”文件。那如果映射不成功呢?那么,在上面人形圖像中錯(cuò)誤的關(guān)節(jié)就會(huì)以紅色顯示,說(shuō)明Unity并沒(méi)有找到正確的骨骼。我們以“右手”骨骼為例,來(lái)說(shuō)明這種情況,如下所示:
在上圖中,我們點(diǎn)擊“右手”骨骼,在下面的列表中,左邊的“Hand”就是Unity的人形骨架結(jié)構(gòu),右邊就是模型骨架結(jié)構(gòu)。注意,Unity的人形骨架是不允許修改的,我們要根據(jù)Unity的人形骨架找到模型中對(duì)應(yīng)的骨骼。例如,左邊的“Hand”應(yīng)該對(duì)應(yīng)模型中的“Bip001 L Hand”這塊骨骼,我們可以在“Hierarchy”視圖中找到對(duì)應(yīng)的這塊骨骼。
這里,我們就故意修改一下,將“Bip001 L Hand”下面的“Bip001 L Finger0”骨骼拖拽到Unity的“Hand”骨骼位置,如下所示
此時(shí),我們就會(huì)發(fā)現(xiàn),出現(xiàn)錯(cuò)誤了,對(duì)應(yīng)的關(guān)節(jié)位置會(huì)以紅色凸顯出來(lái)。這說(shuō)明,Unity人形骨骼與模型人形骨骼匹配不對(duì),需要我們手動(dòng)修改。因?yàn)槲覀兪欠聪虿僮鞯?,因此我們只需要將原?lái)的“Bip001 L Hand”拖回到“Hand”位置,就變回正確的綠色了。最后,我們點(diǎn)擊Inspector檢視面板右下角的“Apply”和“Done”保存后退出去。
關(guān)于Unity人形骨架映射問(wèn)題,我們就大致說(shuō)到這里。我們繼續(xù)回到正題上來(lái)。我們已經(jīng)將我們的“Elf”模型修改成了Unity的人形骨架,那么它就能應(yīng)用其他符合Unity的人形骨架的模型動(dòng)畫(huà)了。還記得我們之前的“U_Character_REF.fbx”,它也是一個(gè)符合Unity的人形骨架的模型哦。如下所示
既然,“U_Character_REF”和“Elf”都符合Unity的人形骨架,那么“U_Character_REF”的動(dòng)畫(huà),就應(yīng)該可以應(yīng)用到“Elf”的身上。接下來(lái),我們將“Elf”拖拽到場(chǎng)景中。
Unity的強(qiáng)大之處在于,不僅可以將動(dòng)畫(huà)文件共享給其他模型,就連動(dòng)畫(huà)控制器也可以共享給其他模型。也就是說(shuō),我們可以給“Elf”添加“Animator”組件,并將之前的動(dòng)畫(huà)控制器“U_Character_Animator_Controller”添加到“Animator”組件的“Controller”項(xiàng)目中。最后將我們之前的“U_Character_Animator_Script”腳本也掛載到“Elf”游戲?qū)ο笊蟻?lái)。這樣,兩個(gè)模型角色就可以同時(shí)接受相同的控制,并且做出相同的動(dòng)畫(huà)了。如下所示
我們運(yùn)行工程,查看效果
以上就是Unity的人形動(dòng)畫(huà)重定向,是不是感覺(jué)非常的不錯(cuò)。但是,我們換一個(gè)角度考慮這個(gè)問(wèn)題,游戲如果大量重復(fù)使用相同的動(dòng)畫(huà),會(huì)不是顯得毫無(wú)特色。我們游戲開(kāi)發(fā)中,會(huì)有很多很多的人物角色,他們可能會(huì)有不同的特征,例如種族不同,因此他們?cè)趧?dòng)畫(huà)設(shè)計(jì)上應(yīng)該擁有不同的形式,至少男性和女性的待機(jī),走路,跑步等等動(dòng)畫(huà)是不一樣的。而且,游戲開(kāi)發(fā)中,除了人物角色(兩足類(lèi))之外,還有其他非人物的角色,例如一些四足的動(dòng)畫(huà),甚至一些天馬行空想象出來(lái)的異形怪物,他們的動(dòng)畫(huà)設(shè)計(jì)就只能自己獨(dú)有的了。因此,游戲開(kāi)發(fā)中的動(dòng)畫(huà)重點(diǎn)還是在于“動(dòng)畫(huà)控制器”的設(shè)計(jì)上。關(guān)于“動(dòng)畫(huà)控制器”的內(nèi)容,我們只介紹了一小部分,對(duì)于“動(dòng)畫(huà)層”以及“混合樹(shù)”還沒(méi)有介紹,還包括更加復(fù)雜的“有限狀態(tài)機(jī)”系統(tǒng)。這些內(nèi)容我們?cè)诤竺嬖敿?xì)介紹吧。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-435850.html
本課程涉及的內(nèi)容已經(jīng)共享到百度網(wǎng)盤(pán):https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-435850.html
到了這里,關(guān)于第三十五章 Unity人形動(dòng)畫(huà)(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!