Pular para o conteúdo principal

Ajudantes de Animação Ocular

Além do lip sync, o plugin Runtime MetaHuman Lip Sync inclui dois utilitários auxiliais opcionais para animar os olhos do MetaHuman:

  • Piscar Automaticamente: um auxiliar que produz piscadas de olhos naturais e aleatórias em um MetaHuman
  • Mirar os Olhos: um nó de Animation Blueprint que faz os olhos de um MetaHuman olharem para um local no espaço do mundo

Estes recursos são completamente independentes da sincronização labial e podem ser usados sozinhos, juntos ou combinados com os nós de sincronização labial. Eles foram criados como auxiliares leves e de fácil integração para adicionar comportamento ocular realista sem precisar criá-lo manualmente.

Prévia dos Recursos

Piscada Automática: piscadas automáticas dos olhos
Olhos Mirando: rastreando a câmera do jogador
Olhos Mirando: seguindo um ator alvo em movimento

Demonstração em Vídeo

Guia completo de ambos os helpers, incluindo a solução alternativa para o rig legado.

Quando usar esses auxiliares

Se o seu pipeline de animação facial já inclui piscadas e olhar dinâmico, você pode pular esta página. Esses auxiliares existem para casos em que você deseja um comportamento ocular realista sem precisar criá-lo manualmente, por exemplo, quando suas sequências de animação não incluem piscadas, ou quando você precisa que os olhos acompanhem dinamicamente um alvo em movimento (algo que sequências de animação estáticas não conseguem fazer). Eles também podem ser sobrepostos sobre animações faciais existentes para adicionar elementos ausentes, como piscadas sobre uma sequência que apenas anima a boca.

O auxiliar Auto Blink produz piscadas de olhos aleatórias e de aparência natural ao acionar as curvas CTRL_L_eye_blink e CTRL_R_eye_blink do MetaHuman Face Control Rig.

Como Funciona

A cada quadro, você chama Update MetaHuman Auto Blink a partir do Event Graph do seu Face Animation Blueprint e passa o delta time do quadro. A função:

  1. Rastreia o estado por personagem (próximo tempo de piscada, fase atual de aberto/fechado, etc.) indexado pelo AnimInstance que o chama
  2. Retorna dois valores float no intervalo 0..1, um para o olho esquerdo e um para o olho direito, representando o quão fechado cada olho está no momento
  3. Você então armazena esses valores em variáveis do Blueprint e os alimenta no nó do Control Rig no Anim Graph

Configuração

Duas etapas: adicione a chamada de piscada ao seu Event Graph e, em seguida, alimente os valores em um nó de Control Rig no Anim Graph.

