Pular para o conteúdo principal

Configuração do Plugin

Configuração do Modelo

Configuração Padrão do Modelo

O nó Create Runtime Viseme Generator usa configurações padrão que funcionam bem para a maioria dos cenários. A configuração é tratada 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 de Sincronização Labial abaixo.

Configuração do Modelo Realista

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

Tipo de Modelo

A configuração Model Type 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 de boca 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 ruidosoDesempenho e qualidade balanceados, 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 a máxima precisão é necessária

Configurações de Desempenho

Intra Op Threads: Controla o número de threads usadas para operações de processamento interno 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 a contagem 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 a contagem de threads. Geralmente mantido baixo para processamento em tempo real

Tamanho do Chunk de Processamento

O Processing Chunk Size 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 da CPU
  • Valores maiores reduzem a carga da CPU, mas podem diminuir a responsividade da sincronização labial
  • Recomendado usar múltiplos de 160 para um 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: Tempo de antecipação em milissegundos para melhor precisão na sincronização labial.

  • 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)
  • Somente 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, Nojinho, Raiva, Surpresa, Medo
  • Confiante, Animado, 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 a execução usando as seguintes funções:

  • Definir Humor: Alterar o tipo de humor atual
  • Definir Intensidade do Humor: Ajustar o quanto o humor afeta a animação (0.0 a 1.0)
  • Definir Lookahead Ms: Modificar o tempo de antecipação para sincronização
  • Definir Tipo de Saída: Alternar entre os controles de Rosto Completo e Somente Boca

Configuração de Humor

Guia de Seleção de Humor

Escolha humores apropriados com base no seu conteúdo:

HumorMelhor ParaIntervalo de Intensidade Típico
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 sombrios0.5 - 0.9
NojinhoReaçõ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, discurso assertivo0.7 - 1.0
AnimadoConteúdo energético, anúncios, diálogo entusiástico0.8 - 1.0
EntediadoConteúdo monótono, diálogo desinteressado, fala cansada0.3 - 0.7
BrincalhãoConversa casual, humor, interações descontraídas0.6 - 0.9
ConfusoDiálogo com muitas perguntas, incerteza, perplexidade0.4 - 0.8

Configuração do Animation Blueprint

Configuração de Sincronização Labial

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 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 a sincronização labial é reiniciada. Isso é útil para evitar que a sincronização labial continue após o áudio ter parado.

Animação de Riso

Você também pode adicionar animações de risada que responderão dinamicamente à risada detectada 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 sincronização labial:
    • 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 a risada sem sincronização labial:
    • 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 a risada é detectada no áudio, seu personagem animará dinamicamente de acordo:

Laughter

Configuração da Riso

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

PropriedadePadrãoDescrição
Velocidade de Interpolação25Controla a rapidez com que os movimentos labiais transitam entre as animações de risada. Valores mais altos resultam em transições mais rápidas e abruptas.
Tempo de Reset0.2A duração em segundos após a qual a risada é reiniciada. Isso é útil para evitar que a risada continue depois que o áudio parou.
Peso Máximo da Riso0.7Escala a intensidade máxima da animação de risada (0.0 - 1.0).

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

Combinando com Animações Existentes

Para aplicar sincronização labial e risada juntamente 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 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 corretamente sobrepostas à sincronização labial.
  4. Faça as conexões:
    • Animações existentes (como BodyPose) → entrada Base Pose
    • Saída de animação facial (dos nós de sincronização labial e/ou risada) → entrada Blend Poses 0
    • Nó de mistura em camadas → pose Result final

Layered Blend Per Bone

Ajuste Fino do Comportamento da Sincronização Labial

Controle de Protrusão da Língua

No modelo padrão de sincronização labial, você pode notar movimento excessivo da língua para frente durante certos fonemas. Para controlar a protrusão da língua:

  1. Após o seu nó de blend de sincronização labial, adicione um nó Modify Curve
  2. Clique com o botão direito no nó Modify Curve e selecione Add Curve Pin
  3. Adicione um pino de curva com o nome CTRL_expressions_tongueOut
  4. Defina a propriedade Apply Mode do nó para Scale
  5. Ajuste o parâmetro Value para controlar a extensão da língua (por exemplo, 0.8 para reduzir a protrusão em 20%)

