weiche Körper (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.

Starte die Szene, um Dir 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

You can download the Platformer3D demo on GitHub <https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer> or the Asset Library.

Open the Player scene, add a SoftBody node and assign a PlaneMesh to it.

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

Subdivision generates a more tessellated mesh for better simulations.

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 find 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

Play the scene and the cloak should simulate correctly.

../../_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.