Como usar o plugin
Este guia orienta você através do processo de configuração do Runtime MetaHuman Lip Sync para seus personagens MetaHuman.
Nota: O Runtime MetaHuman Lip Sync funciona tanto com MetaHumans quanto com personagens personalizados. O plugin suporta vários tipos de personagens, incluindo:
- Personagens comerciais populares (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc)
- Personagens com blendshapes baseados em FACS
- Modelos que usam os padrões de blendshape do ARKit
- Personagens com conjuntos de fonemas Preston Blair
- Sistemas de fonemas do 3ds Max
- Qualquer personagem com morph targets personalizados para expressões faciais
Para instruções detalhadas sobre como configurar personagens personalizados, incluindo referências de mapeamento de visemas para todos os padrões acima, consulte o Guia de configuração de personagens personalizados.
Pré-requisitos
Antes de começar, certifique-se de que:
- O plugin MetaHuman está ativado em seu projeto (Nota: A partir do UE 5.6, esta etapa não é mais necessária, pois a funcionalidade MetaHuman está integrada diretamente no engine)
- Você tem pelo menos um personagem MetaHuman baixado e disponível em seu projeto
- O plugin Runtime MetaHuman Lip Sync está instalado
Plugin de Extensão do Modelo Padrão
Se você planeja usar o Modelo Padrão (Mais Rápido), você precisará instalar o plugin de extensão:
- Baixe o plugin de extensão Standard Lip Sync Extension no Google Drive
- Extraia a pasta do arquivo baixado para a pasta
Plugins
do seu projeto (crie esta pasta se ela não existir) - Certifique-se de que seu projeto está configurado como um projeto C++ (mesmo que você não tenha nenhum código C++)
- Recompile seu projeto
- Esta extensão é necessária apenas se você quiser usar o Modelo Padrão. Se você só precisa do Modelo Realista, você pode pular esta etapa.
- Para mais informações sobre como compilar plugins manualmente, consulte o tutorial Construindo Plugins
Plugins Adicionais
- Se você planeja usar captura de áudio (por exemplo, entrada de microfone), instale o plugin Runtime Audio Importer.
- Se você planeja usar funcionalidade de texto-para-voz com meus plugins (você pode ter seu próprio TTS personalizado ou outra entrada de áudio), então, além do plugin Runtime Audio Importer, instale também:
- Para TTS local, o plugin Runtime Text To Speech.
- Para provedores de TTS externos (ElevenLabs, OpenAI), o plugin Runtime AI Chatbot Integrator.
Processo de Configuração
Passo 1: Localize e modifique o Blueprint de animação facial
- UE 5.5 e Anteriores (ou MetaHumans Legacy no UE 5.6+)
- Personagens do MetaHuman Creator UE 5.6+
Você precisa modificar um Animation Blueprint que será usado para as animações faciais do seu personagem MetaHuman. O Animation Blueprint facial padrão do MetaHuman está localizado em:
Content/MetaHumans/Common/Face/Face_AnimBP
Você tem várias opções para implementar a funcionalidade de lip sync:
- Editar Asset Padrão (Opção Mais Simples)
- Criar Duplicata
- Usar Animation Blueprint Personalizado
Abra o Face_AnimBP
padrão diretamente e faça suas modificações. Quaisquer alterações afetarão todos os personagens MetaHuman usando este Animation Blueprint.
Nota: Esta abordagem é conveniente, mas impactará todos os personagens usando o Animation Blueprint padrão.
- Duplique o
Face_AnimBP
e dê a ele um nome descritivo - Localize a classe Blueprint do seu personagem (por exemplo, para o personagem "Bryan", estaria em
Content/MetaHumans/Bryan/BP_Bryan
) - Abra o Blueprint do personagem e encontre o componente Face
- Altere a propriedade Anim Class para o seu Animation Blueprint recém-duplicado
Nota: Esta abordagem permite que você personalize o lip sync para personagens específicos enquanto deixa outros inalterados.
Você pode implementar a mesclagem de lip sync em qualquer Animation Blueprint que tenha acesso aos ossos faciais necessários:
- Crie ou use um Animation Blueprint personalizado existente
- Certifique-se de que seu Animation Blueprint funcione com um esqueleto que contenha os mesmos ossos faciais do
Face_Archetype_Skeleton
padrão do MetaHuman (que é o esqueleto padrão usado para qualquer personagem MetaHuman)
Nota: Esta abordagem oferece a máxima flexibilidade para integração com sistemas de animação personalizados.
A partir do UE 5.6, o novo sistema MetaHuman Creator foi introduzido, que cria personagens sem o asset tradicional Face_AnimBP
. Para esses personagens, o plugin fornece um Animation Blueprint facial localizado em:
Content/LipSyncData/LipSync_Face_AnimBP
Este Animation Blueprint está localizado na pasta de conteúdo do plugin e será substituído a cada atualização do plugin. Para evitar perder suas personalizações, é altamente recomendado:
- Copiar este ativo para a pasta Content do seu projeto (por exemplo, para
YourProject/Content/MetaHumans/LipSync_Face_AnimBP
) - Usar sua versão copiada na configuração do seu personagem
- Fazer todas as suas modificações na versão copiada
Isso garante que suas configurações de lip sync persistirão através das atualizações do plugin.
Usando o Face Animation Blueprint do Plugin:
- Localize a classe Blueprint do seu personagem do MetaHuman Creator
- Abra o Blueprint do personagem e encontre o componente Face
- Altere a propriedade Anim Class para o
LipSync_Face_AnimBP
do plugin - Continue com os Passos 2-4 para configurar a funcionalidade Runtime MetaHuman Lip Sync
Opções Alternativas:
- Usar Instruções Legadas: Você ainda pode seguir as instruções do UE 5.5 acima se estiver trabalhando com MetaHumans legados ou preferir o fluxo de trabalho tradicional
- Criar Animation Blueprint Personalizado: Crie seu próprio Animation Blueprint que funcione com a estrutura de esqueleto do MetaHuman Creator
Nota: Se você estiver usando UE 5.6+ mas trabalhando com MetaHumans legados (não criados através do MetaHuman Creator), use as instruções da aba "UE 5.5 e Anteriores" em vez disso.
Importante: A mesclagem do Runtime MetaHuman Lip Sync pode ser implementada em qualquer ativo Animation Blueprint que tenha acesso a uma pose contendo os ossos faciais presentes no Face_Archetype_Skeleton
padrão do MetaHuman. Você não está limitado às opções acima - estas são apenas abordagens de implementação comuns.
Passo 2: Configuração do Event Graph
Abra seu Face Animation Blueprint e mude para o Event Graph
. Você precisará criar um gerador que processará dados de áudio e gerará animação de lip sync.
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
- Adicione o nó
Event Blueprint Begin Play
se ele não existir ainda - Adicione o nó
Create Runtime Viseme Generator
e conecte-o ao evento Begin Play - Salve a saída como uma variável (ex: "VisemeGenerator") para uso em outras partes do gráfico
- Adicione o nó
Event Blueprint Begin Play
se ele não existir ainda - Adicione o nó
Create Realistic MetaHuman Lip Sync Generator
e conecte-o ao evento Begin Play - Salve a saída como uma variável (ex: "RealisticLipSyncGenerator") para uso em outras partes do gráfico
- (Opcional) Configure as definições do gerador usando o parâmetro Configuration
- (Opcional) Defina o Processing Chunk Size no objeto Realistic MetaHuman Lip Sync Generator

