In diesem Tutorial sehen wir, wie man mit der Rigid Body Simulation von Blender einen Behälter mit Objekten füllt.
Die Videoversion dieses Tutorials ist derzeit in dieser Sprache nicht verfügbar. Das Video auf Englisch ist unter folgendem Link verfügbar:
Videotranskript
Hallo zusammen!
In diesem Tutorial sehen wir, wie man mit der Rigid Body Simulation von Blender einen Behälter mit Objekten füllt.
Ich erstelle dieses Tutorial mit Blender 3.3 und verwende als praktisches Beispiel eines meiner Assets mit dem Namen „Pharma capsule pills and bottle“. Es ist jedoch nicht notwendig, dieses Asset zu besitzen. Man kann die Technik auch ohne dieses spezielle Modell lernen.
Wichtig ist hier, die Methode zu verstehen, die sehr nützlich ist, um viele Objekte auf zufällige, aber glaubwürdige Weise zu platzieren, nicht nur innerhalb von Behältern, sondern auch auf Oberflächen. Die Prinzipien sind dieselben und lassen sich auf Pillen, Bonbons, Goldmünzen oder beliebige andere Objekte anwenden.
Das verwendete 3D-Modell besteht tatsächlich aus mehreren Objekten, die miteinander verbunden sind.
Wir benötigen den Deckel nicht, daher können wir ihn ausblenden oder entfernen, so wie ich es hier mache.

Wir haben drei Objekte: den Behälter, das Etikett und ein Objekt, das alle Pillen repräsentiert, die zu einem einzigen Objekt zusammengeführt wurden. Wir können sie genauer betrachten, indem wir den Behälter und das Etikett vorübergehend ausblenden.

Um die Simulation zu erstellen, müssen wir eine einzelne Pille isolieren und ihr eine Rigid Body Komponente zuweisen. Anschließend duplizieren wir diese Prototyp-Pille und starten die Simulation des Falls.
Mit dem Objekt „Pills“ ausgewählt wechsle ich in den Edit Mode, wähle dann eine Pille aus, indem ich den Mauszeiger über einen Vertex der Pille positioniere und die Taste L drücke, also „Linked“. Dadurch werden alle Elemente ausgewählt, die mit dem Element unter dem Mauszeiger verbunden sind.

Danach kehre ich die Auswahl mit CTRL+I um und lösche alle anderen Pillen mit X und der Option Vertices.

Zurück im Object Mode stelle ich fest, dass der Origin des Objekts „Pills“ nicht im Zentrum der einzigen verbliebenen Pille liegt. Ich behebe das sofort mit einem Rechtsklick und „Set Origin“, dann „Origin to Geometry“.

Ich stelle außerdem sicher, dass die Skalentransformationen angewendet sind. Das lässt sich leicht überprüfen, da die Scale XYZ Werte des Objekts im Transform Panel alle auf 1 gesetzt sind.
Wären sie es nicht, müssten wir sie mit CTRL+A und „Apply Scale“ anwenden.
Nun mache ich den Behälter wieder sichtbar, da ich überprüfen möchte, ob die Pille so positioniert ist, dass sie durch die Öffnung des Behälters fallen kann. Ich werde versuchen, die Pillen von oben in den Behälter fallen zu lassen.
In dieser Position kann die Pille tatsächlich nicht in den Behälter fallen, daher verschiebe ich sie manuell so, dass sie in der Top View innerhalb der Öffnung liegt.

Die gestrichelte Linie, die die Pille mit dem Behälter verbindet, zeigt an, dass die Pille ein Child des Behälters ist. Das kann bei den Kopien der Pille und bei der physikalischen Simulation Probleme verursachen. Deshalb trenne ich die beiden Objekte voneinander, behalte aber die Position und alle anderen Eigenschaften der Pille bei.
Dazu wähle ich die Pille aus, drücke ALT+P und wähle im Menü „Clear Parent“ die Option „Clear and keep transformation“.

Die Pille ist nun ein eigenständiges Objekt.
Bevor ich die Kopien erstelle, muss ich der Pille eine Rigid Body Simulation Komponente zuweisen, damit diese bereits in allen späteren Kopien korrekt eingerichtet ist.

