Como usar o plugin com personagens personalizados
Este guia orienta você através do processo de configuração do Runtime MetaHuman Lip Sync para personagens não-MetaHuman. Este processo requer familiaridade com conceitos de animação e rigging. Se precisar de assistência para implementar isso para seu personagem específico, você pode entrar em contato para suporte profissional em [email protected].
Nota importante sobre modelos de lip sync
Personagens personalizados são suportados apenas com o modelo Standard (Faster).
O modelo Realistic (Higher Quality) é projetado exclusivamente para personagens MetaHuman e não pode ser usado com personagens personalizados. Ao longo deste guia, você deve seguir as instruções do modelo Standard do guia de configuração principal quando referenciado.
Plugin de Extensão Obrigatório: Para usar o Standard Model com personagens personalizados, você deve instalar o plugin Standard Lip Sync Extension conforme descrito na seção Pré-requisitos do guia de configuração principal.
Esta extensão é obrigatória para todas as implementações de personagens personalizados descritas neste guia.
Pré-requisitos
Antes de começar, certifique-se de que seu personagem atenda a estes requisitos:
- Possui um esqueleto válido
- Contém morph targets (blend shapes) para expressões faciais
- Idealmente possui 10+ morph targets definindo visemas (mais visemas = melhor qualidade de lip sync)
O plugin requer mapear os morph targets do seu personagem para os seguintes visemas padrão:
Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)
Observação: Se seu personagem tem um conjunto diferente de visemas (o que é provável), você não precisa de correspondências exatas para cada visema. Aproximações geralmente são suficientes - por exemplo, mapear o visema SH
do seu personagem para o visema CH
do plugin funcionaria de forma eficaz, pois são sons postalveolares intimamente relacionados.
Referência de mapeamento de visemas
Aqui estão os mapeamentos entre sistemas de visemas comuns e os visemas exigidos pelo plugin:
- Apple ARKit
- Sistemas Baseados em FACS
- Sistema Preston Blair
- Sistema de Fonemas do 3ds Max
- Personagens Customizados (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
O ARKit fornece um conjunto abrangente de blendshapes para animação facial, incluindo vários formatos de boca. Veja como mapeá-los para os visemas do RuntimeMetaHumanLipSync:
Visema RuntimeMetaHumanLipSync | Equivalente ARKit | Observações |
---|---|---|
Sil | mouthClose | A posição neutra/repouso |
PP | mouthPressLeft + mouthPressRight | Para sons bilabiais, use ambas as formas de pressão juntas |
FF | lowerLipBiteLeft + lowerLipBiteRight (ou mouthRollLower) | Lábio inferior toca os dentes superiores, como nos sons "f" e "v" |
TH | tongueOut | O ARKit tem controle direto da língua |
DD | jawOpen (suave) + tongueUp (se você tiver rig de língua) | Língua toca o alvéolo; leve queda da mandíbula |
KK | mouthLeft ou mouthRight (suave) | Puxão sutil no canto da boca aproxima sons velares |
CH | jawOpen (suave) + mouthFunnel (suave) | Combine para sons postalveolares |
SS | mouthFrown | Use uma leve franzida para sibilantes |
NN | jawOpen (muito suave) + mouthClose | Boca quase fechada com leve abertura da mandíbula |
RR | mouthPucker (suave) | Arredondamento sutil para sons de "r" |
AA | jawOpen + mouthStretchLeft + mouthStretchRight (ou jawOpen + mouthOpen) | Boca bem aberta para o som "ah" |
E | jawOpen (suave) + mouthSmile | Posição semiaberta com leve sorriso |
IH | mouthSmile (suave) | Leve espalhamento dos lábios |
OH | mouthFunnel | Forma aberta e arredondada |
OU | mouthPucker | Lábios firmemente arredondados |
O FACS (Facial Action Coding System) usa Unidades de Ação (AUs) para descrever movimentos faciais. Muitos sistemas de animação profissionais usam abordagens baseadas em FACS:
Visema RuntimeMetaHumanLipSync | Unidades de Ação FACS | Observações |
---|---|---|
Sil | Neutro | Nenhuma AU ativa |
PP | AU23 + AU24 | Compressor labial + tensionador labial |
FF | AU22 + AU28 | Formador de funil labial + sugador labial |
TH | AU25 (suave) + AU27 | Lábios separados + esticador de boca |
DD | AU25 + AU16 | Lábios separados + depressor do lábio inferior |
KK | AU26 + AU14 | Queda da mandíbula + formador de covinhas |
CH | AU18 + AU25 | Enrugador labial + lábios separados |
SS | AU20 | Esticador labial |
NN | AU25 (muito suave) | Lábios levemente separados |
RR | AU18 (suave) | Enrugador labial suave |
AA | AU27 + AU26 | Esticador de boca + queda da mandíbula |
E | AU25 + AU12 | Lábios separados + puxador do canto labial |
IH | AU12 + AU25 (suave) | Puxador do canto labial + lábios levemente separados |
OH | AU27 (suave) + AU18 | Esticador de boca suave + enrugador labial |
OU | AU18 + AU26 (suave) | Enrugador labial + queda suave da mandíbula |
O sistema Preston Blair é um padrão clássico de animação que usa nomes descritivos para formas da boca:
RuntimeMetaHumanLipSync Viseme | Preston Blair | Notas |
---|---|---|
Sil | Rest | Posição neutra da boca fechada |
PP | MBP | A forma clássica da boca "MBP" |
FF | FV | A posição "FV" com dentes no lábio inferior |
TH | TH | Língua tocando os dentes da frente |
DD | D/T/N | Posição similar para essas consoantes |
KK | CKG | Posição de consoante dura |
CH | CH/J/SH | Ligeiro beiço para esses sons |
SS | S/Z | Posição de dentes ligeiramente abertos |
NN | N/NG/L | Similar a D/T mas com posição diferente da língua |
RR | R | Lábios arredondados para o som R |
AA | AI | Boca bem aberta |
E | EH | Boca medianamente aberta |
IH | EE | Lábios estendidos |
OH | OH | Abertura média arredondada |
OU | OO | Lábios firmemente arredondados |
O 3ds Max usa um sistema baseado em fonemas para seu character studio:
RuntimeMetaHumanLipSync Viseme | Fonema 3ds Max | Notas |
---|---|---|
Sil | rest | Posição padrão da boca |
PP | p_b_m | Equivalente direto |
FF | f_v | Equivalente direto |
TH | th | Equivalente direto |
DD | t_d | Equivalente direto |
KK | k_g | Equivalente direto |
CH | sh_zh_ch | Forma combinada |
SS | s_z | Equivalente direto |
NN | n_l | Combinado para esses sons |
RR | r | Equivalente direto |
AA | ah | Som de vogal aberta |
E | eh | Vogal média |
IH | ee | Vogal frontal fechada |
OH | oh | Vogal posterior arredondada |
OU | oo | Vogal posterior fechada |
Personagens customizados com visemas ou blend shapes/morph targets de boca (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc) normalmente podem ser mapeados para o sistema de visemas do plugin com aproximações razoáveis.
Criando um Pose Asset customizado
Siga estes passos para criar um pose asset customizado para seu personagem que será usado com o nó Blend Runtime MetaHuman Lip Sync
:
1. Localize o Skeletal Mesh do seu personagem
Encontre o skeletal mesh que contém os morph targets (blend shapes) que você deseja usar para a animação de lip sync. Pode ser um mesh de corpo inteiro ou apenas um mesh facial, dependendo do design do seu personagem.
2. Verifique Morph Targets e Curves
Antes de prosseguir, verifique se seu skeletal mesh possui morph targets e curves correspondentes apropriados para animação de lip sync.
Verifique Morph Targets:
Verifique se seu skeletal mesh contém morph targets (blend shapes) que podem ser usados como visemas para animação de lip sync. A maioria dos personagens com suporte a animação facial deve ter alguns morph targets de fonemas/visemas.
Importante: Verificar a Aba Curves Esta etapa é especialmente crucial para personagens exportados do Blender ou de outros softwares externos:
- Abra a aba Curves no editor de Skeletal Mesh
- Verifique se você consegue ver curvas correspondentes aos seus morph targets
- Se a aba Curves estiver vazia mas os morph targets existirem, adicione manualmente novas curvas usando exatamente os mesmos nomes dos seus morph targets
Nota: Este problema ocorre comumente com exportações do Blender onde os morph targets importam com sucesso, mas as curvas de animação não são criadas automaticamente. Sem curvas correspondentes, a animação não será preenchida corretamente após o baking para o Control Rig.
Solução Alternativa: Para evitar este problema durante a exportação do Blender, tente habilitar Custom Properties e Animation nas configurações de exportação do FBX, o que pode ajudar a incluir curvas de animação junto com os morph targets.
3. Criar uma Animation de Pose de Referência
- Vá para
Create Asset -> Create Animation -> Reference Pose
- Digite um nome descritivo para a sequência de animação e salve-a em um local apropriado
- A Animation Sequence criada será aberta automaticamente, mostrando uma animação vazia reproduzindo em loop
- Clique no botão
Pause
para parar a reprodução da animação para facilitar a edição
4. Editar a Animation Sequence
- Clique em
Edit in Sequencer
->Edit with FK Control Rig
- No diálogo
Bake to Control Rig
, clique no botãoBake to Control Rig
sem alterar nenhuma configuração
- O editor mudará para
Animation Mode
com a abaSequencer
aberta - Defina o
View Range End Time
para 0016 (o que definirá automaticamenteWorking Range End
para 0016 também) - Arraste a borda direita do slider para a extremidade direita da janela do sequenciador
5. Preparar as Curvas de Animação
- Retorne ao asset de Sequência de Animação e localize os morph targets na lista
Curves
(se eles não estiverem visíveis, feche e reabra o asset de Sequência de Animação) - Remova quaisquer morph targets que não estejam relacionados aos visemas ou movimentos de boca que você deseja usar para a sincronização labial
6. Planeje seu mapeamento de visemas
Crie um plano de mapeamento para corresponder os visemas do seu personagem ao conjunto exigido pelo plugin. Por exemplo:
Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U
Observe que é aceitável ter mapeamentos repetidos quando o conjunto de visemas do seu personagem não possui correspondências exatas para cada visema necessário.
7. Animar cada visema
- Para cada visema, anime as curvas do morph target relevante de 0.0 para 1.0
- Inicie a animação de cada visema em um frame diferente
- Configure curvas adicionais conforme necessário (abertura da mandíbula/boca, posição da língua, etc.) para criar formas de visemas com aparência natural
8. Criar um Pose Asset
- Vá para
Create Asset
->Pose Asset
->Current Animation
- Digite um nome descritivo para o Pose Asset e salve-o em um local apropriado
- O Pose Asset criado será aberto automaticamente, mostrando poses como
Pose_0
,Pose_1
, etc., cada uma correspondendo a um visema - Visualize os pesos dos visemas para garantir que funcionam conforme o esperado
9. Finalizar o Pose Asset
- Renomeie cada pose para corresponder aos nomes dos visemas da seção Prerequisites
- Exclua quaisquer poses não utilizadas
Configurando o tratamento de áudio e a mesclagem
Uma vez que seu ativo de pose estiver pronto, você precisa configurar os nós de tratamento de áudio e mesclagem:
- Localize ou crie o Animation Blueprint do seu personagem
- Configure o tratamento de áudio e a mesclagem seguindo os mesmos passos documentados no guia de configuração padrão do plugin
- No nó
Blend Runtime MetaHuman Lip Sync
, selecione seu ativo de Pose personalizado em vez do ativo de pose MetaHuman padrão
Combinando com animações corporais
Se você deseja executar a sincronização labial junto com outras animações corporais:
- Siga os mesmos passos documentados no guia padrão do plugin
- Certifique-se de fornecer os nomes corretos dos ossos para o esqueleto do pescoço do seu personagem, em vez de usar os nomes dos ossos do MetaHuman
Resultados
Aqui estão exemplos de personagens personalizados usando esta configuração:
A qualidade da sincronização labial depende em grande parte do personagem específico e de quão bem seus visemas estão configurados. Os exemplos acima demonstram o plugin funcionando com diferentes tipos de personagens personalizados com sistemas de visemas distintos.