Nota: O Modelo Realista é otimizado especificamente para personagens MetaHuman e não é compatível com tipos de personagens personalizados.
Opções de Configuração
O nó Create Realistic MetaHuman Lip Sync Generator
aceita um parâmetro opcional de Configuration 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 |
---|---|---|---|---|
Highly Optimized (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 |
Optimized | Bom desempenho, uso moderado de CPU | Alta qualidade | Melhor estabilidade com áudio ruidoso | Desempenho e qualidade balanceados, condições de áudio mistas |
Original Unoptimized | 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 (normalmente 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 (normalmente 1/8 dos núcleos de CPU disponíveis, máximo 2)
- 1-8: Especifica manualmente a contagem de threads. Normalmente mantido baixo para processamento em tempo real
Usando a Configuração
Para configurar o gerador:
- No nó
Create Realistic MetaHuman Lip Sync Generator
, expanda o parâmetro Configuration - Defina Model Type para sua opção preferida:
- Use Highly Optimized para melhor desempenho (recomendado para a maioria dos usuários)
- Use Optimized para desempenho e qualidade balanceados
- Use Original Unoptimized apenas quando a qualidade máxima é essencial
- Ajuste Intra Op Threads e Inter Op Threads se necessário (deixe em 0 para detecção automática na maioria dos casos) Recomendações de Performance:
- Para a maioria dos projetos com áudio limpo, use Altamente Otimizado para melhor performance
- Se você está trabalhando com áudio que contém ruído de fundo, música ou sons não vocais, considere usar os modelos Otimizado ou Original Não Otimizado para melhor estabilidade
- O modelo Altamente Otimizado pode mostrar movimentos sutis da boca ao processar áudio não vocal devido às técnicas de otimização aplicadas durante a criação do modelo
- O modelo Original Não Otimizado, embora exija mais recursos de CPU, ainda é adequado para aplicações em tempo real em hardware moderno e fornece os resultados mais precisos em condições de áudio desafiadoras
- Ajuste as contagens de threads apenas se estiver enfrentando problemas de performance ou tiver requisitos específicos de otimização
- Contagens maiores de threads nem sempre significam melhor performance - os valores ideais dependem do seu hardware específico e requisitos do projeto
Configuração do 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, que corresponde a 10ms de áudio a 16kHz (a taxa de amostragem de processamento interna). Você pode ajustar este valor para equilibrar entre frequência de atualização e uso de CPU:
- Valores menores fornecem atualizações mais frequentes mas aumentam o uso de CPU
- Valores maiores reduzem a carga da CPU mas podem diminuir a responsividade da sincronização labial
Para configurar o Tamanho do Bloco de Processamento:
- Acesse seu objeto
Realistic MetaHuman Lip Sync Generator
- Localize a propriedade
Processing Chunk Size
- Defina seu valor desejado
É recomendado usar valores que sejam múltiplos de 160. Isso se alinha com a estrutura de processamento interna do modelo. Valores recomendados incluem:
160
(padrão, mínimo recomendado)320
480
640
- etc.
O Tamanho do Bloco de Processamento padrão de 160
amostras corresponde a 10ms de áudio a 16kHz. Usar múltiplos de 160 mantém o alinhamento com esta unidade base, o que pode ajudar a otimizar a eficiência de processamento e manter comportamento consistente entre diferentes tamanhos de bloco.
Para operação confiável e consistente com o Modelo Realista, é obrigatório recriar o Realistic MetaHuman Lip Sync Generator 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 a sincronização labial parar de funcionar ao reutilizar geradores após períodos de silêncio.
Cenário de exemplo: Se você realizou sincronização labial TTS e depois parou, e mais tarde quer realizar sincronização labial novamente com novo áudio, crie um novo Realistic MetaHuman Lip Sync Generator em vez de reutilizar o existente.
Passo 3: Configure o processamento de entrada de áudio
Você precisa configurar um método para processar a entrada de áudio. Existem várias maneiras de fazer isso dependendo da sua fonte de áudio.
- Microphone (Real-time)
- Microphone (Playback)
- Text-to-Speech (Local)
- Text-to-Speech (External APIs)
- De Arquivo/Buffer de Áudio
- Buffer de Áudio em Streaming
Esta abordagem executa lip sync em tempo real enquanto fala no microfone:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Crie uma Capturable Sound Wave usando Runtime Audio Importer
- Antes de começar a capturar áudio, vincule-se ao delegado
OnPopulateAudioData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator - Inicie a captura de áudio do microfone
O Realistic Model usa o mesmo fluxo de trabalho de processamento de áudio que o Standard Model, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Standard Model, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes de função e parâmetros permanecem idênticos entre ambos os modelos
Esta abordagem captura áudio de um microfone e, em seguida, o reproduz com lip sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Crie uma Capturable Sound Wave usando Runtime Audio Importer
- Inicie a captura de áudio do microfone
- Antes de reproduzir a capturable sound wave, vincule-se ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator
O Modelo Realista utiliza o mesmo fluxo de trabalho de processamento de áudio do Modelo Padrão, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Modelo Padrão, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes de funções e parâmetros permanecem idênticos entre ambos os modelos
Nota: Se você deseja processar dados de áudio em partes menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (transmitindo a cada ~6,67 ms) em vez de 100 (transmitindo a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
- Regular
- Streaming
Esta abordagem sintetiza fala a partir de texto e executa sincronização labial:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Use Runtime Text To Speech para gerar fala a partir de texto
- Use Runtime Audio Importer para importar o áudio sintetizado
- Antes de reproduzir a onda sonora importada, vincule-se ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator
O TTS local fornecido pelo plugin Runtime Text To Speech não é atualmente suportado com o modelo Realista devido a conflitos de runtime ONNX. Para text-to-speech com o modelo Realista, considere usar serviços TTS externos (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou use o modelo Padrão.
Nota: Se você deseja processar dados de áudio em partes menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (transmitindo a cada ~6,67 ms) em vez de 100 (transmitindo a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
Esta abordagem usa síntese de texto-para-voz em streaming com sincronização labial em tempo real:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Use Runtime Text To Speech para gerar fala em streaming a partir de texto
- Use Runtime Audio Importer para importar o áudio sintetizado
- Antes de reproduzir a onda sonora em streaming, vincule-se ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator
O TTS local fornecido pelo plugin Runtime Text To Speech não é atualmente suportado com o modelo Realistic devido a conflitos do runtime ONNX. Para texto-para-voz com o modelo Realistic, considere usar serviços de TTS externos (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou use o modelo Standard.
Nota: Se você quiser processar dados de áudio em partes menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (streaming a cada ~6,67 ms) em vez de 100 (streaming a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
- Regular
- Streaming
Esta abordagem usa o plugin Runtime AI Chatbot Integrator para gerar fala sintetizada a partir de serviços de IA (OpenAI ou ElevenLabs) e realizar sincronização labial:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Use Runtime AI Chatbot Integrator para gerar fala a partir de texto usando APIs externas (OpenAI, ElevenLabs, etc.)
- Use Runtime Audio Importer para importar os dados de áudio sintetizados
- Antes de reproduzir a onda sonora importada, vincule-se ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator

O Modelo Realista utiliza o mesmo fluxo de trabalho de processamento de áudio do Modelo Padrão, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Modelo Padrão, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes de funções e parâmetros permanecem idênticos entre ambos os modelos
Nota: Se você deseja processar dados de áudio em blocos menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (streaming a cada ~6,67 ms) em vez de 100 (streaming a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
Esta abordagem usa o plugin Runtime AI Chatbot Integrator para gerar fala sintetizada em streaming de serviços de IA (OpenAI ou ElevenLabs) e realizar sincronização labial:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Use Runtime AI Chatbot Integrator para conectar a APIs de TTS em streaming (como a API de Streaming da ElevenLabs)
- Use Runtime Audio Importer para importar os dados de áudio sintetizados
- Antes de reproduzir a onda sonora em streaming, vincule ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator
O Modelo Realista utiliza o mesmo fluxo de trabalho de processamento de áudio do Modelo Padrão, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Modelo Padrão, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes de funções e parâmetros permanecem idênticos entre ambos os modelos
Nota: Se você quiser processar dados de áudio em pedaços menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (transmitindo a cada ~6,67 ms) em vez de 100 (transmitindo a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
Esta abordagem usa arquivos de áudio pré-gravados ou buffers de áudio para sincronização labial:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
- Use Runtime Audio Importer para importar um arquivo de áudio do disco ou memória
- Antes de reproduzir a onda sonora importada, vincule-se ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator - Reproduza a onda sonora importada e observe a animação de sincronização labial
O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio do Modelo Padrão, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Modelo Padrão, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes e parâmetros das funções permanecem idênticos entre ambos os modelos
Nota: Se você quiser processar dados de áudio em pedaços menores para uma sincronização labial mais responsiva, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (transmitindo a cada ~6,67 ms) em vez de 100 (transmitindo a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes.
Para transmitir dados de áudio de um buffer, você precisa:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
- Dados de áudio em formato PCM float (um array de amostras em ponto flutuante) disponíveis a partir da sua fonte de streaming
- A taxa de amostragem e o número de canais
- Chame
ProcessAudioData
do seu Runtime Viseme Generator com esses parâmetros conforme os chunks de áudio se tornam disponíveis
Aqui está um exemplo de processamento de lip sync a partir de dados de áudio em streaming:
Nota: Ao usar fontes de áudio em streaming, certifique-se de gerenciar o timing da reprodução de áudio adequadamente para evitar reprodução distorcida. Veja a documentação de Streaming Sound Wave para mais informações sobre o gerenciamento adequado de áudio em streaming.
O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator
em vez de VisemeGenerator
.
Em cada um dos exemplos mostrados para o Modelo Padrão, simplesmente substitua:
VisemeGenerator
pela sua variávelRealisticLipSyncGenerator
- Os nomes de funções e parâmetros permanecem idênticos entre ambos os modelos
Nota: Ao usar fontes de áudio em streaming, certifique-se de gerenciar o timing da reprodução de áudio adequadamente para evitar reprodução distorcida. Veja a documentação de Streaming Sound Wave para mais informações sobre o gerenciamento adequado de áudio em streaming.
Nota: Se você quiser processar dados de áudio em chunks menores para um lip sync mais responsivo, ajuste o cálculo na função SetNumSamplesPerChunk
. Por exemplo, dividir a taxa de amostragem por 150 (streaming a cada ~6,67 ms) em vez de 100 (streaming a cada 10 ms) fornecerá atualizações de lip sync mais frequentes.
Passo 4: Configuração do Anim Graph
Após configurar o Event Graph, mude para o Anim Graph
para conectar o gerador à animação do personagem:
Lip Sync
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
- Localize a pose que contém o rosto do MetaHuman (normalmente de
Use cached pose 'Body Pose'
) - Adicione o nó
Blend Runtime MetaHuman Lip Sync
- Conecte a pose ao
Source Pose
do nóBlend Runtime MetaHuman Lip Sync
- Conecte sua variável
RuntimeVisemeGenerator
ao pinoViseme Generator
- Conecte a saída do nó
Blend Runtime MetaHuman Lip Sync
ao pinoResult
doOutput Pose
Quando a sincronização labial é detectada no áudio, seu personagem animará dinamicamente de acordo:
- Localize a pose que contém o rosto do MetaHuman (normalmente de
Use cached pose 'Body Pose'
) - Adicione o nó
Blend Realistic MetaHuman Lip Sync
- Conecte a pose ao
Source Pose
do nóBlend Realistic MetaHuman Lip Sync
- Conecte sua variável
RealisticLipSyncGenerator
ao pinoLip Sync Generator
- Conecte a saída do nó
Blend Realistic MetaHuman Lip Sync
ao pinoResult
doOutput Pose
O Modelo Realista oferece qualidade visual aprimorada com movimentos de boca mais naturais:
Nota: O Modelo Realista é projetado exclusivamente para personagens MetaHuman e não é compatível com tipos de personagens personalizados.
Animação de Riso
Você também pode adicionar animações de riso que responderão dinamicamente ao riso detectado no áudio:
- Adicione o nó
Blend Runtime MetaHuman Laughter
- Conecte sua variável
RuntimeVisemeGenerator
ao pinoViseme Generator
- Se você já está 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 usando apenas riso 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 o riso é detectado no áudio, seu personagem animará dinamicamente de acordo:
Combinando com Animações Faciais e Corporais
Para aplicar sincronização labial e risada juntamente com animações corporais existentes e animações faciais personalizadas (como expressões, emoções ou quaisquer outros movimentos faciais) 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 estrutura de camadas:
- 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 adequadamente sobrepostas à sincronização labial. - Faça as conexões:
- Animações existentes (como
BodyPose
) → entradaBase 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
Result
final
- Animações existentes (como
Por que isso funciona: Os filtros de ramo isolam os ossos de animação facial, permitindo que sincronização labial e risada se misturem exclusivamente com movimentos faciais enquanto preservam as animações corporais originais. A opção de blend de curva "Use Max Value" pega o valor máximo de cada curva em vez de misturá-los aditivamente, permitindo que animações faciais personalizadas (como expressões e emoções) sejam adequadamente combinadas com sincronização labial sem conflitos. Isso corresponde à estrutura do rig facial do MetaHuman para integração natural.
Nota: Os recursos de sincronização labial e risada são projetados para funcionar de forma não destrutiva com sua configuração de animação existente. Eles afetam apenas os ossos faciais específicos necessários para movimento da boca, deixando outras animações faciais intactas. Isso significa que você pode integrá-los com segurança em qualquer ponto da sua cadeia de animação - seja antes de outras animações faciais (permitindo que essas animações substituam sincronização labial/risada) ou depois delas (deixando sincronização labial/risada se misturar sobre suas animações existentes). Essa flexibilidade permite que você combine sincronização labial e risada com piscar de olhos, movimentos de sobrancelhas, expressões emocionais e outras animações faciais sem conflitos.
Ajuste Fino do Comportamento de Sincronização Labial
Após configurar a funcionalidade básica de sincronização labial, você pode querer ajustar aspectos específicos do movimento da boca para melhor atender aos requisitos do seu projeto.
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 nó
Blend Runtime MetaHuman Lip Sync
ouBlend Realistic MetaHuman Lip Sync
, 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 (ex: 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 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 (ex: 0.9 para reduzir o movimento da mandíbula em 10%)
Configuração
Configuração de Sincronização Labial
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
O nó Blend Runtime MetaHuman Lip Sync
possui opções de configuração em seu painel de propriedades:
Propriedade | Padrão | Descrição |
---|---|---|
Interpolation Speed | 25 | Controla a rapidez com que os movimentos labiais transitam entre visemas. Valores mais altos resultam em transições mais rápidas e abruptas. |
Reset Time | 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
possui opções de configuração em seu painel de propriedades:
Propriedade | Padrão | Descrição |
---|---|---|
Interpolation Speed | 30 | Controla a rapidez com que os movimentos labiais transitam entre posições. Valores mais altos resultam em transições mais rápidas e abruptas. |
Reset Time | 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. |
Configuração de Riso
O nó Blend Runtime MetaHuman Laughter
possui suas próprias opções de configuração:
Propriedade | Padrão | Descrição |
---|---|---|
Interpolation Speed | 25 | Controla a rapidez com que os movimentos labiais transitam entre animações de riso. Valores mais altos resultam em transições mais rápidas e abruptas. |
Reset Time | 0.2 | A 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. |
Max Laughter Weight | 0.7 | Escala a intensidade máxima da animação de riso (0.0 - 1.0). |
Escolhendo Entre Modelos de Sincronização Labial
Ao decidir qual modelo de sincronização labial usar para seu projeto, considere estes fatores:
Consideração | Modelo Padrão | Modelo Realista |
---|---|---|
Compatibilidade de Personagens | MetaHumans e todos os tipos de personagens personalizados | Apenas MetaHumans |
Qualidade Visual | Boa sincronização labial com desempenho eficiente | Realismo aprimorado com movimentos de boca mais naturais |
Desempenho | Otimizado para todas as plataformas, incluindo mobile/VR | Requisitos de recursos ligeiramente superiores |
Casos de Uso | Aplicações gerais, jogos, VR/AR, mobile | Experiências cinematográficas, interações de personagens em close-up |
Compatibilidade com Versões do Engine
Se você estiver usando Unreal Engine 5.2, o Modelo Realista pode não funcionar corretamente devido a um bug na biblioteca de reamostragem do UE. Para usuários do UE 5.2 que precisam de funcionalidade de sincronização labial confiável, por favor, use o Modelo Padrão em vez disso.
Este problema é específico do UE 5.2 e não afeta outras versões do engine.
Para a maioria dos projetos, o Modelo Padrão oferece um excelente equilíbrio entre qualidade e desempenho, enquanto suporta a mais ampla gama de tipos de personagens. O Modelo Realista é ideal quando você precisa da mais alta fidelidade visual especificamente para personagens MetaHuman em contextos onde a sobrecarga de desempenho é menos crítica.