Saltar al contenido principal

Configuración del plugin

Configuración del modelo​

Recrear generadores de modelos realistas para cada reproducción

Para un funcionamiento fiable con los modelos Realistic y Mood-Enabled Realistic, vuelve a crear el generador antes de cada nueva reproducción de audio en lugar de reutilizar uno 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 ajustes predeterminados que funcionan bien para 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, consulte 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 Configuration que te permite personalizar el comportamiento del generador:

Tipo de modelo​

El ajuste Model Type determina qué versión del modelo realista 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 notables con ruido de fondo o sonidos que no son vozEntornos de audio limpios, escenarios críticos para el rendimiento
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 CPUs modernasMáxima calidadMás estable con ruido de fondo y sonidos que no son 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. Valores más altos pueden mejorar el rendimiento en sistemas multinúcleo, pero consumen más CPU

Inter Op Threads: Controla el número de hilos 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. Normalmente se mantiene bajo para el procesamiento en tiempo real

Tamaño de procesamiento por fragmento​

El Tamaño del Bloque 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 CPU
  • Los valores más grandes reducen la carga de CPU pero pueden disminuir la capacidad de respuesta del lip sync
  • Se recomienda usar múltiplos de 160 para una alineación óptima

Setting Processing Chunk Size

Configuración del modelo con 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 labial.

  • Predeterminado: 80ms
  • Rango: 20ms a 200ms (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: Únicamente los controles relacionados con la boca, la mandíbula y la lengua

Configuración de rendimiento: Utiliza la misma configuración de Intra Op Threads e Inter Op Threads que el modelo realista normal.

Configuración de estados de ánimo​

Estados de ánimo disponibles:

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

Intensidad del estado de ánimo: Controla con qué fuerza el estado de ánimo afecta a la animación (0.0 a 1.0)

Control de estado de ánimo en tiempo de ejecución​

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

  • Establecer estado de ánimo: Cambia el tipo de estado de ánimo actual
  • Establecer intensidad del estado de ánimo: Ajusta con qué fuerza el estado de ánimo afecta a la animación (0.0 a 1.0)
  • Establecer Lookahead Ms: Modifica la sincronización anticipada para la sincronización
  • Establecer tipo de salida: Alterna entre los controles de rostro completo y solo boca

Mood Configuration

Guía de selección de estado de ánimo​

Elige estados de ánimo adecuados según tu contenido:

MoodIdeal 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 emotivas, momentos sombríos0.5 - 0.9
DisgustoReacciones negativas, contenido desagradable, rechazo0.4 - 0.8
IraDiálogo agresivo, escenas confrontacionales, frustración0.6 - 1.0
SorpresaEventos inesperados, revelaciones, reacciones de shock0.7 - 1.0
MiedoSituaciones amenazantes, ansiedad, diálogo nervioso0.5 - 0.9
SeguroPresentaciones profesionales, diálogo de liderazgo, discurso asertivo0.7 - 1.0
EmocionadoContenido energético, anuncios, diálogo entusiasta0.8 - 1.0
AburridoContenido monótono, diálogo desinteresado, discurso cansado0.3 - 0.7
JuguetónConversación casual, humor, interacciones desenfadadas0.6 - 0.9
ConfundidoDiálogo con muchas preguntas, incertidumbre, desconcierto0.4 - 0.8

Configuración de 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 dan como resultado transiciones más rápidas y abruptas.
Tiempo de reinicio0.2La duración en segundos tras la cual se reinicia la sincronización labial. Esto es útil para evitar que la sincronización labial continúe después de que el audio se haya detenido.

Animación de risa​

También puedes añadir animaciones de risa que responderán 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 lip sync:
    • 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 del Output Pose
  4. Si se usa solo la risa sin sincronización labial:
    • 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 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. Valores más altos dan como resultado 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 actualmente solo está disponible con el Standard Model.

Combinación con animaciones existentes​

Recorrido en vídeo

¿Prefieres ver en lugar de leer? Echa un vistazo al tutorial en vídeo que cubre esta configuración exacta.

Para aplicar la sincronización labial y la risa junto con las animaciones corporales existentes y las animaciones faciales personalizadas sin sobrescribirlas:

Animaciones corporales

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

  1. Añade un nodo Layered blend per bone entre tus animaciones de cuerpo y la salida final.
  2. Configura la configuració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 el lip sync.
  4. Realiza las conexiones:
    • Tu animación personalizada (normalmente un Sequence Player con el recurso de secuencia de animación deseado) → entrada Base Pose
    • Salida de animación facial (desde los nodos de lip sync y/o risa) → entrada Blend Poses 0
    • Nodo de mezcla por capas → pose Result final

Layered Blend Per Bone

Selección de conjunto de Morph Targets​

El Modelo Estándar utiliza pose assets que admiten inherentemente cualquier convención de nombres de morph target a través de la configuración personalizada de pose asset. No se necesita configuración adicional.

Ajuste fino del comportamiento de Lip Sync​

Escalado de curvas de sincronización labial específicas​

Puedes atenuar (o amplificar) movimientos faciales individuales producidos por lip sync 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 mezcla de lip sync, 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 quieres 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 (p. ej., 0.8 = 20% de reducción)

Curvas escaladas comunes:

Nombre de la curvaPropósitoSe aplica aAjuste típico
CTRL_expressions_tongueOutProtrusión hacia delante de la lengua 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 varios 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 de la ceja interior
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Elevación de la ceja exterior
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Descenso de la ceja

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​

Elegir 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 personalizadosPersonajes MetaHumans (y ARKit)Personajes MetaHumans (y ARKit)
Calidad visualBuena sincronización labial con un rendimiento eficienteRealismo mejorado con movimientos de boca 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
Compatibilidad 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 planoNarración 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 librería de remuestreo de UE. Para los usuarios de UE 5.2 que necesiten una funcionalidad de lip sync confiable, por favor usen 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
  • Utiliza el Modelo realista cuando necesites la máxima fidelidad visual para personajes MetaHuman
  • Utiliza el Modelo realista con control de emociones cuando el control de la expresión emocional sea importante para tu aplicación
  • Ten en cuenta las capacidades de rendimiento de tu plataforma objetivo al elegir entre los distintos modelos
  • Prueba diferentes niveles de optimización para encontrar el mejor equilibrio para tu 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 quieras introducir nuevos datos de audio tras un periodo de inactividad. Esto se debe al comportamiento del runtime de ONNX, que puede provocar que la sincronización labial deje de funcionar al reutilizar generadores después de periodos de silencio.

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

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 solucionarlo:

  1. Localiza ambos plugins en tu carpeta de instalación de UE dentro de \Engine\Plugins\Marketplace (por ejemplo, C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Mueve ambas 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 soluciona problemas de compatibilidad que pueden ocurrir cuando se cargan varios plugins basados en ONNX Runtime desde el directorio Marketplace del motor.

Configuración de empaquetado (Windows): Si la sincronización labial 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 las compilaciones empaquetadas.

Para solucionar esto:

  1. En la configuración de tu proyecto → Empaquetado, establece la Configuración de compilación en Shipping
  2. Vuelve a empaquetar tu proyecto

Shipping Configuration

Proyectos solo con Blueprints

En algunos proyectos solo con Blueprints, Unreal Engine puede seguir compilando en configuración Development incluso cuando se selecciona Shipping. Si esto ocurre, convierte tu proyecto en un proyecto de C++ añadiendo al menos una clase de C++ (puede estar vacía). Para ello, ve a Tools → New C++ Class en el menú del editor de UE y crea una clase vacía. Esto forzará que el proyecto se compile correctamente en configuración Shipping. Tu proyecto puede seguir siendo solo con Blueprints en cuanto a funcionalidad; la clase de C++ solo es necesaria para una configuración de compilación adecuada.

Disminución de la capacidad de respuesta del Lip Sync: Si experimentas que el lip sync 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. Por defecto, la memoria se reasigna cada vez que se añade audio nuevo. Para evitar este problema, llama a la función ReleaseMemory periódicamente para liberar la memoria acumulada, por ejemplo, cada 30 segundos aproximadamente.

Optimización del rendimiento:

  • Ajusta el tamaño del fragmento de procesamiento para los 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 los modelos con control de estado de ánimo cuando no se necesite animación facial completa