Joints en Unity: bisagras, resortes y clavos

Resumen

Cuando trabajas con física en Unity, no siempre quieres que tus objetos estén pegados de forma rígida. A veces necesitas uniones elásticas, articuladas o que se rompan al recibir un golpe. Para eso existen los joints en Unity, articulaciones que conectan dos rigid bodies y simulan comportamientos físicos realistas como bisagras, resortes o pegamentos.

Qué es un joint y cómo conecta dos rigid bodies

Un joint, que en inglés significa articulación, une dos rigid bodies dentro de una simulación física. La condición es clara: ambos objetos deben tener un rigid body asignado, porque sin eso el joint no funciona [01:00].

Lo interesante es que cualquier joint se puede configurar para romperse al recibir cierta fuerza, lo que abre la puerta a efectos dramáticos como una silla que se desarma al caer.

¿Qué es un joint en Unity? Es un componente que conecta dos rigid bodies para simular uniones físicas como clavos, resortes o bisagras, y puede romperse al superar una fuerza definida.

Cuáles son los tipos de joints disponibles

Unity ofrece varios tipos de articulaciones, cada una pensada para un comportamiento distinto. Estos son los principales que verás en acción:

  • Fixed joint: actúa como superglue o un clavo. Pega dos objetos uno sobre otro, distribuye la masa entre ambos y no requiere jerarquía padre-hijo [01:20].
  • Spring joint: funciona como un resorte elástico. Sirve para unir un dedo a un yo-yo o una araña al techo, con elasticidad configurable [01:50].
  • Hinge joint con spring: simula una puerta de bar que tiende a cerrarse, o un trampolín que vuelve a su posición original [02:20].
  • Hinge joint con motor: gira con fuerza propia hacia una velocidad objetivo, justo como un molino de viento [02:40].

Cada uno de estos joints resuelve un problema específico de simulación física que sería muy complicado replicar manualmente.

Por qué usar fixed joint en lugar de jerarquía padre-hijo

Podrías pensar que pegar objetos haciéndolos hijos de un rigid body da el mismo resultado, pero no es así. El fixed joint distribuye la masa entre los objetos conectados y permite mantener independencia jerárquica, algo clave para simulaciones realistas.

Cómo armar una silla con fixed joints en Unity

Imagina una escena con una silla cuyas patas y respaldo deben quedar firmemente unidos al asiento. Aquí entra el fixed joint como protagonista [03:10].

El flujo de trabajo es directo:

  1. Selecciona la pata y haz clic en Add Component, busca Fixed Joint.
  2. Unity añade automáticamente un rigid body, porque ningún joint puede existir sin él.
  3. En el campo connected body, arrastra el asiento (que también necesita su propio rigid body).
  4. Repite el proceso con cada pata y con el respaldo.

Un detalle importante: el objeto padre no tiene rigid body. Cada pieza reacciona por su cuenta gracias a su propio cuerpo físico [04:30].

Cómo hacer que la silla se rompa al caer

Para que la silla se desarme al chocar con el piso, selecciona los elementos con fixed joint y ajusta la propiedad break force, expresada en newtons. En el ejemplo se prueba con 150 newtons y una ligera rotación inicial para hacer la caída más dramática [05:10].

El resultado depende del impacto: las patas que reciben más fuerza se desprenden, mientras que las que apenas tocan el suelo siguen pegadas. Es prueba y error hasta encontrar el valor adecuado.

¿Qué es break force en un joint? Es la fuerza en newtons que debe superarse para que el joint se rompa y los objetos se separen.

Cómo usar spring joint para simular una araña colgante

Ahora pensemos en una araña que se balancea desde el techo para asustar al jugador. Aquí el spring joint hace toda la magia [05:50].

La propiedad clave se llama spring, que define qué tan fuerte es el resorte. Si dejas vacío el campo connected body, la araña se conecta a un punto invisible del mundo, justo donde nació. Para visualizar ese punto necesitas tener los gizmos activados desde el botón correspondiente en el editor [06:30].

Cómo añadir colliders a objetos cóncavos

Las patas de la araña son cóncavas y Unity no permite crear física con colisiones cóncavas. La solución práctica:

  • Crea cubos alargados y rotados que simulen cada pata.
  • Duplica y rota 180 grados para el otro lado.
  • Apaga el mesh filter y el mesh renderer de esos cubos para que solo funcionen como colisión invisible.

De esta forma mantienes la apariencia visual original mientras la física trabaja con formas convexas simples.

Cómo controlar el punto de anclaje del resorte

Para que la araña no quede colgada de un punto aleatorio, hay que conectar el spring joint a un objeto específico. En el ejemplo se usa una base con rigid body kinemático, lo que evita que la base caiga por gravedad [08:30].

Luego desmarcas el checkbox de auto configure connected anchor y ajustas la posición a (0, 0, 0) en espacio local, recordando la diferencia entre espacio global y local: las coordenadas se calculan respecto al objeto conectado, no al mundo.

Si quieres que la araña ataque al jugador en lugar de quedarse colgando, baja el valor de spring de 200 a 8 y observa cómo se lanza con fuerza hacia el punto objetivo.

¿Has experimentado con joints en tus propios proyectos? Cuéntame en los comentarios qué tipo de articulación te ha dado mejores resultados.