Blog de Metlivi

Cómo mantener los objetivos IK de los pies fijos mientras se mueve el cuerpo de un personaje

Para mantener los pies fijos con IK, mantén estable la posición mundial de cada objetivo del pie mientras mueves el control del cuerpo del personaje. Deja que el solucionador de piernas ajuste las articulaciones entre el cuerpo en movimiento y el objetivo fijo. Si un objetivo hereda el movimiento del cuerpo, separa esa relación de transformación o compénsala antes de resolver el IK.

Esta guía está dirigida a creadores que posan un personaje virtual con rig cuyo cuerpo debe balancearse, inclinarse o desplazarse mientras ambos pies permanecen en su sitio. El flujo de trabajo que sigue combina el comportamiento documentado de las transformaciones y el IK con una secuencia práctica de diagnóstico; la terminología de Unity y Godot ofrece referencias concretas.

29 de octubre de 20267 min de lecturaPor Metlivi Editorial Team
Sección 1

¿Por qué se mueven los objetivos de los pies junto con el cuerpo?

Un objetivo puede mantener las mismas coordenadas locales y aun así desplazarse por la escena. Las transformaciones locales describen un objeto en relación con su elemento padre, por lo que mover un antecesor también cambia la transformación mundial del elemento hijo. Godot documenta esta distinción mediante transform y global_transform. Uso de transformaciones 3D — Godot Engine

Empieza mostrando los controles de los objetivos de los pies y desplazando ligeramente el cuerpo hacia un lado. Observa los objetivos por separado de los pies visibles. Si un objetivo se mueve junto con el cuerpo, inspecciona sus antecesores: puede estar bajo la pelvis, el control del cuerpo u otro grupo móvil.

No evalúes la configuración basándote solo en los campos de posición local. Anota la posición mundial del objetivo antes y después del movimiento. Así podrás distinguir dos preguntas útiles: ¿el objetivo abandonó la posición prevista o la pierna no siguió un objetivo estacionario?

Sección 2

¿Cómo conviene organizar los controles del cuerpo y de los pies?

Usa ramas de control separadas para el movimiento del cuerpo y los objetivos fijos de los pies. Una disposición práctica coloca el esqueleto y los controles del cuerpo en una rama, y los objetivos del pie izquierdo y derecho en otra rama bajo un control de escena estacionario. La condición esencial es que el control del cuerpo que manipulas no mueva la rama de los objetivos.

Un control general común del personaje aún puede contener ambas ramas si solo mueves el cuerpo bajo ese control. Sin embargo, al mover el control general también moverás ambas ramas. Decide si tu operación significa «desplazar el cuerpo sobre los pies fijos» o «reubicar todo el personaje» antes de elegir el control.

Si la aplicación permite que la herencia de transformaciones sea independiente, esa puede ser otra opción. Por ejemplo, Node3D.top_level de Godot hace que un nodo deje de heredar las transformaciones de su elemento padre. Esta es una función documentada de transformación; por sí sola no configura un solucionador de IK. Node3D — Godot Engine

Al cambiar el elemento padre de un objetivo o su modo de herencia, conserva su pose mundial actual. Primero anota su posición y orientación mundiales, cambia la relación y luego restaura esa pose. Verifica el resultado antes de volver a mover el cuerpo.

Sección 3

¿Qué ocurre si el objetivo debe permanecer bajo un elemento padre móvil?

Mantén un registro independiente de la pose mundial fija y calcula la pose local necesaria del objetivo a partir de la transformación actual del elemento padre. Para la posición, la relación es: posición local del objetivo = inversa de la transformación mundial actual del elemento padre × posición mundial guardada del objetivo. Unity permite la conversión de coordenadas mundiales a locales mediante InverseTransformPoint. Transform.InverseTransformPoint — Unity

Considera un ejemplo ilustrativo que solo usa traslaciones. Un objetivo está fijo en X mundial = 1.0 y su elemento padre empieza en X = 0.0. Por tanto, su X local es 1.0. Si el elemento padre se mueve a X = 0.3, el objetivo necesita una X local de 0.7 para permanecer en X mundial = 1.0. Si se deja la X local en 1.0, el objetivo se moverá a X mundial = 1.3.

Esa resta solo sirve para el ejemplo simplificado. Un elemento padre rotado o escalado requiere la conversión completa de la transformación. TransformPoint de Unity convierte una posición local a coordenadas mundiales e incluye explícitamente la escala; por eso, para convertir posiciones hay que usar una operación de punto y no una operación de dirección. Transform.TransformPoint — Unity

Guarda la pose fija cuando el pie entre en el estado de apoyo. Reutiliza ese valor guardado mientras se mueve el cuerpo. Volver a guardar el objetivo después de que haya heredado el movimiento simplemente almacena la desviación como una nueva referencia. Si también debe mantenerse fija la orientación, conserva y convierte la orientación del objetivo además de su posición.

Sección 4

¿Cómo se configura el IK de las piernas para que siga los objetivos?

Comprueba las asignaciones de la cadena del solucionador antes de probar un cambio de pose grande. En Unity Animation Rigging 1.4.1, Two Bone IK usa las transformaciones Root, Mid y Tip, un Target y un Hint opcional. En una pierna sencilla de dos segmentos, corresponden a las articulaciones de la parte superior de la pierna, la rodilla y el tobillo. El hint controla la dirección de flexión. Two Bone IK — Unity Animation Rigging

