Saltar al contenido principal

Configuración del Plugin

Configuración del modelo

Recrea generadores de modelos realistas para cada reproducción.

Para un funcionamiento fiable con los modelos Realistic y Realistic con control de estado de ánimo, recrea el generador antes de cada nueva reproducción de audio en lugar de reutilizarlo durante silencios prolongados. Consulta Recreación del generador en Solución de problemas para más detalles.

Configuración del modelo estándar

El nodo Create Runtime Viseme Generator utiliza configuraciones predeterminadas que funcionan bien en la mayoría de los escenarios. La configuración se gestiona a través de las propiedades del nodo de mezcla del Animation Blueprint.

Para las opciones de configuración de Animation Blueprint, consulta la sección Configuración de Lip Sync a continuación.

Configuración del modelo realista

El nodo Create Realistic MetaHuman Lip Sync Generator acepta un parámetro opcional de Configuración que le permite personalizar el comportamiento del generador:

Tipo de modelo

El ajuste de Tipo de Modelo determina qué versión del modelo realista se debe usar:

Tipo de modeloRendimientoCalidad visualManejo del ruidoCasos de uso recomendados
Altamente optimizado (predeterminado)Máximo rendimiento, menor uso de CPUBuena calidadPuede mostrar movimientos de boca notorios con ruido de fondo o sonidos que no son de vozEntornos de audio limpios, escenarios donde el rendimiento es crítico
SemioptimizadoBuen rendimiento, uso moderado de CPUAlta calidadMejor estabilidad con audio ruidosoRendimiento y calidad equilibrados, condiciones de audio mixtas
OriginalAdecuado para uso en tiempo real en CPU modernasMáxima calidadMás estable con ruido de fondo y sonidos que no son de vozProducciones de alta calidad, entornos de audio ruidosos, cuando se necesita la máxima precisión

Configuración de rendimiento

Intra Op Threads: Controla el número de hilos utilizados para las operaciones internas de procesamiento del modelo.

  • 0 (Predeterminado/Automático): Utiliza la detección automática (normalmente 1/4 de los núcleos de CPU disponibles, máximo 4)
  • 1-16: Especifica manualmente el número de hilos. Los valores más altos pueden mejorar el rendimiento en sistemas multinúcleo, pero usan más CPU.

Subprocesos de Inter Op: Controla el número de subprocesos utilizados para la ejecución paralela de diferentes operaciones del modelo.

  • 0 (Predeterminado/Automático): Utiliza detección automática (normalmente 1/8 de los núcleos de CPU disponibles, máximo 2)
  • 1-8: Especifica manualmente el número de hilos. Generalmente se mantiene bajo para procesamiento en tiempo real

Tamaño del Fragmento de Procesamiento

El Tamaño del Fragmento de Procesamiento determina cuántas muestras se procesan en cada paso de inferencia. El valor predeterminado es 160 muestras (10 ms de audio a 16 kHz):

  • Los valores más pequeños proporcionan actualizaciones más frecuentes, pero aumentan el uso de la CPU
  • Los valores más grandes reducen la carga de la CPU, pero pueden disminuir la capacidad de respuesta de la sincronización de labios
  • Se recomienda usar múltiplos de 160 para una alineación óptima

Setting Processing Chunk Size

Configuración del modelo con soporte de estados de ánimo

El nodo Create Realistic MetaHuman Lip Sync With Mood Generator proporciona opciones de configuración adicionales más allá del modelo realista básico:

Configuración básica

Lookahead Ms: Tiempo de anticipación en milisegundos para mejorar la precisión de la sincronización de labios.

  • Predeterminado: 80 ms
  • Rango: de 20 ms a 200 ms (debe ser divisible por 20)
  • Los valores más altos proporcionan una mejor sincronización, pero aumentan la latencia.

Tipo de salida: Controla qué controles faciales se generan.

  • Rostro Completo: Los 81 controles faciales (cejas, ojos, nariz, boca, mandíbula, lengua)
  • Solo Boca: Solo controles relacionados con la boca, la mandíbula y la lengua

Configuración de rendimiento: Utiliza los mismos ajustes de Intra Op Threads e Inter Op Threads que el modelo realista estándar.

Ajustes de estado de ánimo

Modos disponibles:

  • Neutral, Feliz, Triste, Disgusto, Enojo, Sorpresa, Miedo
  • Seguro, Emocionado, Aburrido, Juguetón, Confundido

