Dynamics: Das Dynamics Body-Tag – Teil 2 – Die Kollision-Rubrik

Die Erkennung von Kollisionen ist natürlich für realistisches Verhalten von Objekten besonders wichtig. Gleichzeitig gilt jedoch auch, dass diese Berechnungen sehr zeitaufwändig und komplex werden können wenn viele Objekte beteiligt sind, oder die Objekte sehr viele Polygone enthalten. Es gibt daher einige Einstellungen, mit denen Sie die Präzision der Kollisionserkennung steuern können. Zudem spielt die Struktur der dynamischen Objekte eine Rolle. Handelt es sich z. B. um einzelne Objekte, die alle individuell kollidieren können, oder bestehen die Objekte ggf. zwar aus mehreren Einzelteilen, die jedoch wie fest miteinander verschraubt wirken sollen? Gleich die ersten Menüs dieser Einstellungsseite beschäftigen sich daher mit der Struktur der dynamischen Objekte (siehe Abbildung 4.12).

Animation in Cinema 4D - Die Kollision-Einstellungen eines Dynamics Body-Tags

Abbildung 4.12: Die Kollision-Einstellungen eines Dynamics Body-Tags

Wir spielen diese Optionen am besten wieder an einem einfachen Beispiel durch. Gehen wir einmal davon aus, dass eine Glasscheibe mit einem Objekt kollidieren und dabei in viele Einzelteile zersplittern soll. Wir modellieren diese Glasscheibe aus einer einfachen Ebene, bzw. einem viereckigen Polygon-Grundobjekt mit je einem Segment in beiden Richtungen. Konvertieren Sie dieses Objekt zu einem normalen Polygon-Objekt und führen Sie anschließend mit dem Messer-Werkzeug einige Linie-Schnitte kreuz und quer über die Oberfläche aus. Die Kanten sollen wirken wie bei einer zersplitterten Glasplatte.

Lassen Sie dann alle Polygone an der zerschnittenen Ebene auswählen und rufen Sie anschließend den Dialog von Mesh > Befehle > Ablösen aus. Deaktivieren Sie dort die Option für Gruppen erhalten, bevor Sie den Befehl ausführen lassen. Alle Polygone des Objekts erhalten dadurch individuelle Eckpunkte. Zum Abschluss rufen Sie Mesh > Konvertieren > Polygongruppen zu Objekten auf, damit aus diesen Einzelflächen tatsächlich separate Objekte im Objekt-Manager entstehen (siehe auch Abbildung 4.13).

Animation in Cinema 4D - Eine stilisierte Glasscheibe soll auf einem unebenen Untergrund zerbrechen

Abbildung 4.13: Eine stilisierte Glasscheibe soll auf einem unebenen Untergrund zerbrechen

Das ist das typische Vorgehen, wenn Sie Objekte erstellen möchten, die z. B. durch eine Kollision mit anderen Objekten in Einzelteile zerfallen sollen. Denkbar wäre aber auch eine Mauer, die aus einzelnen Würfel-Grundobjekten besteht, die unter einem Null-Objekt gruppiert werden. Es geht in jedem Fall um eine Form, die aus einzelnen Objekten besteht, die in einer Hierarchie gruppiert vorliegen.

Platzieren Sie unter unserer Glasscheibe ein Landschaft-Objekt, das Sie passend skalieren und ggf. von der Höhe her so anpassen, dass die Scheibe beim Herunterfallen schön zersplittern kann. Ich habe an der Landschaft die Option für Ränder auf Meereshöhe deaktiviert, damit eine durchweg zerklüftete Oberfläche entsteht. Der Landschaft geben Sie das bereits gewohnte Kollisionsobjekt-Tag. Das Oberobjekt unserer Splitter-Gruppe bekommt ein Rigid Body-Tag. Wenn Sie die Animation nun ablaufen lassen, fällt die Glasscheibe völlig unbeeindruckt durch die Landschaft nach unten.

