Samstag, 20. November 2010

Knochige Bälle

Wie bereits vorausgesagt, komme ich nun zur Ballanimation mit Hilfe von Knochen.


Dazu nehmen wir uns den zweiten Ball aus unserer Szene. Dieser liegt bei x=-2, y=0, z=5. Nachsehen könnt ihr dies, indem ihr N drückt während der Mauszeiger in der 3D-View ist. Alternativ ist dies auch über View -> Properties zu erreichen. Gleich ganz oben in dem Bereich ist die Transformation mit der Location des Balles. Um wieder angenehm arbeiten zu können, wechseln wir mit Num1 in die Frontansicht. Im Idealfall sollten alle Objekte der Szene sichtbar sein, Kamera, Lichtquelle, 2 Bälle, die Quader-Fläche. Zumindest den Ball, den wir jetzt "knochifizieren" wollen, und die Fläche, auf der er herumspringen soll, wären jetzt ganz gut im Blick zu haben.  Falls dies nicht unbedingt der Fall sein sollte, könnt ihr dies anpassen. Die Ansicht lässt sich mit Shift+MMB verschieben, das Mausrad bzw. Num+ und Num-  bzw. Strg+MMB helfen beim Zoomen.

Der Ball ist, dank Nicht-Skalierung, passend in 4 Raster-Kästchen. Das nutzen wir aus und setzten den 3D-Cursor an die Unterseite des Balles. Dazu klicken wir mit LMB in etwa da, wo das Raster einen Schnittpunkt hat und der Ball unten aufliegt. Der 3D-Cursor ist nun an der Position. Sehr wahrscheinlich ist dies aber nicht genau die unterste Ballposition. Da wir pfiffig sind, wissen wir, dass dies bei x=-2, y=0, z=4 sein müsste. Im Propertie-Bereich, der wieder per N aufgerufen werden kann, gibt es im Abschnitt View die 3D Cursor Location. Dort können wir die Werte anpassen.
Oder wir nutzen Shift+S, welches das Snap-Menü öffnet. Wir wählen Cursor to Grid. Das sollte den 3D-Cursor passen setzten. Wenn ihr allerdings zu nah herangezoomt seid, kann es sein, dass die Gitterauflösung schon etwas feiner ist und der 3D-Cursor nun nicht an der von uns gewollten Stelle liegen bleibt. Da hilft herauszoomen oder den 3D-Cursor versuchen mit LMB näher an das Ziel zu setzten und erneut Snap->Cursor to Grid anzuwenden.


Jetzt können wir ein paar passende Knochen einfügen. Die finden wir unter Shift+A -> Armature -> Single Bone.
Super!
Wir sehen nichts. Die Kugel verdeckt die Sicht. Deswegen gehen wir rechts im Properties Bereich auf Object Data (das Zeichen sieht wie ein Strichmännchen aus) und setzten das Häckchen bei X-Ray im Abschnitt Display. Außerdem klicken wir oben drüber noch auf B-Bone um die Ansicht des Knochen etwas demonstrativer zu machen.
Nun gehen wir in den Edit-Modus. Am schnellsten geht das mit Druck auf die Tab-Taste. Es geht aber auch per Klick auf Object Mode unten in der Menüleiste der 3D-View. Dort kann auch der Edit-Mode ausgewählt werden.
Als erstes nehmen wir nun den Knochen mit RMB (er sollte nun komplett Organge umrandet sein) und skalieren (Strg+Alt+S) ihn auf das 9 (neun)-fache. Er müsste jetzt etwas schmaler sein, als der Ball. Anschließen machen wir ihn noch etwas flacher. Dazu greifen (RMB) wir uns den kleinen oberen Kreis mit Kreuz, welcher dadurch orange wird und ziehen (G) ihn um 0.9 Einheiten auf der Z-Achse nach unten. Um die ganzen Knochen nachher noch auseinander zu halten, geben wir ihnen Namen. Dies geht wieder im Propertie-Bereich (N). Es gibt dort ein Feld im Abschnitt Item, das aussieht, wie ein Knochen. Dies ist für den Namen des Knochens. Ebenso kann der Name im Properties-Bereich rechts im Knochen rechts neben dem Strichmännchen geändert werden.