Intensidad del estado de ánimo: Controla cuán fuertemente afecta el estado de ánimo a la animación (0.0 a 1.0)

Control de estado de ánimo en tiempo real

Puedes ajustar la configuración de estado de ánimo durante el tiempo de ejecución usando las siguientes funciones:

  • Establecer Estado de Ánimo: Cambiar el tipo de estado de ánimo actual
  • Establecer Intensidad del Estado de Ánimo: Ajustar cuán fuertemente afecta el estado de ánimo a la animación (0.0 a 1.0)
  • Establecer Lookahead Ms: Modificar el tiempo de lookahead para la sincronización
  • Establecer Tipo de Salida: Cambiar entre controles de Cara Completa y Solo Boca

Mood Configuration

Guía de selección de estados de ánimo

Elige los estados de ánimo apropiados según tu contenido:

MoodMejor paraRango de intensidad típico
NeutralConversación general, narración, estado predeterminado0.5 - 1.0
FelizContenido positivo, diálogo alegre, celebraciones0.6 - 1.0
TristeContenido melancólico, escenas emocionales, momentos sombríos0.5 - 0.9
DisgustoReacciones negativas, contenido desagradable, rechazo0.4 - 0.8
EnojoDiálogo agresivo, escenas de confrontación, frustración0.6 - 1.0
SorpresaEventos inesperados, revelaciones, reacciones de shock0.7 - 1.0
MiedoSituaciones amenazantes, ansiedad, diálogo nervioso0.5 - 0.9
ConfiadoPresentaciones profesionales, diálogo de liderazgo, discurso asertivo0.7 - 1.0
EmocionadoContenido enérgico, anuncios, diálogo entusiasta0.8 - 1.0
AburridoContenido monótono, diálogo desinteresado, discurso cansado0.3 - 0.7
JuguetónConversación casual, humor, interacciones ligeras0.6 - 0.9
ConfundidoDiálogo cargado de preguntas, incertidumbre, desconcierto0.4 - 0.8

Configuración del Animation Blueprint

Configuración de Lip Sync

El nodo Blend Runtime MetaHuman Lip Sync tiene opciones de configuración en su panel de propiedades:

PropiedadPredeterminadoDescripción
Velocidad de interpolación25Controla la rapidez con la que los movimientos de los labios transicionan entre visemas. Los valores más altos resultan en transiciones más rápidas y abruptas.
Tiempo de reinicio0.2La duración en segundos después de la cual se reinicia la sincronización de labios. Esto es útil para evitar que la sincronización de labios continúe después de que el audio se haya detenido.

Animación de risa

También puedes añadir animaciones de risa que respondan dinámicamente a la risa detectada en el audio.

  1. Añade el nodo Blend Runtime MetaHuman Laughter
  2. Conecta tu variable RuntimeVisemeGenerator al pin Viseme Generator
  3. Si ya estás usando sincronización de labios:
    • Conecta la salida del nodo Blend Runtime MetaHuman Lip Sync a la Source Pose del nodo Blend Runtime MetaHuman Laughter
    • Conecta la salida del nodo Blend Runtime MetaHuman Laughter al pin Result de la Output Pose
  4. Si se usa solo la risa sin sincronización de labios:
    • Conecta tu pose de origen directamente al Source Pose del nodo Blend Runtime MetaHuman Laughter
    • Conecta la salida al pin Result

Blend Runtime MetaHuman Laughter

Cuando se detecta risa en el audio, tu personaje se animará dinámicamente en consecuencia:

Configuración de la risa

El nodo Blend Runtime MetaHuman Laughter tiene sus propias opciones de configuración:

PropiedadPredeterminadoDescripción
Velocidad de interpolación25Controla la rapidez con la que los movimientos de los labios transicionan entre las animaciones de risa. Los valores más altos producen transiciones más rápidas y abruptas.
Tiempo de reinicio0.2La duración en segundos tras la cual se reinicia la risa. Esto es útil para evitar que la risa continúe después de que el audio se haya detenido.
Peso máximo de la risa0.7Escala la intensidad máxima de la animación de risa (0.0 - 1.0).

Nota: La detección de risas está disponible actualmente solo con el Modelo Estándar.

Combinando con animaciones existentes

Video explicativo

¿Prefieres ver en lugar de leer? Consulta el tutorial en video que cubre esta configuración exacta.

Para aplicar sincronización de labios y risa junto con animaciones corporales existentes y animaciones faciales personalizadas sin sobrescribirlas:

