Pular para o conteúdo principal

Configuração do Plugin

Configuração do Modelo

Recrie geradores de modelo realista para cada reprodução

Para uma operação confiável com os modelos Realista e Realista com Humor, recrie o gerador antes de cada nova reprodução de áudio, em vez de reutilizá-lo durante longos períodos de silêncio. Consulte Recriação do Gerador na seção de Solução de Problemas para mais detalhes.

Configuração do Modelo Padrão

O nó Create Runtime Viseme Generator usa configurações padrão que funcionam bem para a maioria dos cenários. A configuração é feita através das propriedades do nó de mesclagem do Animation Blueprint.

Para opções de configuração do Animation Blueprint, consulte a seção Configuração do Lip Sync abaixo.

Configuração do Modelo Realista

O nó Create Realistic MetaHuman Lip Sync Generator aceita um parâmetro opcional de Configuração que permite personalizar o comportamento do gerador:

Tipo de Modelo

A configuração Tipo de Modelo determina qual versão do modelo realista usar:

Tipo de ModeloDesempenhoQualidade VisualTratamento de RuídoCasos de Uso Recomendados
Altamente Otimizado (Padrão)Maior desempenho, menor uso de CPUBoa qualidadePode mostrar movimentos bucais perceptíveis com ruído de fundo ou sons não vocaisAmbientes de áudio limpos, cenários críticos de desempenho
Semi-OtimizadoBom desempenho, uso moderado de CPUAlta qualidadeMelhor estabilidade com áudio ruidosoEquilíbrio entre desempenho e qualidade, condições de áudio mistas
OriginalAdequado para uso em tempo real em CPUs modernasQualidade mais altaMais estável com ruído de fundo e sons não vocaisProduções de alta qualidade, ambientes de áudio ruidosos, quando máxima precisão é necessária

Configurações de Desempenho

Intra Op Threads: Controla o número de threads usadas para operações internas de processamento do modelo.

  • 0 (Padrão/Automático): Usa detecção automática (tipicamente 1/4 dos núcleos de CPU disponíveis, máximo 4)
  • 1-16: Especifica manualmente o número de threads. Valores mais altos podem melhorar o desempenho em sistemas multi-core, mas usam mais CPU

Inter Op Threads: Controla o número de threads usadas para execução paralela de diferentes operações do modelo.

  • 0 (Padrão/Automático): Usa detecção automática (tipicamente 1/8 dos núcleos de CPU disponíveis, máximo 2)
  • 1-8: Especifica manualmente o número de threads. Geralmente mantido baixo para processamento em tempo real

Tamanho do Chunk de Processamento

O Tamanho do Chunk de Processamento determina quantas amostras são processadas em cada etapa de inferência. O valor padrão é 160 amostras (10ms de áudio a 16kHz):

  • Valores menores fornecem atualizações mais frequentes, mas aumentam o uso de CPU
  • Valores maiores reduzem a carga da CPU, mas podem diminuir a capacidade de resposta do lip sync
  • Recomenda-se usar múltiplos de 160 para alinhamento ideal

Configurando o Tamanho do Chunk de Processamento

Configuração do Modelo com Humor

O nó Create Realistic MetaHuman Lip Sync With Mood Generator fornece opções de configuração adicionais além do modelo realista básico:

Configuração Básica

Lookahead Ms: Temporização de antecipação em milissegundos para melhor precisão do lip sync.

  • Padrão: 80ms
  • Intervalo: 20ms a 200ms (deve ser divisível por 20)
  • Valores mais altos fornecem melhor sincronização, mas aumentam a latência

Tipo de Saída: Controla quais controles faciais são gerados.

  • Rosto Completo: Todos os 81 controles faciais (sobrancelhas, olhos, nariz, boca, mandíbula, língua)
  • Apenas Boca: Apenas controles relacionados à boca, mandíbula e língua

Configurações de Desempenho: Usa as mesmas configurações de Intra Op Threads e Inter Op Threads do modelo realista regular.

Configurações de Humor

Humores Disponíveis:

  • Neutro, Feliz, Triste, Nojo, Raiva, Surpresa, Medo
  • Confiante, Empolgado, Entediado, Brincalhão, Confuso

Intensidade do Humor: Controla o quanto o humor afeta a animação (0.0 a 1.0)

Controle de Humor em Tempo de Execução

Você pode ajustar as configurações de humor durante o tempo de execução usando as seguintes funções:

  • Set Mood: Altera o tipo de humor atual
  • Set Mood Intensity: Ajusta o quanto o humor afeta a animação (0.0 a 1.0)
  • Set Lookahead Ms: Modifica a temporização de antecipação para sincronização
  • Set Output Type: Alterna entre controles de Rosto Completo e Apenas Boca

