In diesem Tutorial sehen wir uns an, wie man einige Rigid Bodies und eine Hinge Constraint einrichtet, um die Animation von Newtons Pendel zu erstellen.


Für dieses Tutorial ist keine Deutsche Tonspur verfügbar. Unten kannst du das Video mit Englischer Tonspur und Untertiteln auf Deutsch, Englisch und in weiteren Sprachen ansehen. Unter dem Video findest du die ins Deutsche übersetzte Transkription.


Videotranskript

In diesem Tutorial sehen wir uns an, wie man einige Rigid Bodies und eine Hinge Constraint einrichtet, um die Animation von Newtons Pendel zu erstellen. Das Tutorial wurde mit Blender Version 3.6 erstellt.

Zu Beginn verwende ich ein bereits vorbereitetes 3D-Modell, das die Grundstruktur sowie eine beträchtliche Anzahl von Kugeln mit ihren jeweiligen Halterungen enthält.

In diesem 3D-Modell sind die Ursprünge der Kugeln und Halterungen korrekt entlang der späteren Rotationsachse gesetzt, sie sind jedoch alle mit der Struktur parented.

Das ist unnötig und könnte tatsächlich ein Problem für die Physiksimulation darstellen.

Deshalb wähle ich sie zunächst alle aus und löse das Parenting mit dem Shortcut ALT P. Anschließend wähle ich im eingeblendeten Separate-Menü die Option "Clear Parent and Keep Transformation".

Tatsächlich muss ich Operationen durchführen, die für alle Kugeln wiederholt werden. Deshalb kann ich alle Kugeln bis auf eine löschen. Auf diese Weise kann ich die Operationen an der verbleibenden Kugel durchführen und anschließend bereits vorkonfigurierte Kopien erstellen.

Jetzt haben wir zwei Objekte: die Basis und die erste Kugel mit ihren Halterungen.

Die Basis können wir ignorieren, da sie nicht Teil der Physiksimulation sein wird.

Die Kugel hat ihren Ursprung oben entlang der Rotationsachse.

Das ist sehr hilfreich, denn genau an diesem Punkt auf der vertikalen Achse der Kugel müssen wir ein Hilfsobjekt hinzufügen, das für die Verwendung der Hinge Constraint erforderlich ist.

Wenn wir ein neues Objekt zur Szene hinzufügen, wird es mit seinem Ursprung an der Position des 3D-Cursors platziert. Deshalb positioniere ich den 3D-Cursor mit dem Shortcut SHIFT S auf den Ursprung der Kugel und wähle anschließend die Option "Cursor to Selected".

Jetzt benötigen wir ein Hilfsobjekt, um die Hinge Constraint anzuwenden. Jedes Objekt ist geeignet, daher füge ich einfach einen Cube hinzu und skaliere ihn für bessere Sichtbarkeit.

Nach dem Skalieren wende ich die Scale-Transformationen mit dem Shortcut CTRL A an. Dieser Schritt ist in diesem Zusammenhang möglicherweise nicht zwingend notwendig, aber es ist eine gute Gewohnheit.

Wähle den Cube aus, öffne den Physics-Tab im Properties Window und füge eine Rigid Body-Komponente hinzu. Stelle sie dabei auf Passive.

Dieses Objekt nimmt dann an der Rigid Body-Simulation teil, reagiert jedoch nicht auf Kräfte. Wie bereits erwähnt, dient es als Constraint für die Rotation der Kugel.

Als Nächstes fügen wir der Kugel ebenfalls einen Rigid Body hinzu, ändern den Typ jedoch auf Active, da sich die Kugel entsprechend der Gravitation und anderer Kräfte bewegen soll. Der Standardwert für die Masse ist zu niedrig, deshalb setze ich ihn auf 100 Gramm.

Eine weitere wichtige Änderung betrifft die Collision Shape der Kugel. Dieser Parameter ist standardmäßig auf Convex Hull gesetzt, aber die erzeugte Hülle kann bei der Interaktion mit anderen Kugeln Probleme verursachen.

Deshalb ändere ich den Modus auf Mesh. Diese Option benötigt mehr Rechenleistung, liefert aber ein genaueres Ergebnis.

Der Tooltip für den Margin-Parameter empfiehlt einen Wert größer als 0. Durch Experimente habe ich jedoch festgestellt, dass es in diesem Fall besser ist, ihn auf 0 zu setzen. Dadurch verhindert man, dass die Physiksimulation bereits Kollisionen erkennt, obwohl die Objekte am Anfang nur sehr nah beieinander stehen und stillstehen.