Dies liegt daran, dass das oberste Objekt der Splitter-Gruppe zwar ein Polygon-Objekt ist, dieses aber keine Polygone mehr enthält. Die Standardeinstellungen der Kollision-Dialogseite gehen jedoch davon aus, dass das Objekt mit dem Dynamics Body-Tag Polygone enthält und keine weiteren Objekte darunter eingeordnet wurden, die beachtet werden müssten. Daher die Hierarchie-Einstellung Aus. Anders mit Hierarchie Zusammengesetzte Kollisionsform. Alle Objekte in der Gruppe werden als Einzelteile eines Gesamtobjekts erkannt. Entsprechend fällt die Glasscheibe nun auf die Landschaft und bleibt dort liegen. Allerdings zerfällt sie dabei nicht in ihre Einzelteile. Anders in der Einstellung Hierarchie Tags an Unterobjekte vererben. Jedes Objekt in der Gruppe unterhalb des Dynamic Body-Tags wird als dynamisches Objekt behandelt, das sich separat bewegen kann, sofern es mit anderen Objekten kollidiert. Die Glasplatte bleibt daher weiterhin intakt wenn sie fällt, zerspringt dann jedoch bei Kollision mit dem Gebirge in ihre Einzelteile (siehe Abbildung 4.14).

Animation in Cinema 4D - Die verschiedenen Hierarchie-Einstellungen und ihre Wirkung auf die Ebene

Abbildung 4.14: Die verschiedenen Hierarchie-Einstellungen und ihre Wirkung auf die Ebene

Dieses Prinzip wiederholt sich gewissermaßen nun noch einmal beim Menü für Individuelle Elemente. Diese Einstellung ist jedoch nur dann relevant, wenn ein Generator-Objekt Träger des Dynamics Body-Tags ist. Dazu gehören z. B. die Array- und Symmetrie-Objekte, besonders aber die Generatoren des MoGraph-Systems, die ebenfalls mit Dynamics kombiniert werden können.
Werden Objekte über einen Generator vervielfältigt, dann gibt es oft nur ein Original. Die Hierarchie-Einstellung erkennt daher nicht, dass ein Generator im Spiel ist und ggf. sehr viele Klone, bzw. Kopien dieses Objekts erzeugt. Individuelle Elemente nimmt jedoch auch die eigentlich unsichtbare Hierarchie eines Generators auseinander und ermöglicht uns damit auch diese virtuellen Elemente dynamisch zu animieren. Mit Individuelle Elemente Aus unterbleibt dieser Blick in die virtuelle Hierarchie. Das Objekt wird als eine Einheit wahrgenommen. Lassen Sie uns auch hier zum Ausprobieren eine Szene nutzen. Ich belasse es bei der Landschaft als Kollisionsobjekt und platziere wieder ein Array-Objekt darüber. In diesem legen Sie eine Hierarchie aus Würfel-Grundobjekten an, die räumlich gegeneinander verschoben wurden. Es ergeben sich dadurch mehrere konzentrische Kreise an Würfel-Kopien. Wie Sie Abbildung 4.15 entnehmen können, habe ich dazu insgesamt vier Würfel verwendet, die auf verschiedenen Hierarchiestufen unterhalb des Array-Objekts gruppiert wurden. Die Würfel wurden mit unterschiedlichen Materialien belegt und zwischen Würfel A und Würfel D benannt, um die Unterschiede zwischen den Individuelle Elemente-Einstellungen besser vergleichen zu können.

Animation in Cinema 4D - Aufbau einer komplexeren Generator-Hierarchie

Abbildung 4.15: Aufbau einer komplexeren Generator-Hierarchie

Das Array-Objekt erhält also wieder ein Rigid Body-Tag. Beim Abspielen der Animation fallen die Würfel wie eine zusammenhängende Scheibe auf die Landschaft. Individuelle Elemente ist standardmäßig Aus und daher werden die Array-Kopien auch nicht separat betrachtet. Bei Individuelle Elemente Oberste Ebene werden die einzelnen Kopien des Array-Objekts erkannt und kollidieren getrennt voneinander mit der Ebene. Innerhalb der Würfel-Gruppe bleiben jedoch alle Positionen starr. Oberste Ebene bezieht sich also auf die erste Hierarchie-Ebene unterhalb des Generators. Verwendet man beim Array-Objekt sieben Kopien, kollidieren also insgesamt acht Bruchstücke mit der Landschaft (sieben Kopien plus ein Original).

