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
Demonstração em Vídeo
Guia completo de ambos os helpers, incluindo a solução alternativa para o rig legado.
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.
Piscada Automática
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:
- Rastreia o estado por personagem (próximo momento de piscada, fase atual de aberto/fechado, etc.) indexado pelo
AnimInstanceque o chamou - 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
- 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.
1. Event Graph: acione os valores de piscada a cada quadro
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:
- Chame
Update MetaHuman Auto Blink - Conecte Delta Time X (do evento) a Delta Seconds
- (Opcional) Configure a struct Config. Os valores padrão já parecem naturais
- Promova Left Blink Value e Right Blink Value para variáveis do Blueprint (ex.:
LeftBlinkValue,RightBlinkValue)

2. Anim Graph: alimente os valores no Face Control Rig
No Anim Graph do mesmo Animation Blueprint:
- 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 Synce quaisquer camadas de animação facial personalizadas) - 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.
- No Painel de Detalhes, expanda a seção Entrada e ative Usar Pino para:
CTRL_L_eye_blinkCTRL_R_eye_blink
- Conecte sua variável
LeftBlinkValueaoCTRL_L_eye_blink - Conecte sua variável
RightBlinkValueaoCTRL_R_eye_blink

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
| Propriedade | Padrão | Descrição |
|---|---|---|
| Tempo Mínimo Entre Piscadas | 2,0 s | Intervalo mínimo entre piscadas enquanto os olhos estão totalmente abertos. |
| Tempo Máximo Entre Piscadas | 4,0 s | Intervalo máximo entre piscadas. O intervalo real é randomizado entre o mínimo e o máximo. |
| Tempo Mínimo de Espera Fechado | 0,04 s | Tempo mínimo que os olhos permanecem totalmente fechados. |
| Tempo Máximo de Espera Fechado | 0,08 s | Tempo máximo que os olhos permanecem totalmente fechados. |
Interpolação
| Propriedade | Padrão | Descrição |
|---|---|---|
| Velocidade de Interpolação Fechada | 35,0 | Velocidade 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 Aberta | 18.0 | Velocidade ao abrir os olhos. |
| Limiar Fechado | 0,97 | Valor no qual o piscar é considerado "totalmente fechado" e a fase de espera começa. |
| Limiar Aberto | 0,02 | Valor no qual o piscar é considerado "totalmente aberto" e o próximo piscar é agendado. |
Misc
| Propriedade | Padrão | Descrição |
|---|---|---|
| Olhos Independentes | falso | Quando 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) | true | Quando 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ó:
| Mode | O que isso impulsiona | Onde 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 |
| Ossos | Os 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.
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
- Modo Curvas (padrão)
- Modo de Ossos (fallback)
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:
- Adicione um nó
Runtime MetaHuman Eyes Aim - Mantenha Mode definido como Curves no painel de Detalhes
- 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
- Conecte a pose existente a Source Pose
- Conecte a saída ao próximo nó da sua cadeia (ou
Output Pose) - Crie uma variável
Vectordo 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.

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:
- Obter Gerenciador de Câmera do Jogador (Índice do Jogador 0)
- Verificar É Válido
- Se for válido, chamar Obter Localização da Câmera
- Armazená-la na variável Blueprint
TargetWorldLocation

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ó.
Use esta configuração se a abordagem do modo Curvas não funcionar para sua variante do MetaHuman (veja o aviso acima). No modo Ossos, o nó rotaciona diretamente os ossos dos olhos e deve ser executado após o Control Rig ter finalizado a avaliação, o que significa que ele pertence ao Animation Blueprint de Pós-Processamento Facial em vez do AnimBP Facial comum.
Três etapas: localize o Post Process Anim BP, adicione o nó após o RigLogic e, em seguida, forneça a ele uma localização alvo a partir do Event Graph desse blueprint.
1. Localize o Face Post Process Anim BP
- Abra o ativo Skeletal Mesh do rosto do seu MetaHuman (ex.:
Facena pasta do seu MetaHuman) - No painel Detalhes do ativo, localize o campo Post Process Anim Blueprint
- Abra esse ativo, geralmente nomeado algo como
Face_PostProcess_AnimBP
2. Anim Graph: adicione o nó após o RigLogic
No Anim Graph do Face Post Process Anim BP:
- Localize o nó
AnimNode_RigLogicexistente (ele converte as curvas do Control Rig facial em transformações de ossos) - Adicione um nó
Runtime MetaHuman Eyes AimapósAnimNode_RigLogice antes deOutput Pose - No painel de Detalhes do nó, defina Mode como Bones
- Conecte
AnimNode_RigLogicà Source Pose do nó Eyes Aim - Conecte a saída do nó Eyes Aim a
Output Pose - Crie uma variável
Vectordo Blueprint (ex.:TargetWorldLocation) neste Post Process Anim BP e conecte-a ao pino Target World Location do nó

