Zitat von
Sebastian Nintemann:
Hallo Fabian, ich krame jetzt diesen Thread mal wieder raus.
Ich hab mir mal die Cinema 4D Demoversion angeschaut und komm auch recht gut klar damit. Das Tutorial von Maxon dazu ist auch gut nachvollziehbar für mich. Trotzdem würde ich mir gerne ein Buch dazu anschaffen, kannst du da etwas empfehlen? Es sollte auch etwas auf animierte Modelle eingehen, bzw vor allem auch deren Speicherung in einer für Spiele geeigneten Form (eben zum Beispiel .x).
Viele Grüße,
Sebastian
Ich glaube nicht, dass es so etwas gibt. Denn wenn deine Modelle animiert werden sollen, kannst du nicht mehr einfach nur einmal D3DXLoadMeshFromX aufrufen, und denken damit würde sich dein Modell bewegen.
Es gibt zur Animation von 3D-Modellen grundsätzlich zwei verschiedene Ansatzpunkte:
1) Vertexanimation: Man speichert das selbe Modell in leicht veränderten Posen hintereinander in einer Datei ab, und zeigt immer der Reihe nach das nächste "Einzelbild" an. So wie beim Zeichentrickfilm. Vorteil: Dieses Animationsverfahren ist sehr einfach zu programmieren. Nachteil dürfte offensichtlich sein, nämlich dass der Speicherplatzverbrauch sehr groß werden kann. Desweiteren kann eine Spielfigur nicht gleichzeitig vorwärts laufen, den Kopf nach links drehen und den Arm heben, also sozusagen eine gemischte Animation.
"Mischung" von verschiedenen Animationen geht nur mit der:
2) Skeletalanimation: Hierbei speichert man einmal das Modell. Zusätzlich aber verwendet man ein Skelett, das dem menschlichen Skelett nachempfunden ist. Dann legt man für jeden Scheitelpunkt des Modells fest, wie stark er von einem Knochen beeinflusst wird (kann auch von mehreren Knochen beeinflusst werden). Die Knochen selbst sind hierarchisch angeordnet, so dass sich die Hand automatisch mitbewegt, wenn der Arm bewegt wird. Man speichert jetzt nicht mehr das komplette Modell, sondern nur noch die Bewegung der Knochen. Man kann auch dynamisch im Spiel komplett neue Knochenbewegungen erzeugen. Vorteil ist, dass man verschiedene Animationen mischen kann (z.B. wie oben eben laufen, schauen, schießen, drehen, etc.). Nachteilig ist, dass dieses Verfahren sehr kompliziert zu programmieren ist.
(Skeletale Animation wird z.B. im "3D-Spieleprogrammierung Kompendium" von Stefan Zerbst erklärt)
Das X-Format von Microsoft unterstützt Skeletalanimation, allerdings ist das auch nicht eine triviale Angelegenheit. Bis du wirklich viel Erfahrung mit 3D-Programmierung hast, wird wohl die Vertexanimation das einzige sein, was du verwirklichen kannst.
In jedem Fall kannst du nicht die in Cinema4D erstellten Modelle und Animationen einfach so ohne weitere Programmierung mit
DirectX anzeigen. Das erfordert auf jeden Fall sehr viel weitere Programmierung. Deshalb wird es wohl auch kein Buch geben, das gleichzeitig die Bedienung für Cinema4D erklärt und auch noch auf die Animation von 3D-Modellen in Spielen eingeht.
Für den Anfang sind animierte Modelle sowieso viel zu hoch gegriffen. Wenn du denkst, dass du Cinema4D nicht genug beherrschst, dann kauf dir ein Buch über Cinema4D. Damit kannst du dann mal unbewegte 3D-Modelle basteln und diese dann im X-Format mit einer
DirectX-Anwendung anzeigen.
Dann kannst du vielleicht mal ein eigenes 3D-Format entwickeln und genauer verstehen, wie das mit den Vertizes, Materialien usw. funktioniert. Und dann schließlich kannst du irgendwann vielleicht auch animierte Modelle rendern, entweder mit einem eigenen Modellformat oder mit X-Dateien (mit X-Dateien ist es schon einfacher, aber keineswegs einfach).
Also: Erst kommen die unbewegten Modelle, und die werden noch für eine ziemlich lange Zeit unbewegt bleiben! Nimm dir nicht jetzt schon vor, Animationen darstellen zu wollen.