Mit Individuelle Elemente Zweite Ebene werden auch Würfel innerhalb der Gruppe individuell erkannt. Dies geht bis zur zweiten Hierarchie-Ebene, betrifft in unserem Beispiel also die Würfel A, B und C. Würfel D stellt mit seiner Unterordnung unter Würfel C bereits die dritte Hierarchie-Ebene unter dem Array-Objekt dar. Die Würfel C und D werden also weiterhin wie fest miteinander verbunden berechnet. Die ändert sich erst mit der Einstellung Individuelle Elemente Alle. Hierbei spielt die Hierarchiestufe dann keine Rolle mehr. Alle Objekte werden individuell erkannt und simuliert. Eventuell interessant für Sie ist noch zu wissen, dass Sie über ein ausgeschaltetes Dynamics Body-Tag innerhalb einer Gruppe dieses Objekt und dessen untergeordnete Elemente aus der Kollisionsberechnung heraushalten können.

Kollisionsformen und -Optionen

Sie haben nun bereits die Optionen kennengelernt, mit denen Sie die Kollisionsberechnung für Hierarchien von Objekten steuern können. Die folgenden Einstellungen drehen sich eher um die Präzision der Kollisionserkennung. Los geht dieser Abschnitt mit der Option für die Selbstkollision. Damit ist die Kollision zwischen den Objekten innerhalb einer Hierarchie gemeint, aber auch die Art Kollision, die bei so genannten Soft Body-Dynamics auftreten können. Dabei verformen sich die Objekte, als wären sie z. B. aus Stoff. Denken Sie z. B. an einen Ballon, aus dem die Luft gelassen wird. Die vormals gegenüberliegenden Außenwände des Ballons kommen sich dadurch näher, bzw. es kommt zu Auffaltungen der Oberfläche wie bei einem Vorhang, der zur Seite geschoben wird. In beiden Fällen macht die Erkennung der Kollisionen natürlich Sinn. Daher ist diese Option auch bereits standardmäßig aktiv.

Weiter geht es mit der Wahl der Form für die Kollisionserkennung. Wir haben bereits mehrfach darüber gesprochen, dass die Kollisionserkennung eine sehr aufwändige Berechnung ist und daher gern auf vereinfachte Formen zurückgegriffen wird, die die Form des dynamischen Objekts natürlich dennoch möglichst gut nachbilden sollten. Im Form-Menü stehen dafür viele geometrische Standardformen zur Verfügung, die individuell ausgewählt werden können. Die Abbildung 4.16 stellt einige dieser Formen am Beispiel einer Landschaft vor.

Eine Auswahl an Kollisionsformen

Abbildung 4.16: Eine Auswahl an Kollisionsformen

Die oberen beiden Bilder zeigen dort die Formen Quader und Ellipsoid. In der linken unteren Ecke der Abbildung sehen Sie die Form Zylinder, hier mit der Ausrichtung entlang der Y-Achse. Derartige Grundformen sind natürlich schnell auf Kollisionen zu überprüfen, können jedoch nur dann glaubhafte Resultate liefern, wenn das dynamische Objekt eine vergleichbare Form aufweist. Flexibler geht da schon die Form Konvexe Hülle zu Werke. Diese ist rechts unten in Abbildung 4.16 zu erkennen. Das Objekt wird mit einer Art flexibler Folie bespannt. Dabei gehen zwar auch feinere Details der Oberfläche verloren, aber die Grundform des Objekts kann bereits sehr gut abgebildet werden.