Animaciones corporales

Esta configuración se aplica al Animation Blueprint de la cara, ya que la sincronización de labios no forma parte del Animation Blueprint del cuerpo. Para animaciones corporales personalizadas (p. ej., torso, brazos y otros movimientos del cuerpo), simplemente conecta tu secuencia de animación (a través de un Sequence Player) directamente a la pose de salida en el Animation Blueprint del cuerpo. No se necesita configuración adicional allí.

  1. Añade un nodo Layered blend per bone entre tus animaciones corporales y la salida final. Asegúrate de que Use Attached Parent esté activado.
  2. Configura la disposición de capas:
    • Añade 1 elemento al array Layer Setup
    • Añade 3 elementos a los Branch Filters de la capa, con los siguientes Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Importante para animaciones faciales personalizadas: En la Curve Blend Option, selecciona "Use Max Value". Esto permite que las animaciones faciales personalizadas (expresiones, emociones, etc.) se superpongan correctamente sobre la sincronización de labios.
  4. Haz las conexiones:
    • Tu animación personalizada (normalmente un Sequence Player con el activo de secuencia de animación deseado) → entrada Base Pose
    • Salida de animación facial (de nodos de sincronización de labios y/o risa) → entrada Blend Poses 0
    • Nodo de fusión por capas → pose Result final

Layered Blend Per Bone

Conjunto de selección de objetivos de morph

El Modelo Estándar utiliza pose assets que admiten inherentemente cualquier convención de nombres de morph targets mediante la configuración de pose assets personalizada. No se necesita configuración adicional.

Ajuste Fino del Comportamiento de Lip Sync

Escalando curvas específicas de sincronización de labios

Puedes atenuar (o amplificar) movimientos faciales individuales producidos por la sincronización de labios usando un nodo Modify Curve. Esto es útil cuando una curva en particular se ve demasiado pronunciada para tu contenido de audio o personaje.

Configuración:

  1. Después de tu nodo de fusión de sincronización de labios, añade un nodo Modify Curve
  2. Haz clic derecho en el nodo y selecciona Add Curve Pin, luego introduce el nombre de la curva que deseas escalar
  3. Establece la propiedad Apply Mode del nodo en Scale
  4. Establece el parámetro Value: los valores por debajo de 1.0 amortiguan el movimiento, los valores por encima de 1.0 lo amplifican (por ejemplo, 0.8 = reducción del 20%)

Curvas comúnmente escaladas:

Nombre de la curvaPropósitoSe aplica aAjuste típico
CTRL_expressions_tongueOutProtrusión de la lengua hacia adelante durante ciertos fonemasModelo estándar0.8 para reducir la protrusión
CTRL_expressions_jawOpenRango de apertura de la mandíbulaModelos realistas0.9 para reducir el movimiento de la mandíbula

Puedes añadir múltiples pines de curva al mismo nodo Modify Curve para escalar varias curvas a la vez.

Ajuste fino específico por estado de ánimo

Para los modelos con soporte de estados de ánimo, puedes ajustar expresiones emocionales específicas:

Control de cejas:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Elevación interna de cejas
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Elevación externa de cejas
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Descenso de cejas

Control de Expresión Ocular:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Entrecerrar los ojos
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Elevación de las mejillas

Comparación y selección de modelos

Eligiendo entre modelos

Al decidir qué modelo de lip sync usar para tu proyecto, considera estos factores:

ConsideraciónModelo EstándarModelo RealistaModelo Realista con Estados de Ánimo
Compatibilidad de PersonajesMetaHumans y todos los tipos de personajes personalizadosMetaHumans (y personajes de ARKit)MetaHumans (y personajes de ARKit)
Calidad VisualBuena sincronización de labios con rendimiento eficienteRealismo mejorado con movimientos bucales más naturalesRealismo mejorado con expresiones emocionales
RendimientoOptimizado para todas las plataformas, incluidas móvil/VRMayores requisitos de recursosMayores requisitos de recursos
Características14 visemas, detección de risa81 controles faciales, 3 niveles de optimización81 controles faciales, 12 estados de ánimo, salida configurable
Soporte de PlataformasWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Casos de UsoAplicaciones generales, juegos, VR/AR, móvilExperiencias cinematográficas, interacciones en primer planoNarrativa emocional, interacción avanzada con personajes

Compatibilidad de Versiones del Motor

Problema de compatibilidad con UE 5.2

