動(dòng)畫(huà)是游戲開(kāi)發(fā)中必不可少的環(huán)節(jié),游戲場(chǎng)景中角色的行走、跑步、彈跳。機(jī)關(guān)的打開(kāi),等等都離不開(kāi)動(dòng)畫(huà)技術(shù)的應(yīng)用。5.0之后使用的動(dòng)畫(huà)為Mecanim動(dòng)畫(huà)系統(tǒng)。 改版之后的動(dòng)畫(huà)系統(tǒng)優(yōu)點(diǎn) 1、可視化的動(dòng)畫(huà)剪輯編輯2、把兩足動(dòng)物動(dòng)畫(huà)編輯功能獨(dú)立出來(lái),使得編輯兩足動(dòng)物動(dòng)畫(huà)的工作流程更加清晰。 3、能夠?qū)?dòng)畫(huà)信息進(jìn)行復(fù)用,例如把某個(gè)角色的動(dòng)畫(huà)剪輯(Animation Clip)賦予另外一個(gè)角色 4、能 夠?qū)巧貌煌课桓鶕?jù)游戲的邏輯賦予不同的動(dòng)畫(huà)剪輯。5、利用動(dòng)畫(huà)狀態(tài)機(jī)(Animation State Machine)實(shí)現(xiàn)不同狀態(tài)下動(dòng)畫(huà)剪輯的過(guò)渡。 在使用Mecanim動(dòng)畫(huà)系統(tǒng)的過(guò)程,一般的流程 1、在第三方建模軟件中制作好模型,對(duì)于較為復(fù)雜的動(dòng)畫(huà),比如角色動(dòng)畫(huà)等也是在第三方建模軟件中完成的,接著導(dǎo)出Unity3D支持的格式,然后導(dǎo)入到Unity3D中2、在Unity3D中對(duì)導(dǎo)入的模型進(jìn)行設(shè)置,這里分為兩種類(lèi)型的設(shè)置,一種是二足角色設(shè)置(Humanoid Character Setup),該類(lèi)型的設(shè)置可以對(duì)動(dòng)畫(huà)剪輯(Animation Clip)進(jìn)行復(fù)用,即把動(dòng)畫(huà)剪輯添加到其他的二足角色上;另一種是普通的模型設(shè)置(Generic Character Setup),該種類(lèi)型的動(dòng)畫(huà)用于除了二足角色以外的模型,比如四足角色,這種類(lèi)型的動(dòng)畫(huà)剪輯不能復(fù)用。 3、通過(guò)狀態(tài)機(jī)(State Machines)和融合樹(shù)(Blend Trees)和反向動(dòng)力學(xué)(Inverse Kinematics)等功能對(duì)動(dòng)畫(huà)剪輯進(jìn)行設(shè)置,最后使用代碼控制角色動(dòng)畫(huà)的播放。 一、二足角色動(dòng)畫(huà) 1.1二足角色資源的制作和導(dǎo)入對(duì)二足角色動(dòng)畫(huà)的控制是Mecanim動(dòng)畫(huà)系統(tǒng)的強(qiáng)項(xiàng)之一。它可以讓角色的動(dòng)畫(huà)剪輯只制作一遍,接下來(lái)這些動(dòng)畫(huà)剪輯便可以復(fù)用到不同的二足角色模型上。 在制作二足角色時(shí),一般采用的技術(shù)是骨骼綁定,也就是說(shuō),該模型資源除了包括模型數(shù)據(jù)(Meshed)之外,還包括了一套節(jié)點(diǎn)層級(jí)(Joint Hierarchy)或者骨骼(Skeleton),并采用蒙皮(Skinng)技術(shù)把該模型頂點(diǎn)綁定到骨骼上。接著通過(guò)調(diào)整骨骼的位置來(lái)達(dá)到控制角色模型動(dòng)畫(huà)的目的。 建模注意的事項(xiàng): 1、合理的模型拓?fù)錂C(jī)構(gòu)(topology)。在建模的過(guò)程中需要時(shí)刻考慮模型的頂點(diǎn)和多邊形的布局,因?yàn)槊總€(gè)頂點(diǎn)和多邊形的布局會(huì)影響到角色該部分的動(dòng)畫(huà)效果。 2、注意模型的尺寸:3、在三維建模軟件中,是得角色的最底部與世界坐標(biāo)的中心點(diǎn)對(duì)齊。也就是讓模型站在世界坐標(biāo)系的原點(diǎn)。 4、模型制作成T-Pose姿勢(shì)。方便模型的秀發(fā)以及骨骼設(shè)置與蒙皮的處理。5、整理模型的頂點(diǎn)和多邊形。刪除不必要的頂點(diǎn)和多邊形,盡量使模型的拓?fù)浣Y(jié)構(gòu)是封閉的,以便蒙皮處理更加方面、 骨骼裝配(Rigging).也就是給角色添加骨骼的過(guò)程。 1、注意根據(jù)角色的姿勢(shì)、大小和角色的關(guān)節(jié)創(chuàng)建骨骼層級(jí)2、確保骨盆位置上的骨骼關(guān)節(jié)為所有骨骼的父層級(jí)。 3、確保該骨骼結(jié)構(gòu)至少有15個(gè)骨骼4、每個(gè)骨骼需要按照現(xiàn)實(shí)中的骨骼進(jìn)行層級(jí)設(shè)置。同時(shí)需要為每個(gè)關(guān)節(jié)命名合理的名稱。 5、蒙皮(Skining).蒙皮就是把模型的頂點(diǎn)與骨骼關(guān)聯(lián)起來(lái)的一種操作。頂點(diǎn)根據(jù)與某個(gè)骨骼的權(quán)重來(lái)決定該骨骼對(duì)該頂點(diǎn)的影響大小。為角色進(jìn)行蒙皮操作,每種三維建模軟件都有不同的操作過(guò)程,在這里需要注意的一點(diǎn)是,在Unity3D中,每個(gè)頂點(diǎn)最多只能受到四個(gè)骨骼的權(quán)重影響。動(dòng)畫(huà)的導(dǎo)出和導(dǎo)入 建議使用FBX文件格式對(duì)模型進(jìn)行導(dǎo)出。該格式除了能導(dǎo)出模型數(shù)據(jù)、貼圖數(shù)據(jù)等之外。還能夠保存動(dòng)畫(huà)信息。采用FFBX導(dǎo)出的動(dòng)畫(huà)有兩種方式:一種,把所有的動(dòng)畫(huà)信息與模型信息一起導(dǎo)出,這些動(dòng)畫(huà)都阿如Unity3D之后是被視為一個(gè)連續(xù)的動(dòng)畫(huà);第二種方法是把每個(gè)動(dòng)畫(huà)信息單獨(dú)導(dǎo)出為FBX格式。 使用第一種方法導(dǎo)出的動(dòng)畫(huà)需要在Unity3D中國(guó)對(duì)動(dòng)畫(huà)剪輯序列進(jìn)行切割,所以動(dòng)畫(huà)師需要把每個(gè)動(dòng)畫(huà)剪輯的范圍記錄下來(lái)。比如行走動(dòng)畫(huà)從1到33幀。 使用第二種方法導(dǎo)出的動(dòng)畫(huà)可以不用提供每個(gè)動(dòng)畫(huà)剪輯的開(kāi)始幀和結(jié)束幀。但需要對(duì)每個(gè)動(dòng)畫(huà)剪輯文件進(jìn)行合理的命名,命名規(guī)則是"模型名稱@動(dòng)畫(huà)剪輯名稱.fbx".如角色的名詞為nihao,那么它的跑步的動(dòng)畫(huà)應(yīng)該命名為"nihao@run.fbx".這些動(dòng)畫(huà)剪輯文件需要和模型文件保存在同一個(gè)目錄,只要?jiǎng)赢?huà)剪輯的命名符合以上的規(guī)則,則當(dāng)導(dǎo)入模型文件時(shí),Unity3D會(huì)自動(dòng)把這些動(dòng)畫(huà)也導(dǎo)入。 |
|