文/圖:林昭自
本文轉載自聯成電腦技術論壇,歡迎點選此連結,前往駐站專欄與講師互動。
前言
在上一篇的介紹中,我們完成了場景的設置,同時也把角色身體的部位準備好(利用Sprite Editor來切割),在本篇技術文章中,我們將設置好角色物件,並且利用Animator來編輯。
組合出基本移動的動畫轉移
為了組合出待機,移動,跳躍等三種動畫的轉移,我們先利用Animator將Hero的Animator Controller開啓,接著我們直接從Project視窗中,將Idle,Run,以及Jump這三個動畫直接拖拉到Animator之中,下一步我們要指定在這三個動畫(狀態)中,那一個是初始狀態,一般在製作角色動畫時,待機通常都是預設的初始狀態,因此我們可以在Idle上按右鍵,選擇:Set As Default,你會發現Idle變成橘色,代表Unity現在知道Idle是初始的狀態。接著在畫面的左下角,我們可以找到Parameter(參數)的設定匡,點一下加號可以讓我們新增參數,我們來新增一個速度參數,命名為Speed用這個速度參數來控制待機跟跑步。接著在Idle上面右鍵,選擇Make Transition,接著你可以拖出一條箭頭,把這個箭頭移到Run的上方,放開滑鼠左鍵,這個動作是建立一個動畫的轉移,換句話說就是告訴Unity這個角色可以從待機轉換到跑步,同理,重複上面的動作,將跑步回到待機也聯結起來。
接著先選擇由待機到跑步的箭頭,在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下一代的動畫控制技術,它結合了有限狀態機的概念,讓動畫的編輯過程更加人性化。
延伸閱讀
留言列表