Wer noch genauere Ergebnisse benötigt, kann tatsächlich jede Fläche eines Objekts auf Durchdringungen überprüfen lassen. Dafür stehen zwei Modi zur Verfügung. Statisches Mesh ist für Objekte gedacht, die während der Animation unbeweglich bleiben sollen. Das könnten z. B. die Wände eines Raums oder der Boden einer Szene sein, auf den Objekte fallen sollen. Entsprechend ist die Form für Bewegtes Mesh für Objekte gedacht, die normal an der dynamischen Simulation teilnehmen. Mit steigender Anzahl an Flächen an diesen Objekten steigt folglich die benötigte Berechnungszeit an. Im Fall unserer Landschaft können da natürlich schnell viele Tausend Polygone zusammenkommen, die für jeden dynamischen Zwischenschritt der Berechnung zu überprüfen sind. Es gibt daher auch noch eine Alternative zu der Überprüfung jeder Fläche am Original. So könnten Sie ein zusätzliches Objekt modellieren, das alle Ihnen wichtigen Details des Originals enthält, insgesamt aber viel weniger Polygone enthält. Diese Austausch-Geometrie kann dann stellvertretend für das Original auf Kollisionen überprüft werden. Wie dies funktioniert zeigt die Abbildung 4.17.

Die Kollisionsformen Statisches Mesh und Anderes Objekt

Abbildung 4.17: Die Kollisionsformen Statisches Mesh und Anderes Objekt

Links oben sehen Sie dort unsere Landschaft, wie sie bei der Form Statisches Mesh oder Bewegtes Mesh gesehen wird. Jedes Polygon muss überprüft werden. Erstellen Sie nun eine Kopie der Landschaft und reduzieren Sie daran die Anzahl der Segmente. Ziel sollte sein, die Gesamtzahl der Polygone so weit wie möglich zu reduzieren, ohne dass die Unterschiede zwischen beiden Gebirgen zu offensichtlich werden. Geben Sie der Landschafts-Kopie ein Rigid Body-Tag, das Sie in den Dynamics-Einstellungen deaktivieren (Option Aktiviert ausschalten).

Obwohl das Tag ausgeschaltet ist, können wir nach wie vor die Kollision-Einstellungen nutzen und dort eine Form bestimmen. Wählen Sie dort Statisches Mesh, damit wieder jede Fläche an der niedrig aufgelösten Landschaft überprüft wird. Diese neue Landschaft kann schließlich auch unsichtbar für das Rendering und den Editor geschaltet werden. Im Tag der original Landschaft stellen Sie nun die Form um auf Anderes Objekt. Ein neues Objekt-Feld erscheint im Dialog. Ziehen Sie dort die niedrig aufgelöste Landschaft aus dem Objekt-Manager hinein. Dies hat zur Folge, dass die einfache Landschaft für uns unsichtbar mit der original Landschaft mitbewegt wird und beide Objekte miteinander verknüpft werden. Anstatt der eigenen Polygone werden nun die Flächen des einfachen Objekts für die Kollisionserkennung herangezogen. Sehr praktisch, wenn Sie die volle Kontrolle über die Kollisionsform und deren Präzision behalten möchten.

Bei der Form-Einstellung Automatisch wird Ihnen jede Entscheidung abgenommen. Für eindeutige Grundobjekte, wie Würfel oder Kugeln werden automatisch die dazu passenden Formen Quader und Ellipsoid aktiviert. Spezialobjekte, wie z. B. der Boden, erhalten eine optimierte Kollisionsform, die ansonsten gar nicht separat abrufbar wäre. Andere Polygon-Objekte werden automatisch mit einer Konvexen Hülle oder der Form für Statisches Mesh bedacht, je nachdem, ob das Objekt dynamisch an- oder ausgeschaltet ist. Diese Form-Einstellung sollte daher in den meisten Fällen gut funktionieren, wobei nicht immer gesagt ist, dass es nicht noch schneller oder präziser ginge. Sie sollten sich daher besonders bei komplexeren Szenen ruhig die Zeit nehmen, die Kollisionsformen individuell festzulegen und ggf. auch Optionen, wie die Nutzung anderer Objekte in Anspruch nehmen. Die Form Automatisch (MoDynamics) hilft bei der Simulation älterer Cinema 4D-Szenen, bei denen die Kollisionsformen noch etwas anders gehandhabt wurde. Bei neuen Projekten sollten Sie diese Form nicht mehr benutzen. Schließlich können Sie mit Form Aus auch die Kollisionserkennung für dieses Objekt ganz unterbinden.