No seu Face Animation Blueprint (ex.: Face_AnimBP ou sua versão duplicada/copiada, consulte o Guia de Configuração), abra o Event Graph e adicione o seguinte ao Event Blueprint Update Animation:

  1. Chame Update MetaHuman Auto Blink
  2. Conecte Delta Time X (do evento) a Delta Seconds
  3. (Opcional) Configure a struct Config. Os padrões já parecem naturais
  4. Promova Left Blink Value e Right Blink Value para variáveis de Blueprint (ex.: LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

No Anim Graph do mesmo Animation Blueprint:

  1. Coloque um nó de Control Rig que irá controlar as curvas de piscar. Onde exatamente ele vai depende de se você está combinando o Auto Blink com outras animações faciais (lip sync, sequências personalizadas, etc.):
    • Nenhuma outra animação facial: coloque o nó do Control Rig diretamente na cadeia principal, antes de Output Pose.
    • Combinação com lip sync e/ou outra animação facial: conecte este nó do Control Rig a um nó Layered blend per bone em vez de colocá-lo diretamente na cadeia, veja a dica abaixo.
  2. No painel Details do nó, defina Control Rig Class (Control Rig Asset Reference no UE 5.8+) para o Control Rig facial do seu MetaHuman. O caminho é tipicamente:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • Seu projeto pode ter um caminho diferente, dependendo de como o MetaHuman foi importado.
  3. No Details panel, expanda a seção Input e habilite Use Pin para:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. Conecte sua variável LeftBlinkValue ao CTRL_L_eye_blink
  5. Conecte sua variável RightBlinkValue ao CTRL_R_eye_blink

Auto Blink Anim Graph setup

A colocação importa

Se você não estiver combinando com outra animação facial, coloque o nó do Control Rig depois dos nós de blend de lip sync (e de quaisquer outros nós de animação facial) na cadeia, para que os valores de piscar não sejam sobrescritos. Se você estiver combinando com lip sync ou outra animação facial, siga o guia Combinando com Animações Existentes e conecte este nó do Control Rig à entrada Base Pose do nó Layered blend per bone; o nó de blend em camadas mantém ambos ativos, em vez de um simplesmente sobrescrever o outro.

Configuração

O nó Update MetaHuman Auto Blink aceita uma struct Config opcional. Os padrões já parecem naturais para a maioria dos personagens; expanda abaixo se quiser ajustar o comportamento.

Propriedades de configuração

Timing

PropriedadePadrãoDescrição
Tempo Mínimo Entre Piscadas2,0 sIntervalo mínimo entre piscadas enquanto os olhos estão totalmente abertos.
Tempo Máximo Entre Piscadas4,0 sIntervalo máximo entre piscadas. O intervalo real é randomizado entre o mínimo e o máximo.
Tempo Mínimo de Olhos Fechados0,04 sTempo mínimo em que os olhos permanecem totalmente fechados.
Tempo Máximo de Olhos Fechados0,08 sTempo máximo em que os olhos permanecem totalmente fechados.

Interpolação

PropriedadePadrãoDescrição
Velocidade de Interpolação ao Fechar35.0Velocidade ao fechar os olhos. Humanos fecham os olhos mais rápido do que os abrem, então este valor é intencionalmente maior que a velocidade de abertura.
Velocidade de Interpolação ao Abrir18.0Velocidade ao abrir os olhos.
Limiar de Fechamento0.97Valor no qual o piscar é considerado "totalmente fechado" e a fase de espera começa.
Limiar de Abertura0.02Valor no qual o piscar é considerado "totalmente aberto" e o próximo piscar é agendado.

Misc

PropriedadePadrãoDescrição
Olhos IndependentesfalsoQuando true, os olhos esquerdo e direito piscam de forma independente, com temporizações separadas. Quando false (padrão), ambos os olhos piscam em sincronia perfeita.
bEnabled (pino de função)trueQuando false, os olhos relaxam e voltam a abrir, e o piscar é pausado. Útil para cenas de corte, sono, morte, etc.

Controle em Tempo Real

Você também pode chamar Reset Auto Blink State para limpar explicitamente o estado interno de um determinado AnimInstance (por exemplo, ao renascer um personagem ou alternar estados cinematográficos).

Olhos Mirando

O auxiliar Eyes Aim é um nó de Animation Blueprint (Runtime MetaHuman Eyes Aim) que faz os olhos do personagem rastrearem uma localização no espaço do mundo, por exemplo, a câmera do jogador, outro ator ou qualquer alvo em movimento. Ele suporta limitação de yaw/pitch, suavização, proteção contra inversão quando o alvo passa atrás da cabeça e micro-sacadas opcionais para maior realismo.

Escolhendo um Modo

O nó suporta dois modos, selecionados através do menu suspenso Mode no painel de Detalhes do nó:

ModeO que ele controlaOnde colocá-lo
Curvas (padrão)As curvas de olhar dos olhos do Control Rig facial (CTRL_expressions_eyeLook*)No Animation Blueprint facial (ex.: Face_AnimBP), antes do nó do Control Rig
OssosOs ossos FACIAL_L_Eye / FACIAL_R_Eye diretamente, ignorando o Control RigNo Animation Blueprint de pós-processamento facial (ex.: Face_PostProcess_AnimBP), após o nó AnimNode_RigLogic

Modo Curves é o padrão recomendado. Ele se combina de forma limpa com outros sistemas faciais baseados em curvas (lip sync, expressões, blendshapes ARKit, etc.), já que os valores são combinados por meio da avaliação normal do Control Rig, em vez de disputarem as transformações dos ossos.

Quando o modo Curves não funcionar, use o modo Bones.

Em algumas variantes de MetaHuman (notavelmente rigs mais antigos, incluindo alguns baixados via Quixel Bridge), as curvas de direção do olhar não acionam de fato os olhos. O sintoma visível é que os olhos olham para baixo, com as pupilas quase escondidas, quando o nó do modo Curves está ativo, independentemente da localização do alvo.

Se você vir isto, mude para o modo Bones. O modo Bones gira diretamente os ossos dos olhos, então ele funciona em todas as variantes de MetaHuman, independentemente de como o Control Rig está configurado. Consulte a guia Bones em Configuração abaixo.

Configuração

A configuração padrão. O nó fica no Blueprint de Animação Facial padrão e controla as curvas de olhar do Control Rig facial.

Dois passos: adicione o nó ao seu Anim Graph e, em seguida, forneça a ele uma localização alvo a partir do Event Graph.

1. Anim Graph: adicione o nó

No seu Blueprint de Animação Facial's Anim Graph:

  1. Adicione um nó Runtime MetaHuman Eyes Aim
  2. Deixe Mode definido como Curves no painel de Detalhes
  3. Coloque-o depois de toda a outra lógica facial que possa escrever nas curvas de olhar (lip sync, animações personalizadas, etc.), mesmo princípio do nó Auto Blink Control Rig
  4. Conecte a pose existente a Source Pose
  5. Conecte a saída ao próximo nó da sua cadeia (ou Output Pose)
  6. Crie uma variável Vector no Blueprint (ex.: TargetWorldLocation) e conecte-a ao pino Target World Location do nó. Você atualizará essa variável a partir do Event Graph na próxima etapa.

Eyes Aim Anim Graph setup

2. Event Graph: forneça um local de destino

O pino Target World Location espera um FVector em espaço mundial. Um caso comum é fazer o MetaHuman olhar para a câmera do jogador. Em Event Blueprint Update Animation:

  1. Obtenha o Player Camera Manager (Player Index 0)
  2. Verifique se Is Valid
  3. Se for válido, chame Get Camera Location
  4. Armazene-o na variável Blueprint TargetWorldLocation

Eyes Aim, tracking the camera

Para rastrear um ator arbitrário (NPC, item, ponto de interesse) em vez disso, obtenha a localização desse ator a cada quadro e armazene-a na mesma variável. Para um ponto de gaze fixo, defina Target World Location uma vez ou como uma constante no painel de Detalhes do nó.

Configuração

Todas as configurações estão expostas no painel Details do nó Runtime MetaHuman Eyes Aim.

Aim & Clamp

Objetivo

PropriedadePadrãoDescrição
ModeCurvasSeleciona como os olhos são direcionados. Consulte Escolhendo um Modo.
Localização Mundial do Alvo(0,0,0)Ponto no espaço mundial para onde os olhos olham. Exposto como um pino por padrão.
bEnabledtrueQuando false, os olhos relaxam de volta para a frente e ignoram o alvo. Exposto como um pino por padrão.

Restringir

PropriedadePadrãoDescrição
Graus Máximos de Yaw35°Deflexão horizontal máxima (yaw) em relação à direção frontal da cabeça. Limitado de 0 a 80.
Graus Máximos de Pitch25°Deflexão vertical máxima (pitch) em relação à direção frontal da cabeça. Limitado de 0 a 80.
Anti-Flip AtrástrueImpede que os olhos virem quando o alvo passa atrás da cabeça.
Suavização & Sacadas

Suavização

PropriedadePadrãoDescrição
Velocidade de Interpolação12.0Velocidade de suavização para o movimento dos olhos. Mais alto = mais rápido, mais baixo = mais lânguido.

Sacadas

Micro-sacadas são pequenos deslocamentos aleatórios do olhar que os olhos reais realizam constantemente. Adicioná-las evita a aparência de "olhar morto" do rastreamento perfeitamente suave.

PropriedadePadrãoDescrição
Habilitar SacadastrueAtiva/desativa micro-sacadas.
Amplitude de Guinada da Sacada (Graus)1,5°Jitter horizontal máximo por sacada. Valores pequenos (1–2°) parecem naturais; valores maiores parecem nervosos.
Amplitude de Arfagem da Sacada (Graus)1,0°Jitter vertical máximo por sacada. Geralmente um pouco menor que a amplitude de guinada.
Intervalo Mínimo de Sacada0,6 sTempo mínimo entre sacadas.
Intervalo Máximo de Sacada2,5 sTempo máximo entre sacadas. Valores maiores parecem mais calmos; valores menores parecem inquietos.
Ossos (somente no modo Bones)
PropriedadePadrãoDescrição
Osso do Olho EsquerdoFACIAL_L_EyeNome do osso do olho esquerdo. Corresponde ao esqueleto facial padrão do MetaHuman.
Osso do Olho DireitoFACIAL_R_EyeNome do osso do olho direito. Corresponde ao esqueleto facial padrão do MetaHuman.
Calibração (somente no modo Curvas)

Esses valores definem como os ângulos no espaço da cabeça são mapeados para os valores da curva de olhar do CR facial do MetaHuman. Os padrões são ajustados para o CR facial padrão do MetaHuman e raramente precisam ser alterados.

PropriedadePadrãoDescrição
Curva de Graus de Yaw por Unidade30°Ângulo que mapeia para um valor de curva de 1,0 para curvas de olhar de yaw.
Curva de Graus de Pitch por Unidade25°Ângulo que mapeia para um valor de curva de 1,0 para curvas de olhar de pitch.

Combinando com Lip Sync e Outras Animações

Ambos os helpers foram projetados para coexistir com os nós de lip sync do plugin e com qualquer animação facial personalizada que você já tenha.

  • Eyes Aim deve ser posicionado depois da sincronização labial e de qualquer animação facial personalizada na mesma cadeia, para que seus valores de direção do olhar não sejam sobrescritos posteriormente. Consulte Escolhendo um Modo e Configuração acima.
  • Auto Blink usa um nó Layered blend per bone em vez de uma colocação linear simples, consulte a dica A colocação importa acima para conectar o nó do Control Rig à sua entrada de Base Pose.
Veja o Fluxograma Detalhado de Execução (Modo Curvas vs. Modo Ossos)

Dependendo se o seu rig de MetaHuman usa o modo recomendado Curves Mode ou o modo alternativo Bones Mode, a posição da sua lógica de execução mudará. Expanda o gráfico abaixo para ver a ordem exata de execução para ambos os pipelines:

Auto Blink e lip sync ainda ficam no Face AnimBP regular em ambos os modos.

Para detalhes sobre camadas com animações corporais, consulte Combinação com Animações Existentes.

Notas e Limitações

Esses utilitários são específicos para MetaHuman. Eles dependem dos nomes padrão das curvas do Control Rig facial do MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) e dos ossos oculares padrão (FACIAL_L_Eye, FACIAL_R_Eye). Eles não são destinados a personagens personalizados que não sejam MetaHuman.

Precisa de Ajuda?

Join our Discord
online · support

Para solicitações de desenvolvimento personalizado, entre em contato com [email protected].