Pular para o conteúdo principal

Como usar o plugin

Este guia orienta você através do processo de configuração do Runtime MetaHuman Lip Sync para seus personagens MetaHuman.

Nota: O Runtime MetaHuman Lip Sync funciona tanto com MetaHumans quanto com personagens personalizados. O plugin suporta vários tipos de personagens, incluindo:

  • Personagens comerciais populares (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc)
  • Personagens com blendshapes baseados em FACS
  • Modelos que usam os padrões de blendshape ARKit
  • Personagens com conjuntos de fonemas Preston Blair
  • Sistemas de fonemas do 3ds Max
  • Qualquer personagem com morph targets personalizados para expressões faciais

Para instruções detalhadas sobre a configuração de personagens personalizados, incluindo referências de mapeamento de visemas para todos os padrões acima, consulte o Guia de configuração de personagens personalizados.

Pré-requisitos

Antes de começar, certifique-se de que:

  1. O plugin MetaHuman está habilitado em seu projeto (Nota: A partir do UE 5.6, esta etapa não é mais necessária, pois a funcionalidade MetaHuman está integrada diretamente no engine)
  2. Você tem pelo menos um personagem MetaHuman baixado e disponível em seu projeto
  3. O plugin Runtime MetaHuman Lip Sync está instalado

Plugins Adicionais:

Configuração Específica por Plataforma

Configuração para Android / Meta Quest

Se você está direcionando para plataformas Android ou Meta Quest e encontrar erros de compilação com este plugin, será necessário desabilitar a arquitetura Android x86_64 (x64) nas configurações do seu projeto:

  1. Vá para Editar > Configurações do Projeto
  2. Navegue até Plataformas > Android
  3. Em Plataformas - Android, seção Build, encontre Suportar x86_64 [também conhecido como x64] e certifique-se de que está desabilitado, como mostrado abaixo

Desabilitar Arquitetura Android x64

Isso ocorre porque o plugin atualmente só suporta as arquiteturas arm64-v8a e armeabi-v7a para plataformas Android / Meta Quest.

Processo de Configuração

Passo 1: Localizar e modificar o Blueprint de animação facial

Você precisa modificar um Animation Blueprint que será usado para as animações faciais do seu personagem MetaHuman. O Animation Blueprint facial padrão do MetaHuman está localizado em:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

Você tem várias opções para implementar a funcionalidade de lip sync:

Abra diretamente o Face_AnimBP padrão e faça suas modificações. Quaisquer alterações afetarão todos os personagens MetaHuman que usam este Animation Blueprint.

Observação: Esta abordagem é conveniente, mas impactará todos os personagens que usam o Animation Blueprint padrão.

Importante: A mistura do Runtime MetaHuman Lip Sync pode ser implementada em qualquer asset de Animation Blueprint que tenha acesso a uma pose contendo os ossos faciais presentes no Face_Archetype_Skeleton padrão do MetaHuman. Você não está limitado às opções acima - estas são apenas abordagens comuns de implementação.

Passo 2: Configuração do Event Graph

Abra seu Face Animation Blueprint e mude para o Event Graph. Você precisará criar um gerador que processará dados de áudio e gerará animação de lip sync.

  1. Adicione o nó Event Blueprint Begin Play se ele não existir ainda
  2. Adicione o nó Create Runtime Viseme Generator e conecte-o ao evento Begin Play
  3. Salve a saída como uma variável (ex: "VisemeGenerator") para uso em outras partes do grafo

Criando Runtime Viseme Generator

Passo 3: Configurar o processamento de entrada de áudio

Você precisa configurar um método para processar a entrada de áudio. Há várias maneiras de fazer isso dependendo da sua fonte de áudio.

Esta abordagem realiza lip sync em tempo real enquanto fala no microfone:

  1. Crie um Capturable Sound Wave usando Runtime Audio Importer
  2. Antes de começar a capturar áudio, vincule ao delegate OnPopulateAudioData
  3. Na função vinculada, chame ProcessAudioData do seu Runtime Viseme Generator
  4. Comece a capturar áudio do microfone

Nós copiáveis.

Lip Sync Durante Captura de Áudio

Passo 4: Configuração do Anim Graph

Após configurar o Event Graph, mude para o Anim Graph para conectar o gerador à animação do personagem:

Lip Sync

  1. Localize a pose que contém a face do MetaHuman (tipicamente de Use cached pose 'Body Pose')
  2. Adicione o nó Blend Runtime MetaHuman Lip Sync
  3. Conecte a pose ao Source Pose do nó Blend Runtime MetaHuman Lip Sync
  4. Conecte sua variável RuntimeVisemeGenerator ao pino Viseme Generator
  5. Conecte a saída do nó Blend Runtime MetaHuman Lip Sync ao pino Result do Output Pose

