Saltar al contenido principal

Eye Animation Helpers

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

  • Auto Blink: un auxiliar 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 características 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 auxiliares ligeros y fáciles de integrar para agregar un comportamiento ocular realista sin tener que crearlo manualmente.

Feature Previews

Auto Blink: parpadeo automático de ojos
Eyes Aim: siguiendo la cámara del jugador
Eyes Aim: siguiendo un actor objetivo en movimiento
Cuándo usar estos ayudantes

Si tu canalización 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 agregar piezas faltantes, como parpadeos sobre una secuencia que solo anima la boca.

El ayudante Auto Blink produce parpadeos oculares aleatorios y de aspecto natural al controlar las curvas CTRL_L_eye_blink y CTRL_R_eye_blink del Control Rig de la Cara de MetaHuman.

Cómo Funciona

Cada fotograma, llamas a Update MetaHuman Auto Blink desde el Gráfico de Eventos de tu Blueprint de Animación Facial y le pasas el tiempo delta del fotograma. La función:

  1. Rastrea el estado por personaje (próximo tiempo de parpadeo, fase actual de abierto/cerrado, etc.) indexado por el AnimInstance que la llama
  2. Devuelve dos valores flotantes en el rango 0..1, uno para el ojo izquierdo y otro para el derecho, que representan qué tan cerrado está cada ojo actualmente
  3. Luego almacenas estos valores en variables del Blueprint y los introduces en el nodo Control Rig en el Gráfico de Animación

Configuración

Dos pasos: agrega la llamada de parpadeo a tu Gráfico de Eventos, luego introduce los valores en un nodo Control Rig en el Gráfico de Animación.

1. Gráfico de Eventos: controla los valores de parpadeo cada fotograma

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 Event Blueprint Update Animation:

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

Configuración del Gráfico de Eventos de Auto Blink

2. Gráfico de Animación: introduce los valores en el Control Rig Facial

En el Gráfico de Animación del mismo Blueprint de Animación:

  1. Coloca un nodo Control Rig después de toda otra lógica facial que pueda escribir en las curvas de parpadeo ocular (por ejemplo, después de Blend Runtime MetaHuman Lip Sync y cualquier capa de animación facial personalizada)
  2. En el panel Detalles del nodo, establece Control Rig Class en tu Control Rig facial de MetaHuman. La ruta es típicamente:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • Tu proyecto puede tener una ruta diferente dependiendo de cómo se importó el MetaHuman.
  3. En el panel Detalles, expande la sección Input y habilita Use 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

Configuración del Gráfico de Animación de Auto Blink

La ubicación importa

