¿Qué es Animation Retargeting?

por Lina Halper

¿Alguna vez imitaste el comportamiento de otra persona? ¿Intentaste actuar como otra persona?

Es muy fácil para nosotros imitar a otra persona en el mundo real. ¿Qué ocurre en el mundo 3D? Uno ve a un personaje que hace el movimiento para caminar, pero ¿qué tan difícil es usar el mismo movimiento para otros personajes? Suena como que debería resolverse fácilmente copiando y pegando, ¿no?

La reorientación de animaciones es un problema en el que se desea reproducir la misma animación en diferentes personajes. Esto parece razonable, especialmente si tienes humanoides que se parecen mucho entre sí. Puedes imaginarte a un animador aplicando fácilmente el mismo movimiento en diferentes caracteres.

Este es uno de mis temas favoritos. Cualquiera que haya trabajado conmigo durante la última década sabe cuánto me encanta hablar de esto, y que sigue siendo un desafío.

¿Por qué? Es complicado de explicar. Todas las articulaciones, la jerarquía y el skinning son temas muy difíciles y las personas se pierden rápidamente en la discusión. Con los humanos digitales, la generación de datos sintéticos y el metaverso, tenemos una gran multitud de personas que son nuevas en el universo 3D.

Y, ahora, la creación de avatares 3D es un tema popular, no solo para la industria del cine y los videojuegos tradicionales. Sin embargo, explicar qué tipos de problemas hay con la transferencia de movimiento implica un proceso largo y riguroso. ¡Además, hay que tener en cuenta la física! Dado que estamos tan familiarizados con esto en nuestra vida diaria, sabemos exactamente cómo debería funcionar en nuestro mundo, pero no en un mundo 3D virtual. Tenemos que volver a implementar toda esa información y no es un trabajo trivial. ¿Cómo podemos hacerlo más fácil?

¿Cuáles Son los Desafíos?

La base de la animación es el control de los movimientos con las articulaciones (ignorando blendshapes). Las articulaciones son puntos en el espacio para describir transformaciones como esta.

Las articulaciones conforman la jerarquía en un espacio 3D con una relación principal-secundaria. Esa relación se muestra con líneas y esto se parece más a un personaje que conoces.

Con esto, ahora podemos mover la articulación como en este gif. Pero ahora, ¿cómo movemos la malla con ella? El gif anterior probablemente no es lo que tienes en mente cuando quieres mover la articulación.

La unión de articulaciones y vértices se llama skinning. El skinninges deformar los vértices con las articulaciones, y puede causar muchos problemas según cómo quieras que el personaje se deforme, por lo que hay muchas articulaciones adicionales agregadas para solucionar esos problemas.

En el mundo 3D, los vértices no saben cuáles son nuestras expectativas hasta que no las implementamos todas. No saben que no deben cruzarse entre sí hasta que les indicamos que lo hagan. Los giros extraños, la pérdida de volúmenes o la ganancia de volúmenes se convierten en problemas que no vemos en nuestra vida diaria.

El Skinning Lineal de Mezcla causa un efecto indeseado de envoltorio de dulce cuando giras, src
Se muestra el Skinning Lineal de Mezcla (pérdida de volúmenes) y el Skinning de Doble Cuaternión (ganancia de volúmenes) – src
Personajes con diferentes proporciones de Reallusion

Con todo esto, cuando tienes personajes muy diferentes con diferentes tipos de articulaciones, la transferencia de movimiento se vuelve mucho más complicada.

Pero, cuando miramos por fuera, podemos imaginar fácilmente cómo debería verse la animación en diferentes personajes.

Postura de enlace de los diferentes tipos de caracteres: Reallusion
Movimiento reorientados de los diferentes tipos de caracteres: Reallusion

Compensación de la Expresión Simple para un Problema Complejo

¿Cómo podemos reducir esta brecha? ¿Cómo podemos describir un esqueleto?

src: NVIDIA unicon

Al entrenar la IA con movimientos, se requiere el mínimo de información, por lo que deseas que el esqueleto sea lo más simple posible.

Esto es genial hasta que quieres reorientar este movimiento a personajes sofisticados. Necesitas un reorientador Inverse Kinematic en lugar de un reorientador Forward Kinematic, ya que la información de origen no es lo suficientemente rica.

Muchas IA basadas en imágenes que generan movimiento, como Pose Estimation, muestran diferentes representaciones de humanos. Generalmente están hechas con líneas en 2D. Esto hace que sea un poco más fácil de entender para las personas, ya que también es 2D y conocemos los miembros.

Pose Estimation — src

¿Es esta una mejor manera de describir al personaje? Pero ¿cómo describiremos la complejidad de la torsión y el skinning?

Proto Res de Unity: src

O tal vez podamos usar descripciones menores, como mirar las ubicaciones de la mano y los pies, y resolverlo mediante una combinación de reorientación tradicional e IKs para reconstruir el movimiento. Esto resuelve el de la reorientación en el núcleo, ya que se está tratando la jerarquía como un problema separado. ¿Pero se puede usar para crear la mayoría de los movimientos que nos gustaría? Por ejemplo, ¿podemos expresar todos los movimientos que se mueven de esta forma utilizando este enfoque?

La brecha entre la forma en que vemos a los humanos cómo se implementa en el núcleo es enorme.

Queremos que la comprensión de los usuarios sea más simple y ocultar la complejidad por debajo. La superficie debe ser fácil de comprender para los usuarios mientras que la parte inferior debe permitir que la complejidad de implementar todos los detalles de las expresiones que nos gustaría ver.

¿Cómo podemos representar a los personajes de una forma fácil de entender, al tiempo que permitimos la implementación para expresar su complejidad?

Reorientación de Animación con Un Clic

NVIDIA Omniverse está viendo a muchos usuarios que simplemente están comenzando a trabajar en mundos 3D, y nuestro objetivo es crear herramientas para que este proceso sea más fácil para ellos. Lo llamamos «Un Clic»: queremos que lograr algo sea tan fácil como solo hacer clic una vez. Nos gustaría transferir las animaciones al objetivo sin perder el movimiento y las intenciones tanto como sea posible con Un Clic.

Para crear Un Clic, tuvimos que ver los problemas tradicionales desde diferentes ángulos. Si quieres ver cómo abordamos este problema en Omniverse, vea la sesión en el GTC. Hablamos sobre cómo vemos los movimientos de los personajes en la charla y cómo logramos la «Reorientación de Animación con Un Clic».

Tenemos una versión muy emocionante para la animación en Omniverse, no solo sirve para mejorar la animación de tiempo de ejecución, sino también para generar movimientos utilizando la IA, así como para reorientar esos movimientos fácilmente.

Para aquellos que asisten a GDC, acompáñenme para ver cómo los desarrolladores de juegos pueden usar esto para mejorar los pipelines o workflows actuales, y obtener un adelanto de las próximas herramientas de animación de Omniverse.

Estoy muy entusiasmada por poder hablar finalmente sobre lo que he estado trabajando. Analizaré en detalle cómo funciona este sistema «Un Clic», así que únanse a la charla y aprendan más sobre este tema agradable y divertido.