CodeBlanks Logo Icon CodeBlanks

Sprite animasyon hazırlığı

Birden çok sprite'ı sıralı oynatmak için slice'lamayı öğrenirsin.

Sprite animasyon hazırlığı ve Slice

2D oyunlarda karakter animasyonları genellikle birden çok karenin tek bir görselde toplandığı Spritesheet dosyalarıyla hazırlanır. Sprite Mode Multiple yapıldıktan sonra Sprite Editor penceresinde Slice (Dilimleme) işlemi uygulanır.

// Spritesheet içindeki dilimlenmiş tüm alt kareleri yükleme
Sprite[] walkFrames = Resources.LoadAll<Sprite>("HeroWalkSheet");

Slice işlemi, görseli eşit ızgaralara veya piksel sınırlarına göre parçalara böler.

Kareler ve Animasyon Akışı

Dilimlenen kareler (frames), Project penceresinde ana dosyanın altında alt ögeler olarak listelenir. Bu kareler sırayla oynatıldığında kare kare (frame-by-frame) klasik 2D animasyon hissi oluşturulur.

// İlk animasyon karesini görüntüleme
Sprite currentFrame = walkFrames[0];
sr.sprite = currentFrame;

Sprite'ların pivot noktalarının her karede aynı yerde (örneğin ayak tabanında) olması titremeyi engeller.

Uygulama Animasyon kare sayısını yazdır

totalFrames değişkenine 8, animName değişkenine "Run" değerini ata. Ekrana Animation: Run | Frames: 8 yazdır.

Başlangıç kodu

Player.cs
using System;

class Program
{
    static void Main()
    {
        // totalFrames ve animName değerlerini tanımlayıp yazdır
    }
}

Örnek çözüm

Player.cs
using System;

class Program
{
    static void Main()
    {
        int totalFrames = 8;
        string animName = "Run";
        Console.WriteLine("Animation: " + animName + " | Frames: " + totalFrames);
    }
}

Beklenen çıktı

Animation: Run | Frames: 8

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Tek bir Spritesheet görselini bağımsız animasyon karelerine bölme işlemine ne ad verilir?

  • Extrude (Yükseltme)
  • Rigging (İskeletleme)
  • Slice (Dilimleme) Doğru cevap
  • Baking (Pişirme)

Açıklama: Slice, bir spritesheet içindeki kareleri ayrı ayrı bağımsız sprite varlıklarına dönüştürür.

2 Çoklu sprite karelerini yükle

Soru
Sprite[] frames = Resources.____<Sprite>("KnightRun");
Cevap
Sprite[] frames = Resources.LoadAll<Sprite>("KnightRun");

Açıklama: Bir spritesheet dosyasındaki tüm alt sprite karelerini dizi olarak almak için LoadAll metodu kullanılır.

3 Animasyon hazırlık terimleri

Kavram Anlamı
Spritesheet Animasyon karelerini toplayan resim
Sprite Editor Görsel dilimleme ve pivot aracı
Slice Görseli bağımsız karelere ayırma
Frame Animasyondaki tek bir anlık kare

Başlangıç bölümündeki tüm dersler