Die meisten Form-Modi bieten Ihnen einen Wert für die Größendifferenz an. Damit kann die gewählte Form um diesen Betrag vergrößert oder bei negativen Werten auch verkleinert werden. Dies kann hilfreich sein, wenn sich Objekte bei einer Kollision nicht direkt berühren sollen. Denken Sie an die Ziegelsteine einer Mauer, zwischen denen ein Spalt für die Fuge verbleiben soll. Die Ziegel würden sich dynamisch durch eine vergrößerte Kollisionsform dennoch so verhalten, als würden sie direkt aufeinander liegen.

Der folgende Parameter Toleranz wird über die vorangestellte Aktivieren-Option freigeschaltet. Hierbei handelt es sich um die gleiche Toleranz, die wir bereits in den Dynamics-Voreinstellungen besprochen haben (Experte-Rubrik > Kollisionstoleranz). Die Toleranz führt allgemein zu einer Abrundung der Kollisionsform, was diese weniger anfällig für Fehlberechnungen macht. Rein logisch würde eine Toleranz von 0 cm ein perfektes Ergebnis liefern, praktisch jedoch erhöht sich dadurch die Fehlerquote der Berechnung. Sie brauchen diese Toleranz nur zu aktivieren und zu verändern, wenn Sie individuell für einzelne Objekte Veränderungen an der globalen Kollisionstoleranz vornehmen möchten.

Wir haben bereits kurz darüber gesprochen, dass sich die Art der dynamischen Berechnung auch während einer Animation wechseln lässt. Aus einem starren Rigid Body-Objekt kann durchaus auch ein sich weich verformendes Soft Body-Objekt werden, oder umgekehrt. Bei so einem Wechsel von einem Soft Body zu einem Rigid Body sorgt die Option Soft Body Form fixieren dafür, dass das Objekt beim Wechsel des Modus seine aktuelle Form behält. Derartige Modus-Wechsel führen Sie über die Einstellungen auf der Soft Body-Dialogseite des Tags durch. Wir kommen noch darauf zurück.
Interessant können derartige Wechsel z. B. sein, wenn sich ein Objekt zuerst durch einen Aufprall verformen, im Anschluss dann aber wieder starr erscheinen soll. Ein klassischer Fall wäre sicherlich der Kotflügel eines Autos, der durch einen Aufprall weich verformt wird, anschließend dann aber diese neue Form behält.

Kommen wir schließlich zu den Parametern, mit denen Sie das Verhalten des Objekts steuern können, wenn eine Kollision erkannt wurde. Es macht z. B. einen Unterschied, ob es sich um eine harte, glatte oder eine weiche und poröse Oberfläche handelt. Die Energie einer Kollision kann dann unter Umständen nicht vollständig an das andere kollidierende Objekt weitergegeben werden. Dies steuern Sie über die Elastizität. Eine Elastizität von 100% ist mit der Kollision zweier Billardkugeln vergleichbar. Die gesamte Energie des Aufpralls wird von einer auf die andere Kugel übertragen. Wenn wir uns die gleiche Situation mit zwei Kugeln Knete verstellen, wird sicherlich ein großer Teil der Energie durch die Verformung der Objekte aufgebraucht. Das Abprallen wird weniger stark ausfallen. Die ist typisch für kleine Elastizität-Werte. Dabei kommt es jedoch nicht tatsächlich zu einer Verformung der Objekte. Nur der Energiehaushalt der Bewegungen wird entsprechend angepasst. Beachten Sie in jedem Fall, dass bei Kollisionen immer mindestens zwei Elastizität-Werte aufeinander treffen und miteinander verrechnet werden. Trifft ein Objekt mit 100% Elastizität auf eines mit 0% Elastizität, wird dennoch die gesamte Energie des Aufpralls aufgebraucht. Beide Objekte müssen also Elastizitäten über 0% haben, damit am Ende genügend Energie übrig bleibt, die für das Abprallen der Objekte voneinander verwendet werden kann. Elastizität kann auch hilfreich sein, wenn Sie die Objekte durch Kollisionen abbremsen möchten. Das gesamte System kommt dann schneller zur Ruhe.

