Introducción

La cinemática inversa (también conocida por su abreviatura en inglés «IK») simplifica el proceso de animación y hace posible la realización de animaciones más avanzadas con un menor esfuerzo.

La cinemática inversa permitirá que al posicionar el último hueso de una cadena, los otros huesos se posicionen de forma automática. Será análogo a mover el dedo de alguien y que eso cause que su brazo cambie de posición. Mediante técnicas normales de animación, se debería comenzar por mover el hueso superior de la jerarquía e ir acomodando secuencialmente los sucesivos huesos subordinados hasta llegar a la punta del dedo. A medida que cada hueso vaya siendo movido, sus subordinados heredarán los cambios en su posición y rotación. Debido a esto, realizar pequeños cambios de precisión en una pose resultará más y más difícil hacia abajo en la cadena, ya que primero se deberán ajustar todos los huesos superiores.

Todo este esfuerzo podrá ser evitado mediante el uso de cinemática inversa.

La cinemática inversa es llevada a cabo principalmente mediante restricciones de huesos, si bien también existe una función sencilla CI automática en el modo Pose. Ambas funcionan usando el mismo método, sin embargo las restricciones ofrecen más opciones y control. Referirse a las siguientes secciones para más detalles acerca de estas restricciones:

Panel Cinemática inversa del esqueleto

Referencia

Modo

Modo Pose

Panel

Propiedades ‣ Esqueleto ‣ Cinemática inversa

Este panel es usado para seleccionar el tipo de método de cálculo de cinemática inversa para el esqueleto, las opciones son Estándar e iTaSC. Es más frecuente el uso del método Estándar.

Estándar

(pendiente).

iTaSC

iTaSC es una sigla que representa «instantaneous Task Specification using Constraints» o en español: «Especificación instantánea de Tareas usando Restricciones».

iTaSC utiliza un método diferente para calcular el factor jacobiano, lo que permite manipular otras restricciones además de la posición y orientación del efector final: iTaSC utiliza un método de cálculo de cinemática inversa genérico de múltiples restricciones. Sin embargo, esta capacidad no se encuentra aún completamente explotada en la implementación actual; sólo otros dos tipos de restricciones pueden ser manipuladas: la Distancia en espacio cartesiano y la Rotación de las articulaciones en el espacio de la articulación. La primera permitirá mantener un efector final dentro, sobre o fuera de una esfera centrada en una posición objetivo, la segunda permitirá controlar directamente la rotación de un hueso en relación a su superior. Aquellos interesados en las matemáticas detrás de esto, podrán encontrar una breve descripción del método usado para hallar el factor jacobiano aquí.

iTaSC permite la fusión de restricciones, así como tener múltiples restricciones por hueso: el método calculará la pose óptima de acuerdo a la influencia respectiva de cada restricción. Esta es una mejora sustancial con respecto al sistema normal de restricciones, en el que cada una es calculada según su orden de aparición, de manera que las restricciones que se superpongan en su accionar se irán sobrescribiendo unas a otras.

Precisión

La variación máxima del efector final entre dos iteraciones sucesivas en las que se obtenga una pose suficientemente estable y que determinará que el método de resolución detenga sus iteraciones. Valores menores significarán una mayor precisión sobre la posición del efector final.

Iteraciones

El límite máximo para la cantidad de iteraciones.

Método de resolución

Permitirá seleccionar el método de resolución del factor jacobiano inverso, que usará iTaSC.

SDLS

Calculará la amortiguación de forma automática, estimando el nivel de “cancelación” para la cinemática del esqueleto. Este método funcionará bien con la restricción Copiar posición, pero tiene el inconveniente de amortiguar más de lo necesario alrededor de poses singulares, lo que significará movimientos más lentos. Por supuesto, esto sólo será perceptible en el modo Simulación.

DLS

Calculará la amortiguación de forma manual, lo cual será capaz de producir movimientos más reactivos y precisos.

Amortiguación máxima

Cantidad máxima de amortiguación. Valores reducidos significarán menos amortiguación y por lo tanto mayor velocidad y precisión en los movimientos, pero también mayor riesgo de oscilación en poses singulares. 0 significará la ausencia total de amortiguación.

Épsilon de amortiguación

