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 Modelo | Desempenho | Qualidade Visual | Tratamento de Ruído | Casos de Uso Recomendados |
---|---|---|---|---|
Altamente Otimizado (Padrão) | Maior desempenho, menor uso de CPU | Boa qualidade | Pode mostrar movimentos de boca perceptíveis com ruído de fundo ou sons não vocais | Ambientes de áudio limpos, cenários críticos de desempenho |
Semi-Otimizado | Bom desempenho, uso moderado de CPU | Alta qualidade | Melhor estabilidade com áudio ruidoso | Desempenho e qualidade balanceados, condições de áudio mistas |
Original | Adequado para uso em tempo real em CPUs modernas | Qualidade mais alta | Mais estável com ruído de fundo e sons não vocais | Produçõ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
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
Guia de Seleção de Humor
Escolha humores apropriados com base no seu conteúdo:
Humor | Melhor Para | Intervalo de Intensidade Típico |
---|---|---|
Neutro | Conversa geral, narração, estado padrão | 0.5 - 1.0 |
Feliz | Conteúdo positivo, diálogo alegre, celebrações | 0.6 - 1.0 |
Triste | Conteúdo melancólico, cenas emocionais, momentos sombrios | 0.5 - 0.9 |
Nojinho | Reações negativas, conteúdo desagradável, rejeição | 0.4 - 0.8 |
Raiva | Diálogo agressivo, cenas de confronto, frustração | 0.6 - 1.0 |
Surpresa | Eventos inesperados, revelações, reações de choque | 0.7 - 1.0 |
Medo | Situações ameaçadoras, ansiedade, diálogo nervoso | 0.5 - 0.9 |
Confiante | Apresentações profissionais, diálogo de liderança, discurso assertivo | 0.7 - 1.0 |
Animado | Conteúdo energético, anúncios, diálogo entusiástico | 0.8 - 1.0 |
Entediado | Conteúdo monótono, diálogo desinteressado, fala cansada | 0.3 - 0.7 |
Brincalhão | Conversa casual, humor, interações descontraídas | 0.6 - 0.9 |
Confuso | Diálogo com muitas perguntas, incerteza, perplexidade | 0.4 - 0.8 |
Configuração do Animation Blueprint
Configuração de Sincronização Labial
- Modelo Padrão
- Modelos Realistas
O nó Blend Runtime MetaHuman Lip Sync
tem opções de configuração em seu painel de propriedades:
Propriedade | Padrão | Descrição |
---|---|---|
Velocidade de Interpolação | 25 | Controla a rapidez com que os movimentos labiais transitam entre visemas. Valores mais altos resultam em transições mais rápidas e abruptas. |
Tempo de Reset | 0.2 | A 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. |
O nó Blend Realistic MetaHuman Lip Sync
tem opções de configuração em seu painel de propriedades:
Propriedade | Padrão | Descrição |
---|---|---|
Velocidade de Interpolação | 30 | Controla a rapidez com que as expressões faciais transitam durante a fala ativa. Valores mais altos resultam em transições mais rápidas e abruptas. |
Velocidade de Interpolação em Repouso | 15 | Controla a rapidez com que as expressões faciais retornam ao estado de repouso/neutro. Valores mais baixos criam retornos mais suaves e graduais para a pose de descanso. |
Tempo de Reset | 0.2 | Duração em segundos após a qual a sincronização labial é reiniciada para o estado de repouso. Útil para evitar que as expressões continuem após o áudio parar. |
Preservar Estado de Repouso | false | Quando habilitado, preserva o último estado emocional durante os períodos de repouso em vez de reiniciar para o neutro. |
Preservar Expressões Oculares | true | Controla se os controles faciais relacionados aos olhos são preservados durante o estado de repouso. Só é efetivo quando Preservar Estado de Repouso está habilitado. |
Preservar Expressões de Sobrancelhas | true | Controla se os controles faciais relacionados às sobrancelhas são preservados durante o estado de repouso. Só é efetivo quando Preservar Estado de Repouso está habilitado. |
Preservar Formato da Boca | false | Controla se os controles de formato da boca (excluindo movimentos específicos de fala como língua e mandíbula) são preservados durante o estado de repouso. Só é efetivo quando Preservar Estado de Repouso está habilitado. |
Preservação do Estado de Repouso
O recurso Preservar Estado de Repouso aborda como o modelo Realista lida com períodos de silêncio. Diferente do modelo Padrão que usa visemas discretos e consistentemente retorna a valores zero durante o silêncio, a rede neural do modelo Realista pode manter posicionamentos faciais sutis que diferem da pose de descanso padrão do MetaHuman.
Quando Habilitar:
- Manter expressões emocionais entre segmentos de fala
- Preservar traços de personalidade do personagem
- Garantir continuidade visual em sequências cinematográficas
Opções de Controle Regional:
- Expressões Oculares: Preserva apertar os olhos, alargar e posicionamento das pálpebras
- Expressões de Sobrancelhas: Mantém o posicionamento das sobrancelhas e testa
- Formato da Boca: Mantém a curvatura geral da boca enquanto permite que movimentos de fala (língua, mandíbula) sejam reiniciados
Animação de Riso
Você também pode adicionar animações de risada que responderão dinamicamente à risada detectada no áudio:
- Adicione o nó
Blend Runtime MetaHuman Laughter
- Conecte sua variável
RuntimeVisemeGenerator
ao pinoViseme Generator
- Se você já estiver usando sincronização labial:
- Conecte a saída do nó
Blend Runtime MetaHuman Lip Sync
aoSource Pose
do nóBlend Runtime MetaHuman Laughter
- Conecte a saída do nó
Blend Runtime MetaHuman Laughter
ao pinoResult
doOutput Pose
- Conecte a saída do nó
- 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
- Conecte sua pose de origem diretamente ao
Quando a risada é detectada no áudio, seu personagem animará dinamicamente de acordo:
Configuração da Riso
O nó Blend Runtime MetaHuman Laughter
tem suas próprias opções de configuração:
Propriedade | Padrão | Descrição |
---|---|---|
Velocidade de Interpolação | 25 | Controla 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 Reset | 0.2 | A 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 Riso | 0.7 | Escala 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:
- Adicione um nó
Layered blend per bone
entre suas animações corporais e a saída final. Certifique-se de queUse Attached Parent
esteja verdadeiro. - Configure a configuração da camada:
- Adicione 1 item ao array
Layer Setup
- Adicione 3 itens aos
Branch Filters
para a camada, com os seguintesBone Name
s:FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- Adicione 1 item ao array
- 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. - Faça as conexões:
- Animações existentes (como
BodyPose
) → entradaBase 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
- Animações existentes (como
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:
- Após o seu nó de blend de sincronização labial, adicione um nó
Modify Curve
- Clique com o botão direito no nó
Modify Curve
e selecione Add Curve Pin - Adicione um pino de curva com o nome
CTRL_expressions_tongueOut
- Defina a propriedade Apply Mode do nó para Scale
- 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:
- Após o seu nó de blend de sincronização labial, adicione um nó
Modify Curve
- Clique com o botão direito no nó
Modify Curve
e selecione Add Curve Pin - Adicione um pino de curva com o nome
CTRL_expressions_jawOpen
- Defina a propriedade Apply Mode do nó para Scale
- 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 internaCTRL_expressions_browRaiseOuterL
/CTRL_expressions_browRaiseOuterR
- Elevação da sobrancelha externaCTRL_expressions_browDownL
/CTRL_expressions_browDownR
- Abaixamento da sobrancelha
Controle de Expressão dos Olhos:
CTRL_expressions_eyeSquintInnerL
/CTRL_expressions_eyeSquintInnerR
- Apertar os olhosCTRL_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ção | Modelo Padrão | Modelo Realista | Modelo Realista com Humor |
---|---|---|---|
Compatibilidade de Personagem | MetaHumans e todos os tipos de personagens personalizados | Apenas MetaHumans | Apenas MetaHumans |
Qualidade Visual | Boa sincronização labial com desempenho eficiente | Realismo aprimorado com movimentos de boca mais naturais | Realismo aprimorado com expressões emocionais |
Desempenho | Otimizado para todas as plataformas, incluindo mobile/VR | Requisitos de recursos mais altos | Requisitos de recursos mais altos |
Recursos | 14 visemas, detecção de risada | 81 controles faciais, 3 níveis de otimização | 81 controles faciais, 12 humores, saída configurável |
Suporte de Plataforma | Windows, Android, Quest | Windows, Mac, iOS, Linux | Windows, Mac, iOS, Linux |
Casos de Uso | Aplicações gerais, jogos, VR/AR, mobile | Experiências cinematográficas, interações em close-up | Narrativa emocional, interação avançada de personagens |
Compatibilidade de Versão do Engine
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 Modelo | Suporte a TTS Local (via Runtime Text To Speech) | Suporte a TTS Externo | Observações |
---|---|---|---|
Modelo Padrão | ✅ Suporte total | ✅ Suporte total | Compatível com todas as opções de TTS |
Modelo Realista | ❌ Suporte limitado | ✅ Suporte total | Conflitos de runtime ONNX com TTS local |
Modelo Realista com Humor | ✅ Suporte total | ✅ Suporte total | Compatí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