Hướng dẫn làm Animation trong Unity

 Animation là một yếu tố không thể thiếu trong mọi loại game hiện nay. Animation sẽ giúp lập trình viên diễn tả hành động của các nhân vật một cách chân thực và sống động nhất. Trong bài viết này, Vietproducer sẽ hướng dẫn làm Animation trong Unity một cách đơn giản cho bạn.

Đầu tiên các bạn hãy tạo một project Unity mới, chọn 2D cho nhẹ nhé! 

1.png

Tiếp theo hãy thêm các ảnh của nhân vật vào Project với các trạng thái như trên.

2.png

Bước sau đó là tạo ra một đối tượng Sprite 2D như sau, ở bước này bạn hãy đặt tên nó là Player:

3.png

Tiếp theo, tạo ra các animation tương ứng với từng trạng thái đã nêu ở trên.

Trước tiên là trạng thái đi bộ, hãy mở view animation lên:

4.png

Tiếp theo, chọn đối tượng Player mình vừa tạo => nhấn vào create ở mục view Animation. Sau đó bạn đặt tên animation là Wall và để nó vào thư mục Animations ở trong Asset. 

5.png

Tiếp theo bạn kéo những hình ảnh tương ứng với hành động Walk từ Asset vào Animation như hình dưới đây:

6.png

Ở đây, bạn có thể để giá trị samples là 20 để hành động chạy trông giống thật nhất.

Sau đó bạn tiếp tục tạo ra các animation idle, die, attack theo cách vừa thực hiện.

Vậy giờ bạn đã có 4 animation cho đối tượng Player, việc cần làm tiếp theo là điều khiển các hành động ấy.

Để thực hiện, bạn nhấn vào Player sau đó nhìn sang bên phải cột Inspactor. Tại mục Player có một thuộc tính là Animator, nó được tạo ra khi bạn add animation cho đối tượng ở trên. Animator chính là tính năng để điều khiển các animation của đối tượng trong Unity 2D.

Sau đó bạn hãy mở view Animator lên và sẽ thấy 4 animation như sau:

7.png

Việc bây giờ cần làm là kết nối những animation này với nhau bằng cách tạo ra những Transition giữa chúng. Ví dụ nếu tạo transition từ Walk tới Idle thì click chuột phải vào Walk và chọn Make Transition, sau đó giữ chuột kéo từ Walk tới Idle. 

8.png

9.png

Lưu ý rằng sau khi tạo ra các animation thì hãy vào animation đó và chọn chế độ chạy một lần hay lặp lại. Ví dụ Walk thì chạy lặp lại còn Die thì chỉ một lần. Chọn Loop Time có nghĩa là chạy lặp lại còn bỏ tick là chạy một lần. 

10.png

Tiếp theo bạn tạo các param để thay đổi trạng thái giữa các animation bằng cách ấn vào nút dấu cộng trong tab Parameter và tạo param kiểu int là AnimationState .

14.png

Sau đó tạo các liên kết như hình dưới đây :

12.png

Để điều khiển sự chuyển đổi giữa các animation thì bạn chỉ cần trỏ chuột vào một mũi tên. Ví dụ mũi tên từ Idle sang Walk, nhìn sang cột Inspector ở mục conditions thì chọn giá trị AnimationState là 1. Điều này có nghĩa là nếu giá trị của param AnimationState = 1 thì sẽ trạng thái sẽ chuyển từ Idle sang Walk.

Tương tự bạn làm cho các mũi tên khác, ví dụ mũi tên sang Attack set giá trị là 3, mũi tên sang Idle giá trị là 2 còn mũi tên sang Die giá trị là 4

15.png

Sau đó bạn viết script để điều khiển Player. Khi bạn ấn nút W thì chuyển trạng thái sang Walk, ấn nút A thì chuyển sang Attack, ấn nút D thì chuyển sang trạng thái sang Die, và để mặc định thì ở trạng thái Idle .

Sau đó bạn tạo một file script tên là Player.cs với nội dung như sau:


using UnityEngine;

using System.Collections;

public class Player: MonoBehaviour {

        Animator animator;

        const int WALK =1;

        const int IDLE =2;

        const int ATTACK =3;

        const int DIE =4;

        const string animationState = "AnimationState";

        // Use this for initialization

        void Start () {

                animator = gameObject.GetComponent<Animator>();

        }

        // Update is called once per frame

        void Update () {

                if(Input.GetKey(KeyCode.W)){

                        animator.SetInteger(animationState,WALK); //for Walk

                }else if(Input.GetKey(KeyCode.A)){

                        animator.SetInteger(animationState,ATTACK); // for Attack

                }else if(Input.GetKey(KeyCode.Space)){

                        animator.SetInteger(animationState,DIE); // for Die

                }else{

                        animator.SetInteger(animationState,IDLE); //For Idle

                }

        }

}

Tiếp theo, bạn add script đó vào đối tượng Player. 

16.png

Vậy là đã hoàn thành, giờ bạn hãy chạy thử animation 2D nhé.

Như bạn đã thấy, hướng dẫn làm Animation trong Unity cũng khá đơn giản đúng không nào?Hãy thực hiện rồi comment kết quả nhé! 


Nhận xét

Bài đăng phổ biến từ blog này

Giới thiệu Việt Producer

TVC quảng cáo sản phẩm Xương khớp Nibifa