Pular para o conteúdo principal

Configuração do Plugin

Configuração do Modelo

Recrie geradores de modelos realistas para cada reprodução.

Para uma operação confiável com os modelos Realistic e Mood-Enabled Realistic, recrie o gerador antes de cada nova reprodução de áudio em vez de reutilizá-lo durante longos silêncios. Consulte Recriação do Gerador em Solução de Problemas para obter 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 por meio das propriedades do nó de mistura do Animation Blueprint.

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

Configuração Realista do Modelo

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 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 apresentar movimentos da 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 equilibrados, condições de áudio mistas
OriginalAdequado para uso em tempo real em CPUs modernasQualidade máximaMais estável com ruído de fundo e sons não vocaisProduções de alta qualidade, ambientes de áudio ruidosos, quando a precisão máxima é 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 (normalmente 1/4 dos núcleos de CPU disponíveis, máximo de 4)
  • 1-16: Especifique manualmente o número de threads. Valores mais altos podem melhorar o desempenho em sistemas multi-core, mas usam mais CPU.

Threads entre Operações: Controla o número de threads usados para a execução paralela de diferentes operações do modelo.

  • 0 (Padrão/Automático): Usa detecção automática (normalmente 1/8 dos núcleos de CPU disponíveis, máximo 2)
  • 1-8: Especifique manualmente a contagem de threads. Geralmente mantida baixa para processamento em tempo real.

Tamanho do Bloco de Processamento

O Tamanho do Bloco 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 da 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

Setting Processing Chunk Size

Configuração de Modelo com Suporte a 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 lookahead em milissegundos para maior precisão do lip sync.

  • Padrão: 80ms
  • Intervalo: 20ms a 200ms (deve ser divisível por 20)
  • Valores maiores proporcionam 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 que o modelo realista comum.

Configurações de Humor

Humores disponíveis:

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

Intensidade do Humor: Controla o quão fortemente 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:

  • 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 lookahead para sincronização
  • Definir Tipo de Saída: Alternar entre os controles de Rosto Completo e Somente Boca

Mood Configuration

Guia de Seleção de Humor

Escolha humores apropriados com base no seu conteúdo:

MoodMelhor ParaFaixa de Intensidade Típica
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
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, discurso assertivo0.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 descontraídas0.6 - 0.9
ConfusoDiálogo cheio de perguntas, incerteza, perplexidade0.4 - 0.8

Configuração do Animation Blueprint

Configuração de Lip Sync

O nó Blend Runtime MetaHuman Lip Sync tem opções de configuração no 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 a sincronização labial é redefinida. Isso é útil para evitar que a sincronização labial continue após o áudio ter parado.

Animação de Risada

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á está 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 risadas sem sincronização labial:
    • Conecte sua pose de origem diretamente ao pino Source Pose do nó Blend Runtime MetaHuman Laughter
    • Conecte a saída ao pino Result

Blend Runtime MetaHuman Laughter

Quando risadas forem detectadas no áudio, seu personagem se animará dinamicamente de acordo:

Configuração de 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 dos lábios fazem a transição entre as animações de riso. Valores mais altos resultam em transições mais rápidas e abruptas.
Tempo de Redefinição0.2A duração em segundos após a qual o riso é redefinido. Isso é ú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).

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

Combinando com animações existentes

Vídeo passo a passo

Prefere assistir em vez de ler? Confira o tutorial em vídeo que aborda exatamente esta configuração.

Para aplicar sincronização labial e risadas juntamente com as animações corporais existentes e animações faciais personalizadas sem substituí-las:

Animações do corpo

Esta configuração se aplica ao Animation Blueprint do rosto, pois a sincronização labial não faz parte do Animation Blueprint do corpo. Para animações corporais personalizadas (por exemplo, tronco, braços e outros movimentos do corpo), basta conectar sua sequência de animação (via um Sequence Player) diretamente à pose de saída no Animation Blueprint do corpo. Nenhuma configuração adicional é necessária lá.

  1. Adicione um nó Layered blend per bone entre as suas animações corporais e a saída final. Certifique-se de que Use Attached Parent esteja ativado.
  2. Ajuste a configuração das camadas:
    • 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: Na Curve Blend Option, selecione "Use Max Value". Isso permite que animações faciais personalizadas (expressões, emoções, etc.) sejam devidamente sobrepostas à sincronização labial.
  4. Faça as conexões:
    • Sua animação personalizada (normalmente um Sequence Player com o asset de sequência de animação desejado) → entrada Base Pose
    • Saída de animação facial (de nós de sincronização labial e/ou risada) → entrada Blend Poses 0
    • Nó de blend em camadas → pose final Result