Controle de Abertura da Mandíbula

A sincronização labial realista pode produzir movimentos de mandíbula excessivamente responsivos, dependendo do seu conteúdo de áudio e requisitos visuais. Para ajustar a intensidade da abertura da mandíbula:

  1. Após o seu nó de blend de sincronização labial, adicione um nó Modify Curve
  2. Clique com o botão direito no nó Modify Curve e selecione Add Curve Pin
  3. Adicione um pino de curva com o nome CTRL_expressions_jawOpen
  4. Defina a propriedade Apply Mode do nó para Scale
  5. Ajuste o parâmetro Value para controlar a amplitude de abertura da mandíbula (por exemplo, 0.9 para reduzir o movimento da mandíbula em 10%)

Ajuste Fino Específico de Humor

Para modelos com habilitação de humor, você pode ajustar finamente expressões emocionais específicas:

Controle de Sobrancelhas:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Elevação da sobrancelha interna
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Elevação da sobrancelha externa
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Abaixamento da sobrancelha

Controle de Expressão dos Olhos:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Apertar os olhos
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Elevação da bochecha

Comparação e Seleção de Modelos

Escolhendo Entre Modelos

Ao decidir qual modelo de sincronização labial usar para o seu projeto, considere estes fatores:

ConsideraçãoModelo PadrãoModelo RealistaModelo Realista com Humor
Compatibilidade de PersonagemMetaHumans e todos os tipos de personagens personalizadosApenas MetaHumansApenas MetaHumans
Qualidade VisualBoa sincronização labial com desempenho eficienteRealismo aprimorado com movimentos de boca 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, LinuxWindows, Mac, iOS, Linux
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ê está usando Unreal Engine 5.2, os Modelos Realistas podem não funcionar corretamente devido a um bug na biblioteca de reamostragem da UE. Para usuários da UE 5.2 que precisam de funcionalidade de sincronização labial confiável, use o Modelo Padrão em seu lugar.

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

Recomendações de Performance

  • Para a maioria dos projetos, o Modelo Padrão oferece um excelente equilíbrio entre qualidade e desempenho
  • Use o Modelo Realista quando você precisa da mais alta fidelidade visual para personagens MetaHuman
  • Use o Modelo Realista com Humor quando o controle de expressão emocional for importante para sua aplicação
  • Considere as capacidades de desempenho da sua plataforma de destino ao escolher entre os modelos
  • Teste diferentes níveis de otimização para encontrar o melhor equilíbrio para o seu caso de uso específico

Compatibilidade com TTS

Tipo de ModeloSuporte a TTS Local (via Runtime Text To Speech)Suporte a TTS ExternoObservações
Modelo Padrão✅ Suporte total✅ Suporte totalCompatível com todas as opções de TTS
Modelo Realista❌ Suporte limitado✅ Suporte totalConflitos de runtime ONNX com TTS local
Modelo Realista com Humor✅ Suporte total✅ Suporte totalCompatível com todas as opções de TTS

Solução de Problemas

Problemas Comuns

Recriação do Gerador para Modelos Realistas: Para uma operação confiável e consistente com os Modelos Realistas, é 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 a sincronização labial pare de funcionar ao reutilizar geradores após períodos de silêncio.

Compatibilidade com TTS Local: O TTS local fornecido pelo plugin Runtime Text To Speech não é atualmente suportado com o modelo Realista regular devido a conflitos de runtime ONNX. No entanto, é totalmente compatível com o modelo Padrão e o modelo Realista com Humor. Use serviços de TTS externos se você precisar especificamente do modelo Realista regular com funcionalidade TTS.

Responsividade da Sincronização Labial Degradada: Se você perceber que a sincronização labial se torna menos responsiva 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 um novo áudio é anexado. Para evitar esse problema, chame a função ReleaseMemory periodicamente para liberar a memória acumulada, como a cada 30 segundos mais ou menos.

Otimização de Performance:

  • Ajuste o Tamanho do Chunk de Processamento para modelos Realistas com base nos seus requisitos de desempenho
  • Use contagens de threads apropriadas para o seu hardware de destino
  • Considere usar o tipo de saída Apenas Boca para modelos com humor quando a animação facial completa não for necessária