Unity4.0正式版終于跟大家見面了,早在之前的Bata版中,我們就發(fā)現(xiàn)有一個新的動畫系統(tǒng):Mecanim,據(jù)說Unity科技想在Unity4.0中植入一個新的GUI,但現(xiàn)在看來我們是看不到了,或許在未來的Unity5.0中我們會看見這種強大的GUI了。所幸的是Mecanim至少沒被剝離,這是個無比強大的動畫系統(tǒng),讓我們在可視化的界面中創(chuàng)建動畫狀態(tài)機以控制各種動畫狀態(tài)之間的切換。Mecanim以其強大的動畫重定向功能讓我們這些不會設(shè)計動作的程序員只需要動動鼠標就能為我們的角色創(chuàng)建我們想要的動畫效果,這簡直是太棒了!除此之外,我們還可以足夠精密的對兩種以上動畫進行疊加并預覽該動畫,而且能極大的減少代碼的復雜度。如果我們用了這種新的動畫系統(tǒng),那么我們的代碼將變得更為簡潔。所有的這一切是那么的美好,那么接下來我們就一起學習一下這個不可思議的動畫系統(tǒng):Mecanim。 但是話說回來,此次我們所接觸的是全新的類容,與老式的動畫系統(tǒng)相比增加的類容確實多了很多,而且出現(xiàn)了大量的專有名詞。由于本人對英文的理解能力有限,不能準確的翻譯那些專有的名詞,這里深感抱歉。但由于這部分類容是全新的,我想讀者還是樂于一讀的。首先,我們必須了解一下一些基礎(chǔ)概念。好了,不多說了。我們開始吧! 首先,我們來了解一下什么是Avatar,好像翻譯過來就叫“阿凡達”,此時我也想不出什么詞來形容它了,那就叫它“阿凡達”吧。那么Mecanim里面的Avatar究竟是什么呢?官方給出的解釋是這樣的: 左邊的圖標就是Avatar在Unity中呈現(xiàn)的方式。后面的解釋是這樣的:Avatar是一個將一個角色的骨骼信息重定向到另一個角色上的接口。我們現(xiàn)在不用知道這個Avatar是什么,跟著看就行。我先新建一個空的工程:MecanimTest。然后我導入我自己預先打好包的角色預設(shè):Robot。如下圖: 我們選中一個FBX文件,然后將其展開: 此時我們并沒有看到Avatar圖標吧!好,接下來我們來做一個Avatar。首先我們選中第一個robot,在Inspector面板中我們會看到這個: 其中選項Model和Animations是以前版本的Unity就帶有的,不過當時是集成在一個面板中??墒俏覀儼l(fā)現(xiàn)多出了一個Rig選項卡。我先不解釋,你看著每一步就行: 首先,我們點擊Legacy,可以發(fā)現(xiàn): 我們先選擇Humanoid,馬上此面板出現(xiàn)變化了,甭管它,跟著我做就行了: 我們單擊Apply,然后發(fā)現(xiàn)Configure選項有一個勾: 此時我們發(fā)現(xiàn)Project面板下面出現(xiàn)了我們想要的Avatar: 那么接下來我們單擊Configure,一幅令人激動的畫面展現(xiàn)在我們眼前,哦,忘了,我們還沒有保存我們的場景呢,好的,保存一下,接下來我們的令人驚嘆的畫面: 我們可以不做什么,因為此時骨骼的匹配已經(jīng)非常成功了,直接點擊右下角的Done就行了。好,我們的Avatar已經(jīng)好了,那就將這個Robot給拖動至Scene視圖中去吧!我們突然發(fā)現(xiàn)在Inspector面板上為Robot自動添加了一個新的組建:Animator 我們發(fā)現(xiàn),Avatar已經(jīng)在這個組件里面了。但是上方有一個Controller還沒有填充。那么這個Controller到底是個什么東西呢?是AnimationController。又是一個新東西。我們新建一個AnimationControllers文件夾,然后單擊右鍵: 我們發(fā)現(xiàn)相比于之前版本的Unity多出了三個東西:Animator Controller,Avatar Body Mask,Avatar Skeleton Mask 。 其中,我們先新建一個Animator Controller,取名為:RobotController1。打開Animator面板:Window->Animator 。我們可以看到這樣一幅圖: 接下來我們需要了解幾個重要東西,我不會像文檔上那么正式,因為那樣的話沒幾個人想學這個東西,太羅嗦了!。 首先是Animation State ,我們在Animator窗口中的空白部分單擊右鍵,Create->Empty。什么是Animation State,這就是Animation State: 接下來我們要了解什么是Animation Transitions,我們再新建一個Animation State,然后我們右鍵單擊其中一個Animation State, 左鍵單擊這個Make Transition,然后出現(xiàn)了一個白色的帶箭頭的白線,我們連接到New State上面。 通俗的講,那個白色的帶箭頭的線就是Animation Transitions,也許有讀者不贊同我這樣說,無所謂,只要能清晰的理解這個東西就行,那些術(shù)語就讓它見鬼去吧! 我們看到右下角的Parameters這個部分了吧!我們就是靠這部分組件來添加Animation Parameters的。我們就隨便添加一些參數(shù)吧,這里只能添加四種類型的參數(shù): ector,F(xiàn)loat,Int,Bool這四種類型。我們隨便添加一個Speed的Float類型的參數(shù): 接下來我們得開始講Animation State Machine了,順便寫點代碼。我們?yōu)镽obot加一個角色控制器,然后調(diào)節(jié)一下此角色控制器使其與Robot足夠適應(yīng)。由于我們的Robot帶有一個idle***n的動畫片段,我們此次僅僅只是實現(xiàn)一下這兩種狀態(tài)之間的切換: 首先我們將我們之前新建的空的新的State->NewState給定位到,然后右鍵單擊它,我們發(fā)現(xiàn)有一個選項叫做“Set As Default”默認是不能被選的,下面的State0我們也試一下,發(fā)現(xiàn) 這個選項在State0上面又是可以選的。此刻我們可以清楚的知道,我們第一次新建的Animation State系統(tǒng)默認作為默認的動畫狀態(tài)。當然你也可以設(shè)置別的動畫狀體為默認,只需鼠標右擊這個非默認的動畫狀態(tài),然后選擇Set As Default。但是有一點是清楚的,就是:如果這個狀態(tài)的顏色為黃灰色的,那么這個狀態(tài)就是該角色默認的動畫狀態(tài),且只有一個狀態(tài)是默認的。好了,我們不糾結(jié)這些了,我們現(xiàn)在選中某個狀態(tài),然后再Inspector面板中改變其名字,就像這樣: 上面有幾個選項,其中Motion選項是要讓我們拖拽指定的AnimatonClip到此位置。Foot IK我們先不管他。我們拖拽idle動畫片段到此選項上,那我們將Robot@idle這個FBX文件展開,然后將其中的idle動畫片段拖拽到指定的那個位置,但是問題來了,拖不到那里去,出現(xiàn)了警告: 這又預示著什么呢?難道我們之前的想法不對?不,絕不是這樣的。由于下面篇幅比較長,我就將其切成了兩部分。我會在未來的幾個小時寫完另一部分,敬請期待。 |
|