Layered Blend Per Bone

Seleção de Conjunto de Morph Targets

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

Ajuste Fino do Comportamento do Lip Sync

Escalando Curvas Específicas de Sincronização Labial

Você pode atenuar (ou amplificar) movimentos faciais individuais produzidos pela sincronização labial usando um nó Modify Curve. Isso é útil quando uma curva específica parece exagerada demais para o seu conteúdo de áudio ou personagem.

Configuração:

  1. Após o seu nó de mistura de sincronização labial, adicione um nó Modify Curve
  2. Clique com o botão direito no nó e selecione Add Curve Pin e, em seguida, insira o nome da curva que você 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 amplificam (ex.: 0.8 = 20% de redução)

Curvas comumente escaladas:

Nome da CurvaFinalidadeAplica-se aAjuste Típico
CTRL_expressions_tongueOutProtrusão da língua para a frente durante certos fonemasModelo padrão0.8 para reduzir a protrusão
CTRL_expressions_jawOpenAmplitude de abertura da mandíbulaModelos realistas0.9 para reduzir o movimento da mandíbula

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

Ajuste fino específico de humor

Para modelos com suporte a humor, você pode ajustar 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 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 o seu projeto, considere estes fatores:

ConsideraçãoModelo PadrãoModelo RealistaModelo Realista com Humor
Compatibilidade de PersonagensMetaHumans e todos os tipos de personagens personalizadosPersonagens MetaHumans (e personagens ARKit)Personagens MetaHumans (e personagens ARKit)
Qualidade VisualBoa sincronização labial com desempenho eficienteRealismo aprimorado com movimentos da boca mais naturaisRealismo aprimorado com expressões emocionais
DesempenhoOtimizado para todas as plataformas, incluindo mobile/VRMaiores requisitos de recursosMaiores requisitos de recursos
Recursos14 visemas, detecção de riso81 controles faciais, 3 níveis de otimização81 controles faciais, 12 humores, saída configurável
Suporte a PlataformasWindows, 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 de pertoNarrativa emocional, interação avançada de personagens

Compatibilidade de Versão do Engine

Problema de Compatibilidade com UE 5.2

Se você estiver usando o 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 do UE 5.2 que precisam de funcionalidade confiável de sincronização labial, use o Modelo Padrão em vez disso.

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

Recomendações de Desempenho

  • Para a maioria dos projetos, o Modelo Padrão oferece um excelente equilíbrio entre qualidade e desempenho.
  • Use o Modelo Realista quando precisar da mais alta fidelidade visual para personagens MetaHuman.
  • Use o Modelo Realista com Controle de Humor quando o controle da expressão emocional for importante para o seu aplicativo.
  • 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.

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ê poderia recriar o gerador de sincronização labial a cada início de reprodução, como sempre que você chamar Play Sound 2D ou usar qualquer outro método para iniciar a reprodução de ondas sonoras e a sincronização labial:

Recreate Lip Sync Generator On Play Sound

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

  1. Encontre ambos os plugins na sua pasta de instalação da UE em \Engine\Plugins\Marketplace (por exemplo, C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Mova as pastas RuntimeMetaHumanLipSync e RuntimeTextToSpeech para a pasta Plugins do seu projeto
  3. Se o seu projeto não tiver uma pasta Plugins, crie uma no mesmo diretório do 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 mecanismo.

Configuração de empacotamento (Windows): Se a sincronização labial não estiver funcionando corretamente no seu projeto empacotado no Windows, certifique-se de estar usando a configuração de build Shipping em vez da Development. A configuração Development pode causar problemas com o runtime ONNX dos modelos realistas em builds empacotados.

Para corrigir isso:

  1. Nas Configurações do Projeto → Empacotamento, defina a Configuração de Build como Shipping
  2. Reempacote seu projeto

Shipping Configuration

Projetos Somente Blueprint

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

Responsividade Degradada do Lip Sync: Se você notar que o lip sync fica menos responsivo com o tempo ao usar Streaming Sound Wave ou Capturable Sound Wave, isso pode ser causado pelo acúmulo de memória. Por padrão, a memória é realocada cada vez que um novo áudio é acrescentado. Para evitar esse problema, chame a função ReleaseMemory periodicamente para liberar a memória acumulada, por exemplo, a cada 30 segundos, aproximadamente.

Otimização de desempenho:

  • Ajuste o tamanho do bloco de processamento para modelos realistas de acordo com seus requisitos de desempenho.
  • Use a quantidade de threads adequada ao seu hardware de destino.
  • Considere usar o tipo de saída Mouth Only para modelos com suporte a humor quando a animação facial completa não for necessária.