Hareketli grafik sayfasının bir bölümünü elle nasıl çizebilirim?


9

Unity'de çalışıyorum ve animatörün 2D oyunumda yapmaya çalıştığım şey için çalışmadığını görüyorum. Sprite sayfaları kullanarak belirli bir animasyon oluşturmak ve hücreler tarafından aynı boyut ve boyutlarda olan diğer spritelar ile aynı animasyonu yeniden kullanmak istiyorum. Biraz araştırma yaptıktan sonra bunun imkansız olduğunu görüyorum.

Bunun yerine, kendi animasyon betiğimi oluşturmaya çalışıyorum, ancak Unity'ye sprite'ın yalnızca bir bölümünü çizmesini nasıl söyleyeceğimi anlamıyorum. XNA'da olduğu gibi, başlangıç ​​ve bitiş koordinatlarını kullanarak bir hareketli grafiğin yalnızca belirli bir dikdörtgenini oluşturabileceğiniz bir şey.

Hareketli grafik sayfasının bir bölümünü elle nasıl çizebilirim?


3
Bu, Unity'de animasyon verilerini çoğaltmadan, küçük bir kesmekle mümkündür. Etkin bir şekilde spritesheetA'yı kullanarak A animasyonunu oynatırsınız, daha sonra LateUpdate'de her SpriteRenderer's Sprite'ı spritesheetB'den analogu ile değiştirirsiniz. Bu teknikte bir Birlik videosu vardı; Daha sonra bulabilirsem cevap olarak gönderirim ve ayrıntılar üzerinde dururum. Bu, Unity'nin yerel animasyon sisteminin tüm gücünü, kendiniz sıfırdan yazmak zorunda kalmadan kullanmanıza izin verecektir.
DMGregory

Spine veya başka bir iskelet animasyon yazılımı denemelisiniz. Aynı kemik animasyonlarını korumanıza izin veren bir kaplama özelliğine sahiptir, ancak gerektiğinde kaplamaları değiştirir ve değiştirir. Ben şahsen Spine kullanıyorum çünkü basit, öğreticiler vardır ve her şeyi süper basit hale getiren bir birlik çalışma zamanı vardır. Dezavantajı paraya mal olmasıdır, ancak temel sürüm size animasyon yapmak için ihtiyacınız olan her şeyi verir. Pro sürümü sadece daha kolay ve daha hızlı hale getirir.
Savlon

UI üzerinde çalışıyorsanız maskeleri kullanın
virtouso

Yanıtlar:


1

Sanırım bunu yapabileceğiniz daha basit bir yaklaşım olabilir ve yine de animasyon için Unity Mecanim'i kullanabilirsiniz.

Adımlar: -

1) Görüntüden doku 2D spritelarını atayabilirsiniz ve bir ızgara olduğu için bunu yapmak çok zor olmayacaktır. Aşağıdaki yanıtta kullanıcı kendi hareketli dilimleyicisini oluşturdu ve dizine kaydetti (isteğe bağlı olarak yalnızca bir değişkene kaydedin). Kodun tamamına ihtiyacınız yoktur, sadece GetSprites () işlevini kontrol edin ve fikir edineceksiniz :)

http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html

2) Bunu yapabildiğinizde, 1. adımdan aldığınız bir sprite dizisini koruyun.

3) Şimdi bu spriteların mecanim'e takılabilecek bir anim dosyası oluşturmanız gerekiyor. Bunun için Unity'nin Eğri Ayarlama işlevine ihtiyacınız vardır (aşağıdaki bağlantıyı kontrol edin). Klipsi aldıktan sonra, gelecekteki kullanım için kaydetmek veya sadece geçerli oyun örneği için bir değişkene sahip olmak size kalmış.

http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html

Umarım bu şüphe giderir :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.