Skip to content

Cuando una animación tiene que tocar el mundo ​

Por Oleg Sidorkin, director de tecnología y cofundador de Cinevva

Una animación de caminar sabe cómo se mueven las piernas. No sabe que un pie ha llegado a un escalón. Una animación de alcance sabe cómo se mueve el brazo. No sabe dónde está esta cerradura en particular ni que alguien ha movido la taza.

Este es el siguiente problema después de aplicar rigging automático a un personaje: conseguir que la animación responda a la escena mientras el juego está en ejecución. Hemos implementado una capa experimental de corrección en el entorno de ejecución de Three.js de Cinevva. Lee la pose producida por la animación, consulta la escena y ajusta las articulaciones del personaje antes de renderizar el fotograma.

Los siguientes ejemplos ejecutan ese código en tu navegador. No se realiza ninguna solicitud de generación de movimiento en el bucle de cada fotograma.

Prueba la diferencia ​

La demostración comienza automáticamente. Elige un ejemplo y activa o desactiva Correcciones. El personaje de la izquierda muestra la pose base; el de la derecha recibe la corrección en tiempo real. Pausa y arrastra la línea de tiempo para examinar un instante concreto. Arrastra en cualquiera de las vistas para orbitar alrededor del personaje, desplázate o pellizca para ampliar y arrastra con el botón derecho para desplazarte lateralmente. Ambas cámaras permanecen sincronizadas para que puedas inspeccionar el mismo contacto exactamente desde el mismo ángulo.

Todos los ejemplos utilizan la misma rana con rigging automático de Cinevva. El ejemplo de caminar reproduce Caminar de la biblioteca universal de animaciones, readaptado mediante el mismo código que utiliza Auto Rigger. Ambas vistas reproducen el clip real; la derecha añade correcciones del terreno en tiempo de ejecución. Los demás ejemplos conservan la referencia Idle integrada y sus controladores de interacción.

El controlador de la marcha planifica una zancada por adelantado. Predice dónde estará el peldaño móvil al apoyar el pie, centra toda la planta del pie de la rana dentro del área de aterrizaje y traza el próximo balanceo por encima de las alturas futuras de los escalones. Conserva la cadencia y la forma del balanceo del clip de la biblioteca mientras ajusta la longitud de la zancada. La pelvis comienza a transferir el peso y a cambiar de altura antes del aterrizaje; después, la IK coloca las extremidades en los objetivos planificados y refina el contacto visible de la planta.

Activa Plan de pisadas para ver el contorno de las plantas en sus posiciones previstas de apoyo y las trayectorias discontinuas del balanceo. Rastro de la pelvis compara el movimiento corporal y Guardar rastro de la pelvis conserva las mediciones. Actualmente, este planificador maneja los peldaños móviles conocidos de la demostración. Informa de los aterrizajes inviables; la navegación por terrenos arbitrarios y las fuerzas físicas de equilibrio son responsabilidades independientes del motor.

Subir una escalera transfiere una extremidad cada vez mientras los otros tres puntos de contacto permanecen sujetos a sus peldaños. La escalera se desplaza hacia abajo para mantener al personaje a la vista. Los objetivos explícitos de tobillos y manos colocan los contactos, y las guías de codos y rodillas mantienen las articulaciones alejadas de la escalera. El movimiento corporal y la secuencia de contactos están diseñados manualmente; no se trata de un planificador automático de escalada.

Qué está implementado ​

CapacidadLo que hace actualmente el entorno de ejecución
Terreno irregularConsulta un punto de apoyo para cada pie, alinea la normal calibrada de su planta y ajusta la altura de la pelvis.
Pies apoyadosMantiene un contacto de apoyo relativo a la superficie que lo sostiene.
Plataformas móvilesDesplaza ese contacto junto con un soporte que se traslada o gira.
Objetivos de las manosResuelve la posición de un brazo hacia una posición y orientación en el espacio global, con un peso de mezcla.
Objetos sostenidosDeriva el objetivo de la muñeca a partir de la pose deseada del objeto y una transformación fija del agarre.
Alcance imposibleLimita la resolución e informa de que es necesario reposicionar al personaje.

Este es un prototipo opcional para el entorno de ejecución. Los ejemplos interactivos demuestran la implementación; no implican que todos los juegos generados con Cinevva la activen automáticamente.

Un pie apoyado necesita un marco de referencia ​

Nuestro sistema actual de readaptación ya corrige parte del deslizamiento de los pies al transferir un clip entre personajes con proporciones diferentes. El ajuste al suelo en tiempo de ejecución tiene otra entrada: la superficie sobre la que se encuentra el personaje en ese momento.

Cuando un pie entra en fase de apoyo, la nueva capa registra su punto de contacto en las coordenadas locales del objeto que lo sostiene. Sobre un suelo estático, el pie permanece en su sitio mientras el cuerpo se mueve. Sobre una plataforma móvil, el mismo punto almacenado se desplaza con la plataforma. Anclarlo únicamente en coordenadas globales dejaría el pie atrás.

A continuación, la pelvis se mueve dentro de un intervalo de altura limitado que ambas piernas pueden alcanzar, y cada pierna se resuelve hacia el objetivo de su pie. Una prueba inicial detectó un fallo sutil: al suavizar el movimiento de la pelvis a través de un límite de alcance, un pie quedaba flotando brevemente sobre una pendiente. Ahora, el suavizado permanece dentro del intervalo viable.

