Sprite animasyon hazırlığı
- Oyun Geliştirme kursu
- Başlangıç
- Ders 59/83
- 4 dk
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
using System;
class Program
{
static void Main()
{
// totalFrames ve animName değerlerini tanımlayıp yazdır
}
}Örnek çözüm
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
Sprite[] frames = Resources.____<Sprite>("KnightRun");
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 |