Dies ist ein grundlegendes Tutorial dazu, wie man Rigid Bodies und Physic Materials verwendet, um Objekte in unseren Unity Projekten fallen und springen zu lassen.


Die Videoversion dieses Tutorials ist derzeit in dieser Sprache nicht verfügbar. Unten kannst du dir die englische Version mit Untertiteln ansehen; unter dem Video findest du die ins Deutsche übersetzte Transkription.


Videotranskript

Hallo zusammen!

Dies ist ein grundlegendes Tutorial dazu, wie man Rigid Bodies und Physic Materials verwendet, um Objekte in unseren Unity Projekten fallen und springen zu lassen.

Unity stellt eine Physiksimulations-Engine bereit. Um auf diese Funktionen zugreifen zu können, ist es jedoch notwendig, einige Komponenten wie Rigid Body und Colliders sowie weitere Elemente zu verwenden.

Das liegt daran, dass physikalische Simulation rechenintensiv ist. Standardmäßig nehmen Objekte daher NICHT daran teil. Es liegt an uns festzulegen, ob und wie sich ein Objekt physikalisch verhalten soll.

Gut, legen wir los.

Ich erstelle eine einfache Szene in Unity mit einem Cube als Boden und einem Basketball-Modell.

Wir stellen sofort fest, dass das Cube-Objekt, also ein natives Unity-Objekt, bereits eine Box Collider-Komponente besitzt, während mein 3D-Modell, das ich aus einer externen Datei erstellt habe, keinerlei Collider-Komponente hat. Darauf kommen wir gleich zurück.

Ich positioniere das Basketball-Modell in einem gewissen Abstand direkt über dem Cube. Wenn ich jedoch auf die Play-Schaltfläche klicke, stelle ich sofort fest, dass der Ball nicht fällt.

Damit der Ball an der physikalischen Simulation der Szene teilnimmt, müssen wir ihm lediglich eine Rigid Body-Komponente hinzufügen. Das geht ganz einfach im Inspector des Objekts.

Im Tab der Komponente sehen wir einige interessante Eigenschaften, darunter die Mass, die wir in diesem Beispiel unverändert lassen können, sowie das Kontrollkästchen Use Gravity, das standardmäßig aktiviert ist. Wir können das Spiel also starten und feststellen, dass der Ball nun tatsächlich fällt.

Allerdings durchdringt er den darunterliegenden Cube und fällt ins Leere.

Man könnte auf die Idee kommen, auch dem Cube-Objekt eine Rigid Body-Komponente hinzuzufügen, eventuell ohne aktivierte Gravitation, damit beide Objekte an der physikalischen Simulation teilnehmen. Wir können jedoch sofort überprüfen, dass diese Annahme das Problem nicht löst. Entfernen Sie daher die Rigid Body-Komponente vom Cube, um Verwirrung zu vermeiden.

Kurz gesagt: Der Ball durchdringt den Cube, obwohl der Cube eine Box Collider-Komponente besitzt und die Kollision erkennen sollte.

Tatsächlich ist es das Basketball-Modell, das keinen eigenen Collider besitzt. Deshalb müssen wir ihm im Inspector einen hinzufügen. Da der Basketball eine kugelförmige Gestalt hat, wählen wir für dieses Objekt einen Sphere Collider.

Starten wir die Simulation jetzt, sehen wir, wie der Ball auf den Cube fällt und dort liegen bleibt.

Denken Sie also daran, dass auch der Cube und allgemein jedes Szenenobjekt, das mit dem Ball interagieren soll, einen eigenen Collider haben muss.

Zusammengefasst: Damit zwei Szenenobjekte miteinander interagieren können, müssen beide über Colliders verfügen, sonst verhalten sie sich wie Geister. Um zusätzlich an der physikalischen Simulation teilzunehmen und somit von Gravitation und anderen Kräften beeinflusst zu werden, benötigt ein Objekt außerdem eine Rigid Body-Komponente.

Das bisher erzielte Ergebnis ist jedoch noch nicht zufriedenstellend. Der Ball fällt auf den darunterliegenden Cube, springt aber nicht.

