在Unity中設定角色動畫,按下鍵盤就可以控制角色移動!
文、查理
玩遊戲的時候,操控玩家角色移動時,需要播放走路(Walk)動畫,玩家沒動作時,需要播放閒置(Idle)動畫
角色動畫要如何設定呢?
會不會非常的困難?
需要寫非常多的程式嗎?
如果使用Unity製作,只需要一點點程式碼,就可以完成了,也不需要做太多的設定,這都是因為Unity提供了非常強大的各項功能,首先我們可以到Unity官方網站的Asset Store素材商店,下載一個包含動畫的角色模型來做測試。
角色的部分,主要需要三個步驟:
第一步驟:在網頁尋找包含動畫的角色模型
Unity Asset Store > 3D類別,搜尋:Dog Knight,Pricing(價格):0(免費)
點選Dog Knight PBR Polyart項目,即可看到素材的相關預覽圖片或影片、版本、檔案大小等資訊。
將檔案的名稱複製後,即可開啟Unity軟體,在Unity裡下載檔案。
第二步驟:下載包含動畫的角色模型
在Unity開啟素材商店面板
Window > Asset Store
(1)註冊一個帳號,並登入後,搜尋:Dog Knight PBR Polyart
(2)點選該項目進入下載頁面後,先點選Download下載完成後,再點選Import匯入Project素材庫
第三步驟:角色設定
1. 在Project(素材庫),展開DogKnight資料夾,再點開Prefab資料夾,File > New Scene,開啟新場景,將DogPolyart拖曳到Hierarchy(物件清單)。
2. 在Project(素材庫),按下左上方的Create按鈕,新增一個Animator Controller(動畫控制器),命名為DogKnightAnimator。
3. 點兩下DogKnightAnimator,即可開啟Animator(動畫控制器)視窗,展開Animations資料夾,先將Idle_Battle拖曳到Animator(動畫控制器)視窗內,放在Entry的右方,(第一個拖曳進來的動畫段,會成為一開始預設動畫),再將WalkForwardBattle拖曳到Animator(動畫控制器)視窗內,放在Idle_Battle下方。
4. 在Hierarchy(物件清單),點選DogPolyart物件,將Project(素材庫)裡的DogKnightAnimator拖曳到Inspector(屬性欄)Animator的Controller欄位內。播放測試看看,即可發現DogPolyart物件出現閒置動畫了,再來設定走路動畫的部分
5. 在Animator(動畫控制器)視窗的左上方,點選Parameters欄位,點選+的按鈕,新增一個Bool(布林值,是或否)的項目,命名為Walk。
6. 在Idle_Battle上按下右鍵,選擇Make Transition(製作傳送線,將目前動畫切換成另一個動畫),再點選WalkForwardBattle。
7. 在WalkForwardBatt上按下右鍵,選擇Make Transition(製作傳送線,將目前動畫切換成另一個動畫),再點選leIdle_Battle,如此一來,閒置動畫撥放完成就會切換成走路動畫,走路動畫撥放完成就會切換成閒置動畫。
但我們希望的是,按下方向健移動時,會播放走路動畫,沒移動時,播放閒置動畫
8. 點選左邊的傳送線,在Inspector(屬性欄)內,按下Conditions右下方的+按鈕,選擇Walk跟True(是)
9. 點選右邊的傳送線,在Inspector(屬性欄)內,按下Conditions右下方的+按鈕,選擇Walk跟False(否)
如此設定的目的,就是Walk走路狀態(true)是的話,就從閒置動畫切換到走路動畫, Walk走路狀態(False)否的話,就從走路動畫切換到閒置動畫,這時候我們可以新增一個玩家控制的程式碼Movement,如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour {
void Start () {
}
void FixedUpdate () {
float h = Input.GetAxisRaw ("Horizontal");
float v = Input.GetAxisRaw ("Vertical");
bool walking = h != 0 || v != 0;
GetComponent ().SetBool ("Walk",walking) ;
}
}
完成之後,再將程式碼拖曳到DogPolyart玩家物件上,播放測試看看,按下鍵盤的方向鍵,即可走路動畫,放開方向鍵,就切換成閒置動畫。
FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan
痞客邦Blog:http://lccnetvip.pixnet.net/blog