Zusätzlich müssen wir für den Parameter Bounciness einen sehr hohen Wert wie 0.9 einstellen. Dadurch prallen die Kugeln sehr stark ab und die Kollisionen werden nahezu perfekt elastisch.

Im Bereich Dynamics findet ihr weitere Parameter für Damping, die den Verlust von Geschwindigkeit oder Drehimpuls im Laufe der Zeit steuern. Auf diese Parameter kommen wir später zurück, wenn wir Tests mit allen Kugeln durchführen.

Bevor wir fortfahren, speichern wir die Szene in einer neuen Datei.

Im Verlauf dieses Tutorials werde ich euch empfehlen, das Projekt vor dem Drücken von Play oder dem Starten eines Bake-Vorgangs zu speichern, da Blender bei dieser speziellen Simulation mehrfach abgestürzt ist, wenn ich Play gedrückt habe, ohne vorher die Änderungen zu speichern.

Wenn wir die Animation jetzt starten, fällt die Kugel einfach ins Leere.

Das ist tatsächlich das korrekte Verhalten, denn wir haben noch keine Hinge Constraint erstellt, die die Kugel mit dem zuvor hinzugefügten Cube verbindet.

Vorher müssen wir jedoch noch eine weitere Änderung vornehmen: Wir müssen den Schwerpunkt der Kugel direkt in ihre Geometrie verschieben. Das kann man tun, indem man im Edit Mode den 3D-Cursor mit SHIFT S in die Mitte der Kugel setzt und anschließend im Object Mode mit der rechten Maustaste "Origin to 3D Cursor" auswählt.

Jetzt sind die Kugel und der Cube vertikal perfekt ausgerichtet.

Vor dem Rendering können wir den Cube ausblenden, aber im Moment ist es hilfreich, ihn sichtbar zu lassen. Wählt ihn aus und lasst uns die Hinge Constraint erstellen.

Die Rigid Body Constraint wird wie die Rigid Body-Komponente im Physics-Tab des Properties Editors hinzugefügt.

Als Erstes ändern wir den Constraint-Typ von Fixed auf Hinge.

Im Bereich Objects findet ihr zwei Felder, in denen zwei Objekte der Szene angegeben werden. Die Constraint verbindet das Objekt namens Second, das sich bewegen wird, mit dem Objekt namens First, das stationär bleibt.

In unserem Fall setzen wir den Cube als First und die Kugel als Second.

Wir sind jedoch noch nicht fertig, denn bei der Hinge Constraint erfolgt die Rotation um die lokale Z-Achse des passiven Rigid Body-Objekts.

Im Grunde ähnelt Hinge der Point Constraint, beschränkt die Bewegung jedoch auf diese Achse. Da sich die Rotation in diesem Projekt um die globale X-Achse der Szene drehen soll, die derzeit der lokalen X-Achse des Cubes entspricht, müssen wir den Cube um 90 Grad um die Y-Achse rotieren. Um die lokalen Achsen anzuzeigen, habe ich die Transform Orientation der 3D-Ansicht auf Local umgestellt.

Führen wir diese Rotation mit R Y 90 aus.

Wenn wir das Projekt jetzt speichern und die Simulation starten, passiert... nichts!

Der Schwerpunkt der Kugel befindet sich korrekt im Inneren, aber die Kugel und die Constraint sind perfekt vertikal ausgerichtet und befinden sich im Gleichgewicht.

Deshalb müssen wir der Kugel eine anfängliche Rotation geben, danach übernimmt die Physik den Rest.

Jetzt, da sich der Ursprung der Kugel direkt im Inneren befindet, wäre es hilfreich, wenn wir die Kugel und ihre Halterungen um den Punkt drehen könnten, an dem sich der Cube befindet.

Aus diesem Grund füge ich der Szene ein Empty hinzu und benenne es sofort in ROTATION um. Anschließend wähle ich die Kugel aus und danach ebenfalls das Empty ROTATION in genau dieser Reihenfolge. Schließlich drücke ich CTRL P, um die Parent-Child-Beziehung zu erstellen, sodass die Kugel ein Child des Empty ROTATION wird.

Auf diese Weise können wir der ersten Kugel eine Anfangsrotation geben, indem wir das steuernde Empty rotieren. Speichert das Projekt jetzt und startet die Simulation. Dieses Mal bewegt sich die Kugel genau wie gewünscht.

