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 é tratada 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 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á usada:

Tipo de ModeloDesempenhoQualidade VisualTratamento de RuídoCasos de Uso Recomendados
Altamente Otimizado (Padrão)Maior desempenho, menor uso de CPUBoa qualidadePode apresentar 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 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 máxima precisão é necessária

Configurações de desempenho

Intra Op Threads: Controla o número de threads usados 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 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

Inter Op Threads: 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 o número de threads. Geralmente mantido baixo para processamento em tempo real

Tamanho do Processamento em Blocos

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 de 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 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 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)
  • 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, Nojo, 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 Real

Você pode ajustar as configurações de humor durante o runtime 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 lookahead para sincronização
  • Definir Tipo de Saída: Alterna entre 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 Típica 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 sombrios0.5 - 0.9
NojoReações negativas, conteúdo repugnante, 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
AnimadoConteú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 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 possui opções de configuração no 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 Redefinição0.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 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á está 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 risadas 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 se animará dinamicamente de acordo:

Configuração de Riso

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 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 depois que o áudio parou.
Peso Máximo do Riso0.7Escala a intensidade máxima da animação de riso (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

Demonstração em vídeo

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

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

Animações corporais

Esta configuração se aplica ao Animation Blueprint do rosto, pois o lip sync 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 de corpo e a saída final. Certifique-se de que Use Attached Parent esteja definido como verdadeiro.
  2. Configure a configuração das camadas:
    • 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 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:
    • 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 lip sync e/ou risada) → entrada Blend Poses 0
    • Nó de blend 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, por natureza, suportam qualquer convenção de nomenclatura de morph targets por meio da configuração personalizada de pose asset. Nenhuma configuração adicional é necessária.

Ajuste Fino do Comportamento de Lip Sync

Escalando Curvas Específicas de 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 exagerada demais para o seu conteúdo de áudio ou personagem.

Configuração:

  1. Após o seu 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, depois 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 CurvaFinalidadeAplica-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_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 só vez.

Ajuste Fino Específico por Humor

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

Controle de Sobrancelhas:

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

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 de Modelos e Seleção

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 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 mobile/VRRequisitos de recursos mais elevadosRequisitos de recursos mais elevados
Recursos14 visemas, detecção de riso81 controles faciais, 3 níveis de otimização81 controles faciais, 12 humores, saída configurável
Suporte de 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 em close-upNarrativa emocional, interação avançada com 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 em vez disso.

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

Recomendações de Desempenho

  • Para a maioria dos projetos, o Standard Model oferece 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 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 Modelos Realistas: Para uma operação confiável e consistente com os Modelos Realistas, é recomendado recriar o gerador sempre 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.

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 da onda sonora e a sincronização labial:

Recreate Lip Sync Generator On Play Sound

Localização 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 enfrentar problemas se os plugins estiverem instalados na pasta Marketplace do engine. Para corrigir isso:

  1. Localize ambos os plugins na 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 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 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 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 Somente Blueprint

Em alguns projetos somente Blueprint, o Unreal Engine pode ainda compilar na configuração Development mesmo quando Shipping é selecionado. Se isso acontecer, converta seu projeto para um projeto C++ adicionando pelo menos uma classe C++ (ela pode ser 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 somente Blueprint em funcionalidade; a classe C++ é necessária apenas para a configuração de compilação adequada.

Capacidade de Resposta Degradada do Lip Sync: Se você perceber que o lip sync fica 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 bloco de processamento para modelos Realistic com base nos seus requisitos de desempenho
  • Use contagens de threads apropriadas para o seu hardware alvo
  • Considere usar o tipo de saída Mouth Only para modelos habilitados para mood quando a animação facial completa não for necessária