Using SoftBody

Weiche Körper (oder Weichkörperdynamik) simulieren Bewegungen, Formänderungen und andere physikalische Eigenschaften verformbarer Objekte. Dies kann zum Beispiel verwendet werden, um Stoff zu simulieren oder realistischere Charaktere zu erstellen.

Grundlegende Einrichtung

Ein SoftBody Node wird verwendet zur Simulations weicher Körper.

Wir werden einen Hüpfwürfel erstellen, um die Einrichtung eines weichen Körpers zu demonstrieren.

Erstellen Sie eine neue Szene mit einem Spatial-Node als Wurzel. Erstellen Sie dann einen Softbody-Node. Fügen Sie ein CubeMesh in die Eigenschaft mesh des Nodes im Inspektor ein und vergrößern Sie die Unterteilung des Mesh für die Simulation.

../../_images/softbody_cube.png

Stellen Sie die Parameter ein, um den gewünschten weichen Körpertyp zu erhalten. Versuchen Sie, die Simulationsgenauigkeit über 5 zu halten, da sonst der weiche Körper 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 Form nicht vollständig geschlossen ist und Sie den Druck auf mehr als 0 einstellen, fliegt der Softbody 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 Leistung.

Umhangsimulation

Machen wir einen Umhang in der Platformer3D Demo.

Bemerkung

Sie können die Platformer3D-Demo auf GitHub <https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer> oder aus der Bestandsbibliothek/Asset-Bibliothek herunterladen.

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

Open the PlaneMesh properties and set the size(x: 0.5 y: 1) then set Subdivide Width and Subdivide Depth to 5. Adjust the SoftBody's position. You should end up with something like this:

../../_images/softbody_cloak_subdivide.png

Tipp

Die Unterteilung erzeugt ein besser tesselliertes Mesh für bessere Simulationen.

Add a BoneAttachment node under the skeleton node and select the Neck bone to attach the cloak to the character skeleton.

Bemerkung

BoneAttachment node is to attach objects to a bone of a armature. The attached object will follow the bone's movement, weapon of a character can be attached this way.

../../_images/softbody_cloak_bone_attach.png

To create pinned joints, select the upper vertices in the SoftBody node:

../../_images/softbody_cloak_pinned.png

The pinned joints can be found in SoftBody's Attachments property, choose the BoneAttachment as the SpatialAttachment for each pinned joints, the pinned joints are now attached to the neck.

../../_images/softbody_cloak_pinned_attach.png

Last step is to avoid clipping by adding the Kinematic Body Player to Parent Collision Ignore of the SoftBody.

../../_images/softbody_cloak_ignore.png

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

../../_images/softbody_cloak_finish.png

This covers the basic settings of softbody, experiment with the parameters to achieve the effect you are aiming for when making your game.