Saltar al contenido principal

Ayudantes de Animación Ocular

Además de la sincronización de labios, el complemento Runtime MetaHuman Lip Sync incluye dos utilidades auxiliares opcionales para animar los ojos de MetaHuman:

  • Auto Blink: un asistente que produce parpadeos naturales y aleatorios en un MetaHuman
  • Eyes Aim: un nodo de Animation Blueprint que hace que los ojos de un MetaHuman miren hacia una ubicación en el espacio mundial

Estas funciones son completamente independientes de la sincronización de labios y se pueden usar por sí solas, juntas o combinadas con los nodos de sincronización de labios. Están diseñadas como ayudas ligeras y de integración directa para agregar comportamiento ocular realista sin tener que crearlo manualmente.

Vistas previas de funciones

Auto Blink: parpadeo automático de ojos
Orientación de la mirada: siguiendo la cámara del jugador
Ojos Apuntando: siguiendo un actor objetivo en movimiento

Video Tutorial

Guía completa de ambos ayudantes, incluyendo la solución alternativa para el rig heredado.

Cuándo usar estos ayudantes

Si tu flujo de trabajo de animación facial ya incluye parpadeos y mirada dinámica, puedes omitir esta página. Estos asistentes existen para casos en los que deseas un comportamiento ocular realista sin tener que crearlo tú mismo, por ejemplo, cuando tus secuencias de animación no incluyen parpadeos, o cuando necesitas que los ojos sigan dinámicamente un objetivo en movimiento (algo que las secuencias de animación estáticas no pueden hacer). También pueden superponerse sobre animaciones faciales existentes para agregar elementos faltantes, como parpadeos sobre una secuencia que solo anima la boca.

El asistente de parpadeo automático produce parpadeos aleatorios y de aspecto natural al controlar las curvas CTRL_L_eye_blink y CTRL_R_eye_blink del Control Rig Facial de MetaHuman.

Cómo Funciona

Cada fotograma, llama a Update MetaHuman Auto Blink desde el Event Graph de tu Face Animation Blueprint y pasa el delta time del fotograma. La función:

  1. Realiza un seguimiento del estado por personaje (próximo momento de parpadeo, fase actual de apertura/cierre, etc.) indexado por el AnimInstance que lo invoca
  2. Devuelve dos valores flotantes en el rango 0..1, uno para el ojo izquierdo y otro para el ojo derecho, que representan qué tan cerrado está cada ojo en ese momento
  3. Luego almacenas estos valores en variables de Blueprint y los introduces en el nodo Control Rig del Anim Graph

Configuración

Dos pasos: agrega la llamada de parpadeo a tu Event Graph, luego introduce los valores en un nodo de Control Rig en el Anim Graph.

