Pular para o conteúdo principal

Ajudantes de Animação dos Olhos

Além da sincronização labial, o plugin Runtime MetaHuman Lip Sync inclui dois utilitários auxiliares opcionais para animar os olhos do MetaHuman:

  • Piscada Automática: um auxiliar que produz piscadas naturais e aleatórias em um MetaHuman
  • Orientação dos Olhos: um nó do Animation Blueprint que faz os olhos de um MetaHuman olharem para uma localização 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 projetados como auxiliares leves e de fácil implementação para adicionar comportamento ocular realista sem a necessidade de criá-lo manualmente.

Pré-visualizações de 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 sigam 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 faltantes, como piscadas em uma sequência que anima apenas a boca.

O auxiliar de piscada automática produz piscadas aleatórias e de aparência natural ao acionar as curvas CTRL_L_eye_blink e CTRL_R_eye_blink do Control Rig Facial do MetaHuman.

Como Funciona

Em 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 momento de piscada, fase atual de aberto/fechado, etc.) indexado pelo AnimInstance que o chamou
  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ó do Control Rig no Anim Graph.

No seu Blueprint de Animação Facial (ex.: Face_AnimBP ou sua versão duplicada/copiada, veja o Guia de Configuração), abra o Grafo de Eventos e adicione o seguinte ao Evento 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 valores padrão já parecem naturais
  4. Promova Left Blink Value e Right Blink Value para variáveis do Blueprint (ex.: LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

No Anim Graph do mesmo Animation Blueprint:

  1. Coloque um nó Control Rig após toda a outra lógica facial que possa escrever nas curvas de piscar os olhos (por exemplo, após Blend Runtime MetaHuman Lip Sync e quaisquer camadas de animação facial personalizadas)
  2. No painel Detalhes do nó, defina Classe do Control Rig (Referência de Ativo do Control Rig no UE 5.8+) para o Control Rig facial do seu MetaHuman. O caminho é tipicamente:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • O caminho do seu projeto pode ser diferente dependendo de como o MetaHuman foi importado.
  3. No Painel de Detalhes, expanda a seção Entrada e ative Usar Pino 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

O posicionamento é importante.

Coloque o nó do Control Rig após os nós de blend de sincronia labial (e quaisquer outros nós de animação facial) para que os valores de piscar não sejam sobrescritos por outra lógica.

Configuração

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

Propriedades de configuração

Tempo

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 Espera Fechado0,04 sTempo mínimo que os olhos permanecem totalmente fechados.
Tempo Máximo de Espera Fechado0,08 sTempo máximo que os olhos permanecem totalmente fechados.

Interpolação

PropriedadePadrãoDescrição
Velocidade de Interpolação Fechada35,0Velocidade ao fechar os olhos. Os 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 Aberta18.0Velocidade ao abrir os olhos.
Limiar Fechado0,97Valor no qual o piscar é considerado "totalmente fechado" e a fase de espera começa.
Limiar Aberto0,02Valor no qual o piscar é considerado "totalmente aberto" e o próximo piscar é agendado.

Misc

PropriedadePadrãoDescrição
Olhos IndependentesfalsoQuando true, o olho esquerdo e o direito piscam de forma independente, com temporizações separadas. Quando false (padrão), ambos os olhos piscam perfeitamente sincronizados.
bEnabled (pino de função)trueQuando false, os olhos voltam a abrir suavemente e o piscar é pausado. Útil para cenas, 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 reviver um personagem ou alternar estados cinematográficos).

Orientação dos Olhos

O auxiliar de direcionamento dos olhos é um nó do Animation Blueprint (Runtime MetaHuman Eyes Aim) que faz com que os olhos do personagem acompanhem 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 guinada/inclinação, 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 Modo no painel de Detalhes do nó:

ModeO que isso impulsionaOnde colocá-lo
Curvas (padrão)As curvas de olhar do Control Rig facial (CTRL_expressions_eyeLook*)No Blueprint de Animação Facial (ex.: Face_AnimBP), antes do nó do Control Rig
OssosOs ossos FACIAL_L_Eye / FACIAL_R_Eye diretamente, ignorando o Control Rig.No Blueprint de Animação de Pós-Processamento Facial (ex.: Face_PostProcess_AnimBP), após o nó AnimNode_RigLogic

