Saltar al contenido principal

Cómo usar el plugin

Esta guía te lleva paso a paso por el proceso de configurar Runtime MetaHuman Lip Sync para tus personajes MetaHuman.

Nota: Runtime MetaHuman Lip Sync funciona tanto con MetaHuman como con personajes personalizados. El plugin soporta varios tipos de personajes incluyendo:

  • Personajes comerciales populares (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc)
  • Personajes con blendshapes basados en FACS
  • Modelos que usan estándares de blendshape ARKit
  • Personajes con conjuntos de fonemas Preston Blair
  • Sistemas de fonemas de 3ds Max
  • Cualquier personaje con objetivos de morph personalizados para expresiones faciales

Para instrucciones detalladas sobre configurar personajes personalizados, incluyendo referencias de mapeo de visemas para todos los estándares mencionados, consulta la Guía de configuración para personajes personalizados.

Requisitos previos

Antes de comenzar, asegúrate de:

  1. El plugin MetaHuman está activado en tu proyecto
  2. Tienes al menos un personaje MetaHuman descargado y disponible en tu proyecto
  3. El plugin Runtime MetaHuman Lip Sync está instalado

Plugins adicionales:

Configuración específica por plataforma

Configuración para Android / Meta Quest

Si estás apuntando a plataformas Android o Meta Quest y encuentras errores de compilación con este plugin, necesitarás desactivar la arquitectura Android x86_64 (x64) en la configuración de tu proyecto:

  1. Ve a Editar > Configuración del proyecto
  2. Navega a Plataformas > Android
  3. Bajo Plataformas - Android, sección Compilación, encuentra Soporte x86_64 [aka x64] y asegúrate de que esté desactivado, como se muestra abajo

Desactivar arquitectura x64 Android

Esto se debe a que el plugin actualmente solo soporta arquitecturas arm64-v8a y armeabi-v7a para plataformas Android / Meta Quest.

Proceso de configuración

Paso 1: Localizar y modificar el Blueprint de animación facial

Necesitas modificar un Animation Blueprint que será usado para las animaciones faciales de tu personaje MetaHuman. El Animation Blueprint facial predeterminado de MetaHuman se encuentra en:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

Tienes varias opciones para implementar la funcionalidad de lip sync:

Abre directamente el Face_AnimBP predeterminado y realiza tus modificaciones. Cualquier cambio afectará a todos los personajes MetaHuman que utilicen este Animation Blueprint.

Nota: Este enfoque es conveniente pero impactará a todos los personajes que usen el Animation Blueprint predeterminado.

Importante: La mezcla de Runtime MetaHuman Lip Sync puede implementarse en cualquier asset de Animation Blueprint que tenga acceso a una pose que contenga los huesos faciales presentes en el Face_Archetype_Skeleton predeterminado de MetaHuman. No estás limitado a las opciones anteriores - estos son solo enfoques de implementación comunes.

Paso 2: Configuración del Event Graph

Abre tu Face Animation Blueprint y cambia al Event Graph. Necesitarás crear un Runtime Viseme Generator que procesará los datos de audio y generará visemas.

  1. Añade el nodo Event Blueprint Begin Play si no existe ya
  2. Añade el nodo Create Runtime Viseme Generator y conéctalo al evento Begin Play
  3. Guarda la salida como una variable (ej. "VisemeGenerator") para usarla en otras partes del grafo

Creating Runtime Viseme Generator

Paso 3: Configuración del procesamiento de entrada de audio

Necesitas configurar un método para procesar la entrada de audio. Hay varias formas de hacer esto dependiendo de tu fuente de audio.

Este enfoque realiza lip sync en tiempo real mientras hablas al micrófono:

  1. Crea un Capturable Sound Wave usando Runtime Audio Importer
  2. Antes de comenzar a capturar audio, enlázate al delegado OnPopulateAudioData
  3. En la función enlazada, llama a ProcessAudioData desde tu Runtime Viseme Generator
  4. Comienza a capturar audio desde el micrófono

Nodos copiables.

Lip Sync During Audio Capture

Paso 4: Configuración del Anim Graph

Después de configurar el Event Graph, cambia al Anim Graph para conectar el viseme generator a la animación del personaje:

Lip Sync

  1. Localiza la pose que contiene la cara del MetaHuman (típicamente desde Use cached pose 'Body Pose')
  2. Añade el nodo Blend Runtime MetaHuman Lip Sync
  3. Conecta la pose al Source Pose del nodo Blend Runtime MetaHuman Lip Sync
  4. Conecta tu variable RuntimeVisemeGenerator al pin Viseme Generator
  5. Conecta la salida del nodo Blend Runtime MetaHuman Lip Sync al pin Result del Output Pose

Blend Runtime MetaHuman Lip Sync

Cuando se detecte lip sync en el audio, tu personaje se animará dinámicamente en consecuencia:

Lip Sync

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 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 solo usas risa sin lip sync:
    • Conecta tu pose fuente directamente al Source Pose del nodo Blend Runtime MetaHuman Laughter
    • Conecta la salida al pin Result

Blend Runtime MetaHuman Laughter

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

Laughter

Combinación con Animaciones Corporales

Para aplicar lip sync y risa junto a animaciones corporales exist