En tu Blueprint de Animación Facial (por ejemplo, Face_AnimBP o tu versión duplicada/copiada, consulta la Guía de Configuración), abre el Gráfico de Eventos y agrega lo siguiente a Evento de Actualización de Animación del Blueprint:

  1. Llama Update MetaHuman Auto Blink
  2. Conecta Delta Time X (del evento) a Delta Seconds
  3. (Opcional) Configura la estructura Config. Los valores predeterminados ya se ven naturales
  4. Promueve Left Blink Value y Right Blink Value a variables de Blueprint (por ejemplo, LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

En el Anim Graph del mismo Animation Blueprint:

  1. Coloque un nodo de Control Rig después de toda la lógica facial que pueda escribir en las curvas de parpadeo (por ejemplo, después de Blend Runtime MetaHuman Lip Sync y cualquier capa de animación facial personalizada)
  2. En el panel de Detalles del nodo, establezca Clase de Control Rig (Referencia de activo de Control Rig en UE 5.8+) en su Control Rig facial de MetaHuman. La ruta es típicamente:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • Su proyecto puede tener una ruta diferente dependiendo de cómo se importó el MetaHuman.
  3. En el panel Detalles, expande la sección Entrada y habilita Usar Pin para:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. Conecta tu variable LeftBlinkValue a CTRL_L_eye_blink
  5. Conecta tu variable RightBlinkValue a CTRL_R_eye_blink

Auto Blink Anim Graph setup

La ubicación importa

Coloca el nodo de Control Rig después de los nodos de mezcla de sincronización labial (y de cualquier otro nodo de animación facial) para que los valores de parpadeo no sean sobrescritos por otra lógica.

Configuración

El nodo Update MetaHuman Auto Blink acepta una estructura Config opcional. Los valores predeterminados ya se ven naturales para la mayoría de los personajes; expande a continuación si deseas ajustar el comportamiento.

Propiedades de configuración

Tiempo

PropiedadPredeterminadoDescripción
Tiempo mínimo entre parpadeos2.0 sIntervalo mínimo entre parpadeos mientras los ojos están completamente abiertos.
Tiempo Máximo Entre Parpadeos4.0 sIntervalo máximo entre parpadeos. El intervalo real se aleatoriza entre el mínimo y el máximo.
Tiempo mínimo de espera cerrado0.04 sTiempo mínimo que los ojos permanecen completamente cerrados.
Tiempo máximo de espera cerrada0.08 sTiempo máximo que los ojos permanecen completamente cerrados.

Interpolación

PropiedadPredeterminadoDescripción
Velocidad de Interpolación Cercana35.0Velocidad al cerrar los ojos. Los humanos cierran los ojos más rápido de lo que los abren, por lo que este valor es intencionalmente más alto que la velocidad de apertura.
Velocidad de Interpolación Abierta18.0Velocidad al abrir los ojos.
Umbral Cerrado0.97Valor en el que el parpadeo se considera "completamente cerrado" y comienza la fase de retención.
Umbral Abierto0.02Valor en el que el parpadeo se considera "completamente abierto" y se programa el siguiente parpadeo.

Misc

PropiedadPredeterminadoDescripción
Ojos IndependientesfalsoCuando es true, el ojo izquierdo y el derecho parpadean de forma independiente con tiempos separados. Cuando es false (predeterminado), ambos ojos parpadean en perfecta sincronía.
bEnabled (pin de función)trueCuando false, los ojos se abren gradualmente y la parpadeo se detiene. Útil para escenas cinemáticas, sueño, muerte, etc.

Control en Tiempo de Ejecución

También puedes llamar a Reset Auto Blink State para limpiar explícitamente el estado interno de un AnimInstance determinado (por ejemplo, al reaparición de un personaje o al cambiar estados cinemáticos).

Apuntería de los Ojos

El ayudante de dirección de la mirada es un nodo de Animation Blueprint (Runtime MetaHuman Eyes Aim) que hace que los ojos del personaje sigan una ubicación en el espacio mundial, por ejemplo, la cámara del jugador, otro actor o cualquier objetivo en movimiento. Admite limitación de guiñada/cabeceo, suavizado, protección contra giros bruscos cuando el objetivo pasa detrás de la cabeza y microsacadas opcionales para mayor realismo.

Seleccionando un Modo

El nodo admite dos modos, seleccionables mediante el menú desplegable Modo en el panel de Detalles del nodo:

ModeLo que impulsaDónde colocarlo
Curvas (predeterminado)Las curvas de mirada de los ojos del Control Rig facial (CTRL_expressions_eyeLook*)En el Blueprint de Animación Facial (por ejemplo, Face_AnimBP), antes del nodo de Control Rig
HuesosLos huesos FACIAL_L_Eye / FACIAL_R_Eye directamente, omitiendo el Control Rig.En el Animation Blueprint de Post Procesamiento Facial (por ejemplo, Face_PostProcess_AnimBP), después del nodo AnimNode_RigLogic

Modo de curvas es el valor predeterminado recomendado. Se combina limpiamente con otros sistemas faciales basados en curvas (sincronización de labios, expresiones, formas de mezcla de ARKit, etc.), ya que los valores se combinan mediante la evaluación normal del Control Rig en lugar de competir por las transformaciones de los huesos.

Cuando el modo Curvas no funciona, usa el modo Huesos.

En algunas variantes de MetaHuman (especialmente rigs antiguos, incluyendo algunos descargados a través de Quixel Bridge), las curvas de dirección de la mirada no controlan realmente los ojos. El síntoma visible es que los ojos miran hacia abajo con las pupilas casi ocultas cuando el nodo en modo Curvas está activo, independientemente de la ubicación del objetivo.

Si ves esto, cambia al modo Huesos. El modo Huesos rota directamente los huesos de los ojos, por lo que funciona en todas las variantes de MetaHuman independientemente de cómo esté cableado el Control Rig. Consulta la pestaña Huesos en Configuración a continuación.

Configuración

La configuración predeterminada. El nodo reside en el Animation Blueprint facial estándar y controla las curvas de mirada de los ojos del Control Rig facial.

Dos pasos: añade el nodo a tu Anim Graph, luego asígnale una ubicación objetivo desde el Event Graph.

1. Anim Graph: añade el nodo

En el Anim Graph de tu Blueprint de Animación Facial:

  1. Agrega un nodo Runtime MetaHuman Eyes Aim
  2. Deja Mode configurado en Curves en el panel de Detalles
  3. Colócalo después de toda otra lógica facial que pueda escribir en las curvas de mirada (sincronización de labios, animaciones personalizadas, etc.), mismo principio que el nodo de Control Rig de Auto Parpadeo
  4. Conecta la pose existente a Source Pose
  5. Conecta la salida al siguiente nodo en tu cadena (o Output Pose)
  6. Crea una variable de Blueprint de tipo Vector (ej. TargetWorldLocation) y conéctala al pin Target World Location del nodo. Actualizarás esta variable desde el Event Graph en el siguiente paso.

Eyes Aim Anim Graph setup

2. Event Graph: introduce una ubicación objetivo

El pin Ubicación del Mundo Objetivo espera un FVector en espacio mundial. Un caso común es hacer que el MetaHuman mire hacia la cámara del jugador. En Evento de Actualización de Animación del Blueprint:

  1. Obtén Player Camera Manager (Player Index 0)
  2. Verifica Is Valid
  3. Si es válido, llama a Get Camera Location
  4. Almacénalo en la variable de Blueprint TargetWorldLocation

Eyes Aim, tracking the camera

Para rastrear un actor arbitrario (NPC, objeto, punto de interés) en su lugar, obtén la ubicación de ese actor en cada fotograma y guárdala en la misma variable. Para un punto de mirada fijo, establece Ubicación Mundial Objetivo una vez o como una constante en el panel de Detalles del nodo.

Configuración

Todos los ajustes están expuestos en el panel de Detalles del nodo Runtime MetaHuman Eyes Aim.

Apunta y Sujeta

Apunta

PropiedadPredeterminadoDescripción
ModeCurvasSelecciona cómo se controlan los ojos. Consulta Elegir un modo.
Ubicación del Mundo de Destino(0,0,0)Punto en espacio mundial hacia el que miran los ojos. Expuesto como un pin por defecto.
bEnabledtrueCuando false, los ojos vuelven gradualmente a la posición frontal e ignoran el objetivo. Expuesto como pin por defecto.

Ajustar

PropiedadPredeterminadoDescripción
Grados máximos de guiñada35°Desviación horizontal máxima (yaw) desde la dirección frontal de la cabeza. Limitado de 0 a 80.
Grados máximos de inclinación25°Desviación vertical máxima (cabeceo) desde la dirección frontal de la cabeza. Limitado de 0 a 80.
Anti Flip BehindtrueEvita que los ojos se inviertan cuando el objetivo pasa detrás de la cabeza.
Suavizado y Sacadas

Suavizado

PropiedadPredeterminadoDescripción
Velocidad de Interpolación12.0Velocidad de suavizado para el movimiento ocular. Más alto = más rápido, más bajo = más lento.

Sacadas

Las microsacadas son pequeños desplazamientos aleatorios de la mirada que los ojos reales realizan constantemente. Agregarlas evita el aspecto de "ojos muertos" que produce un seguimiento perfectamente suave.

PropiedadPredeterminadoDescripción
Habilitar SacadastrueActiva/desactiva los micro-sacádicos.
Amplitud de guiñada de sacada en grados1,5°Máximo jitter horizontal por sacada. Los valores pequeños (1–2°) se sienten naturales; los valores más grandes se ven nerviosos.
Amplitud de tono de sacada Deg1.0°Máximo jitter vertical por sacada. Generalmente ligeramente menor que la amplitud de guiñada.
Intervalo Mínimo de Sacadas0.6 sTiempo mínimo entre sacadas.
Intervalo máximo de sacada2.5 sTiempo máximo entre movimientos sacádicos. Los valores más grandes se sienten más tranquilos, los valores más pequeños se sienten inquietos.
Huesos (solo en modo Huesos)
PropiedadPredeterminadoDescripción
Hueso del Ojo IzquierdoFACIAL_L_EyeNombre del hueso del ojo izquierdo. Coincide con el esqueleto facial estándar de MetaHuman.
Hueso del Ojo DerechoFACIAL_R_EyeNombre del hueso del ojo derecho. Coincide con el esqueleto facial estándar de MetaHuman.
Calibración (solo modo Curvas)

Estos valores definen cómo los ángulos del espacio de la cabeza se asignan a los valores de la curva de mirada ocular del CR de la cara de MetaHuman. Los valores predeterminados están ajustados para el CR de cara de MetaHuman estándar y rara vez necesitan cambiarse.

PropiedadPredeterminadoDescripción
Curva de Grados de Guiñada por Unidad30°Ángulo que se asigna a un valor de curva de 1.0 para las curvas de mirada en guiñada.
Curva de Grados de Inclinación por Unidad25°Ángulo que se asigna a un valor de curva de 1.0 para las curvas de mirada de inclinación.

Combinando con sincronización de labios y otras animaciones

Ambos ayudantes están diseñados para coexistir con los nodos de sincronización de labios del plugin y cualquier animación facial personalizada que ya tengas. La regla general: coloca los nodos de Dirección de Ojos y Control Rig (parpadeo automático) después de la sincronización de labios y cualquier animación facial personalizada, para que sus valores no se sobrescriban aguas abajo.

Ver Diagrama de Flujo de Ejecución Detallado (Modo Curvas vs. Modo Huesos)

Dependiendo de si tu rig de MetaHuman utiliza el modo Curvas recomendado o el modo Huesos alternativo, la ubicación de tu lógica de ejecución cambiará. Expande el gráfico a continuación para ver el orden de ejecución exacto para ambos pipelines:

El parpadeo automático y la sincronización de labios aún residen en el Face AnimBP normal en ambos modos.

Para obtener más detalles sobre la superposición con animaciones corporales, consulta Combinación con Animaciones Existentes.

Notas y Limitaciones

Estos ayudantes son específicos de MetaHuman. Dependen de los nombres estándar de las curvas del Control Rig facial de MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) y de los huesos oculares estándar (FACIAL_L_Eye, FACIAL_R_Eye). No están diseñados para personajes personalizados que no sean MetaHuman.

¿Necesitas ayuda?

Join our Discord
online · support

Para solicitudes de desarrollo personalizado, contacta a [email protected].