Rango de la zona de amortiguación alrededor de una pose singular. Valores menores significarán una zona más pequeña de control y un mayor riesgo de pasar a través de la pose singular.

Nota

Los valores de Amortiguación máxima y Épsilon deberán estar sintonizados para cada esqueleto. Deberían usarse los valores más reducidos que sean capaces de mantener un comportamiento estable del sistema.

Nota

  • El método de resolución SDLS no funcionará en conjunto con una restricción de Distancia. Se deberá utilizar el método DLS cuando se prevea tener una pose singular y se esté usando una restricción de Distancia.

  • Ambos métodos de resolución ofrecerán un buen rendimiento, mientras no se tenga una pose singular.

Animación

En el modo Animación, iTaSC operará como un método de cálculo de cinemática inversa: no dependerá del estado previo y usará como su pose inicial, la pose a partir de la interpolación de las curvas-f, antes de calcular la convergencia de cinemática inversa. La velocidad del objetivo será ignorada y el cálculo convergerá hasta que se obtenga la precisión establecida. Aún así, el nuevo método de resolución será usualmente más rápido que el antiguo y proveerá algunas características inherentes a iTaSC: múltiples objetivos por hueso y múltiples tipos de restricciones.

Simulación

El modo Simulación es un modo dependiente del estado previo del cálculo: estimará la velocidad del objetivo, operará en un contexto de “tiempo verdadero”, ignorará la rotación de los claves (exceptuando las rotaciones de articulaciones provenientes de una restricción) y generará automáticamente un caché de estado.

Reiteración
Nunca

El método de resolución comenzará a partir de la pose de reposo y no efectuará reiteraciones (no convergerá) ni siquiera para el primer fotograma. Esto significa que le tomará algunos fotogramas alcanzar el objetivo, al comienzo de la animación.

Inicial

El método de resolución comenzará a partir de la pose de reposo y será reiterado hasta que la precisión indicada sea alcanzada, pero únicamente en el primer fotograma (esto es, un fotograma para el que no exista un fotograma anterior en el caché). Básicamente, esta opción permitirá escoger una pose inicial distinta a la de reposo y se trata de la opción predefinida. Para los fotogramas subsiguientes el método rastreará el objetivo integrando la velocidad de la articulación (calculada mediante el método del factor jacobiano) sobre el intervalo de tiempo representado por el fotograma. La precisión del rastreo dependerá del coeficiente de retroalimentación, la cantidad de sub intervalos y la velocidad del objetivo.

Siempre

El método de resolución será reiterado en cada fotograma hasta que la precisión indicada sea alcanzada. Esta opción omitirá la mayor parte del comportamiento dinámico de iTaSC: la velocidad máxima de la articulación y la continuidad entre fotogramas ya no estará garantizada, como contraparte de una mayor precisión en las posiciones del efector final. Se trata de un modo intermedio entre Animación y el tiempo real del modo Simulación.

Intervalos automáticos

Usar esta opción cuando se desee permitir que el método de resolución establezca cuántos sub intervalos deberán ser ejecutados entre cada fotograma. Un sub intervalo es una subdivisión del tiempo transcurrido entre dos fotogramas consecutivos, entre los cuales el método esté evaluando la ecuación de cinemática inversa y actualizando la posición de la articulación. Mayor cantidad de sub intervalos significará un mayor procesamiento, pero una mejor precisión al rastrear los objetivos. El algoritmo de intervalos automáticos estimará la cantidad óptima de intervalos para obtener la mejor relación entre tiempo de procesamiento y precisión posible. Funciona realizando una estimación de la no linealidad de la pose, así como limitando la amplitud de variación de la articulación durante un sub intervalo. Podrán ser configurados mediante los siguientes dos parámetros:

Mín

Duración mínima propuesta de un sub intervalo (en segundos). El algoritmo de intervalos automáticos podrá reducir los sub intervalos incluso más, basándose en la velocidad de las articulaciones.

Máx

Duración máxima de un sub intervalo (en segundos). El algoritmo de intervalos automáticos no permitirá que los sub intervalos duren más que este valor.

Intervalos