Ich habe meinen unteren Knochen Fuss genannt.
Den Knochen ziehen (G) wir jetzt noch um 0.1 auf der Z-Achse nach unten.
Damit erstellen wir auch schon den nächsten Knochen, indem wir Shift+A drücken. Der obere Zipfel des Knochens sollte markiert sein. Diesen ziehen (G) wir bis DZ auf 1 steht, also das Kreuz am oberen Rand des Balles ist.
Dem Knochen geben wir den Namen Koerper.
Bevor wir den nächsten Knochen erstellen, stellen wir rechts im Properties-Bereich im Object (das 3D-Würfel-Symbol) im Bereich Display den Typ auf Wire. Dadurch werden nur noch die Umrisse der Knochen dargestellt und es lässt sich etwas leichter arbeiten. Dann können wir auch wieder auf Bone (das Knochen-Symbol) wechseln.
Shift+A setzt einen neuen Knochen. Am oberen Punkt angefasst und DZ: 1.1, also genau 0.1 höher, als der Knochen vorher, gezogen, sollte passen. Diesen Knochen wählen wir jetzt "richtig" aus, das Rechteck des Knochens sollte Orange umrandet sein. Unter Umständen muss RMB zwei drei mal gedrückt werden, bis der richtige Knochen selektiert ist. Haben wir ihn endlich, skalieren wir ihn mit Alt+Strg+S auf 11 und nennen ihn anschließend Huelle. Dieser dient nachher als gesamte Ummantelung aller Knochen.
Jetzt brauchen wir nur noch einen Kopf-Knochen. Dazu klicken wir auf den Kreis oben am Koerper-Knochen, drücken Shift+S und wählen Cursor to Selected. Dadurch setzen wir den 3D-Cursor an diese Stelle. Dort können wir mit Shift+A den letzten Knochen einfügen.
Ich schlage vor ihn als erstes mit Strg+Alt+S auf 9 zu skalieren. Damit ist er genauso breit, wie der Fuss-Knochen. Zum Skalieren musste wieder der Knochen-Körper, also das Rechteck, ausgewählt sein. Der Knochen ist noch etwas zu hoch. Darum nehmen wir wieder den Kreis oben und ziehen (G) ihn um DZ=-0.9 nach unten. Er sollte nun so aussehen, wie der Fuss-Knochen. Als Namen wählen wir Kopf.
Damit haben wir alle nötigen Knochen.

Wählt nun die drei Knochen außer den Koerper-Knochen und entfernt das Häkchen aus dem Properties :: Bone :: DeformKoerper-Knochen stellen wir an der Stelle bei den Curved Bones die Segmentanzahl auf 16.


Im Bild habe ich auch mal im Outliner die Knochen anzeigen lassen. Diese gehören alle zu Armature. Im Outliner können die einzelnen Knochen ausgewählt werden, sowie deren Sichtbarkeit (das Auge) und ob diese Objekte in der 3D-View anwählbar sind (der Pfeil). Auch kann ausgewählt werden, ob ein Objekt beim Rendern gezeigt werden soll. Dafür ist das Kamera-Symbol. Gerade befinden wir uns im Edit-Mode. Das sieht man zum Beispiel auch daran, dass im Outliner das zweite Armature grau umrandet ist. Deaktiviert man dies per Klick, kommt man in den Objekt-Modus. Darunter ist auch der Pose-Modus zu sehen. Zu diesem kommen wir gleich noch.

Als nächstes werden wir die Knochen verbinden.
Dazu wählen wir zuerst den Koerper- und dann den Fuss-Knochen. Damit beide gewählt werden, halten wir Shift beim Selektieren mit RMB fest. Es ist zu erkennen, dass der Koerper-Knochen dunkler umrandet ist, als der Fuss-Knochen. Dies ist wichtig, denn so wird eine Art Beziehung dargestellt. Drücken wir jetzt Strg+P für Make Parent und wählen Keep Offset, werden alle zuerst gewählten Objekte Kinder des zuletzt gewählten. In diesem Fall wird der Koerper- zum Kind des Fuss-Knochens, bzw. der Fuss- zum Elternteil des Koerper-Knochens. Dies ist wichtig, damit beim Bewegen des Fuss-Knochen im Pose-Modus der Koerper-Knochen sich mit dem Fuss-Knochen mitbewegt. Der Koerper-Knochen kann sich hingegen ganz alleine und unabhängig vom Fuss-Knochen bewegen.
Den Huelle-Knochen machen wir als nächstes zum Elternteil vom Fuss- und Kopf-Knochen. Dazu wählen wir Kopf-, Fuss- und zuletzt den Huelle-Knochen und drücken Strg+P und wählen wieder Keep Offset. Beim Auswählen ist wieder die Shift-Taste zu drücken um mehrere Objekte auszuwählen.

Pose-Mode ist der Modus, in den wir jetzt wechseln. Entweder gelingt dies über das Menü im 3D-View-Menü oder per Klick auf Pose im Outliner. Ob wir wirklich richtig sind, sehen wir daran, dass die Knochen blau umrandet angezeigt werden. Wir selektieren den Kopf-Knochen und mit Shift dazu den Koerper-Knochen. Der Kopf-Knochen wird dunkel, der Koerper-Knochen hellblau umrandet. Per Shift+Strg+C ein Stretch To - Constraint ein.
Jetzt fehlt nicht mehr viel.
Wir wählen den Ball und per Shift dazu den Koerper-Knochen. Mit Strg+P erhalten wir wieder eine Parent-Beziehung, bei der wir uns für With Automatic  Weights entscheiden.
Nochmals wählen wir den Koerper-Knochen, gehen mit Tab in den Edit-Mode und setzten den Haken bei Connected im Bereich Relations.