Bei Kollisionen gibt es aber nicht nur das dynamische Aufprallen, sondern auch Situationen, in denen ein Objekt statisch auf einem anderen liegt oder sich Oberflächen bewegter Objekte über einen längeren Zeitraum aneinander reiben. Denken Sie z. B. an einen Autoreifen, der auf der Straße abrollt oder aber an einen Würfel, der auf einer Schrägen liegt. Physikalisch gesprochen handelt es sich dabei um Reibung. Reibung entzieht den Objekten bei der Kollision zusätzliche Energie. Je länger sich Objekte berühren, desto stärker werden sie durch die Reibung abgebremst. Auch hierbei werden die Reibung-Werte aller beteiligten Objekte wieder zusammen ausgewertet. Höhere Werte bringen kollidierende Objekte auch hier wieder schneller zum Stehen, bzw. verhindern das Gleiten eines Objekts auf einer anderen Oberfläche. Ebenso können kleine Reibung-Werte aber auch das Gleiten erleichtern. Denken Sie z. B. an eine Eisfläche, auf der die Objekte leicht ins Rutschen geraten können. Normalerweise unterscheidet die Physik zwischen verschiedenen Reibungskoeffizienten für Gleit-, Roll- und Haftreibung. Cinema 4D führt die Gleit- und die Haftreibung im Reibung-Parameter zusammen. Die Rollreibung kann nur indirekt über die Rotationsdämpfung gesteuert werden, die Sie in den Kräfte-Einstellungen des Tags finden. Wir kommen noch dazu. Sowohl die Elastizität als auch die Reibung lassen sich auch über 100% einstellen, um dem System für spezielle Effekte weitere Energie hinzuzufügen oder noch stärker zu entziehen.

Der Kollisionsnoise schließlich fügt der Abprallrichtung der kollidierenden Objekte eine gewisse Zufälligkeit hinzu. Dies soll Unregelmäßigkeiten in der Gewichtsverteilung und der Oberflächengüte der Objekte simulieren. Dank des Kollisionsnoises prallen z. B. senkrecht auf eine Ebene fallende Kugeln dann nicht zwingend auch wieder exakt senkrecht ab. Kleine Prozentwerte helfen uns also dabei, etwas Chaos in die Simulation zu bringen. Zu große Werte machen es jedoch schwieriger, die Simulation zu kontrollieren.

Über den Autor

Dieses Tutorial ist ein Auszug aus dem CINEMA 4D-Kompendium zur Animation von Arndt von Koenigsmarck. Das komplette C4D-Kompendium mit über 950 Seiten Know-how als Download (PDF) gibt es hier: CINEMA 4D-Kompendium – Die Animation.

Wir empfehlen:
Maxon BodyPaint 3D-Video-Training

Unsere Empfehlung für dich

Cinema 4D für Einsteiger – für R16/R17/R18

Cinema 4D für Einsteiger – für R16/R17/R18

Überschreite mit unserem neuen und sagenhaften Standardwerk für Cinema 4D die Grenzen der Wahrnehmung. Das Release 16 ist das beste Update, das Maxon je herausgebracht hat!

  • Neue Funktionen von R16, R17 und R18 im Detail erklärt
  • In über 15,5 Stunden Video-Training Cinema 4D von A bis Z ergründen
  • PLUS 850 PDF-Seiten und Arbeitsmaterialien
  • Maximales Kreativtraining: Nachbau des Covermotivs

Zum Training