Um den Rigid Body hinzuzufügen, klicke ich einfach im Panel Physics Properties auf „Rigid Body“, wie ich es gerade gezeigt habe.
Der neu erstellte Rigid Body ist standardmäßig vom Typ Active, was in Ordnung ist, da das Objekt auf die Schwerkraft reagieren muss.
Um die physikalische Simulation an diesem Punkt zu beobachten, setzen wir den Animationsframe in der Timeline auf 1 und drücken Play. Die Pille fällt und durchquert den Behälter, da dieser noch nicht Teil der physikalischen Simulation der Szene ist.
Damit der Behälter die Pille auffängt, müssen wir ihm ebenfalls eine Rigid Body Komponente zuweisen, so wie wir es bei der Pille gemacht haben. In diesem Fall müssen wir den Typ jedoch sofort auf Passive ändern, da der Behälter nicht ins Leere fallen soll, sondern nur mit den anderen Objekten interagieren muss.
Um die Physik-Simulation mit den soeben vorgenommenen Änderungen zu starten, gehen wir in der Timeline wieder zum ersten Frame der Animation zurück und klicken erneut auf Play.
Wir bemerken sofort, dass die Pille fällt und mit dem Behälter „interagiert“, allerdings auf eine unerwartete Weise. Sie bleibt an der Öffnung hängen und schwebt in der Luft, als wäre die Öffnung geschlossen.

Der Grund dafür ist, dass die von Blender verwendete Kollisionsform für den Behälter im Rigid Body Panel die Standardeinstellung ist, nämlich Convex Hull. Dabei handelt es sich um eine geschlossene Box, die zur Vereinfachung der Berechnungen der Physik-Engine verwendet wird.

Um dieses Problem zu lösen, ändere ich den Wert des Parameters Shape von Convex Hull zu Mesh. Blender nähert nun die Kollisionsform an die tatsächliche Form des Behälters an.
Wie man sich vorstellen kann, ist dieser Modus recht ressourcenintensiv und sollte sparsam eingesetzt werden. In diesem Fall ist die Szene nicht besonders komplex, daher ist das in Ordnung. In anderen Situationen sollte man jedoch abwägen, ob man eine der anderen im Shape Menü verfügbaren Optionen verwendet.
Was die Pille betrifft, kann man zum Beispiel die Form Capsule wählen, die sie sehr gut approximiert. In diesem Fall lasse ich jedoch die Standardeinstellung Convex Hull unverändert.
Gehen wir wieder zum ersten Frame der Timeline, klicken auf Play und sehen uns das Ergebnis an. Dieses Mal fällt die Pille in den Behälter und prallt ein paar Mal auf dem Boden auf, bevor sie zum Stillstand kommt.

Beachte, dass sich die Simulation verlangsamt, sobald die Pille den Boden des Behälters berührt. Das liegt daran, dass Blender die Kollisionen berechnet.
Wenn wir die anderen Pillen hinzufügen, wird die Simulation deutlich langsamer ablaufen, da offensichtlich mehr Berechnungen durchgeführt werden müssen.
Gehen wir wieder zum ersten Frame der Simulation zurück.
Wir möchten eine Reihe von übereinander gestapelten Pillen erhalten, die in den Behälter fallen. Blender soll dabei die Aufgabe übernehmen, alle Pillen nach der Berechnung der Kollisionen mit den Wänden des Behälters und untereinander in ihre endgültige Position zu bringen.
Das Erstellen der verschiedenen Kopien der Pille ist eigentlich sehr einfach. Wir müssen der Pille lediglich einen Array Modifier hinzufügen und den Relative Offset für die X und Y Achse auf 0 setzen. Für die Z Achse setzen wir ihn stattdessen auf 2.
Ich weiß nicht, wie viele Pillen in den Behälter passen, da ich sie am Anfang des Videos nicht gezählt habe. Deshalb versuche ich es mit 40 Pillen und trage diesen Wert im Parameter Count des Array Modifiers ein.

Wir können die Simulation jetzt noch nicht anwenden, da es sich hierbei immer noch um einen Modifier handelt, der noch nicht angewendet wurde. Alle Pillen sind also weiterhin Instanzen und keine einzelnen Objekte.

Daher wende ich den Modifier an, indem ich in seinem Panel auf Apply klicke.
Die Pillen sind jedoch immer noch Teil eines einzigen Objekts. Es handelt sich um Geometrien, die wir voneinander trennen müssen.
Um das zu tun, wechseln wir einfach in den Edit Mode, wählen alle Geometrien aus, drücken P und wählen im Separate Menü, das auf dem Bildschirm erscheint, die Option By loose parts.

