Unity3d 4.0新動畫系統Mecanim初探(一)

    Unity4.0正式版終於跟你們見面了,早在以前的Bata版中,咱們就發現有一個新的動畫系統:Mecanim,聽說Unity科技想在Unity4.0中植入一個新的GUI,但如今看來咱們是看不到了,或許在將來的Unity5.0中咱們會看見這種強大的GUI了。所幸的是Mecanim至少沒被剝離,這是個無比強大的動畫系統,讓咱們在可視化的界面中建立動畫狀態機以控制各類動畫狀態之間的切換。Mecanim以其強大的動畫重定向功能讓咱們這些不會設計動做的程序員只須要動動鼠標就能爲咱們的角色建立咱們想要的動畫效果,這簡直是太棒了!除此以外,咱們還能夠足夠精密的對兩種以上動畫進行疊加並預覽該動畫,並且能極大的減小代碼的複雜度。若是咱們用了這種新的動畫系統,那麼咱們的代碼將變得更爲簡潔。全部的這一切是那麼的美好,那麼接下來咱們就一塊兒學習一下這個難以想象的動畫系統:Mecanim。
        可是話說回來,這次咱們所接觸的是全新的類容,與老式的動畫系統相比增長的類容確實多了不少,並且出現了大量的專有名詞。因爲本人對英文的理解能力有限,不能準確的翻譯那些專有的名詞,這裏深感抱歉。但因爲這部分類容是全新的,我想讀者仍是樂於一讀的。首先,咱們必須瞭解一下一些基礎概念。好了,很少說了。咱們開始吧!
        首先,咱們來了解一下什麼是Avatar,好像翻譯過來就叫「阿凡達」,此時我也想不出什麼詞來形容它了,那就叫它「阿凡達」吧。那麼Mecanim裏面的Avatar到底是什麼呢?官方給出的解釋是這樣的:



左邊的圖標就是Avatar在Unity中呈現的方式。後面的解釋是這樣的:Avatar是一個將一個角色的骨骼信息重定向到另外一個角色上的接口。咱們如今不用知道這個Avatar是什麼,跟着看就行。我先新建一個空的工程:MecanimTest。而後我導入我本身預先打好包的角色預設:Robot。以下圖: 



咱們選中一個FBX文件,而後將其展開: 



此時咱們並無看到Avatar圖標吧!好,接下來咱們來作一個Avatar。首先咱們選中第一個robot,在Inspector面板中咱們會看到這個: 






其中選項Model和Animations是之前版本的Unity就帶有的,不過當時是集成在一個面板中。但是咱們發現多出了一個Rig選項卡。我先不解釋,你看着每一步就行:
首先,咱們點擊Legacy,能夠發現:


咱們先選擇Humanoid,立刻此面板出現變化了,甭管它,跟着我作就好了: 



咱們單擊Apply,而後發現Configure選項有一個勾: 



此時咱們發現Project面板下面出現了咱們想要的Avatar: 



那麼接下來咱們單擊Configure,一幅使人激動的畫面展示在咱們眼前,哦,忘了,咱們尚未保存咱們的場景呢,好的,保存一下,接下來咱們的使人驚歎的畫面: 



咱們能夠不作什麼,由於此時骨骼的匹配已經很是成功了,直接點擊右下角的Done就好了。好,咱們的Avatar已經好了,那就將這個Robot給拖動至Scene視圖中去吧!咱們忽然發如今Inspector面板上爲Robot自動添加了一個新的組建:Animator 



咱們發現,Avatar已經在這個組件裏面了。可是上方有一個Controller尚未填充。那麼這個Controller究竟是個什麼東西呢?是AnimationController。又是一個新東西。咱們新建一個AnimationControllers文件夾,而後單擊右鍵: 






咱們發現相比於以前版本的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,而後出現了一個白色的帶箭頭的白線,咱們鏈接到New State上面。 






通俗的講,那個白色的帶箭頭的線就是Animation Transitions,也許有讀者不贊同我這樣說,無所謂,只要能清晰的理解這個東西就行,那些術語就讓它見鬼去吧!



咱們看到右下角的Parameters這個部分了吧!咱們就是靠這部分組件來添加Animation Parameters的。咱們就隨便添加一些參數吧,這裏只能添加四種類型的參數:






ector,Float,Int,Bool這四種類型。咱們隨便添加一個Speed的Float類型的參數: 




接下來咱們得開始講Animation State Machine了,順便寫點代碼。咱們爲Robot加一個角色控制器,而後調節一下此角色控制器使其與Robot足夠適應。因爲咱們的Robot帶有一個idle***n的動畫片斷,咱們這次僅僅只是實現一下這兩種狀態之間的切換:
首先咱們將咱們以前新建的空的新的State->NewState給定位到,而後右鍵單擊它,咱們發現有一個選項叫作「Set As Default」默認是不能被選的,下面的State0咱們也試一下,發現


這個選項在State0上面又是能夠選的。此刻咱們能夠清楚的知道,咱們第一次新建的Animation State系統默認做爲默認的動畫狀態。固然你也能夠設置別的動畫狀體爲默認,只需鼠標右擊這個非默認的動畫狀態,而後選擇Set As Default。可是有一點是清楚的,就是:若是這個狀態的顏色爲黃灰色的,那麼這個狀態就是該角色默認的動畫狀態,且只有一個狀態是默認的。好了,咱們不糾結這些了,咱們如今選中某個狀態,而後再Inspector面板中改變其名字,就像這樣: 



上面有幾個選項,其中Motion選項是要讓咱們拖拽指定的AnimatonClip到此位置。Foot IK咱們先無論他。咱們拖拽idle動畫片斷到此選項上,那咱們將Robot@idle這個FBX文件展開,而後將其中的idle動畫片斷拖拽到指定的那個位置,可是問題來了,拖不到那裏去,出現了警告: 



這又預示着什麼呢?難道咱們以前的想法不對?不,毫不是這樣的。因爲下面篇幅比較長,我就將其切成了兩部分。我會在將來的幾個小時寫完另外一部分,敬請期待。 
相關文章
相關標籤/搜索