文/圖:林昭自

本文轉載自聯成電腦技術論壇,歡迎點選此連結,前往駐站專欄與講師互動。

20140902 1pic00final


前言
在上一篇的介紹中,我們完成了場景的設置,同時也把角色身體的部位準備好(利用Sprite Editor來切割),在本篇技術文章中,我們將設置好角色物件,並且利用Animator來編輯。

20140902 1pic000
組合出基本移動的動畫轉移
      為了組合出待機,移動,跳躍等三種動畫的轉移,我們先利用Animator將Hero的Animator Controller開啓,接著我們直接從Project視窗中,將Idle,Run,以及Jump這三個動畫直接拖拉到Animator之中,下一步我們要指定在這三個動畫(狀態)中,那一個是初始狀態,一般在製作角色動畫時,待機通常都是預設的初始狀態,因此我們可以在Idle上按右鍵,選擇:Set As Default,你會發現Idle變成橘色,代表Unity現在知道Idle是初始的狀態。接著在畫面的左下角,我們可以找到Parameter(參數)的設定匡,點一下加號可以讓我們新增參數,我們來新增一個速度參數,命名為Speed用這個速度參數來控制待機跟跑步。接著在Idle上面右鍵,選擇Make Transition,接著你可以拖出一條箭頭,把這個箭頭移到Run的上方,放開滑鼠左鍵,這個動作是建立一個動畫的轉移,換句話說就是告訴Unity這個角色可以從待機轉換到跑步,同理,重複上面的動作,將跑步回到待機也聯結起來。

20140902 1pic001

20140902 1pic002

20140902 1pic003  

     接著先選擇由待機到跑步的箭頭,在Inspector視窗中,找到Condition欄位,這個欄位可以把它想成是事件,某件事件或是條件發生或是成立時,動畫便會發生轉移,以待機到跑步的例子來說,我們在Condition中,選擇之前新增的Speed變數,接著要描述速度大於0,才轉移,所以我們選擇Greater(大於),數值欄位輸入0.1,相同的道理,跑步回到待機一樣找到Condition,指定成Speed參數,但是改成Less 0.1(小於0.1)。但是我們還需要從腳本中來設定這個變數,因此可以新增一個Player.js腳本,當玩家按下移動按鈕時,我們可以透過Animator.SetFloat(“Speed”, 1),的語法,來讓Animator自動做動畫的狀態轉移,同理,當玩家放開按鍵時,再透過Animator.SetFloat(“Speed”, 0),來讓Animator回到待機狀態。 

結論
Animator是Unity下一代的動畫控制技術,它結合了有限狀態機的概念,讓動畫的編輯過程更加人性化。

 

延伸閱讀 

聯成電腦昭自老師專欄:如何將Unity開發的遊戲上架到Google Play。  

聯成電腦昭自講師專欄:Unity 2D範例(二)-場景設置 

聯成電腦昭自老師專欄:Unity 2D範例(三)-基本概念

arrow
arrow

    聯成電腦 發表在 痞客邦 留言(0) 人氣()