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 Realista e Realista com Controle de Humor, 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 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 é gerenciada 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 de 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 Model Type determina qual versão do modelo realista será utilizada:

Tipo de ModeloDesempenhoQualidade VisualTratamento de RuídoCasos de Uso Recomendados
Altamente Otimizado (Padrão)Maior desempenho, menor uso de CPUBoa qualidadePode apresentar movimentos labiais perceptíveis com ruído de fundo ou sons não vocais.Ambientes de áudio limpos, cenários críticos de desempenho
Semi-OtimizadoBom desempenho, uso moderado de CPUAlta qualidadeMaior estabilidade com áudio ruidosoDesempenho e qualidade equilibrados, condições de áudio mistas
OriginalAdequado para uso em tempo real em CPUs modernasMáxima qualidadeMais 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 internas de processamento do modelo.

  • 0 (Padrão/Automático): Usa detecção automática (geralmente 1/4 dos núcleos de CPU disponíveis, máximo 4)
  • 1-16: Especifique manualmente a quantidade 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 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: Especifica manualmente a contagem 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 da CPU
  • Valores maiores reduzem a carga da CPU, mas podem diminuir a capacidade de resposta da sincronização labial
  • Recomenda-se usar múltiplos de 160 para um alinhamento ideal

Setting Processing Chunk Size

Configuração de Modelo com Suporte a Humor

O nó Create Realistic MetaHuman Lip Sync With Mood Generator oferece 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 melhorar a precisão da sincronização labial.

  • Padrão: 80ms
  • Intervalo: 20ms a 200ms (deve ser divisível por 20)
  • Valores mais altos 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)
  • Apenas Boca: Apenas controles relacionados à boca, mandíbula e língua

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

Configurações de Humor

Humor Disponíveis:

  • Neutro, Feliz, Triste, Nojo, Raiva, Surpresa, Medo
  • Confiante, Empolgado, 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 Real

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

  • Definir Humor: Altera o tipo de humor atual
  • Definir Intensidade do Humor: Ajusta o quão fortemente o humor afeta a animação (0,0 a 1,0)
  • Definir Lookahead (ms): Modifica o tempo de antecipação para sincronização
  • Definir Tipo de Saída: Alterna entre os controles de Rosto Completo e Apenas 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
BrinquedãoConversa casual, humor, interações leves0.6 - 0.9
Confuso(a)Diálogo repleto de perguntas, incerteza, perplexidade0.4 - 0.8

Configuração do Animation Blueprint

Configuração de Sincronização Labial

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 fazem a transição entre visemas. Valores mais altos resultam em transições mais rápidas e abruptas.
Redefinir Tempo0,2A duração em segundos após a qual o lip sync é redefinido. 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 à Source Pose do nó Blend Runtime MetaHuman Laughter
    • Conecte a saída do nó Blend Runtime MetaHuman Laughter ao pino Result da Output Pose
  4. Se estiver usando apenas risadas sem sincronia 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 uma risada é detectada no áudio, seu personagem se animará dinamicamente de acordo:

Configuração de Risada

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 fazem a transição entre animações de risada. Valores mais altos resultam em transições mais rápidas e abruptas.
Redefinir Tempo0,2A duração em segundos após a qual o riso é reiniciado. Isso é útil para evitar que o riso continue após o áudio ter parado.
Peso Máximo da Risada0.7Escala a intensidade máxima da animação de risada (0,0 - 1,0).

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

Combinando com Animações Existentes

Para aplicar sincronia labial e risadas junto com animações corporais existentes e animações faciais personalizadas sem substituí-las:

Animações corporais

Esta configuração se aplica ao Animation Blueprint do rosto, já que a sincronização labial não faz parte do Animation Blueprint do corpo. Para animações corporais personalizadas (ex.: 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 ali.

  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 configuração da camada:
    • Adicione 1 item ao array Layer Setup
    • Adicione 3 itens aos Branch Filters da camada, com os seguintes Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Importante para animações faciais personalizadas: Na Opção de Combinação de Curvas, selecione "Usar Valor Máximo". Isso permite que animações faciais personalizadas (expressões, emoções, etc.) sejam sobrepostas adequadamente à 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 desejada) → entrada Base Pose
    • Saída de animação facial (dos nós de sincronia labial e/ou riso) → entrada Blend Poses 0
    • Nó de mesclagem em camadas → pose Result final

Layered Blend Per Bone

Seleção de Conjunto de Alvos de Morph

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

Ajuste Fino do Comportamento de Sincronização Labial

Escala de 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 muito pronunciada para o seu conteúdo de áudio ou personagem.

Configuração:

  1. Após o seu nó de blend de sincronia labial, adicione um nó Modify Curve
  2. Clique com o botão direito no nó e selecione Add Curve Pin, em seguida, insira 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 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 fonemasModelo padrão0.8 para reduzir a protrusão
CTRL_expressions_jawOpenAlcance de abertura da mandíbulaModelos realistas0.9 para reduzir o movimento da mandíbula

Você pode adicionar múltiplos pinos de curva ao mesmo nó Modify Curve para escalonar várias curvas de uma só vez.

Ajuste Fino Específico para Humor

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

Controle de Sobrancelhas:

  • 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 sincronização labial usar para seu projeto, considere estes fatores:

ConsideraçãoModelo PadrãoModelo RealistaModelo Realista com Suporte a Humor
Compatibilidade de PersonagensMetaHumans e todos os tipos de personagens personalizadosMetaHumans (e personagens ARKit)MetaHumans (e personagens ARKit)
Qualidade VisualBoa sincronização labial com desempenho eficienteRealismo aprimorado com movimentos bucais mais naturaisRealismo aprimorado com expressões emocionais
DesempenhoOtimizado para todas as plataformas, incluindo dispositivos móveis/VR.Maiores requisitos de recursosMaiores requisitos de recursos
Funcionalidades14 visemas, detecção de risada81 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, RV/RA, dispositivos móveisExperiê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 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 da UE 5.2 que precisam de funcionalidade confiável de sincronização labial, use o Modelo Padrão como alternativa.

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

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 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 seu caso de uso específico

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 sempre que desejar 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.

Por exemplo, você pode recriar o gerador de sincronização labial a cada início de reprodução, como sempre que chamar Play Sound 2D ou usar qualquer outro método para iniciar a reprodução de onda sonora e a sincronização labial:

Recreate Lip Sync Generator On Play Sound

Localização do Plugin para Integração de Runtime Text To Speech: Ao usar o Runtime MetaHuman Lip Sync em conjunto com o Runtime Text To Speech (ambos os plugins utilizam o ONNX Runtime), você pode enfrentar problemas em builds empacotados se os plugins estiverem instalados na pasta Marketplace do motor. 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 o seu projeto não tiver uma pasta Plugins, crie uma no mesmo diretório do seu arquivo .uproject
  4. Reinicie o Unreal Editor

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

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 compilação Shipping em vez de 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 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++ (ela pode estar vazia). Para fazer isso, vá em Ferramentas → Nova Classe C++ 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 apenas com Blueprint em funcionalidade, a classe C++ é necessária apenas para a configuração de compilação adequada.

Responsividade Degradada do Lip Sync: Se você perceber 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 pelo 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, por exemplo, a cada 30 segundos ou mais.

Otimização de Desempenho:

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