Cuando la opción Intervalos automáticos se encuentre inactiva, será posible definir una cantidad fija de sub intervalos mediante este parámetro. Los sub intervalos no deberían ser mayores a 10 ms, lo que significará que la cantidad de intervalos será de 4 para una animación a 25 fps. Cuando un esqueleto parezca inestable (cuando vibre) entre fotogramas, será posible mejorar la estabilidad aumentando la cantidad de intervalos.

Retroalimentación

Coeficiente referido al error en la posición del efector final, para definir una velocidad correctiva de la articulación. La constante temporal de corrección de errores será del inverso de este valor. Sin embargo, este parámetro provocará un efecto reducido sobre la dinámica del esqueleto, debido a que el algoritmo evaluará la velocidad del objetivo en cualquier caso. Al establecer este parámetro en 0 se estará “abriendo el bucle”: el método de resolución rastreará la velocidad pero no la posición; por lo que el error se acumulará rápidamente. Al aumentar demasiado este valor, se producirá una cantidad excesiva de corrección y un riesgo de inestabilidad. El valor debería encontrarse en un rango de 20 a 100. El valor predefinido es de 20, lo que significará que los errores de rastreo serán corregidos usualmente dentro de un tiempo de 100 a 200 ms. El coeficiente de retroalimentación es la razón por la que el esqueleto continuará moviéndose ligeramente en el modo Simulación, aún cuando el objetivo haya detenido su movimiento: el error residual será suprimido progresivamente, fotograma tras fotograma.

Velocidad máxima

Indicador de la velocidad máxima de la articulación, en radianes por segundo. Este parámetro tendrá un importante efecto sobre la dinámica del esqueleto. Valores reducidos causarán que el esqueleto se mueva lentamente y de forma retardada, cuando los objetivos se muevan rápido. Será posible simular un efecto de inercia, reduciendo este parámetro hasta un valor muy bajo.

Panel Cinemática inversa de huesos

Referencia

Modo

Modo Pose

Panel

Propiedades ‣ Hueso ‣ Cinemática inversa

Este panel se utiliza para controlar cómo funcionarán los huesos de la pose en la cadena de cinemática inversa.

Estiramiento de CI

Definirá si el hueso podrá estirarse (y en qué medida) con tal de alcanzar su objetivo de cinemática inversa.

Bloquear

Permitirá deshabilitar el movimiento alrededor del eje correspondiente.

Rigidez

Rigidez alrededor de un eje. Su influencia estará deshabilitada cuando se utilice Bloquear CI en ese mismo eje.

Limitar

Permitirá limitar el movimiento alrededor de un eje.

Método iTaSC

Cuando el método iTaSC de cinemática inversa se encuentre en uso, el panel de cinemática inversa del hueso cambiará para mostrar estos parámetros adicionales.

Control de rotación

Activará una restricción de rotación de articulación sobre ese hueso. La rotación de la pose calculada a partir de una Acción o de la interacción en la propia interfaz será convertida a un valor de articulación y entregada al método de resolución como objetivo para la articulación. Esto otorgará control sobre la articulación, mientras el método aún se encuentra rastreando a los otros objetivos de cinemática inversa. Será posible usar esta función para establecer una pose preferida para las articulaciones (esto es, una pose de reposo) o para animar el ángulo de una articulación reproduciendo una acción sobre ella.

Influencia

La importancia de la restricción de rotación de la articulación, basada en la influencia de las restricciones, en caso de que no se pueda alcanzar el objetivo de todas ellas al mismo tiempo. Por ejemplo, si se deseara darle más relevancia a la rotación de la articulación, se podrá establecer una influencia elevada en la restricción de rotación de la articulación y una influencia baja en las restricciones de cinemática inversa.

Ejemplo de sistema de control de un brazo

Este brazo utiliza dos huesos para resolver el problema de la torsión del antebrazo. Se utilizó el bloqueo de cinemática inversa para prevenir la flexión del antebrazo, aunque aún podrá ser torsionado de forma manual presionando R Y Y en el modo Pose o mediante el uso de otras restricciones.

../../../../../_images/animation_armatures_posing_bone-constraints_inverse-kinematics_introduction_example.png

IK Arm Example.

Nótese que en caso de usarse un Objetivo polar, el bloqueo de cinemática inversa no funcionará sobre el hueso superior de la cadena.