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.

Inverse Kinematics allow you to position the last bone in a bone chain and the other bones are positioned automatically. This is like how moving someone’s finger would cause their arm to follow it. By normal posing techniques, you would have to start from the root bone, and set bones sequentially until you reach the tip bone: When each parent bone is moved, its child bone would inherit its location and rotation. Thus making tiny precise changes in poses becomes harder farther down the chain, as you may have to adjust all the parent bones first.

This effort is effectively avoided by use of IK.

IK is mostly done with bone constraints although there is also a simple Auto IK feature in Pose Mode. They work by the same method but the constraints offer more options and control. Please refer to the following pages for details about these constraints:

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, ente Estándar o iTaSC. Es más frecuente el uso del método Estándar.

Estándar#

(pendiente).

iTaSC#

iTaSC es una sigla para «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 le 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: Distancia en espacio cartesiano y Rotación de articulaciones en espacio de la articulación. La primera permite mantener un efector final dentro, sobre o fuera de una esfera centrada en una posición objetivo, la segunda permite 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

The maximum variation of the end effector between two successive iterations at which a pose is obtained that is stable enough and the solver should stop the iterations. Lower values means higher precision on the end effector position.

Iteracciones

The upper bound for the number of iterations.

Método de resolución

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

SDLS

Computes the damping automatically by estimating the level of “cancellation” in the armature kinematics. This method works well with the Copy Pose constraint but has the drawback of damping more than necessary around the singular pose, which means slower movements. Of course, this is only noticeable in Simulation mode.

DLS

Computes the damping manually which can provide more reactivity and more precision.

Amortiguación máxima

Maximum amount of damping. Smaller values means less damping, hence more velocity and better precision but also more risk of oscillation at singular pose. 0 means no damping at all.

Épsilon de amortiguación

Range of the damping zone around singular pose. Smaller values means a smaller zone of control and greater risk of passing over the singular pose, which means oscillation.

Nota

Damping and Epsilon must be tuned for each armature. You should use the smallest values that preserve stability.

Nota

  • The SDLS solver does not work together with a Distance constraint. You must use the DLS solver if you are going to have a singular pose in your animation with the Distance constraint.

  • Ambos métodos tendrán un buen rendimiento, mientras no se tenga una pose extrema.

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 CI. La velocidad del objetivo será ignorada y el cálculo convergerá hasta que se obtenga la precisión indicada. Aún así, el nuevo método 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 fotogramas clave (exceptuando las provenientes de una restricción de rotación de la articulación) y generará un caché de estado de forma automática.

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

Use this option if you want to let the solver set how many substeps should be executed for each frame. A substep is a subdivision on the time between two frames for which the solver evaluates the IK equation and updates the joint position. More substeps means more processing but better precision on tracking the targets. The auto step algorithm estimates the optimal number of steps to get the best trade-off between processing and precision. It works by estimation of the nonlinearity of the pose and by limiting the amplitude of joint variation during a substep. It can be configured with next two parameters:

Mín

Proposed minimum substep duration (in second). The auto step algorithm may reduce the substep further based on joint velocity.

Máx

Maximum substep duration (in second). The auto step algorithm will not allow substep longer than this value.

Intervalos

If Auto Step is disabled, you can choose a fixed number of substeps with this parameter. Substep should not be longer than 10 ms, which means the number of steps is 4 for a 25 fps animation. If the armature seems unstable (vibrates) between frames, you can improve the stability by increasing the number of steps.

Retroalimentación

Coefficient on end effector position error to set corrective joint velocity. The time constant of the error correction is the inverse of this value. However, this parameter has little effect on the dynamic of the armature since the algorithm evaluates the target velocity in any case. Setting this parameter to 0 means “opening the loop”: the solver tracks the velocity but not the position; the error will accumulate rapidly. Setting this value too high means an excessive amount of correction and risk of instability. The value should be in the range 20-100. Default value is 20, which means that tracking errors are corrected in a typical time of 100-200 ms. The feedback coefficient is the reason why the armature continues to move slightly in Simulation mode even if the target has stopped moving: the residual error is progressively suppressed frame after frame.

Velocidad máxima

Indicative maximum joint velocity in radian per second. This parameter has an important effect on the armature dynamic. Smaller value will cause the armature to move slowly and lag behind if the targets are moving rapidly. You can simulate an inertia by setting this parameter to a low value.

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

Define si el hueso podrá estirarse con tal de alcanzar su objetivo de cinemática inversa.

Bloquear

Permite deshabilitar el movimiento alrededor de un eje.

Rigidez

Rigidez alrededor de un eje. Su influencia será deshabilitada cuando se utilice Bloquear CI.

Limitar

Permite 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

Activa 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 cálculo como objetivo para la articulación. Esto otorgará control sobre la articulación, mientras el método aún se encuentre rastreando a los otros objetivos de cinemática inversa. Se podrá usar esta característica para indicar 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 poder a la rotación de la articulación, establecer una influencia alta en la restricción de rotación de la articulación y una influencia baja en las restricciones de cinemática inversa.

Ejemplo 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 el doblez 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

Ejemplo de brazo con cinemática inversa.#

Nótese que si se usara un Objetivo polar, la limitación de cinemática inversa no funcionará sobre el hueso principal de la cadena.