Configuração de Humor

Guia de Seleção de Humor

Escolha humores apropriados com base no seu conteúdo:

HumorMelhor ParaIntervalo Típico de Intensidade
NeutroConversa geral, narração, estado padrão0.5 - 1.0
FelizConteúdo positivo, diálogo alegre, celebrações0.6 - 1.0
TristeConteúdo melancólico, cenas emocionais, momentos sóbrios0.5 - 0.9
NojoReações negativas, conteúdo desagradável, rejeição0.4 - 0.8
RaivaDiálogo agressivo, cenas de confronto, frustração0.6 - 1.0
SurpresaEventos inesperados, revelações, reações de choque0.7 - 1.0
MedoSituações ameaçadoras, ansiedade, diálogo nervoso0.5 - 0.9
ConfianteApresentações profissionais, diálogo de liderança, fala assertiva0.7 - 1.0
EmpolgadoConteúdo energético, anúncios, diálogo entusiasmado0.8 - 1.0
EntediadoConteúdo monótono, diálogo desinteressado, fala cansada0.3 - 0.7
BrincalhãoConversa casual, humor, interações leves0.6 - 0.9
ConfusoDiálogo com muitas perguntas, incerteza, perplexidade0.4 - 0.8

Configuração do Animation Blueprint

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
Velocidade de Interpolação25Controla a rapidez com que os movimentos labiais fazem a transição 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. Isso é útil para evitar que o lip sync continue após o áudio ter parado.

Animação de Risada

Você também pode adicionar animações de risada que responderão dinamicamente às risadas detectadas 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 risada 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 risadas são detectadas no áudio, seu personagem irá animar dinamicamente de acordo:

Configuração de Risada

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

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

Nota: A detecção de risada está disponível atualmente apenas com o Standard Model.

Combinando com Animações Existentes

Para aplicar lip sync e risada junto com animações corporais existentes e animações faciais personalizadas 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 como verdadeiro.
  2. Configure a configuração da 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. Importante para animações faciais personalizadas: Em Curve Blend Option, selecione "Use Max Value". Isso permite que animações faciais personalizadas (expressões, emoções, etc.) sejam devidamente sobrepostas ao lip sync.
  4. 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 risada) → Entrada Blend Poses 0
    • Nó de blend em camadas → Pose Result final

Layered Blend Per Bone

Seleção do Conjunto de Morph Targets

O Standard Model usa pose assets que inerentemente suportam qualquer convenção de nomenclatura de morph target através da configuração de pose asset personalizada. Nenhuma configuração adicional é necessária.

Ajuste Fino do Comportamento do Lip Sync

Escalando Curvas Específicas do Lip Sync

Você pode atenuar (ou amplificar) movimentos faciais individuais produzidos pelo lip sync usando um nó Modify Curve. Isso é útil quando uma curva específica parece muito pronunciada para o seu conteúdo de áudio ou personagem.

Configuração:

  1. Após o nó de blend de lip sync, adicione um nó Modify Curve
  2. Clique com o botão direito no nó e selecione Add Curve Pin, em seguida, digite o nome da curva que deseja escalar
  3. Defina a propriedade Apply Mode do nó como Scale
  4. Defina o parâmetro Value: valores abaixo de 1.0 atenuam o movimento, valores acima de 1.0 o amplificam (ex.: 0.8 = redução de 20%)

Curvas comumente escaladas:

Nome da CurvaPropósitoAplica-se aAjuste Típico
CTRL_expressions_tongueOutProtrusão da língua para frente durante certos fonemasStandard model0.8 para reduzir a protrusão
CTRL_expressions_jawOpenAmplitude de abertura da mandíbulaRealistic models0.9 para reduzir o movimento da mandíbula

Você pode adicionar vários curve pins ao mesmo nó Modify Curve para escalar várias curvas de uma vez.

Ajuste Fino Específico de Humor

Para modelos habilitados para humor, você pode ajustar expressões emocionais específicas:

Controle de Sobrancelha:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Levantar a sobrancelha interna
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Levantar a sobrancelha externa
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Abaixar a sobrancelha

Controle de Expressão Ocular:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Apertar os olhos
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Levantar as bochechas

Comparação e Seleção de Modelos

Escolhendo Entre Modelos

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

