Modelle in Minecraft sind fest codiert. Es gibt keine Vorstellung von Blockhierarchie (nur eine Liste von Blöcken). Dies bedeutet, dass Animationen entweder prozedural (auf sehr einfache Weise) oder durch Interpolation fest codierte Werte ausgeführt werden.
Es gibt einige Editoren für Minecraft-Modelle wie Techne oder FMCModeler, mit denen Minecraft-Modellcode für Mods importiert / exportiert werden kann. Sie unterstützen jedoch keine Animationen, da diese wahrscheinlich für jedes Modell unterschiedlich gehandhabt werden.
Hier ist ein kurzes Beispiel, das mit FMCModeler erstellt wurde:
//variables init:
public ModelRenderer box;
//constructor:
box = new ModelRenderer(0, 0);
box.addBox(0F, 0F, 0F, 16, 16, 16);
//render:
box.render(f5);
Besser wäre es, einen vollständigen blockbasierten Modellierer mit einigen Begriffen der Blockhierarchie zu erstellen, damit Sie die Modelle mit Keyframes und Interpolation animieren können.
Derzeit baue ich ein Multiplayer-Tool zum Erstellen von Spielen, das genau das tut (unter anderem http://craftstud.io/ ). Es ermöglicht bereits das Erstellen komplexer statischer strukturierter Modelle und weitere sind in Vorbereitung.
Hier ist ein komplexes Modell, das mit CraftStudio erstellt wurde. Wie Sie sehen, sind die Blöcke in einem Baum auf der rechten Seite angeordnet:
Jeder Block wird mit den folgenden Daten auf Platte / über das Netzwerk serialisiert:
- Eindeutige ID
- ID des übergeordneten Knotens
- Position (betrifft Nachkommen)
- Skalieren (betrifft Nachkommen)
- Winkel (betrifft Nachkommen)
- Versatz vom Drehpunkt
- Block Größe
- Blocktexturoffset (UV-Koordinatenoffset für die Texturierung)
Ich plane, Animationsunterstützung hinzuzufügen, indem ich eine Karte mit Animationsnamen als Schlüssel und eine Liste von Schlüsselbildern als Wert speichere. Jeder Keyframe wird mit einem Block und einem zu animierenden Wert verknüpft. Zwischen Keyframes sollten Werte interpoliert werden (entweder linear nach Position oder sphärisch nach Winkeln, Suche nach Lerp und Slerp).