Saltar al contenido principal

Configuración del Plugin

Configuración del Modelo

Recrea los generadores de modelos realistas para cada reproducción

Para un funcionamiento confiable con los modelos Realista y Realista con Estado de Ánimo, recrea el generador antes de cada nueva reproducción de audio en lugar de reutilizarlo durante largos silencios. 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 valores predeterminados que funcionan bien para la mayoría de los escenarios. La configuración se maneja a través de las propiedades del nodo de mezcla del Animation Blueprint.

Para conocer las opciones de configuración del Animation Blueprint, consulta la sección Configuración de Sincronización Labial 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 te permite personalizar el comportamiento del generador:

Tipo de Modelo

La configuración de Tipo de Modelo determina qué versión del modelo realista utilizar:

Tipo de ModeloRendimientoCalidad VisualManejo de RuidoCasos de Uso Recomendados
Altamente Optimizado (Predeterminado)Máximo rendimiento, menor uso de CPUBuena calidadPuede mostrar movimientos bucales notorios con ruido de fondo o sonidos no vocalesEntornos de audio limpios, escenarios críticos de rendimiento
Semi-OptimizadoBuen 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 no vocalesProducciones 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 detección automática (típicamente 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 usan más CPU

Inter Op Threads: Controla el número de hilos utilizados para la ejecución en paralelo de diferentes operaciones del modelo.

  • 0 (Predeterminado/Automático): Utiliza detección automática (típicamente 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 (10ms de audio a 16kHz):

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

Configuración del Tamaño del Fragmento de Procesamiento

Configuración del Modelo con Estado 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)
  • Valores más altos proporcionan 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, mandíbula y lengua

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

Configuración de Estado 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 qué tan fuertemente el estado de ánimo afecta la animación (0.0 a 1.0)

Control de Estado de Ánimo en Tiempo de Ejecución

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

  • Set Mood: Cambia el tipo de estado de ánimo actual
  • Set Mood Intensity: Ajusta qué tan fuertemente el estado de ánimo afecta la animación (0.0 a 1.0)
  • Set Lookahead Ms: Modifica el tiempo de anticipación para la sincronización
  • Set Output Type: Cambia entre los controles de Rostro Completo y Solo Boca

Configuración de Estado de Ánimo

Guía de Selección de Estado de Ánimo

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

Estado de ÁnimoMejor 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 impacto0.7 - 1.0
MiedoSituaciones amenazantes, ansiedad, diálogo nervioso0.5 - 0.9
ConfiadoPresentaciones 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 ligeras0.6 - 0.9
ConfundidoDiálogo con muchas preguntas, incertidumbre, desconcierto0.4 - 0.8

Configuración del Animation Blueprint

Configuración de Sincronización Labial

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

PropiedadPredeterminadoDescripción
Interpolation Speed25Controla qué tan rápido las transiciones de los movimientos labiales entre visemas. Valores más altos resultan en transiciones más rápidas y abruptas.
Reset Time0.2La duración en segundos después de la cual se restablece 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 agregar animaciones de risa que responderán dinámicamente a la risa detectada en el audio:

  1. Agrega el nodo Blend Runtime MetaHuman Laughter
  2. Conecta tu variable RuntimeVisemeGenerator al pin Viseme Generator
  3. Si ya estás usando sincronización labial:
    • Conecta la salida del nodo Blend Runtime MetaHuman Lip Sync al 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 usas solo 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 la Risa

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

PropiedadValor por DefectoDescripción
Interpolation Speed25Controla la rapidez con la que los movimientos de los labios transicionan entre las animaciones de risa. Los valores más altos resultan en transiciones más rápidas y abruptas.
Reset Time0.2La duración en segundos después de 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.
Max Laughter Weight0.7Escala la intensidad máxima de la animación de risa (0.0 - 1.0).

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

Combinación con Animaciones Existentes

Para aplicar lip sync y risa junto con animaciones corporales existentes y animaciones faciales personalizadas sin sobrescribirlas:

  1. Agregue un nodo Layered blend per bone entre sus animaciones corporales y la salida final. Asegúrese de que Use Attached Parent sea verdadero.
  2. Configure la configuración de la capa:
    • Agregue 1 elemento al array Layer Setup
    • Agregue 3 elementos a los Branch Filters para la capa, con los siguientes Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Importante para animaciones faciales personalizadas: En Curve Blend Option, seleccione "Use Max Value". Esto permite que las animaciones faciales personalizadas (expresiones, emociones, etc.) se superpongan correctamente sobre el lip sync.
  4. Realice las conexiones:
    • Animaciones existentes (como BodyPose) → Entrada Base Pose
    • Salida de animación facial (de 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 del Conjunto de Morph Targets

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

Ajuste Fino del Comportamiento del Lip Sync

Escalado de Curvas Específicas del Lip Sync

Puede amortiguar (o amplificar) movimientos faciales individuales producidos por el lip sync usando un nodo Modify Curve. Esto es útil cuando una curva particular se ve demasiado pronunciada para su contenido de audio o personaje.

Configuración:

  1. Después de su nodo de mezcla de lip sync, agregue un nodo Modify Curve
  2. Haga clic derecho en el nodo y seleccione Add Curve Pin, luego ingrese el nombre de la curva que desea escalar
  3. Establezca la propiedad Apply Mode del nodo en Scale
  4. Establezca el parámetro Value: los valores por debajo de 1.0 amortiguan el movimiento, los valores por encima de 1.0 lo amplifican (ej., 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

Puede agregar múltiples curve pins al mismo nodo Modify Curve para escalar varias curvas a la vez.

Ajuste Fino Específico del Estado de Ánimo

Para modelos con estado de ánimo habilitado, puede ajustar expresiones emocionales específicas:

Control de Cejas:

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

Control de Expresión Ocular:

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

Comparación y Selección de Modelos

Elección Entre Modelos

Al decidir qué modelo de lip sync usar para su proyecto, considere estos factores:

ConsideraciónModelo EstándarModelo RealistaModelo Realista con Estado de Ánimo
Compatibilidad de PersonajesMetaHumans y todos los tipos de personajes personalizadosPersonajes MetaHuman (y ARKit)Personajes MetaHuman (y ARKit)
Calidad VisualBuen lip sync con rendimiento eficienteRealismo mejorado con movimientos bucales más naturalesRealismo mejorado con expresiones emocionales
RendimientoOptimizado para todas las plataformas, incluyendo 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 PlataformaWindows, 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á usando Unreal Engine 5.2, los Modelos Realistas pueden no funcionar correctamente debido a un error en la biblioteca de remuestreo de UE. Para usuarios de UE 5.2 que necesiten una funcionalidad de lip sync confiable, use 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 proporciona un excelente equilibrio entre calidad y rendimiento
  • Use el Modelo Realista cuando necesite la mayor fidelidad visual para personajes MetaHuman
  • Use el Modelo Realista con Estado de Ánimo 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 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 una operación confiable y consistente con los Modelos Realistas, se recomienda recrear el generador cada vez que desee alimentar nuevos datos de audio después de un período de inactividad. Esto se debe al comportamiento del tiempo de ejecución de ONNX que puede causar que el lip sync deje de funcionar al reutilizar generadores después de períodos de silencio.

Por ejemplo, podría recrear el generador de lip sync en cada inicio de reproducción, como cada vez que llame a Play Sound 2D o use cualquier otro método para iniciar la reproducción de sound wave 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), puede experimentar problemas en builds empaquetadas si los plugins están instalados en la carpeta Marketplace del motor. Para solucionarlo:

  1. Localice ambos plugins en su carpeta de instalación de UE bajo \Engine\Plugins\Marketplace (ej., C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Mueva ambas carpetas RuntimeMetaHumanLipSync y RuntimeTextToSpeech a la carpeta Plugins de su proyecto
  3. Si su proyecto no tiene una carpeta Plugins, cree una en el mismo directorio que su archivo .uproject
  4. Reinicie el Unreal Editor

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

Configuración de Empaquetado (Windows): Si el lip sync no funciona correctamente en su proyecto empaquetado en Windows, asegúrese de usar la configuración de compilación Shipping en lugar de Development. La configuración Development puede causar problemas con el tiempo de ejecución de ONNX de los modelos realistas en builds empaquetadas.

Para solucionarlo:

  1. En Project Settings → Packaging, establezca Build Configuration en Shipping
  2. Vuelva a empaquetar su proyecto

Shipping Configuration

Proyectos Solo Blueprint

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

Capacidad de Respuesta Degradada del Lip Sync: Si experimenta que el lip sync se vuelve menos receptivo con el tiempo al usar Streaming Sound Wave o Capturable Sound Wave, esto puede ser causado por la acumulación de memoria. Por defecto, la memoria se reasigna cada vez que se agrega nuevo audio. Para evitar este problema, llame a la función ReleaseMemory periódicamente para liberar la memoria acumulada, por ejemplo, cada 30 segundos.

Optimización del Rendimiento:

  • Ajuste Processing Chunk Size para modelos Realistas según sus requisitos de rendimiento
  • Use recuentos de hilos apropiados para su hardware objetivo
  • Considere usar el tipo de salida Mouth Only para modelos con estado de ánimo habilitado cuando no se necesite la animación facial completa