Die Materialeigenschaften eines Objekts werden nicht der Rigid Body-Komponente zugewiesen, sondern dem Collider. Diese Eigenschaften betreffen jedes Szenenobjekt, nicht nur solche mit Rigid Body. Deshalb müssen wir sie im Collider-Tab einstellen.

In diesem Tab finden wir das Feld Material. Es steht standardmäßig auf None und weist darauf hin, dass hier ein Physic Material-Objekt zugewiesen werden muss.

Fügen wir also dem Project ein Physic Material-Objekt hinzu. Achtung: Physic Material, nicht einfach Material. Letzteres betrifft nur das visuelle Erscheinungsbild eines Objekts.

Anschließend weisen wir dieses neue Physic Material dem Sphere Collider des Basketballs zu, drücken Play und stellen fest, dass der Ball immer noch nicht springt.

Das liegt daran, dass die Bounciness eines neuen Physic Material standardmäßig auf 0 gesetzt ist. Das sehen wir, wenn wir das Objekt auswählen und seine wenigen Eigenschaften im Inspector betrachten.

Das Physic Material besitzt zwei Haupteigenschaften: Bounciness und Friction. Diese können angepasst werden, um ein mehr oder weniger realistisches Sprungverhalten zu erzeugen. Wenn wir beispielsweise Bounciness erhöhen, steigert das die Rücksprungkraft. Wenn wir Friction erhöhen, verringert sich die Strecke, die der Ball nach jedem Aufprall zurücklegt.

Setzen wir Bounciness auf 1, also den maximalen Wert für dieses Feld, und starten das Spiel erneut. Dieses Mal springt der Ball ein paar Mal, bevor er zum Stillstand kommt.

Das Verhalten ist realistisch. Doch wie können wir den Ball noch stärker springen lassen?

Wir können zum Beispiel die Friction-Parameter anpassen und vor allem die beiden Combine-Parameter. Diese bestimmen, wie die physikalischen Eigenschaften zweier Objekte kombiniert werden, wenn sie in Kontakt kommen.

Der Standardwert für Bounce Combine ist Average. Das bedeutet, es wird ein Mittelwert zwischen dem Basketball, für den wir Bounciness auf 1 gesetzt haben, und dem darunterliegenden Cube gebildet. Da der Cube kein Physics Material besitzt, wird er von Unity als 0 betrachtet. Der endgültige Bounce-Wert beträgt also tatsächlich 0.5.

Wenn wir Bounce Combine auf Maximum ändern, beträgt die tatsächlich verwendete Bounciness nun 1 und der Ball springt deutlich stärker.

Jetzt entsteht jedoch ein neues Problem: Der Ball springt immer weiter.

Es ist ein merkwürdiges Verhalten. Offenbar muss der Bounciness-Wert 0.965 betragen, um konstante Sprünge beizubehalten. Fragen Sie mich nicht, warum.

Natürlich spielt bei der Simulation von Sprüngen auch die Oberfläche eine wichtige Rolle. Deshalb sollten wir dem Cube ebenfalls ein Physic Material zuweisen. Dasselbe gilt für Böden, Wände und andere Objekte aus unterschiedlichen Materialien mit jeweils eigenen physikalischen Eigenschaften. Stellen Sie die Bounciness entsprechend ein.

Den Rest überlasse ich Ihnen. Probieren Sie verschiedene Kombinationen mit unterschiedlichen Werten für Bounciness, Friction und Combine aus.

Das war es für dieses Tutorial. Bis bald!

Tutorials durchsuchen

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

Dies ist eine persönliche Website und kein Verkaufskanal. Die Seiten zu den 3D-Modellen dokumentieren eine Auswahl meiner Arbeiten und enthalten weder Angebote noch Preise, Kaufmöglichkeiten oder kommerzielle Links. Derzeit nehme ich keine Anfragen für individuelle Auftragsarbeiten, Beratungen oder andere berufliche Kooperationen an.


ERWEITERTE DATENSCHUTZ- UND COOKIE-VERWENDUNGSRICHTLINIEN