Para una primera prueba, usa la influencia completa de la restricción y la influencia completa de la posición del objetivo. Comprueba por separado la influencia de la rotación del objetivo. Unity las presenta como pesos distintos, de modo que el seguimiento de la posición y la coincidencia de la orientación se pueden probar independientemente. La opción Maintain Target Offset de Unity conserva una diferencia inicial de posición o rotación entre la punta de la cadena y el objetivo. Two Bone IK — Unity Animation Rigging

Alinea los objetivos con las poses previstas de los tobillos antes de activar las restricciones. Si usas un desplazamiento de forma deliberada, anota qué representa. Un desplazamiento inicial sin explicar dificulta las comparaciones posteriores entre el objetivo y la articulación resuelta.

Establece la flexión prevista de la rodilla con el hint o el control de polo y luego mueve ligeramente el cuerpo. Mantén la ubicación del hint comprensible durante toda la prueba; cambiar a la vez el objetivo, el cuerpo y el control de flexión dificulta identificar la causa de un resultado inesperado.

Sección 5

¿Cuánto puede moverse el cuerpo mientras ambos pies permanecen fijos?

Tener objetivos fijos no hace que todas las posiciones del cuerpo sean alcanzables. En una cadena ideal de dos segmentos, con articulaciones sin restricciones y sin estiramiento, la geometría exige que la distancia entre la raíz de la pierna y el objetivo esté entre |longitud superior − longitud inferior| y longitud superior + longitud inferior. Los límites reales de las articulaciones pueden reducir ese rango.

Considera un personaje ilustrativo cuyos segmentos miden 0.45 y 0.45 unidades de escena. El alcance geométrico máximo es de 0.90 unidades. Si la cadera está 0.80 unidades por encima del objetivo del tobillo y 0.30 unidades en horizontal, la distancia entre ambos es √(0.80² + 0.30²), aproximadamente 0.854 unidades. Esto se encuentra dentro del rango ideal. Si se aumenta la separación horizontal a 0.50 unidades, la distancia será de aproximadamente 0.943 unidades, por encima de ese rango.

Usa este cálculo para distinguir un problema de alcance de uno de transformación. Si el objetivo permanece fijo pero la cadena no lo alcanza, reduce el desplazamiento del cuerpo o reubica el cuerpo para acomodar ambas piernas. Evalúa cada pierna por separado: un desplazamiento lateral puede acercar un objetivo y alejar el otro.

Para la primera pose funcional, deja una flexión visible en ambas piernas y prueba un movimiento moderado. Amplía el rango de movimiento del cuerpo solo después de comprobar dónde se acerca cada pierna a sus límites de alcance. Considera ese rango como un resultado específico del rig, en lugar de copiar un valor de desplazamiento de otro personaje.

Sección 6

¿Cómo se mantiene fijo todo el pie y no solo el tobillo?

Define qué significa «fijo» para tu rig. Un objetivo de tobillo estacionario establece la posición de una articulación, pero el pie también necesita una orientación prevista. Un punto de contacto de la planta y un pivote de tobillo son puntos de referencia distintos; conserva el desplazamiento diseñado entre ellos al colocar el control.

Una prueba de diagnóstico útil consiste en mantener fija la posición del tobillo y girar solo el cuerpo. Observa el talón y la punta. Si se mueven alrededor del tobillo, inspecciona los controles de orientación del pie y cualquier control independiente de los dedos. Esta prueba permite aislar el contacto visible de la posición del objetivo.

Guarda la orientación prevista del pie junto con la posición. Durante el movimiento del cuerpo, compara ambas con la pose guardada. La documentación de transformaciones de Godot explica que una transformación combina un origen con una base que representa la orientación y la escala, lo que sirve como referencia para comprender una pose completa. Uso de transformaciones 3D — Godot Engine

Sección 7

¿Cómo se diagnostica el deslizamiento siguiendo un orden repetible?

Usa la siguiente secuencia como ayuda práctica de diagnóstico, derivada del comportamiento de las transformaciones y del solucionador descrito arriba. Cambia una condición a la vez, empezando por el movimiento más pequeño del cuerpo que reproduzca el problema.

Observación Primera comprobación Siguiente acción
El objetivo se mueve junto con el cuerpo Antecesores móviles y transformaciones heredadas Separa las ramas de control o restaura la pose mundial guardada
El objetivo permanece fijo, pero el tobillo no lo alcanza Asignaciones de la cadena, influencia de posición y alcance Verifica la configuración y luego reduce el desplazamiento del cuerpo
El tobillo permanece fijo, pero se mueve el talón o la punta Orientación del pie y desplazamiento del punto de contacto Restaura la orientación fija prevista del pie
La rodilla cambia de flexión de forma inesperada Ubicación del hint o del polo Prueba el control de flexión con un movimiento moderado del cuerpo
El resultado cambia entre el arrastre y la reproducción Qué sistema modifica cada control y cuándo Inspecciona las transformaciones evaluadas durante la reproducción

Para una configuración animada o procedural, usa un orden explícito de dependencias: establece la pose del cuerpo, restaura o convierte los objetivos guardados y luego evalúa el IK de las piernas. Confirma cómo programa la aplicación esas operaciones. El nombre de una función de devolución de llamada, por sí solo, no garantiza que el solucionador lea el objetivo actualizado durante la misma evaluación.

Termina probando un ciclo corto: mueve el cuerpo hacia un lado, bájalo, gíralo ligeramente y vuelve a la pose inicial. Compara en todo momento la pose mundial de cada objetivo con su referencia guardada. Cuando los objetivos permanezcan fijos, los ajustes restantes serán concretos: el movimiento alcanzable del cuerpo, una dirección de rodilla uniforme y la orientación del pie necesaria para mantener el contacto previsto.

Sección 8

Fuentes

Lecturas relacionadas

Sigue explorando este tema