nav分隔線 nav分隔線

在Unity中設定角色動畫,按下鍵盤就可以控制角色移動!

icon_fb icon_twitter icon_google
在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<Animator> ().SetBool ("Walk",walking);

 

        }

}

 

完成之後,再將程式碼拖曳到DogPolyart玩家物件上,播放測試看看,按下鍵盤的方向鍵,即可走路動畫,放開方向鍵,就切換成閒置動畫。

 

 

 

 

 

 

 

FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan

痞客邦Blog:http://lccnetvip.pixnet.net/blog

本網站使用相關網站技術以確保使用者獲得最佳體驗,通過使用我們的網站,您確認並同意本網站的隱私權政策。欲了解詳情,請參閱 隱私權政策