Si estás usando Unreal Engine 5.2, los Modelos Realistas pueden no funcionar correctamente debido a un error en la biblioteca de remuestreo de UE. Para los usuarios de UE 5.2 que necesiten una funcionalidad de sincronización de labios confiable, usa el Modelo Estándar en su lugar.

Este problema es específico de UE 5.2 y no afecta a otras versiones del motor.

Recomendaciones de rendimiento

  • Para la mayoría de los proyectos, el Modelo Estándar ofrece un excelente equilibrio entre calidad y rendimiento
  • Utilice el Modelo Realista cuando necesite la máxima fidelidad visual para personajes MetaHuman
  • Utilice el Modelo Realista con Control de Expresiones cuando el control de la expresión emocional sea importante para su aplicación
  • Considere las capacidades de rendimiento de su plataforma objetivo al elegir entre los modelos
  • Pruebe diferentes niveles de optimización para encontrar el mejor equilibrio para su caso de uso específico

Solución de problemas

Problemas comunes

Recreación del generador para modelos realistas: Para un funcionamiento fiable y consistente con los modelos realistas, se recomienda recrear el generador cada vez que desees introducir nuevos datos de audio después de un período de inactividad. Esto se debe al comportamiento del runtime de ONNX, que puede provocar que la sincronización de labios deje de funcionar al reutilizar generadores después de períodos de silencio.

Por ejemplo, podrías recrear el generador de sincronización de labios en cada inicio de reproducción, como cada vez que llames a Play Sound 2D o uses cualquier otro método para iniciar la reproducción de la onda de sonido y la sincronización de labios:

Recreate Lip Sync Generator On Play Sound

Ubicación del Plugin para la Integración de Runtime Text To Speech: Al usar Runtime MetaHuman Lip Sync junto con Runtime Text To Speech (ambos plugins usan ONNX Runtime), es posible que experimentes problemas si los plugins están instalados en la carpeta Marketplace del motor. Para solucionar esto:

  1. Localiza ambos plugins en tu carpeta de instalación de UE en \Engine\Plugins\Marketplace (por ejemplo, C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Mueve las carpetas RuntimeMetaHumanLipSync y RuntimeTextToSpeech a la carpeta Plugins de tu proyecto
  3. Si tu proyecto no tiene una carpeta Plugins, créala en el mismo directorio que tu archivo .uproject
  4. Reinicia el Unreal Editor

Esto aborda problemas de compatibilidad que pueden ocurrir cuando múltiples plugins basados en ONNX Runtime se cargan desde el directorio de Marketplace del motor.

Configuración de empaquetado (Windows): Si la sincronización de labios no funciona correctamente en tu proyecto empaquetado en Windows, asegúrate de usar la configuración de compilación Shipping en lugar de Development. La configuración Development puede causar problemas con el runtime ONNX de los modelos realistas en compilaciones empaquetadas.

Para arreglar esto:

  1. En tu Configuración del Proyecto → Empaquetado, establece la Configuración de Compilación en Shipping
  2. Reempaqueta tu proyecto

Shipping Configuration

Proyectos Solo Blueprint

En algunos proyectos de solo Blueprints, Unreal Engine puede seguir compilando en configuración Development incluso cuando se selecciona Shipping. Si esto ocurre, convierta su proyecto a un proyecto C++ agregando al menos una clase C++ (puede estar vacía). Para hacerlo, vaya a Tools → New C++ Class en el menú del editor de UE y cree una clase vacía. Esto forzará que el proyecto se compile correctamente en configuración Shipping. Su proyecto puede seguir siendo solo de Blueprints en funcionalidad; la clase C++ solo es necesaria para una configuración de compilación adecuada.

Capacidad de respuesta degradada del sincronizado de labios: Si experimentas que el sincronizado de labios se vuelve menos receptivo con el tiempo al usar Streaming Sound Wave o Capturable Sound Wave, esto puede deberse a la acumulación de memoria. De forma predeterminada, la memoria se reasigna cada vez que se agrega nuevo audio. Para evitar este problema, llama periódicamente a la función ReleaseMemory para liberar la memoria acumulada, por ejemplo, cada 30 segundos aproximadamente.

Optimización del Rendimiento:

  • Ajusta el tamaño del fragmento de procesamiento para modelos Realistic según tus requisitos de rendimiento
  • Usa recuentos de hilos apropiados para tu hardware objetivo
  • Considera usar el tipo de salida Mouth Only para modelos con control de estado de ánimo cuando no se necesita animación facial completa