As referências de osso padrão (FACIAL_L_Eye e FACIAL_R_Eye) correspondem ao esqueleto facial padrão do MetaHuman. Se o seu personagem usar um esqueleto personalizado com nomes de ossos dos olhos diferentes, substitua-os no painel de Detalhes do nó, na categoria Ossos.
3. Gráfico de Eventos: insira um local de destino
Como o nó reside no Post Process Anim BP, a lógica de localização do alvo também deve residir no Event Graph deste blueprint, não no Face_AnimBP. A configuração é idêntica ao modo Curvas (obter a localização da câmera, a localização de um ator ou usar uma constante), apenas executada dentro do Face_PostProcess_AnimBP.

Qualquer lógica não relacionada (sincronização labial, piscar automático, etc.) pode permanecer no Face AnimBP regular. Apenas o cálculo da localização-alvo para o direcionamento dos olhos precisa ser movido para cá. O Face Control Rig força os ossos dos olhos a cada quadro com base em suas curvas. Se o nó Eyes Aim fosse executado no Face AnimBP regular (antes do Control Rig), o Control Rig sobrescreveria as rotações dos ossos posteriormente. O Post Process Anim BP é executado após o Control Rig ter produzido suas transformações finais dos ossos, sendo o local correto para aplicar rotações finais que precisam "prevalecer".Por que o modo Bones precisa do Post Process Anim BP?
Configuração
Todas as configurações estão expostas no painel Detalhes do nó Runtime MetaHuman Eyes Aim.
Mirar e Travar
Objetivo
| Propriedade | Padrão | Descrição |
|---|---|---|
| Mode | Curvas | Seleciona 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. |
bEnabled | true | Quando false, os olhos retornam suavemente para a posição frontal e ignoram o alvo. Exposto como um pino por padrão. |
Limitar
| Propriedade | Padrão | Descrição |
|---|---|---|
| Graus Máximos de Guinada | 35° | 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ção | 25° | Deflexão vertical máxima (pitch) a partir da direção frontal da cabeça. Limitada de 0 a 80. |
| Anti Flip Behind | true | Impede que os olhos se virem quando o alvo passa atrás da cabeça. |
Suavização e Sacadas
Suavização
| Propriedade | Padrão | Descrição |
|---|---|---|
| Velocidade de Interpolação | 12.0 | Velocidade 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.
| Propriedade | Padrão | Descrição |
|---|---|---|
| Ativar Saccades | true | Ativa/desativa micro-sacadas. |
| Amplitude de Desvio de Sacada no Eixo Y | 1,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 Sacadas | 0,6 s | Tempo mínimo entre sacadas. |
| Intervalo Máximo de Sacadas | 2,5 s | Tempo máximo entre sacadas. Valores maiores parecem mais calmos, valores menores parecem mais inquietos. |
Ossos (apenas no modo Ossos)
| Propriedade | Padrão | Descrição |
|---|---|---|
| Osso do Olho Esquerdo | FACIAL_L_Eye | Nome do osso do olho esquerdo. Corresponde ao esqueleto facial padrão do MetaHuman. |
| Osso do Olho Direito | FACIAL_R_Olho | Nome 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.
| Propriedade | Padrão | Descrição |
|---|---|---|
| Curva de Graus de Yaw por Unidade | 30° | Ângulo que mapeia para um valor de curva de 1.0 para curvas de olhar de guinada. |
| Curva de Graus de Pitch por Unidade | 25° | Â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?
Para solicitações de desenvolvimento personalizado, entre em contato com [email protected].