Los modelos en Minecraft están codificados. No existe una noción de jerarquía de bloques (solo una lista de bloques). Esto significa que las animaciones se realizan de forma procesal (de una manera muy básica) o valores codificados con interpolación.
Hay algunos editores para modelos de Minecraft como Techne o FMCModeler que permiten importar / exportar código de modelo de Minecraft para modificaciones, pero no admiten animaciones, ya que probablemente se maneja de manera diferente para cada modelo.
Aquí hay una muestra rápida generada con FMCModeler:
//variables init:
public ModelRenderer box;
//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);
//render:
box.render(f5);
Una mejor manera de hacerlo sería construir un modelador completo basado en bloques con algunas nociones de jerarquía de bloques para que pueda animar los modelos con fotogramas clave e interpolación.
Actualmente estoy construyendo una herramienta de construcción de juegos multijugador que hace precisamente eso (entre otras cosas, http://craftstud.io/ ). Ya permite construir modelos complejos con textura estática y hay más en camino.
Aquí hay un modelo complejo construido con CraftStudio. Como puede ver, los bloques están dispuestos en un árbol a la derecha:
Cada bloque se serializa en el disco / a través de la red con los siguientes datos:
- Identificación única
- ID del nodo principal
- Posición (afecta a los descendientes)
- Escala (afecta a los descendientes)
- Ángulo (afecta a los descendientes)
- Desplazamiento desde el punto de pivote
- Tamaño de bloque
- Desplazamiento de textura de bloque (desplazamiento de coordenadas UV para el texturizado)
Planeo agregar soporte de animación almacenando un mapa con nombres de animación como clave y una lista de fotogramas clave como valor. Cada fotograma clave se asociará con un bloque y un valor para animar. Entre los fotogramas clave, los valores deben interpolarse (ya sea linealmente para la posición o esféricamente para los ángulos, buscar lerp y slerp).