Tạo hoạt ảnh 2D trong Unity

Để tạo hoạt ảnh 2D trong Unity, nhà phát triển có thể sử dụng cửa sổ Hoạt ảnh tích hợp sẵn và thành phần Unity Animator. Đây là hướng dẫn từng bước để bắt đầu.

Thiết lập dự án

  • Mở Unity và create một dự án 2D mới hoặc mở một dự án hiện có.
  • Nếu bắt đầu một dự án mới, hãy đặt mẫu của dự án là 2D.

Nhập tài sản Sprite

  • Các sprite có thể được tạo trong Unity bằng cách sử dụng Sprite Editor hoặc được nhập từ các tệp hình ảnh bên ngoài như PNG hoặc JPEG.
  • Để tạo các họa tiết trong Unity, hãy đi tới menu Assets, chọn Tạo và chọn Sprite hoặc Sprite Renderer. Sau đó có thể vẽ hoặc nhập tác phẩm nghệ thuật sprite.

Định cấu hình hoạt ảnh Sprite

  • Khi các sprite đã sẵn sàng, hãy chọn nội dung sprite trong cửa sổ Project.
  • Trong cửa sổ Thanh tra, đảm bảo Loại kết cấu được đặt thành 'Sprite (2D and UI)'. Nếu không thì đổi thành 'Sprite (2D and UI)'.
  • Nhấp vào nội dung sprite trong cửa sổ Project để mở nó trong Sprite Editor.
  • Sử dụng Trình chỉnh sửa Sprite để xác định khung hình riêng lẻ của hoạt ảnh. Sprite có thể được chia thành nhiều hình ảnh phụ nếu cần. Trình chỉnh sửa cũng cho phép sửa đổi điểm xoay cho từng khung hình để kiểm soát vị trí của sprite.
  • Lưu các thay đổi được thực hiện trong Sprite Editor.

Tạo hoạt ảnh bằng cửa sổ hoạt hình

  • Để mở cửa sổ Hoạt ảnh, hãy truy cập 'Window -> Animation'.
  • Trong cửa sổ Hoạt hình, nhấp vào nút Tạo để tạo clip Hoạt hình mới.
  • Chọn clip hoạt hình trong cửa sổ Project và các thuộc tính của nó sẽ xuất hiện trong cửa sổ Thanh tra.
  • Trong cửa sổ Thanh tra, bạn có thể đặt độ dài, tốc độ mẫu và các thuộc tính khác của clip hoạt hình.
  • Để tạo khung hình chính, hãy di chuyển đầu phát trong cửa sổ Hoạt ảnh đến một time cụ thể và sửa đổi các thuộc tính của sprite (ví dụ: vị trí, tỷ lệ, xoay, v.v.) trong cửa sổ Cảnh hoặc Phân cấp.
  • Thêm khung hình chính vào các thời điểm khác nhau để tạo hoạt ảnh mượt mà. Unity sẽ tự động nội suy các giá trị giữa các khung hình chính.

Thiết lập Trình hoạt hình

  • Chọn đối tượng sprite trong cửa sổ Scene hoặc Hierarchy.
  • Trong cửa sổ Thanh tra, nhấp vào nút Thêm Component và tìm kiếm "Animator" để thêm thành phần Animator vào đối tượng.
  • Nhấp vào nút Tạo trong thành phần Animator để tạo nội dung Bộ điều khiển hoạt hình mới.
  • Gán Bộ điều khiển hoạt hình mới được tạo cho trường Bộ điều khiển của thành phần Hoạt hình.