Blend Runtime MetaHuman Lip Sync

Quando lip sync é detectado no áudio, seu personagem animará dinamicamente de acordo:

Lip Sync

Animação de Riso

Você também pode adicionar animações de riso que responderão dinamicamente ao riso detectado no áudio:

  1. Adicione o nó Blend Runtime MetaHuman Laughter
  2. Conecte sua variável RuntimeVisemeGenerator ao pino Viseme Generator
  3. Se você já estiver usando lip sync:
    • Conecte a saída do nó Blend Runtime MetaHuman Lip Sync ao Source Pose do nó Blend Runtime MetaHuman Laughter
    • Conecte a saída do nó Blend Runtime MetaHuman Laughter ao pino Result do Output Pose
  4. Se usando apenas riso sem lip sync:
    • Conecte sua pose de origem diretamente ao Source Pose do nó Blend Runtime MetaHuman Laughter
    • Conecte a saída ao pino Result

Blend Runtime MetaHuman Laughter

Quando riso é detectado no áudio, seu personagem animará dinamicamente de acordo:

Laughter

Combinando com Animações Corporais

Para aplicar lip sync e riso junto com animações corporais existentes sem sobrescrevê-las:

  1. Adicione um nó Layered blend per bone entre suas animações corporais e a saída final. Certifique-se que Use Attached Parent esteja verdadeiro.
  2. Configure a camada:
    • Adicione 1 item ao array Layer Setup
    • Adicione 3 items aos Branch Filters para a camada, com os seguintes Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Faça as conexões:
    • Animações existentes (como BodyPose) → entrada Base Pose
    • Saída de animação facial (dos nós de lip sync e/ou riso) → entrada Blend Poses 0
    • Nó de layered blend → pose Result final

Layered Blend Per Bone

Por que isso funciona: Os branch filters isolam os ossos de animação facial, permitindo que lip sync e riso se misturem exclusivamente com movimentos faciais enquanto preservam as animações corporais originais. Isso corresponde à estrutura do rig facial do MetaHuman, garantindo integração natural.

Observação: Os recursos de lip sync e riso são projetados para funcionar de forma não destrutiva com sua configuração de animação existente. Eles afetam apenas os ossos faciais específicos necessários para movimento da boca, deixando outras animações faciais intactas. Isso significa que você pode integrá-los com segurança em qualquer ponto da sua cadeia de animação - seja antes de outras animações faciais (permitindo que essas animações sobrescrevam lip sync/riso) ou depois delas (deixando lip sync/riso se misturar sobre suas animações existentes). Essa flexibilidade permite combinar lip sync e riso com piscar de olhos, movimentos de sobrancelha, expressões emocionais e outras animações faciais sem conflitos.

Configuração

Configuração do Lip Sync

O nó Blend Runtime MetaHuman Lip Sync tem opções de configuração em seu painel de propriedades:

PropriedadePadrãoDescrição
Interpolation Speed25Controla a velocidade com que os movimentos labiais transitam entre visemas. Valores mais altos resultam em transições mais rápidas e abruptas.
Reset Time0.2A duração em segundos após a qual o lip sync é reiniciado. Útil para evitar que o lip sync continue após o áudio ter parado.

Configuração do Riso

O nó Blend Runtime MetaHuman Laughter tem suas próprias opções de configuração:

PropriedadePadrãoDescrição
Interpolation Speed25Controla a velocidade com que os movimentos labiais transitam entre animações de riso. Valores mais altos resultam em transições mais rápidas e abruptas.
Reset Time0.2A duração em segundos após a qual o riso é reiniciado. Útil para evitar que o riso continue após o áudio ter parado.
Max Laughter Weight0.7Escala a intensidade máxima da animação de riso (0.0 - 1.0).

Escolhendo Entre Modelos de Lip Sync

Ao decidir qual modelo de lip sync usar para seu projeto, considere estes fatores:

ConsideraçãoModelo PadrãoModelo Realista
Compatibilidade de PersonagensMetaHumans e todos os tipos de personagens personalizadosApenas MetaHumans
Qualidade VisualBom lip sync com desempenho eficienteRealismo aprimorado com movimentos de boca mais naturais
DesempenhoOtimizado para todas as plataformas incluindo mobile/VRRequisitos de recursos ligeiramente maiores
Casos de UsoAplicações gerais, jogos, VR/AR, mobileExperiências cinematográficas, interações próximas com personagens

Para a maioria dos projetos, o Modelo Padrão fornece um excelente equilíbrio entre qualidade e desempenho enquanto suporta a maior variedade de tipos de personagens. O Modelo Realista é ideal quando você precisa da maior fidelidade visual especificamente para personagens MetaHuman em contextos onde a sobrecarga de desempenho é menos crítica.