Minecraft'taki modeller kodlanmıştır. Blok hiyerarşisi kavramı yoktur (sadece bir blok listesi). Bu, animasyonların ya prosedürel olarak (çok temel bir şekilde) yapıldığı ya da enterpolasyonlu sabit kodlanmış değerlerin yapıldığı anlamına gelir.
Modne için Minecraft model kodunu içe / dışa aktarmaya izin veren Techne veya FMCModeler gibi Minecraft modelleri için birkaç editör var, ancak muhtemelen her model için farklı işlendiği için animasyonları desteklemiyorlar.
İşte FMCModeler ile oluşturulan hızlı bir örnek:
//variables init:
public ModelRenderer box;
//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);
//render:
box.render(f5);
Bunu yapmanın daha iyi bir yolu, bazı blok hiyerarşisi kavramlarıyla tam bir blok tabanlı modelleyici oluşturmaktır, böylece modelleri anahtar kareler ve enterpolasyon ile canlandırabilirsiniz.
Şu anda bunu yapan çok oyunculu bir oyun oluşturma aracı yapıyorum (diğer şeylerin yanı sıra, http://craftstud.io/ ). Zaten karmaşık statik dokulu modeller oluşturmaya izin veriyor ve daha fazlası yolda.
İşte CraftStudio ile oluşturulmuş karmaşık bir model Gördüğünüz gibi, bloklar sağdaki bir ağaçta düzenlenmiştir:
Her blok, aşağıdaki verilerle ağ üzerinde diske / ağa serileştirilir:
- Benzersiz Kimlik
- Üst düğüm kimliği
- Pozisyon (torunları etkiler)
- Ölçek (torunları etkiler)
- Açı (torunları etkiler)
- Pivot noktasından ofset
- Blok boyutu
- Blok doku ofseti (tekstüre için UV koordinatları ofseti)
Animasyon adlarını bir haritayı anahtar olarak ve anahtar karelerin listesini değer olarak saklayarak animasyon desteği eklemeyi planlıyorum. Her ana kare, bir blok ve canlandırılacak bir değerle ilişkilendirilir. Ana kareler arasında değerler enterpole edilmelidir (ya konum için doğrusal olarak ya da açılar için küresel olarak lerp ve slerp'i arayın).