Unity'de 2D Animasyonlar Oluşturma

Unity'te 2D animasyonlar oluşturmak için geliştiriciler yerleşik Animasyon penceresini ve Unity Animatör bileşenini kullanabilir. Başlamak için adım adım bir kılavuz burada.

Projenin Kurulumu

  • Unity ve create yeni bir 2D projesini açın veya mevcut bir projeyi açın.
  • Yeni bir projeye başlıyorsanız projenin şablonunu 2B olarak ayarlayın.

Sprite Varlıklarını İçe Aktarma

  • Karakterler, Sprite Düzenleyici kullanılarak Unity içinde oluşturulabilir veya PNG veya JPEG gibi harici görüntü dosyalarından içe aktarılabilir.
  • Unity içinde sprite oluşturmak için Varlıklar menüsüne gidin, Oluştur'u seçin ve Sprite veya Sprite Oluşturucu'yu seçin. Daha sonra hareketli grafik resmini çizmek veya içe aktarmak mümkündür.

Sprite Animasyonunu Yapılandırma

  • Karakterler hazır olduğunda Proje penceresinde karakter varlığını seçin.
  • Denetçi penceresinde Doku Türü'nün 'Sprite (2D and UI)' olarak ayarlandığından emin olun. Değilse 'Sprite (2D and UI)' olarak değiştirin.
  • Sprite Düzenleyici'de açmak için Proje penceresindeki sprite varlığına tıklayın.
  • Animasyonun ayrı ayrı karelerini tanımlamak için Sprite Düzenleyicisini kullanın. Gerekirse hareketli grafik birden fazla alt resme bölünebilir. Düzenleyici ayrıca hareketli grafiğin konumunu kontrol etmek için her karenin pivot noktasının değiştirilmesine de izin verir.
  • Sprite Düzenleyici'de yapılan değişiklikleri kaydedin.

Animasyon Penceresini Kullanarak Animasyonlar Oluşturma

  • Animasyon penceresini açmak için 'Window -> Animation''e gidin.
  • Animasyon penceresinde, yeni bir Animasyon klibi oluşturmak için Oluştur düğmesine tıklayın.
  • Proje penceresinde animasyon klibini seçtiğinizde özellikleri Denetçi penceresinde görünecektir.
  • Denetçi penceresinde animasyon klibinin uzunluğunu, örnekleme hızını ve diğer özelliklerini ayarlamak mümkündür.
  • Anahtar kareler oluşturmak için, Animasyon penceresindeki oynatma kafasını belirli bir zaman'e taşıyın ve Sahne veya Hiyerarşi penceresinde karakterin özelliklerini (örn. konum, ölçek, döndürme vb.) değiştirin.
  • Sorunsuz bir animasyon oluşturmak için farklı zamanlarda ana kareler ekleyin. Unity, anahtar kareler arasındaki değerleri otomatik olarak enterpolasyona tabi tutar.

Animatörün Kurulumu

  • Sahne veya Hiyerarşi penceresinde karakter nesnesini seçin.
  • Denetçi penceresinde, Bileşen Ekle düğmesine tıklayın ve Animatör bileşenini nesneye eklemek için "Animator"'yi arayın.
  • Yeni bir Animatör Denetleyici varlığı oluşturmak için Animatör bileşenindeki Oluştur düğmesine tıklayın.
  • Yeni oluşturulan Animatör Denetleyicisini Animatör bileşeninin Denetleyici alanına atayın.

Animatör Denetleyicisini Yapılandırma

  • Animatör penceresinde açmak için yeni oluşturulan Animator Controller varlığına çift tıklayın.
  • Animatör penceresinde, animasyonların akışını temsil eden bir Animatör Denetleyici grafiği bulunur.
  • Animasyon durumları oluşturmak için Animatör penceresine sağ tıklayın ve 'Create State -> From New Clip' veya 'From Sprite Renderer' seçeneğini seçin.
  • Animasyon penceresinde önceden oluşturulan animasyon kliplerini ilgili animasyon durumlarına sürükleyip bırakın.
  • Bir duruma tıklayıp oku başka bir duruma sürükleyerek animasyon durumları arasında geçişler oluşturun. Zaman, parametre değerleri veya olaylar gibi geçiş koşullarını ayarlamak mümkündür.
  • Geçişleri kontrol etmek için bool'lar, int'ler veya tetikleyiciler gibi parametreler eklemek mümkündür. Örneğin, boş animasyon durumundan çalışan animasyon durumuna geçişi tetikleyen "IsRunning" adlı bir bool parametresi olabilir.

Animasyonları Oynatma

  • Sahne veya Hiyerarşi penceresinde karakter nesnesini seçin.
  • Denetleyici penceresindeki Animatör bileşeninde, oluşturulan Animatör Denetleyici varlığını Denetleyici alanına sürükleyin.
  • Animasyonları test etmek ve önizlemek için Animasyon penceresinde Oynat düğmesine basın.

Animasyonları Programlı Olarak Kontrol Etme

  • Animasyonları programlı olarak kontrol etmek, Animator bileşenine script'ten erişmeyi gerektirir.
  • Komut dosyasında Animator türünde bir değişken oluşturun ve hareketli grafik nesnesine eklenen Animator bileşenine referans almak için 'GetComponent<Animator>()' kullanın.
  • Daha sonra geçişleri tetiklemek, parametre değerlerini ayarlamak veya animasyonların oynatılmasını kontrol etmek için Animatörün fonksiyonlarını ve özelliklerini kullanmak mümkündür. Örneğin, animator.SetBool("IsRunning", true) öğesinin çağrılması, çalışan animasyonu tetikleyecektir.
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;
    }
}

Çözüm

Bu, yerleşik araçları kullanarak Unity'de 2B animasyonlar oluşturmaya ilişkin temel bir genel bakıştır. Unity aynı zamanda hareketli grafik sayfaları, ters kinematik (IK) kullanma ve özel animasyon komut dosyaları oluşturma davranışlar gibi daha gelişmiş teknikleri de destekler. Söz konusu animasyonların belirli gereksinimlerine ve karmaşıklığına göre bu seçenekleri keşfedin.

Önerilen Makaleler
Unity'de Kızma Birader Oyunu Oluşturma
Unity'de Süper Mario Benzeri 2D Oyun Nasıl Yapılır
Unity'de Basit Bir Platform Oyunu Oluşturma
Unity'de Screamer Oyunu Oluşturma
Unity'de Poppy Playtime'dan Esinlenen Bir Oyun Yaratmak
Sınırsız Yaratıcılığa Açılan Kapıyı Birlikten Keşfetmek
Unity'de Mobil Korku Oyunu Oluşturmak