AnimatorController動畫融合樹

來源:互聯網
上載者:User

標籤:

通過Unity動畫狀態機器,能幫我們輕鬆處理轉換各個動畫片斷,達到想要的效果,但是如果僅僅是一個個動畫的硬生生的切換,那麼看起來就非常突然,而不真實了,在品質要求比較高的遊戲中,特別是動作遊戲,我們就不能直接簡單地用Translation連起來了,而應該使用動畫融合樹。

準備工作:一個人物模型,一個待機動畫,一個行走動畫,一個奔跑動畫。

通常遊戲中,我們人物從待機到跑直接切換就行,今天我們加一個行走的過渡效果吧。
建立一個動畫控制器AnimatorController,將人物的Animator組件的Controller屬性指向我們剛才建立的AnimatorController。
在AnimatorController中添加一個空狀態Idel,然後設定動畫片斷為我們的待機動畫。
然後再建立一個動畫融合樹WalToRun:

雙擊融合樹進入編輯狀態,在右側的Inspector面板中的Motion列表中添加兩個元素,從上到下依次選擇我們的行走動畫和奔跑動畫。
建立float類型動畫參數Run,將融合樹的Parameter參數設定為Run:

最後,將待機狀態Idel使用Translation串連到融合樹,設定Condition參數為 Run Greater 0.1,反過來融合樹到Idel的串連Condition設定為 Run Less 0.1。

一切就緒,在Player身上添加指令碼DearMove:

 1 using UnityEngine; 2 using System.Collections; 3   4 public class DearMove : MonoBehaviour 5 { 6     private Animator anim;  //動畫狀態機器 7     private int RunFloat;   //Run參數ID 8     private float vertical; //前進 9  10     void Awake ()11     {12         anim = gameObject.GetComponent<Animator>();13         RunFloat = Animator.StringToHash("Run");14     }15      16     void Update ()17     {18         //來電者向控制19         vertical = Input.GetAxis("Vertical");20         //根據前進控制,設定Run參數的值,21         //後面兩個參數可不加,這裡是為了讓從走到跑看得更明顯22         anim.SetFloat(RunFloat, vertical, 1f, Time.deltaTime);23     }24 }

運行遊戲,按住 W 鍵,可以看到Player從走慢慢過渡到跑咯!

AnimatorController動畫融合樹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.