Định cấu hình Bộ điều khiển hoạt hình

  • Nhấp đúp vào nội dung Animator Controller mới được tạo để mở nó trong cửa sổ Animator.
  • Trong cửa sổ Animator, có một biểu đồ Bộ điều khiển hoạt hình, biểu thị luồng hoạt ảnh.
  • Nhấp chuột phải vào cửa sổ Animator và chọn 'Create State -> From New Clip' hoặc 'From Sprite Renderer' để tạo trạng thái hoạt hình.
  • Kéo và thả các clip hoạt hình đã tạo trước đó trong cửa sổ Hoạt ảnh vào các trạng thái hoạt ảnh tương ứng.
  • Tạo chuyển tiếp giữa các trạng thái hoạt ảnh bằng cách nhấp vào trạng thái và kéo mũi tên sang trạng thái khác. Có thể điều chỉnh các điều kiện chuyển đổi, chẳng hạn như thời gian, giá trị tham số hoặc sự kiện.
  • Có thể thêm tham số để kiểm soát quá trình chuyển đổi, chẳng hạn như bool, int hoặc trình kích hoạt. Ví dụ: có thể có một tham số bool có tên "IsRunning" kích hoạt quá trình chuyển đổi từ trạng thái hoạt ảnh không hoạt động sang trạng thái hoạt ảnh đang chạy.

Chơi phim hoạt hình

  • Chọn đối tượng sprite trong cửa sổ Scene hoặc Hierarchy.
  • Trong thành phần Animator trong cửa sổ Inspector, hãy kéo nội dung Bộ điều khiển hoạt hình đã tạo vào trường Bộ điều khiển.
  • Nhấn nút Play trong cửa sổ Hoạt ảnh để kiểm tra và xem trước hoạt ảnh.

Kiểm soát hoạt ảnh theo chương trình

  • Việc kiểm soát hoạt ảnh theo chương trình yêu cầu truy cập vào thành phần Animator từ script.
  • Trong tập lệnh, hãy tạo một biến loại Animator và sử dụng 'GetComponent<Animator>()' để lấy tham chiếu đến thành phần Animator được gắn vào đối tượng sprite.
  • Sau đó, bạn có thể sử dụng các chức năng và thuộc tính của Animator để kích hoạt chuyển tiếp, đặt giá trị tham số hoặc điều khiển việc phát lại hoạt ảnh. Ví dụ: gọi animator.SetBool("IsRunning", true) sẽ kích hoạt hoạt ảnh đang chạy.
using UnityEngine;

public class AnimationController : MonoBehaviour
{
    private Animator animator;

    private void Start()
    {
        // Get a reference to the Animator component
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // Check for input or condition to trigger animations
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Trigger a jump animation
            animator.SetTrigger("Jump");
        }

        float moveInput = Input.GetAxis("Horizontal");
        animator.SetFloat("Speed", Mathf.Abs(moveInput));

        // Check if the character is grounded
        bool isGrounded = IsGrounded();

        // Set the "IsGrounded" parameter in the Animator
        animator.SetBool("IsGrounded", isGrounded);

        if (isGrounded && Input.GetKeyDown(KeyCode.C))
        {
            // Trigger a crouch animation
            animator.SetBool("IsCrouching", true);
        }

        if (isGrounded && Input.GetKeyUp(KeyCode.C))
        {
            // Stop the crouch animation
            animator.SetBool("IsCrouching", false);
        }
    }

    private bool IsGrounded()
    {
        // Implement your own logic to check if the character is grounded
        // For example, you can use raycasting or collision detection
        // and return true if the character is touching the ground
        // and false otherwise.
        return false;
    }
}

Phần kết luận

Đây là tổng quan cơ bản về cách tạo hoạt ảnh 2D trong Unity bằng cách sử dụng các công cụ tích hợp sẵn. Unity cũng hỗ trợ các kỹ thuật nâng cao hơn như sử dụng trang sprite, động học nghịch đảo (IK) và tạo hoạt ảnh tùy chỉnh tập lệnh behaviors. Khám phá các tùy chọn này dựa trên các yêu cầu cụ thể và độ phức tạp của hoạt ảnh được đề cập.

Bài viết được đề xuất
Tạo trò chơi Screamer trong Unity
Cách tạo trò chơi di động trong Unity
Tạo trò chơi Ludo trong Unity
Cách tạo trò chơi đố vui trong Unity
Cách tạo trò chơi 2D như Super Mario trong Unity
Cách tạo trò chơi sinh tồn trong Unity
Tạo một trò chơi nền tảng đơn giản trong Unity