La rana reveló otro error de calibración: tocar con la punta más baja de los dedos no significa que la planta esté bien asentada. Su demostración ahora ajusta un plano de apoyo a cada malla de pie posada, calibrando tanto la posición como la normal. La regresión renderizada mide tres contactos separados de la planta, además del punto más bajo de la superficie, durante toda la animación Idle.

La comprobación compartida del apoyo corporal estima el centro de masa a partir de segmentos corporales ponderados e incluye cargas ilustrativas de objetos transportados. Los ejemplos de pie y de alcance la utilizan para guiar la pelvis hacia los pies que soportan la carga. Al caminar, el planificador de pisadas controla la transferencia anticipada del peso; una corrección estática para centrar el cuerpo sobre la huella de apoyo no debe interferir con el movimiento planificado. Los diagnósticos siguen mostrando el centro de masa estimado y los contactos de apoyo. Al caminar se indica Transferencia de peso planificada, y en la escalera se informa de que las fuerzas de agarre siguen sin verificarse.

Caminar también requiere sincronización. El juego proporciona un peso para cada pie: con qué intensidad debe tratarse como apoyado en ese instante. Un pie en fase de balanceo debe liberarse. El juego también proporciona el patrón de marcha, el movimiento del personaje y la altura libre sobre el siguiente escalón. El solucionador de IK no deduce esas decisiones.

Coloca la llave en la cerradura y después resuelve la mano ​

No basta con apuntar la muñeca hacia una cerradura. La llave tiene una longitud, un eje de inserción y un desplazamiento de agarre. Su punta puede no acertar aunque la muñeca alcance perfectamente su objetivo.

En la demostración, la secuencia de interacción define la posición y rotación deseadas de la llave. El agarre nos indica dónde debe estar la muñeca para colocar allí la llave. A continuación, el brazo se resuelve hacia esa pose de la muñeca. La llave real permanece unida a la mano resuelta, incluso cuando la posición solicitada es inalcanzable.

El ejemplo Objetivo inalcanzable muestra deliberadamente ese fallo. La extremidad no se estira para que la métrica parezca satisfactoria; el entorno de ejecución informa de que es necesario reposicionar al personaje.

Este ejemplo tiene fases diseñadas manualmente de aproximación, inserción y giro. Todavía no planifica el agarre con los dedos ni comprueba la forma de la llave con respecto al espacio interior de la cerradura.

Verter también es un problema de orientación ​

El ejemplo de vertido mantiene el pico del recipiente sobre la taza mientras inclina el recipiente a su alrededor. Al girar el recipiente, cambia la posición necesaria de la muñeca. El mismo mecanismo de objetivos de la mano sigue esa pose cambiante.

El chorro azul es un efecto visual que se activa durante la inclinación. No es una simulación de fluidos. Su propósito aquí es hacer visible la alineación: sin corrección, no acierta en la taza; con corrección, cae dentro del área receptora.

Dónde se ejecuta la corrección ​

La secuencia en un juego es:

Mover el personaje → evaluar la animación → aplicar desplazamientos a la pose → resolver los contactos con la escena → actualizar el movimiento secundario → renderizar.

El entorno de ejecución expone esta función mediante createAnimator, con una configuración opcional sceneIK. Los juegos pasan los pesos de contacto, los objetivos de las manos y el estado de apoyo en el suelo a update. También puede envolver un mezclador de animaciones existente de Three.js.

Cada rig necesita una calibración significativa de los pies y los agarres. La asignación de nombres de huesos nos lleva hasta la extremidad correcta, pero una articulación del tobillo no es la parte inferior de un zapato. Esta versión utiliza un punto de apoyo calibrado por pie; todavía no modela toda el área de apoyo del talón y los dedos.

Las técnicas subyacentes tienen equivalentes consolidados en la IK de dos huesos de Unity y los solucionadores de IK de Unreal. Nuestra implementación es una pequeña capa de corrección integrada en el motor y creada en torno a las necesidades de nuestros personajes con rigging automático.

Qué comprobamos y qué queda pendiente ​

La primera fase de verificación incluyó 14 pruebas numéricas y de integración, además de ocho escenarios renderizados muestreados a lo largo de 3.840 fotogramas. Comprobamos soportes móviles, contacto con pendientes, pistas de animación constantes, transformaciones de coordenadas, límites de alcance y la integración del animador en el entorno de ejecución. La automatización del navegador también comparó el lienzo con las correcciones activadas y desactivadas, y probó el diseño estrecho.

Las mediciones comprueban el error entre las extremidades y sus objetivos. No demuestran que todas las partes de la malla esquelética estén libres de colisiones ni que el resultado parezca natural en todos los personajes. Los ejemplos son intencionadamente lo bastante pequeños como para inspeccionarlos junto con esas cifras.

Las siguientes capas son la planificación de pisadas, un mejor apoyo de la planta, el alcance de cuerpo completo, el agarre con los dedos y las fases de interacción con detección de colisiones. La simulación física de líquidos constituye otro sistema independiente.

Por ahora, el resultado útil es concreto: una animación puede conservar su movimiento subyacente mientras sus pies y manos responden a la escena en cada fotograma. Esto proporciona a un personaje con rigging automático un punto de partida para interactuar con el mundo que lo rodea.