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 ajuda para implementar isso em seu personagem específico, você pode solicitar suporte profissional em [email protected].
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 o mapeamento dos 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 o seu personagem tiver 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 efetivamente, já que são sons postalveolares próximos.
Referência de mapeamento de visemas
Aqui estão os mapeamentos entre sistemas comuns de visemas 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árias formas 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 | Estes criam o contato lábio-dente para "f/v" |
TH | tongueOut | O ARKit tem controle direto da língua |
DD | jawOpen (leve) + tongueUp | Combine abertura leve da mandíbula com posição da língua |
KK | mouthLeft ou mouthRight (leve) | Puxão sutil no canto da boca aproxima sons velares |
CH | jawOpen (leve) + mouthFunnel (leve) | Combine para sons postalveolares |
SS | mouthFrown | Use um leve franzir para sibilantes |
NN | jawOpen (muito leve) + mouthClose | Boca quase fechada com abertura leve da mandíbula |
RR | mouthPucker (leve) | Arredondamento sutil para sons de "r" |
AA | jawOpen + mouthOpen | Combinado para sons vocálicos abertos |
E | jawOpen (leve) + mouthSmile | Posição medianamente aberta com leve sorriso |
IH | mouthSmile (leve) | Leve afastamento dos lábios |
OH | mouthFunnel | Forma arredondada aberta |
OU | mouthPucker | Lábios firmemente arredondados |
O FACS (Facial Action Coding System) usa Unidades de Ação (AUs) para descrever movimentos faciais. Muitos sistemas profissionais de animação usam abordagens baseadas em FACS:
Visema RuntimeMetaHumanLipSync | Unidades de Ação FACS | Observações |
---|---|---|
Sil | Neutro | Nenhuma AU ativa |
PP | AU23 + AU24 | Pressão labial + tensionador labial |
FF | AU22 + AU28 | Forma de funil labial + sucção labial |
TH | AU25 (leve) + AU27 | Lábios separados + alongamento da boca |
DD | AU25 + AU16 | Lábios separados + depressor do lábio inferior |
KK | AU26 + AU14 | Queda da mandíbula + dimpler |
CH | AU18 + AU25 | Enrugamento labial + lábios separados |
SS | AU20 | Esticador labial |
NN | AU25 (muito leve) | Lábios levemente separados |
RR | AU18 (leve) | Enrugamento labial leve |
AA | AU27 + AU26 | Alongamento da boca + queda da mandíbula |
E | AU25 + AU12 | Lábios separados + puxador do canto labial |
IH | AU12 + AU25 (leve) | Puxador do canto labial + lábios levemente separados |
OH | AU27 (leve) + AU18 | Alongamento leve da boca + enrugamento labial |
OU | AU18 + AU26 (leve) | Enrugamento labial + queda leve da mandíbula |
O sistema Preston Blair é um padrão clássico de animação que usa nomes descritivos para formas de boca:
Visema RuntimeMetaHumanLipSync | Preston Blair | Observações |
---|---|---|
Sil | Repouso | Posição neutra de boca fechada |
PP | MBP | A forma clássica de boca "MBP" |
FF | FV | A posição "FV" com dentes no lábio inferior |
TH | TH | Língua tocando os dentes frontais |
DD | D/T/N | Posição similar para essas consoantes |
KK | CKG | Posição de consoante dura |
CH | CH/J/SH | Leve bico para esses sons |
SS | S/Z | Posição levemente aberta dos dentes |
NN | N/NG/L | Similar a D/T mas com posição diferente da língua |
RR | R | Lábios arredondados para som de "r" |
AA | AI | Boca bem aberta |
E | EH | Boca medianamente aberta |
IH | EE | Lábios afastados |
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:
Visema RuntimeMetaHumanLipSync | Fonema 3ds Max | Observações |
---|---|---|
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 vocálico aberto |
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) podem tipicamente ser mapeados para o sistema de visemas do plugin com aproximações razoáveis.
Criando um Pose Asset customizado
Siga esses 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ê quer usar para animação de lip sync. Pode ser um mesh de corpo inteiro ou apenas de rosto, dependendo do design do seu personagem.
2. Verifique os Morph Targets disponíveis
Certifique-se que seu skeletal mesh tem morph targets apropriados 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.
3. Crie uma Animation Sequence de Pose de Referência
- Vá para
Create Asset -> Create Animation -> Reference Pose
- Insira um nome descritivo para a sequência de animação e salve em um local apropriado
- A Animation Sequence criada abrirá automaticamente, mostrando uma animação vazia em loop
- Clique no botão
Pause
para parar a reprodução da animação para facilitar a edição
4. Edite 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 automaticamente definiráWorking Range End
para 0016 também) - Arraste a borda direita do slider para o final da janela do sequenciador
5. Preparar as Curvas de Animação
- Volte para o asset de Animation Sequence e localize os morph targets na lista
Curves
(se não estiverem visíveis, feche e reabra o asset de Animation Sequence) - Remova quaisquer morph targets que não estejam relacionados a visemas ou movimentos da boca que você deseja usar para a sincronização labial (Lip Sync)
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
Observação: é aceitável ter mapeamentos repetidos quando o conjunto de visemas do seu personagem não tem correspondências exatas para todos os visemas necessários.
7. Animar cada visema
- Para cada visema, anime as curvas de morph target relevantes de 0.0 a 1.0
- Inicie cada animação de visema em um frame diferente
- Configure curvas adicionais conforme necessário (abertura de mandíbula/boca, posição da língua, etc.) para criar formas de visemas naturais
8. Criar um Pose Asset
- Vá para
Create Asset
->Pose Asset
->Current Animation
- Insira 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 funcionem 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 blending
Quando seu Pose Asset estiver pronto, você precisa configurar os nós de tratamento de áudio e blending:
- Localize ou crie o Animation Blueprint do seu personagem
- Configure o tratamento de áudio e blending seguindo os mesmos passos documentados no guia de configuração padrão do plugin
- No nó
Blend Runtime MetaHuman Lip Sync
, selecione seu Pose Asset personalizado em vez do Pose Asset padrão do MetaHuman
Combinando com animações corporais
Se desejar executar lip sync 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 do pescoço do esqueleto 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 do lip sync depende muito 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.