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, recrea el generador antes de cada nueva reproducción de audio en lugar de reutilizarlo durante silencios largos. Consulta Recreación del generador en Solución de problemas para obtener más detalles.

Configuración del modelo estándar

El nodo Create Runtime Viseme Generator utiliza ajustes predeterminados 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 de 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 de modelo realista

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

Tipo de modelo

El ajuste Tipo de modelo determina qué versión del modelo realista utilizar:

Model TypeRendimientoCalidad visualManejo del ruidoCasos de uso recomendados
Altamente optimizado (predeterminado)Máximo rendimiento, uso de CPU más bajoBuena calidadPuede mostrar movimientos de boca notables con ruido de fondo o sonidos que no son de vozEntornos de audio limpios, escenarios donde el rendimiento es crítico
SemioptimizadoBuen rendimiento, uso de CPU moderadoAlta 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

Hilos de intra-op: Controla el número de hilos utilizados para las operaciones internas de procesamiento del modelo.

  • 0 (Predeterminado/Automático): Usa 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 de múltiples núcleos pero usan más CPU.

Hilos entre operaciones: Controla el número de hilos utilizados para la ejecución paralela de diferentes operaciones del modelo.

  • 0 (Predeterminado/Automático): Utiliza la 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 bloque 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 CPU.
  • Los valores más grandes reducen la carga de 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: 80ms
  • Rango: de 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.

  • Cara completa: Todos los 81 controles faciales (cejas, ojos, nariz, boca, mandíbula, lengua)
  • Solo boca: Solo los controles de boca, mandíbula y 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 ánimo

Estados de ánimo disponibles:

  • Neutro, Feliz, Triste, Asco, Ira, Sorpresa, Miedo
  • Confiado, Emocionado, Aburrido, Juguetón, Confundido

Intensidad del estado de ánimo: Controla cuán 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 modificar los ajustes de ánimo en tiempo de ejecución mediante las siguientes funciones:

  • Establecer Estado de Ánimo: Cambia el tipo de estado de ánimo actual
  • Establecer Intensidad de Estado de Ánimo: Ajusta cuán fuertemente el estado de ánimo afecta la animación (0.0 a 1.0)
  • Establecer Anticipación (ms): Modifica el tiempo de anticipación para la sincronización
  • Establecer Tipo de Salida: Cambia entre los controles de Cara Completa y Solo Boca

Mood Configuration

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

Elige estados de ánimo apropiados 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 emocionales, momentos sombríos0.5 - 0.9
AscoReacciones negativas, contenido desagradable, rechazo0.4 - 0.8
IraDiá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
SeguroPresentaciones profesionales, diálogo de liderazgo, discurso asertivo0.7 - 1.0
EntusiasmadoContenido enérgico, anuncios, diálogo entusiasta0.8 - 1.0
AburridoContenido monótono, diálogo indiferente, habla cansada0.3 - 0.7
JuguetónConversación informal, humor, interacciones desenfadadas0.6 - 0.9
ConfundidoDiálogo repleto de preguntas, incertidumbre, desconcierto0.4 - 0.8

Configuración de Animation Blueprint

Configuración de sincronización de labios

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 realizan la transición entre visemas. Los valores más altos dan lugar a transiciones más rápidas y abruptas.
Tiempo de reinicio0.2La duración en segundos tras 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 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 de Output Pose
  4. Si se utiliza 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 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 realizan la transición entre las animaciones de risa. 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 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 Modelo Estándar.

Combinando con animaciones existentes

Video tutorial

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

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

Animaciones del cuerpo

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 las animaciones del cuerpo y la salida final. Asegúrate de que Use Attached Parent esté en true.
  2. Configura el ajuste de capas:
    • Agrega 1 elemento al array Layer Setup
    • Agrega 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 la Opción de fusión de curvas, selecciona "Usar valor máximo". Esto permite que las animaciones faciales personalizadas (expresiones, emociones, etc.) se superpongan adecuadamente 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 los nodos de sincronización de labios y/o risa) → entrada Blend Poses 0
    • Nodo de mezcla por capas → pose final Result

Layered Blend Per Bone

Selección del conjunto de Morph Targets

El modelo estándar utiliza recursos de pose que admiten de forma inherente cualquier convención de nomenclatura de morph targets a través de la configuración personalizada de recurso de pose. No se necesita configuración adicional.

Ajuste Fino del Comportamiento de Sincronización de Labios

Escalado de curvas específicas de sincronización de labios

Puedes atenuar (o amplificar) movimientos faciales individuales producidos por el 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 sincronización de labios, agrega un nodo Modify Curve
  2. Haz clic derecho en el nodo y selecciona Add Curve Pin, luego ingresa el nombre de la curva que deseas escalar
  3. Configura la propiedad Apply Mode del nodo a Scale
  4. Configura 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 = reducción del 20%)

Curvas comúnmente escaladas:

Curve NamePropó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 agregar varios pines de curva al mismo nodo Modify Curve para escalar varias curvas a la vez.

Ajuste fino específico del estado de ánimo

Para modelos que admiten estados de ánimo, puedes ajustar expresiones emocionales específicas:

Control de cejas:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Elevación interna de ceja
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Elevación externa de ceja
  • 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 mejillas

Comparación y selección de modelos

Elegir entre modelos

Al decidir qué modelo de sincronización de labios 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 de MetaHumans (y ARKit)Personajes de MetaHumans (y ARKit)
Calidad visualBuena sincronización de labios con rendimiento eficienteRealismo mejorado con movimientos de boca 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 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, es posible que los Realistic Models no funcionen 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 Standard Model 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
  • Use el Modelo Realista cuando necesite la máxima fidelidad visual para los personajes MetaHuman
  • Use el Modelo Realista Habilitado para Estados de Ánimo cuando el control de la expresión emocional sea importante para su aplicación
  • Considere las capacidades de rendimiento de su plataforma de destino 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 Realistic Models: Para un funcionamiento fiable y consistente con los Realistic Models, se recomienda recrear el generador cada vez que quieras introducir nuevos datos de audio después de un periodo de inactividad. Esto se debe al comportamiento de ONNX runtime, que puede provocar que la sincronización de labios 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 cuando llamas a Play Sound 2D o usas cualquier otro método para iniciar la reproducción de ondas de sonido y lip sync:

Recreate Lip Sync Generator On Play Sound

Ubicación del plugin para la integración de Runtime Text To Speech: Cuando uses 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 de Marketplace del motor. Para solucionarlo:

  1. Localiza ambos complementos en tu carpeta de instalación de UE, en \Engine\Plugins\Marketplace (p. ej., 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 los problemas de compatibilidad que pueden ocurrir cuando se cargan múltiples plugins basados en ONNX Runtime 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 provocar problemas con el ONNX Runtime para modelos realistas en compilaciones empaquetadas.

Para solucionar 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 Blueprint, 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 Herramientas → Nueva clase de C++ en el menú del editor de UE y crea una clase vacía. Esto obligará a que el proyecto se compile correctamente en configuración Shipping. Tu proyecto puede seguir siendo de solo Blueprint en cuanto a funcionalidad; la clase de C++ solo es necesaria para una configuración de compilación adecuada.

Responsividad degradada de la sincronización de labios: Si experimentas que la sincronización de labios se vuelve menos receptiva 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 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 de bloque de procesamiento para modelos realistas según tus requisitos de rendimiento
  • Utiliza cantidades de hilos adecuadas para tu hardware de destino
  • Considera usar el tipo de salida "Solo boca" para modelos con control de estado de ánimo cuando no se necesite animación facial completa.