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

Un nodo SoftBody se usa para simulaciones de cuerpos blandos.

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

Crear una nueva escena con un nodo Spatial como raíz. Luego, crea un nodo Softbody. Añade una CubeMesh en la propiedad mesh del nodo en el inspector y aumenta la subdivisión de la malla para la simulación.

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

Añade un nodo BoneAttachment bajo el nodo del esqueleto y selecciona el hueso del cuello para unir la capa al esqueleto del personaje.

Nota

El nodo BoneAttachment es para acoplar objetos a un hueso de una armadura. El objeto adjunto seguirá el movimiento del hueso, el arma de un personaje puede ser adjuntada de esta manera.

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