Model-model di Minecraft adalah kode-keras. Tidak ada gagasan tentang hierarki blok (hanya daftar blok). Ini berarti bahwa animasi dilakukan secara prosedural (dengan cara yang sangat mendasar) atau nilai-nilai hard-coded dengan interpolasi.
Ada beberapa editor untuk model Minecraft seperti Techne atau FMCModeler yang memungkinkan mengimpor / mengekspor kode model Minecraft untuk mod, tetapi mereka tidak mendukung animasi karena mungkin ditangani secara berbeda untuk setiap model.
Berikut ini contoh cepat yang dihasilkan dengan FMCModeler:
//variables init:
public ModelRenderer box;
//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);
//render:
box.render(f5);
Cara yang lebih baik untuk melakukannya adalah membangun pemodel berbasis blok penuh dengan beberapa konsep hierarki blok sehingga Anda dapat menghidupkan model dengan keyframe dan interpolasi.
Saat ini saya sedang membangun alat pembuat game multipemain yang melakukan hal itu (antara lain, http://craftstud.io/ ). Ini sudah memungkinkan membangun model bertekstur statis yang rumit dan banyak lagi yang akan datang.
Berikut model rumit yang dibangun dengan CraftStudio Seperti yang Anda lihat, blok disusun dalam pohon di sebelah kanan:
Setiap blok diserialisasi ke disk / melalui jaringan dengan data berikut:
- Identitas unik
- ID simpul induk
- Posisi (memengaruhi keturunan)
- Skala (memengaruhi keturunan)
- Angle (mempengaruhi keturunan)
- Offset dari titik pivot
- Ukuran blok
- Offset tekstur blok (offset UV koordinat untuk tekstur)
Saya berencana menambahkan dukungan animasi dengan menyimpan peta dengan nama animasi sebagai kunci dan daftar kerangka kunci sebagai nilai. Setiap kerangka kunci akan dikaitkan dengan blok dan nilai untuk menghidupkan. Di antara kerangka kunci, nilai harus diinterpolasi (baik secara linear untuk posisi atau untuk sudut, cari lerp dan slerp).