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 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 como configurar 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á ativado em seu projeto (Observação: A partir do UE 5.6, esta etapa não é mais necessária, pois a funcionalidade MetaHuman está integrada diretamente ao motor)
  2. Você tem pelo menos um personagem MetaHuman baixado e disponível em seu projeto
  3. O plugin Runtime MetaHuman Lip Sync está instalado

Plugin de Extensão de Modelo Padrão

Se você planeja usar o Modelo Padrão (Mais Rápido), será necessário instalar o plugin de extensão:

  1. Baixe o Standard Lip Sync Extension plugin do Google Drive
  2. Extraia a pasta do arquivo baixado para a pasta Plugins do seu projeto (crie esta pasta se ela não existir)
  3. Certifique-se de que seu projeto está configurado como um projeto C++ (mesmo que você não tenha nenhum código C++)
  4. Recompile seu projeto
nota
  • Esta extensão é necessária apenas se você quiser usar o Modelo Padrão. Se você só precisa do Modelo Realista, pode pular esta etapa.
  • Para mais informações sobre como compilar plugins manualmente, consulte o tutorial Building Plugins

Plugins Adicionais

Configuração Específica por Plataforma

Configuração para Android / Meta Quest

Se você estiver 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, localize Suportar x86_64 [também conhecido como x64] e certifique-se de que está desabilitado, conforme 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. Qualquer alteração afetará 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 (blending) do Runtime MetaHuman Lip Sync pode ser implementada em qualquer ativo 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 ainda não existir
  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. Existem 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. Inicie a captura de á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:

Sincronização Labial

  1. Localize a pose que contém o rosto 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 a sincronização labial for detectada no áudio, seu personagem animará dinamicamente de acordo:

Sincronização Labial

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 estiver 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 o riso for 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 substituí-las:

  1. Adicione um nó Layered blend per bone entre suas animações corporais e a saída final. Certifique-se de que Use Attached Parent esteja ativado.
  2. Configure a camada:
    • Adicione 1 item ao array Layer Setup
    • Adicione 3 itens 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 (de nós de lip sync e/ou riso) → entrada Blend Poses 0
    • Nó de camadas misturadas → pose Result final

Layered Blend Per Bone

Por que isso funciona: Os filtros de ramificação isolam os ossos de animação facial, permitindo que o lip sync e o 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 o 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 substituam o lip sync/riso) ou depois delas (permitindo que o lip sync/riso se misture 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 de Lip Sync

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

PropriedadePadrãoDescrição
Velocidade de Interpolação25Controla a rapidez com que os movimentos labiais transitam entre visemas. Valores mais altos resultam em transições mais rápidas e abruptas.
Tempo de Reset0.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 de Riso

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

PropriedadePadrãoDescrição
Velocidade de Interpolação25Controla a rapidez com que os movimentos labiais transitam entre animações de riso. Valores mais altos resultam em transições mais rápidas e abruptas.
Tempo de Reset0.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.
Peso Máximo do Riso0.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 em seu projeto, considere estes fatores:

ConsideraçãoModelo PadrãoModelo Realista
Compatibilidade com PersonagensMetaHumans e todos os tipos de personagens personalizadosApenas MetaHumans
Qualidade VisualBom lip sync com desempenho eficienteRealismo aprimorado com movimentos bucais 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

Compatibilidade com Versões do Engine

Problema de Compatibilidade com UE 5.2

Se você estiver usando Unreal Engine 5.2, o Modelo Realista pode não funcionar corretamente devido a um bug na biblioteca de resampling da UE. Para usuários da UE 5.2 que precisam de funcionalidade de lip sync confiável, por favor use o Modelo Padrão.

Este problema é específico para a UE 5.2 e não afeta outras versões do engine.

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