Coloca el nodo Control Rig después de los nodos de mezcla de sincronización de labios (y 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 un struct 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 Config

Temporización

PropiedadPredeterminadoDescripción
Min Time Between Blinks2.0 sIntervalo mínimo entre parpadeos mientras los ojos están completamente abiertos.
Max Time Between Blinks4.0 sIntervalo máximo entre parpadeos. El intervalo real se aleatoriza entre el mínimo y el máximo.
Min Closed Hold Time0.04 sTiempo mínimo que los ojos permanecen completamente cerrados.
Max Closed Hold Time0.08 sTiempo máximo que los ojos permanecen completamente cerrados.

Interpolación

PropiedadPredeterminadoDescripción
Close Interp Speed35.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.
Open Interp Speed18.0Velocidad al abrir los ojos.
Closed Threshold0.97Valor en el que el parpadeo se considera "completamente cerrado" y comienza la fase de mantenimiento.
Open Threshold0.02Valor en el que el parpadeo se considera "completamente abierto" y se programa el siguiente parpadeo.

Varios

PropiedadPredeterminadoDescripción
Independent EyesfalseCuando 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 es false, los ojos se abren suavemente y el parpadeo se pausa. Ú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 dado (por ejemplo, al reaparición de un personaje o al cambiar de estado cinemático).

Eyes Aim

El ayudante Eyes Aim es un nodo de Blueprint de Animación (Runtime MetaHuman Eyes Aim) que hace que los ojos del personaje sigan una ubicación en el espacio del mundo, 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 inversión cuando el objetivo pasa detrás de la cabeza y micro-sacadas opcionales para mayor realismo.

Elegir un Modo

El nodo admite dos modos, seleccionados a través del menú desplegable Mode en el panel Detalles del nodo:

ModoQué controlaDónde colocarlo
Curves (predeterminado)Las curvas de mirada ocular del Control Rig facial (CTRL_expressions_eyeLook*)En el Blueprint de Animación Facial (por ejemplo, Face_AnimBP), antes del nodo Control Rig
BonesLos huesos FACIAL_L_Eye / FACIAL_R_Eye directamente, omitiendo el Control RigEn el Blueprint de Animación de Postprocesamiento Facial (por ejemplo, Face_PostProcess_AnimBP), después del nodo AnimNode_RigLogic

El modo Curves es el predeterminado recomendado. Se compone limpiamente con otros sistemas faciales basados en curvas (sincronización de labios, expresiones, blendshapes de ARKit, etc.), ya que los valores se combinan a través de 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 (notablemente rigs más antiguos, incluidos algunos descargados a través de Quixel Bridge), las curvas de mirada ocular 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 oculares, por lo que funciona en todas las variantes de MetaHuman independientemente de cómo esté cableado el Control Rig. Consulta la pestaña Bones en Configuración a continuación.

Configuración

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

Dos pasos: agrega el nodo a tu Gráfico de Animación, luego introduce una ubicación objetivo desde el Gráfico de Eventos.

1. Gráfico de Animación: agrega el nodo

En el Gráfico de Animación de tu Blueprint de Animación Facial:

  1. Agrega un nodo Runtime MetaHuman Eyes Aim
  2. Deja Mode configurado en Curves en el panel Detalles
  3. Colócalo después de toda otra lógica facial que pueda escribir en las curvas de mirada ocular (sincronización de labios, animaciones personalizadas, etc.), mismo principio que el nodo Control Rig de Auto Blink
  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 Vector del Blueprint (por ejemplo, TargetWorldLocation) y conéctala al pin Target World Location del nodo. Actualizarás esta variable desde el Gráfico de Eventos en el siguiente paso.

Configuración del Gráfico de Animación de Eyes Aim

2. Gráfico de Eventos: introduce una ubicación objetivo

El pin Target World Location espera un FVector en el espacio del mundo. 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 (Player Index 0)
  2. Verifica Is Valid
  3. Si es válido, llama a Get Camera Location
  4. Almacénalo en la variable del Blueprint TargetWorldLocation

Eyes Aim, siguiendo la cámara

Para seguir un actor arbitrario (NPC, objeto, punto de interés) en su lugar, obtén la ubicación de ese actor cada fotograma y almacénala en la misma variable. Para un punto de mirada fijo, establece Target World Location una vez o como una constante en el panel Detalles del nodo.

Configuración

Todas las configuraciones están expuestas en el panel Detalles del nodo Runtime MetaHuman Eyes Aim.

Apuntado y Limitación

Apuntado

PropiedadPredeterminadoDescripción
ModeCurvesSelecciona cómo se controlan los ojos. Consulta Elegir un Modo.
Target World Location(0,0,0)Punto en el espacio del mundo al que miran los ojos. Expuesto como un pin por defecto.
bEnabledtrueCuando es false, los ojos vuelven suavemente hacia adelante e ignoran el objetivo. Expuesto como un pin por defecto.

Limitación

PropiedadPredeterminadoDescripción
Max Yaw Degrees35°Desviación horizontal máxima (guiñada) desde la dirección hacia adelante de la cabeza. Limitado de 0 a 80.
Max Pitch Degrees25°Desviación vertical máxima (cabeceo) desde la dirección hacia adelante 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
Interp Speed12.0Velocidad de suavizado para el movimiento ocular. Más alto = más rápido, más bajo = más lánguido.

Sacadas

Las micro-sacadas son pequeños cambios de mirada aleatorios que los ojos reales realizan constantemente. Agregarlas evita la apariencia de "ojo muerto" de un seguimiento perfectamente suave.

PropiedadPredeterminadoDescripción
Enable SaccadestrueActiva/desactiva las micro-sacadas.
Saccade Yaw Amplitude Deg1.5°Máxima fluctuación horizontal por sacada. Los valores pequeños (1–2°) se sienten naturales; los valores más grandes se ven nerviosos.
Saccade Pitch Amplitude Deg1.0°Máxima fluctuación vertical por sacada. Generalmente ligeramente más pequeño que la amplitud de guiñada.
Min Saccade Interval0.6 sTiempo mínimo entre sacadas.
Max Saccade Interval2.5 sTiempo máximo entre sacadas. Los valores más grandes se sienten más tranquilos, los valores más pequeños se sienten más inquietos.
Bones (solo modo Bones)
PropiedadPredeterminadoDescripción
Left Eye BoneFACIAL_L_EyeNombre del hueso del ojo izquierdo. Coincide con el esqueleto facial estándar de MetaHuman.
Right Eye BoneFACIAL_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 se asignan los ángulos del espacio de la cabeza a los valores de la curva de mirada ocular del Face CR de MetaHuman. Los valores predeterminados están ajustados para el Face CR estándar de MetaHuman y rara vez necesitan cambiarse.

PropiedadPredeterminadoDescripción
Yaw Degrees Per Unit Curve30°Ángulo que se asigna a un valor de curva de 1.0 para las curvas de mirada de guiñada.
Pitch Degrees Per Unit Curve25°Ángulo que se asigna a un valor de curva de 1.0 para las curvas de mirada de cabeceo.

Combinación 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 Eyes Aim y Control Rig (auto-blink) después de la sincronización de labios y cualquier animación facial personalizada, para que sus valores no sean sobrescritos aguas abajo.

Ver Diagrama de Flujo de Ejecución Detallado (Modo Curves vs. Modo Bones)

Dependiendo de si tu rig de MetaHuman usa el Modo Curves recomendado o el Modo Bones 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 ambas canalizaciones:

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

Para obtener detalles sobre la superposición con animaciones corporales, consulte Combinación con animaciones existentes.

Notas y limitaciones

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

¿Necesita ayuda?

Join our Discord
online · support

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