Auf diese Weise erhalten wir, wie es auch im Tooltip beschrieben ist, ein Objekt für jede „island“, also für jede separate Geometrie.
Gehen wir zurück in den Object Mode und stellen fest, dass alle neuen Pillen tatsächlich eigenständige Objekte sind, wie wir auch im Outliner sehen können.
Alle diese Objekte haben die Rigid Body Komponente so eingerichtet, wie wir es bei der ersten Pille getan haben, die als „Prototyp“ für alle anderen gedient hat.

Allerdings können wir auch sehen, dass der Origin jeder Kopie noch immer an der Position des Origins der ersten Pille liegt.
Dieses Problem lässt sich leicht beheben. Wir wählen eine der Kopien aus, um sie zum aktiven Objekt zu machen, wählen dann alle anderen Kopien aus, ich verwende dafür die Taste B und die Maus, klicken mit der rechten Maustaste auf die Auswahl und wählen im Object Context Menü die Option „Set Origin“ und anschließend „Origin to Geometry“.

Jetzt sind alle Pillen separate Objekte, die Origins sind korrekt gesetzt, und alle haben die Rigid Body Komponente richtig konfiguriert.
Wir können nun zum ersten Frame der Timeline gehen und die Simulation starten, indem wir auf Play klicken.
In diesem Fall wird die Simulation mehrere Minuten dauern.

Tatsächlich waren 40 Pillen für diesen Behälter vielleicht sogar zu wenige.
Wie auch immer, wir können uns die Anordnung der Pillen ansehen, indem wir die Wiedergabe der Animation an verschiedenen Stellen unterbrechen.
Gehen wir zum letzten Frame der Animation und blenden den Behälter und das Etikett vorübergehend aus. Die Pillen befinden sich in einer plausiblen Ruheposition, ohne leere Zwischenräume oder Überschneidungen. Die Frames der Animation sind also ausreichend, um ein gutes Ergebnis zu erzielen.

Die Animation ist interessant, aber das Tutorial ist noch nicht ganz abgeschlossen.
Wenn wir das Ergebnis dieser physikalischen Simulation exportieren möchten, also die Anordnung der Pillen im Behälter so, wie sie im letzten Frame zu sehen ist, müssen wir die physikalische Simulation dauerhaft machen.
Das Entfernen der Rigid Body Komponente im Physics Tab der Pillen darf ausdrücklich NICHT durchgeführt werden. Ebenso sollten die Pillen weder untereinander noch mit dem Behälter zusammengeführt werden. Diese Vorgänge würden dazu führen, dass wir die Physik-Simulation verlieren und von vorne beginnen müssten.
Stattdessen positionieren wir uns auf dem Frame, den wir als final festlegen möchten, zum Beispiel dem letzten. Danach wählen wir eine Pille aus, sodass mindestens ein Objekt aktiv ist, und wählen anschließend alle Pillen aus. Für diese Auswahl können wir wieder die Taste B und die Maus verwenden.

Wenn alle Pillen ausgewählt sind und eines davon aktiv ist, suchen wir im Blender-Suchfeld nach „Apply Transformation“, das ich in meinem Fall mit der Leertaste aufrufe, und wählen die Option im Bereich Rigid Body, da wir die Rigid Body Transformationen anwenden möchten.

Wir sind noch nicht fertig. Wir müssen das Suchfeld erneut öffnen und beginnen, „Remove Rigid Body“ einzugeben, da wir nun die Rigid Body Komponente von allen ausgewählten Pillen entfernen möchten.
Wir wählen die Operation Object - Rigid Body - Remove.
Jetzt ist die Simulation permanent. Wenn wir uns zwischen den verschiedenen Frames der Timeline bewegen, sehen wir, dass sich die Pillen nicht mehr bewegen und keine Rigid Body Komponente mehr besitzen.

Dieses Objekt kann nun exportiert und in anderen Szenarien verwendet werden.
Die Pillen sind einzelne Meshes, jeweils mit einem Origin im Zentrum ihrer Geometrie. Es liegt also an dir zu entscheiden, ob du sie so belässt, sie gruppierst, parentest oder sogar miteinander verschmilzt. Wähle einfach die Lösung, die am besten zu deinen Anforderungen passt.
Das war’s für dieses Tutorial. Bis bald!