Hi,
also vom Format her (wenn man das ganze mal als ASCII-File mit Anlehnung ans Wavefront Object Format betrachtet) geht das doch dann in die Richtung:
Code: Alles auswählen
# irgendein Mesh, beschrieben durch Vertices und Faces
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
f 1 2 3 4
f 5 8 7 6
f 1 5 6 2
f 2 6 7 3
f 3 7 8 4
f 5 1 4 8
# und dann kommen Animationen dazu: Schlüsselwort "ani",
# gefolgt vom Animationsnamen (String) und dem Namen des Objektes
# und die zugehörigen keyframes: Schlüsselwort "frame",
# gefolgt von der Animations-ID und der ID des Keyframes,
# einem "rotate" oder "translate" und den x y und z Werten
# für den OpenGL-Call
ani MoveForward Cube
frame 0 0 rotate 45.0 0.0 0.0 # keyframe 0: drehung um 45.0f entlang der x-Achse
frame 0 0 translate 0.0 0.0 2.0 # keyframe 1: verschiebung um 2.0 entlang der z-Achse
frame 0 1 rotate 90.0 0.0 0.0 # keyframe 1: drehung um 90.0f (im vgl. zum Ruhezustand)
frame 0 1 translate 0.0 0.0 2.0 # klar
frame 0 2 rotate 135.0 0.0 0.0
frame 0 2 translate 0.0 0.0 2.0
frame 0 3 rotate 180.0 0.0 0.0
frame 0 3 translate 0.0 0.0 2.0
frame 0 4 rotate 225.0 0.0 0.0
frame 0 4 translate 0.0 0.0 2.0
frame 0 5 rotate 270.0 0.0 0.0
frame 0 5 translate 0.0 0.0 2.0
frame 0 6 rotate 315.0 0.0 0.0
frame 0 6 translate 0.0 0.0 2.0
# statt keyframe 7 kommt der ruhezustand
Dann gibt es für jedes Objekt (Linker Unterarm, Rechter Oberschenkel usw.) separate Animationen, die das Objekt autonom verändern. Wenn man davon ausgeht, dass alle Objekte einer Datei zu einem Körper gehören (d.h. hier kommen z.B. alle Glieder usw. eines Wolfes rein), dann kann die "Wolf-Datei" vom Programm gelesen, alle Bestandteile inkl. der auszuführenden Drehungen und Verschiebungen gespeichert und dann entsprechend alle notwendigen Dinge animiert werden. Damit meine ich: Bewegt sich der Wolf forwärts, werden für jeden Teil die "Move Forward" Animation ausgeführt. Hat der Kopf z.B. keine, bliebe er die ganze Zeit starr...
Soo, das ganze ist nur ein Gedankenexperiment und spiegelt das ganze so wieder, wie ich den großteil eurer vorschläge verstanden zu haben. Jetzt dürft ihr euch auf mich stürzen und zerfleischen
PS: Ein "eigenes" Format würde ich allein schon des Lernen-und-Verstehens halber ausprobieren wollen