#1, by MachtnixMonday, 21. April 2014, 19:42 12 years ago
Hallo.
In meinem Mini-Projekt, das ich mir zum Austüfteln von Visionaire ausgedacht habe, gibt es mehrere Interaktionen des Charakters mit Gegenständen der Kulisse. Die Figur muss z.B. ein Handrad drehen, ein Hebel hebeln (YellowSubmarine lässt grüßen... ;-) oder ändert beim Betreten eines bestimmten Kulissenobjekts ihr Outfit. In einer Szene betritt die Figur eine Telefonzelle (nein, ich bin kein Dr.Who-Fan ;-)
Ich probiere dabei aus, ob Cinema4d R11 dazu geeignet ist. Die Charakteranimation ist leicht zu bewerkstelligen, bloß das Erstellen der Kulissen erfordert natürlich unendlich mehr Zeit als die mal eben zu zeichnen... Da ich mit Sketch- und Toon noch Null Erfahrung habe, dieses Tool mich mit Einstellmöglichkeiten geradezu überschüttet und die Figur einfach nicht wie gezeichnet aussehen will, würde zur Zeit immer der Unterschied zwischen der 3D-Figur und dem handgemalten Hintergrund auffallen.
Aber nun zu meiner eigentlichen Frage:
Ich legte also die Animationen der Figur mit dem interaktiven Objekt als PNG-Animation mit Alpha-Kanal an. Um KB zu sparen, waren die Animationen der Figur auf den Ausschnitt beschränkt, in dem die auch stattfindet. Nun bekomme ich es partout nicht hin, dass die Figur exakt an der Stelle startet und die gleiche Größe hat, an der auch die Animation beginnt. Die Animation ist nie deckungsgleich mit dem Kulissenobjekt und zudem verschieden groß. Sollte ich das Kulissenobjekt von vornherein ganz weglassen???
Erster Versuch also: die Kulisse wird ohne die - später animierten - Objekte gerendert; diese kommen als Kulissenobjekte später drauf. Beim Erstellen des Wegenetzes tauchen die Objekte aber nicht auf, so dass ich mir regelrecht Markierungen auf dem Hintergrundbild anlegen müsste, wo gerade ein Hebel oder das Handrad sich befindet... Wie im Theater ;-) Das wird nie und nimmer passgenau. Ich kann mir nur schnell merken, wo die Animation startet und möglichst exakt die Stelle des Objekts nachvollziehen (also z.B. die Kulissen-Telefonzelle an die Animation anpassen, nicht umgekehrt).
Cinema4d hat dummerweise Probleme, Ausschnitte aus einem bestehenden Bild herauszupicken und in derselben Größe und im selben Winkel zu rendern, sodass sie später einfach draufgepappt werden können. Ich kann nämlich nicht sagen: rendere mir diesen Ausschnitt raus und füge oben stumpf 100 Pixel hinzu. Oder rendere mir einen Ausschnitt von 100x100 Pixel. Photoshop CS3, das mir zu Verfügung steht, schneidet zwar brav die Detailmotive aus dem Komplettbild heraus, ignoriert beim Im- und Export aber den PNG-Alpha-Kanal. Das ist also nichts.
Zweiter Versuch: Die interaktiven Animationen komplett im Endformat (1024x768) und mit Alpha-Kanal zu rendern. Das ist prinzipiell doof, weil z.B. die Animation des Hebels und die Figur zusammen nur eine Größe von z.B. 500x500 Pixel einnimmt. Ich habe also sämtliche Animationen im Endformat 1024x768, auch wenn sie selbst z.B. nur 30x30 Pixel groß sind... Der Rest ist schwarz bzw. Alpha-Kanal. Aus vielen Spielen weiß ich aber, dass die Animationen immer nur den Raum abdecken, in dem sich auch was bewegt - ist auch sinnvoll.
Vorteil: Immerhin stehen die Objekte und die Animationen schon mal an der richtigen Stelle und ich müsste es nur schaffen, den Übergang der Spielfigur zur animierten Sequenz so unauffällig wie möglich hinzukriegen. Das widerspricht dem Grundsatz, alle Personenanimationen in derselben Auflösung zu erstellen, damit diese gleich groß sind und überblendet werden können.
Wenn sich die Interaktionen aber weiter hinten im Raum befinden, ist auch die Figur nicht mehr passgenau. Diese wird durch Visionaire zwar skaliert, die Pose AN SICH bleibt aber unverändert. Ich kann die Animationen also nicht an der Stelle rendern, an denen sie später stattfinden. Die Figur mit Wegepunkten so genau zu skalieren, dass man keinen Übergang sieht, habe ich nicht geschafft.
Die Personenanimation der Interaktion (also die komplette in 1024x768) passt nicht zu den üblichen Geh- und Stehanimationen (diese sind 450 x 800px). Wie ich es auch drehe und wende: es klappt nicht, den Charakter in irgendeine Animation einzubauen. Entweder startet die Interaktion nicht exakt an der richtigen Stelle und/oder ist zu klein. Ich kann die Animationen auch nicht deckungsgleich kriegen, denn skalieren ist in Visionaire nachträglich nicht möglich (Mitte setzen und verschieben schon, aber das ist nicht genug).
Die einzige Möglichkeit, die mir einfällt, ist: ALLE Personenanimationen in der maximalen Spiele-Auflösung von 1024 x 768 anzulegen. ODER wenigstens eine Größe wählen, in der alle zukünftigen Animationen Platz haben (Ungefähr 800 x 768 px). Alle Posen (also auch Walk usw.) in die Mitte plazieren, die Figur gleich groß machen und gut. Dann hätten alle Walk- und Standposen dementsprechend viel toten ungenutzten Raum. Ich kann dann jede erdenkliche Animation nur durch Verschieben zur Deckung bringen und muss dann nur noch das nichtanimierte Kulissenobjekt in derselben Größe zusätzlich einpassen. Tja... s.o.
Bislang hat jeder Standardframe der Figur ca. 70KB. Mir dieser Methode würde jeder Frame plötzlich 200 KB kriegen (weil ja unnötig groß). Außerdem wird die effektive Größe der Figur natürlich sehr viel kleiner und damit pixeliger.
Ist das also sinnvoll?
LG
Machtnix