Modo de curvas é o padrão recomendado. Ele se compõe de forma limpa com outros sistemas faciais baseados em curvas (sincronização labial, expressões, blendshapes do ARKit, etc.), já que os valores são combinados através da avaliação normal do Control Rig, em vez de competirem por transformações de ossos.

Quando o modo Curvas não funcionar, use o modo Ossos.

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

Se você vir isso, mude para o modo Ossos. O modo Ossos rotaciona diretamente os ossos dos olhos, funcionando em qualquer variante do MetaHuman, independentemente de como o Control Rig está configurado. Veja a guia Ossos em Configuração abaixo.

Configuração

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

Duas etapas: 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 Animation Blueprint Facial's Anim Graph:

  1. Adicione um nó Runtime MetaHuman Eyes Aim
  2. Mantenha Mode definido como Curves no painel de Detalhes
  3. Posicione-o após toda a lógica facial que possa escrever nas curvas de olhar (sincronização labial, animações personalizadas, etc.), seguindo o 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 do 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. Grafo de Eventos: insira um local de destino

O pino Localização Alvo no Mundo espera um FVector em espaço mundial. Um caso comum é fazer o MetaHuman olhar para a câmera do jogador. Em Blueprint de Animação de Evento de Atualização:

  1. Obter Gerenciador de Câmera do Jogador (Índice do Jogador 0)
  2. Verificar É Válido
  3. Se for válido, chamar Obter Localização da Câmera
  4. Armazená-la na variável Blueprint TargetWorldLocation

Eyes Aim, tracking the camera

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

Configuração

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

Mirar e Travar

Objetivo

PropriedadePadrãoDescrição
ModeCurvasSeleciona como os olhos são controlados. Veja Escolhendo um Modo.
Localização Alvo no Mundo(0,0,0)Ponto no espaço do mundo para onde os olhos olham. Exposto como um pino por padrão.
bEnabledtrueQuando false, os olhos retornam suavemente para a posição frontal e ignoram o alvo. Exposto como um pino por padrão.

Limitar

PropriedadePadrãoDescrição
Graus Máximos de Guinada35°Deflexão horizontal máxima (yaw) a partir da direção frontal da cabeça. Limitada de 0 a 80.
Graus Máximos de Inclinação25°Deflexão vertical máxima (pitch) a partir da direção frontal da cabeça. Limitada de 0 a 80.
Anti Flip BehindtrueImpede que os olhos se virem quando o alvo passa atrás da cabeça.
Suavização e Sacadas

Suavização

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

Sacadas

Micro-saccades são minúsculos desvios aleatórios do olhar que os olhos reais realizam constantemente. Adicioná-los evita a aparência de "olho morto" de um rastreamento perfeitamente suave.

PropriedadePadrãoDescrição
Ativar SaccadestrueAtiva/desativa micro-sacadas.
Amplitude de Desvio de Sacada no Eixo Y1,5°Jitter horizontal máximo por sacada. Valores pequenos (1–2°) parecem naturais; valores maiores parecem instáveis.
Amplitude de Inclinação da Sacada (Deg)1,0°Jitter vertical máximo por sacada. Geralmente ligeiramente menor que a amplitude de guinada.
Intervalo Mínimo de Sacadas0,6 sTempo mínimo entre sacadas.
Intervalo Máximo de Sacadas2,5 sTempo máximo entre sacadas. Valores maiores parecem mais calmos, valores menores parecem mais inquietos.
Ossos (apenas no modo Ossos)
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_OlhoNome do osso do olho direito. Corresponde ao esqueleto facial padrão do MetaHuman.
Calibração (apenas no modo Curvas)

Esses valores definem como os ângulos do 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 guinada.
Curva de Graus de Pitch por Unidade25°Ângulo que mapeia para um valor de curva de 1.0 para curvas de olhar de inclinação (pitch).

Combinando com Sincronização Labial e Outras Animações

Ambos os auxiliares são projetados para coexistir com os nós de sincronia labial do plugin e qualquer animação facial personalizada que você já tenha. A regra geral: coloque os nós de Direcionamento do Olhar (Eyes Aim) e Control Rig (piscada automática) após a sincronia labial e qualquer animação facial personalizada, para que seus valores não sejam sobrescritos posteriormente no fluxo.

Visualizar Fluxograma Detalhado de Execução (Modo Curvas vs. Modo Ossos)

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

O piscar automático e a sincronização labial ainda permanecem no Face AnimBP normal em ambos os modos.

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

Notas e Limitações

Esses auxiliares são específicos do 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). 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].