Membuat Animasi 2D di Unity
Untuk membuat animasi 2D di Unity, pengembang dapat menggunakan jendela Animasi bawaan dan komponen Animator Unity. Berikut panduan langkah demi langkah untuk memulai.
Menyiapkan Proyek
- Buka Unity dan buat proyek 2D baru atau buka proyek yang sudah ada.
- Jika memulai proyek baru, atur template proyek menjadi 2D.
Mengimpor Aset Sprite
- Sprite dapat dibuat dalam Unity dengan menggunakan Sprite Editor atau diimpor dari file gambar eksternal seperti PNG atau JPEG.
- Untuk membuat sprite dalam Unity, buka menu Assets, pilih Create, dan pilih Sprite atau Sprite Renderer. Kemudian dimungkinkan untuk menggambar atau mengimpor karya seni sprite.
Mengonfigurasi Animasi Sprite
- Setelah sprite siap, pilih aset sprite di jendela Proyek.
- Di jendela Inspektur, pastikan Tipe Tekstur diatur ke 'Sprite (2D and UI)'. Jika tidak, ubah ke 'Sprite (2D and UI)'.
- Klik pada aset sprite di jendela Proyek untuk membukanya di Sprite Editor.
- Gunakan Editor Sprite untuk menentukan frame individual dari animasi. Sprite dapat dipecah menjadi beberapa sub-gambar jika diperlukan. Editor juga mengizinkan modifikasi titik pivot untuk setiap frame untuk mengontrol posisi sprite.
- Simpan perubahan yang dibuat di Sprite Editor.
Membuat Animasi Menggunakan Jendela Animasi
- Untuk membuka jendela Animasi, buka 'Window -> Animation'.
- Di jendela Animasi, klik tombol Buat untuk membuat klip Animasi baru.
- Pilih klip animasi di jendela Proyek, dan propertinya akan muncul di jendela Inspektur.
- Di jendela Inspektur dimungkinkan untuk mengatur panjang klip animasi, laju sampel, dan properti lainnya.
- Untuk membuat keyframe, pindahkan play head di jendela Animation ke time tertentu dan ubah properti sprite (misalnya, posisi, skala, rotasi, dll.) di jendela Scene atau Hierarchy.
- Tambahkan bingkai utama pada waktu yang berbeda untuk membuat animasi yang halus. Unity akan secara otomatis menginterpolasi nilai di antara bingkai utama.
Menyiapkan Animator
- Pilih objek sprite di jendela Scene atau Hierarchy.
- Di jendela Inspector, klik tombol Add Component dan cari "Animator" untuk menambahkan komponen Animator ke objek.
- Klik tombol Buat di komponen Animator untuk membuat aset Pengontrol Animator baru.
- Tetapkan Pengontrol Animator yang baru dibuat ke bidang Pengontrol komponen Animator.
Mengonfigurasi Pengontrol Animator
- Klik dua kali pada aset Animator Controller yang baru dibuat untuk membukanya di jendela Animator.
- Di jendela Animator, terdapat grafik Pengontrol Animator, yang mewakili aliran animasi.
- Klik kanan di jendela Animator dan pilih 'Create State -> From New Clip' atau 'From Sprite Renderer' untuk membuat status animasi.
- Seret dan lepas klip animasi yang dibuat sebelumnya di jendela Animasi ke status animasi masing-masing.
- Buat transisi antara status animasi dengan mengklik status dan menyeret panah ke status lain. Kondisi transisi dapat disesuaikan, seperti waktu, nilai parameter, atau peristiwa.
- Dimungkinkan untuk menambahkan parameter untuk mengontrol transisi, seperti bools, ints, atau triggers. Misalnya, ada parameter bool bernama "IsRunning" yang memicu transisi dari status animasi idle ke status animasi berjalan.
Memainkan Animasi
- Pilih objek sprite di jendela Scene atau Hierarchy.
- Di komponen Animator di jendela Inspektur, seret aset Pengontrol Animator yang dibuat ke bidang Pengontrol.
- Tekan tombol Mainkan di jendela Animasi untuk menguji dan melihat pratinjau animasi.
Mengontrol Animasi Secara Terprogram
- Mengontrol animasi secara terprogram memerlukan akses komponen Animator dari script.
- Dalam skrip, buat variabel bertipe Animator dan gunakan 'GetComponent<Animator>()' untuk mendapatkan referensi komponen Animator yang melekat pada objek sprite.
- Fungsi dan properti Animator kemudian dapat digunakan untuk memicu transisi, menetapkan nilai parameter, atau mengontrol pemutaran animasi. Misalnya, memanggil animator.SetBool("IsRunning", true) akan memicu animasi yang sedang berjalan.
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;
}
}
Kesimpulan
Ini adalah ikhtisar dasar pembuatan animasi 2D di Unity menggunakan alat bawaan. Unity juga mendukung teknik yang lebih canggih seperti menggunakan sprite sheet, kinematika terbalik (IK), dan membuat skrip animasi khusus perilaku. Jelajahi opsi ini berdasarkan persyaratan spesifik dan kompleksitas animasi yang dimaksud.