Das Erstellen der übrigen Kugeln ist jetzt eigentlich ganz einfach, denn wir können Kopien der ersten Kugel und des Cubes mit der Rigid Body Constraint verwenden.

Bringen wir das Empty ROTATION zurück in die vertikale Position, wählen sowohl den Cube als auch die Kugel gemeinsam aus und erstellen mit SHIFT D Y und einer Mausbewegung eine erste Kopie. Dabei platzieren wir die zweite Kugel direkt neben der ersten.

Ich habe SHIFT D Y verwendet, also die Einschränkung der Bewegung entlang der Y-Achse, um die Verschiebung der Kopie gleichzeitig mit der Duplizierung durchzuführen. Blender behandelt diese beiden Schritte also als eine einzige Operation.

Dadurch können wir die übrigen Kopien bereits perfekt positioniert mit SHIFT R erstellen, dem Shortcut zum Wiederholen der letzten Operation.

Wenn wir die Kopien korrekt positioniert haben, bleiben die Kugeln nach dem Speichern des Projekts und dem Starten der Simulation vollkommen ruhig an ihren Positionen.

Das zeigt, dass die Rigid Body-Simulation keine falschen Kollisionen zwischen den Objekten erkennt.

Der einzige Nachteil besteht darin, dass alle Kopien weiterhin dem Empty ROTATION parented sind, das die Anfangsrotation der ersten Kugel steuert.

Dieses Problem können wir jedoch schnell lösen, indem wir alle Kopien auswählen, sie mit ALT P vom Empty lösen und anschließend "Clear Parent and Keep Transformation" auswählen.

Dreht das Empty, das die erste Kugel steuert, speichert das Projekt und startet die Simulation, um das erzielte Ergebnis zu überprüfen.

Wenn das Ergebnis zufriedenstellend ist, besteht der nächste Schritt darin, die Cubes mit den Rigid Body Constraints sowohl in der Szene als auch im finalen Rendering auszublenden, um mit dem Rendering fortzufahren.

Falls sich die mittleren Kugeln zu stark bewegen, versucht sie näher zueinander in der Ausgangsposition zu platzieren. Denkt daran, die Kugeln gemeinsam mit den Cubes zu bewegen, die die Constraints enthalten, da die Kugeln sonst mit einer eigenen Anfangsrotation starten würden.

Um die Simulation zu beschleunigen oder die Kugeln stärker schwingen zu lassen, können wir einige Parameter anpassen. Um einen Parameter für alle ausgewählten Kugeln gleichzeitig zu ändern, haltet die ALT-Taste gedrückt, während ihr mit der Maus auf den gewünschten Parameter klickt.

Für die Kugeln empfehle ich, den Wert für Bounciness zu erhöhen und die beiden Damping-Werte für lineare Bewegungen und Rotationen im Bereich Dynamics des Rigid Body-Tabs deutlich zu reduzieren.

Ich rate jedoch davon ab, den Friction-Wert zu senken, da dies unerwünschte Bewegungen bei Kugeln erzeugen könnte, die eigentlich stillstehen sollen.

Im Scene-Tab des Properties Editors findet ihr den Parameter Speed, mit dem sich die gesamte Physiksimulation beschleunigen lässt.

Im selben Tab findet ihr außerdem die Parameter Substeps und Solver Iterations.

Ich empfehle, diese nur dann zu erhöhen, wenn ihr Fehler in der Physiksimulation bemerkt.

Diese Parameter weisen Blender an, mehr Berechnungen durchzuführen, was zu einer genaueren Simulation führt, allerdings auf Kosten einer längeren Simulationszeit.

Gut, das war alles! Ich hoffe, euch hat dieses Tutorial gefallen! Bis bald!

Tutorials durchsuchen

Geben Sie eine Suchphrase oder mehrere durch Kommas getrennte Schlüsselwörter ein.

3D-Modelle, Tutorials und Ressourcen zur Computergrafik von Francesco Milanese. Nutzungslizenzen für die 3D-Modelle können über die auf den jeweiligen Seiten verlinkten externen Shops zu den jeweils geltenden Lizenzbedingungen erworben werden. Francesco Milanese — Italienische Umsatzsteuernummer (Partita IVA): 06321250877. Kontakt: info@francescomilanese.com


ERWEITERTE DATENSCHUTZ- UND COOKIE-VERWENDUNGSRICHTLINIEN