ConsideraçãoStandard ModelRealistic ModelMood-Enabled Realistic Model
Compatibilidade de PersonagemMetaHumans e todos os tipos de personagens personalizadosPersonagens MetaHuman (e ARKit)Personagens MetaHuman (e ARKit)
Qualidade VisualBom lip sync com desempenho eficienteRealismo aprimorado com movimentos bucais mais naturaisRealismo aprimorado com expressões emocionais
DesempenhoOtimizado para todas as plataformas, incluindo mobile/VRRequisitos de recursos mais altosRequisitos de recursos mais altos
Recursos14 visemas, detecção de risada81 controles faciais, 3 níveis de otimização81 controles faciais, 12 humores, saída configurável
Suporte de PlataformaWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Casos de UsoAplicações gerais, jogos, VR/AR, mobileExperiências cinematográficas, interações em close-upNarrativa emocional, interação avançada de personagens

Compatibilidade de Versão do Engine

Problema de Compatibilidade com UE 5.2

Se você estiver usando Unreal Engine 5.2, os Realistic Models podem não funcionar corretamente devido a um bug na biblioteca de reamostragem da UE. Para usuários do UE 5.2 que precisam de funcionalidade de lip sync confiável, use o Standard Model.

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

Recomendações de Desempenho

  • Para a maioria dos projetos, o Standard Model fornece um excelente equilíbrio entre qualidade e desempenho
  • Use o Realistic Model quando precisar da mais alta fidelidade visual para personagens MetaHuman
  • Use o Mood-Enabled Realistic Model quando o controle de expressão emocional for importante para sua aplicação
  • Considere as capacidades de desempenho da sua plataforma alvo ao escolher entre os modelos
  • Teste diferentes níveis de otimização para encontrar o melhor equilíbrio para seu caso de uso específico

Solução de Problemas

Problemas Comuns

Recriação do Gerador para Realistic Models: Para uma operação confiável e consistente com os Realistic Models, é recomendado recriar o gerador cada vez que você quiser alimentar novos dados de áudio após um período de inatividade. Isso se deve ao comportamento do runtime ONNX que pode fazer com que o lip sync pare de funcionar ao reutilizar geradores após períodos de silêncio.

Por exemplo, você pode recriar o gerador de lip sync a cada início de reprodução, como sempre que você chama Play Sound 2D ou usa qualquer outro método para iniciar a reprodução de sound wave e lip sync:

Recreate Lip Sync Generator On Play Sound

Localização do Plugin para Integração com Runtime Text To Speech: Ao usar Runtime MetaHuman Lip Sync junto com Runtime Text To Speech (ambos os plugins usam ONNX Runtime), você pode experimentar problemas em builds empacotados se os plugins estiverem instalados na pasta Marketplace do engine. Para corrigir isso:

  1. Localize ambos os plugins na sua pasta de instalação da UE em \Engine\Plugins\Marketplace (ex.: C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Mova ambas as pastas RuntimeMetaHumanLipSync e RuntimeTextToSpeech para a pasta Plugins do seu projeto
  3. Se seu projeto não tiver uma pasta Plugins, crie uma no mesmo diretório que seu arquivo .uproject
  4. Reinicie o Unreal Editor

Isso resolve problemas de compatibilidade que podem ocorrer quando vários plugins baseados em ONNX Runtime são carregados do diretório Marketplace do engine.

Configuração de Empacotamento (Windows): Se o lip sync não estiver funcionando corretamente em seu projeto empacotado no Windows, certifique-se de estar usando a configuração de build Shipping em vez de Development. A configuração Development pode causar problemas com o runtime ONNX dos realistic models em builds empacotados.

Para corrigir isso:

  1. Em Project Settings → Packaging, defina a Build Configuration como Shipping
  2. Reempacote seu projeto

Shipping Configuration

Projetos Apenas com Blueprint

Em alguns projetos apenas com Blueprint, o Unreal Engine pode ainda compilar na configuração Development mesmo quando Shipping está selecionado. Se isso acontecer, converta seu projeto para um projeto C++ adicionando pelo menos uma classe C++ (pode ser vazia). Para fazer isso, vá em Tools → New C++ Class no menu do editor UE e crie uma classe vazia. Isso forçará o projeto a compilar corretamente na configuração Shipping. Seu projeto pode permanecer apenas com Blueprint em funcionalidade, a classe C++ é necessária apenas para a configuração de build adequada.

Responsividade Degradada do Lip Sync: Se você experimentar que o lip sync se torna menos responsivo ao longo do tempo ao usar Streaming Sound Wave ou Capturable Sound Wave, isso pode ser causado por acúmulo de memória. Por padrão, a memória é realocada cada vez que novo áudio é anexado. Para evitar este problema, chame a função ReleaseMemory periodicamente para liberar a memória acumulada, como a cada 30 segundos.

Otimização de Desempenho:

  • Ajuste o Processing Chunk Size para Realistic models com base em seus requisitos de desempenho
  • Use contagens de thread apropriadas para seu hardware alvo
  • Considere usar o tipo de saída Mouth Only para modelos habilitados para humor quando a animação facial completa não for necessária