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 padrões de blendshape 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 na 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 de Modelo Padrão
Se você planeja usar o Modelo Padrão (Mais Rápido), será necessário instalar o plugin de extensão:
- Baixe o Standard Lip Sync Extension plugin do 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, pode pular esta etapa.
- Para mais informações sobre como construir plugins manualmente, consulte o tutorial Building 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 text-to-speech 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.
Configuração Específica por Plataforma
Configuração para Android / Meta Quest
Se você está direcionando para plataformas Android ou Meta Quest e encontrar erros de compilação com este plugin, será necessário desativar a arquitetura Android x86_64 (x64) nas configurações do seu projeto:
- Vá para Editar > Configurações do Projeto
- Navegue até Plataformas > Android
- Em Plataformas - Android, seção Build, encontre Suportar x86_64 [também conhecido como x64] e certifique-se de que está desativado, como mostrado abaixo
Isso ocorre porque o plugin atualmente só suporta as arquiteturas arm64-v8a e armeabi-v7a para plataformas Android / Meta Quest.
Processo de Configuração
Passo 1: Localizar e modificar 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 diretamente o Face_AnimBP
padrão e faça suas modificações. Qualquer alteração afetará todos os personagens MetaHuman que usam este Animation Blueprint.
Observação: Esta abordagem é conveniente, mas impactará todos os personagens que usam o Animation Blueprint padrão.
- Duplique
Face_AnimBP
e dê 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 seu novo Animation Blueprint duplicado
Observação: Esta abordagem permite personalizar o Lip Sync para personagens específicos enquanto mantém 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)
Observação: Esta abordagem oferece 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 asset 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 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 Customizado: 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 and Earlier" ao invés.
Importante: A mistura (blending) do Runtime MetaHuman Lip Sync pode ser implementada em qualquer asset 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 comuns de implementação.
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 (Qualidade Superior)
- 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 grafo
- 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 grafo
- (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

Observação: 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 será utilizada:
Tipo de Modelo | Desempenho | Qualidade Visual | Tratamento de Ruído | Casos de Uso Recomendados |
---|---|---|---|---|
Highly Optimized (Padrão) | Melhor desempenho, menor uso de CPU | Boa qualidade | Pode apresentar movimentos perceptíveis da boca 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 | Maior estabilidade com áudio ruidoso | Equilíbrio entre desempenho e qualidade, condições mistas de áudio |
Original Unoptimized | Adequado para uso em tempo real em CPUs modernas | Qualidade máxima | Mais estável com ruído de fundo e sons não vocais | Produções de alta qualidade, ambientes de áudio ruidosos, quando 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 (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 consomem 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. Geralmente 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 maioria dos usuários)
- Use Optimized para equilíbrio entre desempenho e qualidade
- 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 estiver 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 maior estabilidade
- O modelo Altamente Otimizado pode exibir 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 requeira 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 dos 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 interno). 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 do lip sync
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
Recomenda-se usar valores que sejam múltiplos de 160. Isso alinha com a estrutura interna de processamento 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 blocos.
Para operação confiável e consistente com o Realistic Model, é necessário recriar o Realistic MetaHuman Lip Sync Generator cada vez que desejar alimentar novos dados de áudio após um período de inatividade. Isso se deve ao comportamento do ONNX runtime que pode fazer o lip sync parar de funcionar ao reutilizar geradores após períodos de silêncio.
Exemplo de cenário: Se você realizou lip sync de TTS e depois parou, e mais tarde deseja realizar lip sync novamente com novo áudio, crie um novo Realistic MetaHuman Lip Sync Generator ao invés 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.
- Microfone (Tempo real)
- Microfone (Reprodução)
- Texto-para-Fala (Local)
- Text-to-Speech (External APIs)
- De Arquivo/Buffer de Áudio
- Streaming Audio Buffer
Esta abordagem realiza a sincronização labial em tempo real enquanto fala no microfone:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Qualidade Superior)
- Crie uma Capturable Sound Wave usando Runtime Audio Importer
- Antes de começar a capturar áudio, vincule ao delegado
OnPopulateAudioData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator - Inicie a captura de áudio do microfone
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 das funções e parâmetros permanecem idênticos entre ambos os modelos
Esta abordagem captura áudio de um microfone e depois o reproduz com sincronização labial:
- Modelo Padrão (Mais Rápido)
- 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 ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator
O Modelo Realístico utiliza 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 das funções e parâmetros permanecem idênticos entre ambos os modelos
Observação: Se desejar 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 realiza sincronização labial:
- Modelo Padrão (Mais Rápido)
- Modelo Realístico (Qualidade Superior)
- 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 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 compatível com o modelo Realístico devido a conflitos no tempo de execução ONNX. Para texto-para-fala com o modelo Realístico, considere usar serviços TTS externos (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou use o modelo Padrão.
Observação: Se desejar 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 utiliza síntese de texto-para-fala 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 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 compatível com o modelo Realistic devido a conflitos com o runtime ONNX. Para texto-para-fala com o modelo Realistic, considere usar serviços externos de TTS (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou use o modelo Standard.
Observação: Se desejar 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 utiliza 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 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 das funções e parâmetros permanecem idênticos entre ambos os modelos
Observação: Se desejar 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.
Esta abordagem utiliza 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-se 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-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 das funções e parâmetros permanecem idênticos entre ambos os modelos
Observação: 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 utiliza arquivos de áudio pré-gravados ou buffers de áudio para sincronização labial:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
- Use o Runtime Audio Importer para importar um arquivo de áudio do disco ou memória
- Antes de reproduzir o som importado, vincule ao seu delegado
OnGeneratePCMData
- Na função vinculada, chame
ProcessAudioData
do seu Runtime Viseme Generator - Reproduza o som importado e observe a animação de sincronização labial
O Modelo Realista utiliza 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 das funções e parâmetros permanecem idênticos entre ambos os modelos
Observação: 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.
Para transmitir dados de áudio de um buffer, você precisa:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Dados de áudio em formato PCM float (um array de amostras em ponto flutuante) disponíveis 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 ficam 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 tempo de reprodução adequadamente para evitar distorções. Consulte a documentação de Streaming Sound Wave para mais informações sobre o gerenciamento adequado de áudio em streaming.
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 das 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 tempo de reprodução adequadamente para evitar distorções. Consulte 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 generator à animação do personagem:
Lip Sync
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Qualidade Superior)
- 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 for 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:
Observação: 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á 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 usar 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 for detectado no áudio, seu personagem animará dinamicamente de acordo:
Combinando com Animações Corporais
Para aplicar sincronização labial e riso junto com animações corporais existentes sem substituí-las:
- Adicione um nó
Layered blend per bone
entre as animações do corpo e a saída final. Certifique-se de queUse Attached Parent
esteja definido como 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
- Faça as conexões:
- Animações existentes (como
BodyPose
) → entradaBase Pose
- Saída da animação facial (dos nós de lip sync e/ou risada) → entrada
Blend Poses 0
- Nó Layered blend → pose
Result
final
- Animações existentes (como
Por que isso funciona: Os filtros de ramo isolam os ossos da animação facial, permitindo que o lip sync e a risada se misturem exclusivamente com os movimentos faciais enquanto preservam as animações originais do corpo. Isso corresponde à estrutura do rig facial do MetaHuman, garantindo uma integração natural.
Observação: Os recursos de lip sync 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 o 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 o lip sync/risada) ou depois delas (permitindo que o lip sync/risada se misture sobre suas animações existentes). Essa flexibilidade permite combinar lip sync e risada com piscar de olhos, movimentos de sobrancelhas, expressões emocionais e outras animações faciais sem conflitos.
Configuração
Configuração do Lip Sync
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Maior Qualidade)
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 o lip sync é reiniciado. Isso é útil para evitar que o lip sync 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 os movimentos labiais transitam entre posições. 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 o lip sync é reiniciado. Isso é útil para evitar que o lip sync continue após o áudio ter parado. |
Configuração da Riso
O nó Blend Runtime MetaHuman Laughter
possui 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 após o áudio ter parado. |
Peso Máximo da Riso | 0.7 | Escala a intensidade máxima da animação de risada (0.0 - 1.0). |
Escolhendo Entre Modelos de Lip Sync
Ao decidir qual modelo de lip sync usar em seu projeto, considere estes fatores:
Consideração | Modelo Padrão | Modelo Realista |
---|---|---|
Compatibilidade com Personagens | MetaHumans e todos os tipos de personagens personalizados | Apenas MetaHumans |
Qualidade Visual | Bom lip sync com desempenho eficiente | Realismo aprimorado com movimentos bucais mais naturais |
Desempenho | Otimizado para todas as plataformas incluindo mobile/VR | Requisitos de recursos ligeiramente maiores |
Casos de Uso | Aplicações gerais, jogos, VR/AR, mobile | Experiências cinematográficas, interações próximas com personagens |
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 resampling da UE. Para usuários do UE 5.2 que precisam de funcionalidade confiável de lip sync, por favor use o Modelo Padrão como alternativa.
Este problema é específico para o 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, além de suportar a maior variedade de tipos de personagens. O Modelo Realista é ideal quando você precisa da maior fidelidade visual especificamente para personagens MetaHuman em contextos onde a sobrecarga de desempenho é menos crítica.