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 com MetaHumans e 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 como configurar personagens personalizados, incluindo referências de mapeamento de visemas para todos os padrões acima, consulte o Guia de configuração para personagens personalizados.

Pré-requisitos

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

  1. O plugin MetaHuman está ativado em seu projeto
  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 desativar 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á desativado, como mostrado abaixo

Desativar arquitetura x64 Android

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 Blueprint de animação que será usado para as animações faciais do seu personagem MetaHuman. O Blueprint de animação 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 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 Runtime Viseme Generator que processará dados de áudio e gerará visemas.

  1. Adicione o nó Event Blueprint Begin Play se ele 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 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 viseme generator à animação do personagem:

Lip Sync

  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 lip sync for 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 fonte diretamente ao Source Pose do nó Blend Runtime MetaHuman Laughter
    • Conecte a saída ao pino Result

Blend Runtime MetaHuman Laughter

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

Riso

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 ativado.
  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 sobrancelhas, expressões emocionais e outras animações faciais sem conflitos.

Configuração

Configuração de 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 das transições entre visemas. Valores maiores 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 parar.

Configuração de Riso

O nó