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 (Observação: A partir do UE 5.6, esta etapa não é mais necessária, pois a funcionalidade MetaHuman está integrada diretamente ao motor)
- 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 compilar 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:
- Para TTS local, instale o plugin Runtime Text To Speech.
- Para provedores de TTS externos (ElevenLabs, OpenAI), instale o plugin Runtime AI Chatbot Integrator.
Configuração Específica por Plataforma
Configuração para Android / Meta Quest
Se você estiver direcionando para plataformas Android ou Meta Quest e encontrar erros de compilação com este plugin, será necessário desabilitar 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, localize Suportar x86_64 [também conhecido como x64] e certifique-se de que está desabilitado, conforme 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 o
Face_AnimBP
e dê um nome descritivo - Localize a classe Blueprint do seu personagem (ex: 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 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 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
Observação: 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 mistura (blending) 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 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 ainda não existir - 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 ainda não existir - 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) Defina o Processing Chunk Size no objeto Realistic MetaHuman Lip Sync Generator
Observação: O Modelo Realista é otimizado especificamente para Meta Personagens humanos e não é compatível com tipos de personagens personalizados.
Configuração do Tamanho do Chunk de Processamento: O Tamanho do Chunk de Processamento determina quantas amostras são processadas em cada etapa de inferência. O valor padrão é 160 amostras, que corresponde a 10ms de áudio a 16kHz (a taxa de amostragem de processamento interno). Você pode ajustar esse valor para equilibrar entre frequência de atualização e uso da CPU:
- 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 do lip sync
Para definir o Tamanho do Chunk de Processamento:
- Acesse seu objeto
Realistic MetaHuman Lip Sync Generator
- Localize a propriedade
Processing Chunk Size
- Defina o valor desejado
Recomenda-se 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 Chunk 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 do processamento e manter um comportamento consistente em diferentes tamanhos de chunk.
Opções de Otimização do Modelo
Por padrão, o Modelo Realista usa uma versão quantizada e altamente otimizada para melhorar significativamente o desempenho e reduzir o uso da CPU. No entanto, se você quiser priorizar a mais alta qualidade visual possível em vez da otimização, pode usar a versão original não otimizada do modelo.
Usando o Modelo Original Não Otimizado:
Em versões futuras, haverá maneiras mais automáticas e amigáveis de alternar entre modelos otimizados e não otimizados através de configurações. O método atual é uma solução temporária, mas funcional.
Para alternar para o modelo original não otimizado:
- Baixe o modelo original: Download do Google Drive
- Localize a pasta do plugin na sua instalação do engine:
- Navegue até o diretório de instalação da UE, depois para
Engine\Plugins\Marketplace\
- Exemplo (seu caminho será diferente):
F:\Epic Games\UE_5.6\Engine\Plugins\Marketplace\
- Procure por uma pasta de plugin - o nome exato depende da versão do engine:
- Algumas versões do engine usam nomes claros como
RuntimeMetaHumanLipSync
- Outras usam nomes ofuscados como
RuntimeM879a7d628ddcV1
- Algumas versões do engine usam nomes claros como
- Navegue até o diretório de instalação da UE, depois para
- Navegue até a pasta de dados do modelo:
- Vá para
Content\RealisticModelData\
dentro da pasta do plugin - Você deve encontrar um arquivo chamado
EpicMetaHumanLipSyncCpuModel.uasset
- Vá para
- Substitua o arquivo do modelo:
- Extraia o arquivo baixado
- Substitua o
EpicMetaHumanLipSyncCpuModel.uasset
existente pelo do arquivo baixado
- Reinicie seu projeto para que as alterações tenham efeito Considerações de Desempenho:
Versão do Modelo | Desempenho | Qualidade Visual | Casos de Uso Recomendados |
---|---|---|---|
Otimizado (Padrão) | Alto desempenho, menor uso de CPU | Qualidade excelente | Maioria dos projetos, aplicações em tempo real, cenários críticos de desempenho |
Original Não Otimizado | Maior uso de CPU | Máxima fidelidade visual | Produções cinematográficas, renderização offline, quando a qualidade é primordial |
Escolha a versão que melhor se adapta aos requisitos de desempenho e padrões de qualidade do seu projeto.
Para operação confiável e consistente com o Realistic Model, é obrigatório recriar o Realistic MetaHuman Lip Sync Generator sempre que você desejar alimentar novos dados de áudio após um período de inatividade. Isso se deve ao comportamento do runtime ONNX que pode fazer com que o lip sync pare de funcionar ao reutilizar geradores após períodos de silêncio.
Cenário de exemplo: Se você realizou lip sync com TTS e depois parou, e mais tarde deseja realizar lip sync novamente com novo áudio, crie um novo Realistic MetaHuman Lip Sync Generator em vez de reutilizar o existente.
Passo 3: Configurar 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-Voz (Local)
- Text-to-Speech (APIs Externas)
- From Audio File/Buffer
- Custom Audio Source
Esta abordagem realiza lip sync em tempo real enquanto fala no microfone:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Qualidade Superior)
- Crie um Capturable Sound Wave usando Runtime Audio Importer
- Antes de começar a capturar áudio, vincule ao delegate
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 e parâmetros das funções 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)
- Modelo Realista (Maior Qualidade)
- 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 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 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.
- Regular
- Streaming
Esta abordagem sintetiza fala a partir de texto e realiza sincronização labial:
- Modelo Padrão (Mais Rápido)
- 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 sound wave 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 Realistic devido a conflitos no runtime ONNX. Para conversão de texto em voz com o modelo Realistic, considere usar serviços externos de TTS (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou utilize o modelo Standard.
Observação: Se você deseja processar dados de áudio em partes 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.
Esta abordagem utiliza síntese de texto em voz com streaming e Lip Sync 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 o som 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 compatível com o modelo Realistic devido a conflitos no runtime ONNX. Para conversão de texto em voz com o modelo Realistic, considere usar serviços externos de TTS (como OpenAI ou ElevenLabs via Runtime AI Chatbot Integrator) ou utilize o modelo Standard.
Observação: Se você deseja processar dados de áudio em partes 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.
- 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 lip sync:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Qualidade Superior)
- 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 blocos 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.
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 lip sync:
- Modelo Padrão (Mais Rápido)
- Modelo Realista (Qualidade Superior)
- Use Runtime AI Chatbot Integrator para conectar-se a APIs de TTS em streaming (como a ElevenLabs Streaming API)
- Use Runtime Audio Importer para importar os dados de áudio sintetizados
- Antes de reproduzir o som 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 desejar processar dados de áudio em blocos 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.
Esta abordagem utiliza arquivos de áudio pré-gravados ou buffers de áudio para sincronização labial:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- 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 Realístico utiliza o mesmo fluxo 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 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.
Para uma fonte de áudio personalizada, você precisa de:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Dados de áudio no formato PCM float (um array de amostras em ponto flutuante)
- A taxa de amostragem e número de canais
- Chame
ProcessAudioData
do seu Runtime Viseme Generator com esses parâmetros
Aqui está um exemplo de streaming de áudio de uma fonte personalizada:
O Modelo Realístico utiliza o mesmo fluxo 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
Observação: Se desejar 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.
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:
Sincronização Labial
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Localize a pose que contém o rosto do MetaHuman (tipicamente 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 (tipicamente 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 Realístico oferece qualidade visual aprimorada com movimentos de boca mais naturais:
Observação: O Modelo Realístico é 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 lip sync:
- 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 riso sem lip sync:
- 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 lip sync e riso junto com animações corporais existentes 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 ativado. - Configure a 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
- Faça as conexões:
- Animações existentes (como
BodyPose
) → entradaBase Pose
- Saída de animação facial (de nós de lip sync e/ou riso) → entrada
Blend Poses 0
- Nó de camadas misturadas → pose
Result
final
- Animações existentes (como
Por que isso funciona: Os filtros de ramificação isolam os ossos de animação facial, permitindo que o lip sync e o riso se misturem exclusivamente com movimentos faciais enquanto preservam as animações corporais originais. Isso corresponde à estrutura do rig facial do MetaHuman, garantindo integração natural.
Observação: Os recursos de lip sync e riso 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/riso) ou depois delas (permitindo que o lip sync/riso se misture sobre suas animações existentes). Essa flexibilidade permite combinar lip sync e riso com piscar de olhos, movimentos de sobrancelha, expressões emocionais e outras animações faciais sem conflitos.
Configuração
Configuração de Lip Sync
- 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 |
---|---|---|
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. Útil para evitar que o lip sync 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 |
---|---|---|
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. Útil para evitar que o lip sync 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 |
---|---|---|
Velocidade de Interpolação | 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. |
Tempo de Reset | 0.2 | A duração em segundos após a qual o riso é reiniciado. Útil para evitar que o riso continue após o áudio ter parado. |
Peso Máximo do Riso | 0.7 | Escala a intensidade máxima da animação de riso (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 da UE 5.2 que precisam de funcionalidade de lip sync confiável, por favor use o Modelo Padrão.
Este problema é específico para a 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 mais ampla variedade 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.