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.

Usando SoftBody

Los cuerpos blandos (o dinámica de cuerpos blandos) simulan el movimiento, el cambio de forma y otras propiedades físicas de los objetos deformables. Esto puede ser usado, por ejemplo, para simular la tela o para crear personajes más realistas.

Configuración básica

A SoftBody3D node is used for soft body simulations.

Crearemos un cubo de rebote para demostrar la configuración de un cuerpo blando.

Create a new scene with a Node3D node as root. Then, create a Softbody node. Add a CubeMesh in the mesh property of the node in the inspector and increase the subdivision of the mesh for simulation.

../../_images/softbody_cube.png

Establezca los parámetros para obtener el tipo de cuerpo blando al que apunta. Intenta mantener la Simulation Precision por encima de 5, de lo contrario, el cuerpo blando puede colapsar.

../../_images/softbody_cube_menu.png

Nota

Maneja algunos parámetros con cuidado, ya que algún valor puede llevar a resultados extraños. Por ejemplo, si la forma no está completamente cerrada y se establece la presión a más de 0, el cuerpo blando volará como una bolsa de plástico bajo un viento fuerte.

Ejecuta la escena para ver la simulación.

Truco

Para mejorar el resultado de la simulación, aumentar la Simulation Precision, esto dará una mejora significativa a costa del rendimiento.

Simulación de una capa

Hagamos una capa en la demo de Platformer3D.

Nota

Puede descargar la demo de Platformer3D en GitHub <https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer> o en The Asset Library.

Abre la escena Player, añade un nodo SoftBody y asígnale una PlaneMesh.

Abre las propiedades de PlaneMesh y establece el tamaño (x: 0.5 y: 1) luego establece Subdivide Width y Subdivide Depth a 5. Ajusta la posición del SoftBody. Deberías terminar con algo como esto:

../../_images/softbody_cloak_subdivide.png

Truco

La subdivisión genera una malla más teselada para mejores simulaciones.

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

Nota

BoneAttachment3D 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

Para crear uniones fijas, selecciona los vértices superiores en el nodo SoftBody:

../../_images/softbody_cloak_pinned.png

Las articulaciones fijas se pueden encontrar en la propiedad de los Attachments del SoftBody, elige el BoneAttachment como el SpatialAttachment para cada articulación (joint) fija, las articulaciones (joints) fijas están ahora unidas al cuello.

../../_images/softbody_cloak_pinned_attach.png

El último paso es evitar recortes añadiendo el Kinematic Body Player al Parent Collision Ignore del SoftBody.

../../_images/softbody_cloak_ignore.png

Reproduce la escena y la capa deberia simularse correctamente.

../../_images/softbody_cloak_finish.png

Esto cubre los ajustes básicos de softbody, experimenta con los parámetros para conseguir el efecto que desees al hacer tu juego.