Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Verwenden von SoftBody

Soft Bodys (oder Soft-Body-Dynamik) simulieren Bewegungen, Änderungen der Form und andere physikalische Eigenschaften verformbarer Objekte. Dies kann zum Beispiel verwendet werden, um Stoff zu simulieren oder realistischere Charaktere zu erstellen.

Grundlegende Einrichtung

Ein SoftBody3D-Node wird für Soft Body-Simulationen verwendet.

Wir werden einen elastischen Würfel erstellen, um die Einrichtung eines Soft Body zu demonstrieren.

Erstellen Sie eine neue Szene mit einem Node3D-Node als Root. Erstellen Sie dann einen Soft Body-Node. Fügen Sie ein CubeMesh in der mesh-Property des Nodes im Inspektor hinzu und erhöhen Sie die Unterteilung des Meshes für die Simulation.

../../_images/softbody_cube.png

Stellen Sie die Parameter ein, um den gewünschten Soft Body-Typ zu erhalten. Versuchen Sie, die Simulationsgenauigkeit über 5 zu halten, da sonst der Soft Body zusammenbrechen kann.

../../_images/softbody_cube_menu.png

Bemerkung

Gehen Sie vorsichtig mit einigen Parametern um, da gewisse Werte zu seltsamen Ergebnissen führen können. Wenn beispielsweise die Shape nicht vollständig geschlossen ist und Sie den Druck auf mehr als 0 einstellen, fliegt der Soft Body bei starkem Wind wie eine Plastiktüte herum.

Starten Sie die Szene, um sich die Simulation anzusehen.

Tipp

Um das Simulationsergebnis zu verbessern, erhöhen Sie die Simulationsgenauigkeit. Dies führt zu einer signifikanten Verbesserung der Performance.

Stoffsimulation

Erstellen wir einen Umhang in der Platformer3D-Demo.

Bemerkung

Sie können die Platformer3D-Demo auf GitHub oder aus der Asset-Bibliothek herunterladen.

Öffnen Sie die Szene Player, fügen Sie einen SoftBody-Node hinzu und weisen Sie ihm ein PlaneMesh zu.

Öffnen Sie die PlaneMesh-Property und stellen Sie die Größe ein (x: 0.5 y: 1), dann setzen Sie Unterteilungsbreite und Unterteilungstiefe auf 5. Passen Sie die Position des SoftBody an. Am Ende sollten Sie etwas wie dieses erhalten:

../../_images/softbody_cloak_subdivide.png

Tipp

Die Unterteilung erzeugt ein stärker mosaikartiges Mesh für bessere Simulationen.

Füge einen BoneAttachment3D-Node unter dem Skeleton-Node hinzu und wähle den Hals-Knochen aus, um den Umhang am Charakterskelett zu befestigen.

Bemerkung

Der Node BoneAttachment3D dient zum Anhängen von Objekten an einen Bone einer Armatur. Das angehängte Objekt wird der Bewegung des Knochens folgen, Waffen eines Charakters können auf diese Weise angehängt werden.

../../_images/softbody_cloak_bone_attach.png

Um Gelenkpunkte zu erzeugen, wählen Sie die oberen Vertices im SoftBody-Node:

../../_images/softbody_cloak_pinned.png

Die Gelenkpunkte sind in der Attachments-Property von SoftBody zu finden, wählen Sie BoneAttachment als SpatialAttachment für jeden Gelenkpunkt, die Gelenkpunkte sind nun mit dem Hals verbunden.

../../_images/softbody_cloak_pinned_attach.png

Der letzte Schritt ist das Vermeiden von Clipping, indem der Kinematic Body Player zu Parent Collision Ignore des SoftBody hinzugefügt wird.

../../_images/softbody_cloak_ignore.png

Spielen Sie die Szene ab und der Umhang sollte korrekt simuliert werden.

../../_images/softbody_cloak_finish.png

Experimentieren Sie mit den Parametern, um den Effekt zu erzielen, den Sie bei der Entwicklung Ihres Spiels anstreben.