In dem wir nun den Kopf- oder Fuss-Knochen im Pose-Mode bewegen, verändert sich der Ball passend mit.
Das nutzen wir jetzt aus.

Im Pose-Mode setzten wir, nachdem wir mit A alle Knochen ausgewählt haben, mit I einen LocScale-Keyframe und achten darauf, auf Zeitpunkt 1 zu stehen. Zum Zeitpunkt 24 schieben wir die Kugel, indem wir den Huelle-Knochen verschieben, soweit nach unten, dass die Unterseite der Kugel auf der Oberfläche der Fläche ist. Jenes sind DZ= -3.9 . Zusätzlichen nehmen wir nur den Kopf-Knochen und schieben ihn DZ=0.5 nach oben. Damit simulieren wir, dass die Kugel beim Fallen etwas gestreckt wird.
Wir setzen wieder einen LocScale-Keyframe, und vergessen vorher nicht wieder mit A alle Knochen gewählt zu haben, und gehen weiter zum Zeitpunkt 30. An der nebenliegenden Kugel sehen wir, dass diese nun ihren tiefsten und eingedrücktesten Zustand besitzt. Dazu müssen wir den Kopf-Knochen um DZ=-1.6 nach unten bewegen. Wir wählen wieder alle Knochen und fügen erneut einen LocScale mit I ein.
Folgenden Keyframe kopieren wir um uns etwas Arbeit zu ersparen. Zum Zeitpunkt 33 soll die Konstruktion wieder wie zu Zeitpunkt 24 aussehen. Dazu gehen wir zum Zeitpunkt 24, wählen wieder alle Knochen und kopieren diese. Der Kopier-Knopf ist der dritte von rechts in der Menüleiste der 3D-View, der, bei dem der Pfeil zum Klemmbrett zeigt.


Daneben befindet sich der Knopf zum Einfügen. Bevor wir den drücken, müssen wir allerdings erst zum Zeitpunkt 33 vorrücken. Anschließend drücken wir den Einfügeknopf und speichern den Keyframe mit I als LocScale ab.
Das Letzte ist, zum Zeitpunkt 60 eine Kopie von Zeitpunkt 1 einzufügen. Dies machen wir analog wir gerade eben. Wir gehen auf Zeitpunkt 1, wählen alle Knochen, drücken den Kopier-Knopf, gehen zu Zeitpunkt 60, drücken den Einfüge-Knopf und speichern einen LocScale-Keyframe.

Für's erste ist's ganz ok.

Machen wir noch ein paar kleine Eingriffe im Graph-Editor. Dazu wechseln wir von der Default-Ansicht in die Animationsansicht. Im Graph-Editor sind einige Graphen zu sehen. Uns interessiert davon die Hellgrüne, die so schwungvoll nach unten geht. Im Menü links ist diese die Y-Location von Huelle von ArmatureAction. Vom diesem Graph wollen wir nun die beiden Punkte bei Position 24 und 33 auf 0 skalieren. Den jeweiligen Punkt mit RMB geklickt und mit S -> 0 -> Enter herunterskaliert, macht eine nette Ecke in die schwungvolle Kurve.



Zu guter Letzt gehen wir wieder in die Default-Ansicht, selektieren die Armature, also die Bones, die Knochen, passen auf, dass wir uns im Object-Mode befinden, drücken M um das gewählte Objekt auf einen anderen Layer zu verschieben und wählen das rechte neben dem ersten linken. Die Knochen verschwinden. Beim Abspielen der Animation mit Alt+A oder per Druck auf den Play-Button, ist nur noch der Ball samt Verformungen und Bewegungen zu sehen.

Dieses Tutorial ist stark hieran angelehnt:
http://www.blendercookie.com/2010/09/29/creating-a-bouncing-ball-rig/

Insgesamt sieht das fertige Gehüpfe bei mir so aus:

video


Ganz befriedigend ist dies für mich allerdings noch nicht.
Im Vergleich zu realen Bällen fehlt einfach noch zu viel. Für kleine schnelle Täuschungen, vorallem im Bezug auf härtere, also nur wenig stark verformbare Bälle, sollte diese Methode ausreichend sein.

Eine Variante habe ich noch. Diese wird sehr kurz und einfach, dafür aber auch rechenlastiger werden. In puncto Korrektheit sollte sie jedoch kaum übertreffbar sein.