Saltar al contenido principal

Ayudantes de Animación de Ojos

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

  • Auto Blink: un asistente que produce parpadeos oculares 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 del mundo

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

Vistas previas de funciones

Parpadeo automático: parpadeos oculares automáticos
Eyes Aim: rastreando la cámara del jugador
Eyes Aim: siguiendo un actor objetivo en movimiento

Video Walkthrough

Guía completa de ambos ayudantes, incluida 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 ayudantes 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 se pueden superponer sobre animaciones faciales existentes para añadir piezas 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 MetaHuman Face Control Rig.

Cómo funciona

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

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

Configuración

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

En tu Face Animation Blueprint (por ejemplo, Face_AnimBP o tu versión duplicada/copiada, consulta la Guía de Configuración), abre el Event Graph y agrega lo siguiente a Event Blueprint Update Animation:

  1. Llama a 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 (p. ej., LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

En el Anim Graph del mismo Animation Blueprint:

  1. Coloca un nodo de Control Rig que impulse las curvas de parpadeo. Dónde exactamente va depende de si estás combinando Auto Blink con otra animación facial (sincronización de labios, secuencias personalizadas, etc.):
    • Sin otra animación facial: coloca el nodo de Control Rig directamente en la cadena principal, antes de Output Pose.
    • Combinación con lip sync y/u otra animación facial: conecta este nodo de Control Rig a un nodo Layered blend per bone en lugar de colocarlo directamente en la cadena; consulta el consejo a continuación.
  2. En el panel de Detalles del nodo, establece Clase de Control Rig (Referencia de Asset de Control Rig en UE 5.8+) a tu 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 de 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

Si no lo estás combinando con otra animación facial, coloca el nodo de Control Rig después de los nodos de mezcla de sincronización de labios (y cualquier otro nodo de animación facial) en la cadena para que los valores de parpadeo no se sobrescriban. Si lo estás combinando con sincronización de labios u otra animación facial, sigue la guía de Combinación con Animaciones Existentes y conecta este nodo de Control Rig a la entrada de Pose Base del nodo Layered blend per bone en su lugar; el nodo de mezcla por capas mantiene ambos activos, en lugar de que uno simplemente sobrescriba al otro.

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 cierre sostenido0.04 sTiempo mínimo que los ojos permanecen completamente cerrados.
Tiempo máximo de cierre sostenido0.08 sTiempo máximo que los ojos permanecen completamente cerrados.

Interpolación

PropiedadPredeterminadoDescripción
Velocidad de interpolación de cierre35.0Velocidad al cerrar los ojos. Los humanos cierran los ojos más rápido de lo que los abren, por lo que esto es intencionalmente más alto que la velocidad de apertura.
Velocidad de interpolación de apertura18.0Velocidad al abrir los ojos.
Umbral de cierre0.97Valor en el que el parpadeo se considera "completamente cerrado" y comienza la fase de mantenimiento.
Umbral de apertura0.02Valor en el que el parpadeo se considera "completamente abierto" y se programa el siguiente parpadeo.

Misceláneo

PropiedadPredeterminadoDescripción
Ojos independientesfalseCuando true, el ojo izquierdo y el derecho parpadean de forma independiente con tiempos separados. Cuando false (predeterminado), ambos ojos parpadean en perfecta sincronía.
bEnabled (pin de función)trueCuando false, los ojos se relajan y se abren, y el parpadeo se pausa. Útil para escenas cinematográficas, 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 dado (por ejemplo, al reaparecer un personaje o cambiar de estados cinematográficos).

Ojos Apuntan

El helper Eyes Aim 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 cuando el objetivo pasa detrás de la cabeza y microsacadas opcionales para mayor realismo.

Eligiendo un Modo

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

ModeQué controlaDónde colocarlo
Curvas (predeterminado)Las curvas de mirada ocular del Control Rig facial (CTRL_expressions_eyeLook*)En el Animation Blueprint facial (p. ej., Face_AnimBP), antes del nodo de Control Rig
HuesosLos huesos FACIAL_L_Eye / FACIAL_R_Eye directamente, omitiendo el Control RigEn el Animation Blueprint de posprocesado facial (p. ej., Face_PostProcess_AnimBP), después del nodo AnimNode_RigLogic

Modo Curves es el predeterminado recomendado. Se compone limpiamente con otros sistemas faciales basados en curvas (lip sync, expresiones, blendshapes 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 Curves no funciona, usa el modo Bones.

En algunas variantes de MetaHuman (especialmente rigs antiguos, incluidos algunos descargados mediante Quixel Bridge), las curvas de 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 Curves está activo, independientemente de la ubicación del objetivo.

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

Configuración

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

Dos pasos: añade el nodo a tu Anim Graph y luego proporciónale una ubicación objetivo desde el Event Graph.

1. Anim Graph: añade el nodo

En el Anim Graph de tu Face Animation Blueprint:

  1. Añade un nodo Runtime MetaHuman Eyes Aim
  2. Deja Mode configurado en Curves en el panel de Details
  3. Colócalo después de toda la lógica facial que pueda escribir en las curvas de mirada ocular (lip sync, animaciones personalizadas, etc.), mismo principio que el nodo Auto Blink Control Rig
  4. Conecta la pose existente a Source Pose
  5. Conecta la salida al siguiente nodo de tu cadena (o Output Pose)
  6. Crea una variable Blueprint de tipo Vector (p. 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. Grafo de eventos: introduce una ubicación objetivo

El pin Target World Location espera un FVector en espacio mundial. Un caso común es hacer que el MetaHuman mire hacia la cámara del jugador. En Event Blueprint Update Animation:

  1. Obtén Player Camera Manager (Índice de Jugador 0)
  2. Verifica Is Valid
  3. Si es válido, llama a Get Camera Location
  4. Guárdalo en la variable 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 Target World Location 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 Limita

Objetivo

PropiedadPredeterminadoDescripción
ModeCurvasSelecciona cómo se controlan los ojos. Consulta Elección de un modo.
Ubicación Mundial del Objetivo(0,0,0)Punto en el espacio mundial al que miran los ojos. Expuesto como pin de forma predeterminada.
bEnabledtrueCuando es false, los ojos vuelven suavemente hacia adelante e ignoran el objetivo. Expuesto como pin de forma predeterminada.

Abrázate

PropiedadPredeterminadoDescripción
Grados máximos de guiñada35°Desviación horizontal máxima (guiñada) desde la dirección frontal de la cabeza. Limitado de 0 a 80.
Grados máximos de cabeceo25°Desviación vertical máxima (cabeceo) desde la dirección frontal de la cabeza. Limitado de 0 a 80.
Anti volteo hacia atrástrueEvita que los ojos se volteen 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. Mayor = más ágil, menor = más lánguido.

Sacadas

Las micro-sacadas son pequeños desplazamientos aleatorios de la mirada que los ojos reales realizan constantemente. Añadirlas evita el aspecto de "ojos muertos" que produce un seguimiento perfectamente suave.

PropiedadPredeterminadoDescripción
Habilitar sacadastrueActiva o desactiva las micro-sacadas.
Amplitud de guiñada de sacada (grados)1.5°Máxima vibración horizontal por sacada. Los valores pequeños (1–2°) resultan naturales; los valores más grandes se ven nerviosos.
Amplitud de cabeceo de sacada (grados)1.0°Máxima vibración vertical por sacada. Suele ser ligeramente menor que la amplitud de guiñada.
Intervalo mínimo de sacada0.6 sTiempo mínimo entre sacadas.
Intervalo máximo de sacada2.5 sTiempo máximo entre sacadas. Los valores más grandes transmiten calma; los valores más pequeños, inquietud.
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 Curves)

Estos valores definen cómo los ángulos del espacio de la cabeza se asignan a los valores de la curva de mirada de ojos del CR de la cara de MetaHuman. Los valores predeterminados están ajustados para el CR de cara estándar de MetaHuman 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 de guiñada.
Curva de grados de cabeceo por unidad25°Ángulo que se asigna a un valor de curva de 1.0 para las curvas de mirada de cabeceo.

Combinando con Lip Sync 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.

  • Eyes Aim debe colocarse después de la sincronización de labios y de cualquier animación facial personalizada en la misma cadena, para que sus valores de mirada no se sobrescriban aguas abajo. Consulta Elegir un modo y Configuración más arriba.
  • Auto Blink utiliza un nodo Layered blend per bone en lugar de una colocación lineal simple; consulta el consejo La colocación importa más arriba para conectar el nodo de Control Rig en su entrada de Base Pose.
Ver Diagrama de Flujo de Ejecución Detallado (Modo Curvas vs. Huesos)

Dependiendo de si tu rig de MetaHuman utiliza el recomendado Modo de Curvas o el alternativo Modo de Huesos, 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 siguen viviendo en el Face AnimBP regular en ambos modos.

Para obtener 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 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 con [email protected].