Auxiliares 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 de MetaHumans:
- Auto Blink: um auxiliar que produz piscadas naturais e aleatórias em um MetaHuman
- Eyes Aim: um nó de Animation Blueprint que faz os olhos de um MetaHuman olharem para uma localização no espaço do mundo
Esses 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 prontos para uso, adicionando comportamento ocular realista sem a necessidade de criá-lo manualmente.
Pré-visualizações dos Recursos
Se seu pipeline de animação facial já inclui piscadas e olhar dinâmico, você pode pular esta página. Esses helpers existem para casos onde 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 peças faltantes, como piscadas sobre uma sequência que apenas anima a boca.
Auto Blink
O helper Auto Blink produz piscadas aleatórias e de aparência natural, acionando as curvas CTRL_L_eye_blink e CTRL_R_eye_blink do Control Rig da Face MetaHuman.
Como Funciona
A cada frame, você chama Update MetaHuman Auto Blink do Event Graph do seu Face Animation Blueprint e passa o delta time do frame. A função:
- Rastreia o estado por personagem (próximo tempo de piscada, fase atual de aberto/fechado, etc.) indexado pelo
AnimInstanceque a chamou - Retorna dois valores float no intervalo 0..1, um para o olho esquerdo e outro para o direito, representando o quão fechado cada olho está atualmente
- Você então armazena esses valores em variáveis do Blueprint e os alimenta no nó Control Rig no Anim Graph
Configuração
Dois passos: adicione a chamada de piscada ao seu Event Graph, então alimente os valores em um nó Control Rig no Anim Graph.
1. Event Graph: acione os valores de piscada a cada frame
No seu Face Animation Blueprint (ex: Face_AnimBP ou sua versão duplicada/copiada, veja Guia de Configuração), abra o Event Graph e adicione o seguinte ao Event Blueprint Update Animation:
- Chame
Update MetaHuman Auto Blink - Conecte Delta Time X (do evento) a Delta Seconds
- (Opcional) Configure o struct Config. Os padrões 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 outra lógica facial que possa escrever nas curvas de piscada (ex: após
Blend Runtime MetaHuman Lip Synce quaisquer camadas de animação facial personalizadas) - No painel Details do nó, defina Control Rig Class para o Control Rig da face 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.
- No painel Details, expanda a seção Input e habilite Use Pin para:
CTRL_L_eye_blinkCTRL_R_eye_blink
- Conecte sua variável
LeftBlinkValueaCTRL_L_eye_blink - Conecte sua variável
RightBlinkValueaCTRL_R_eye_blink

Coloque o nó Control Rig após os nós de blend de lip sync (e quaisquer outros nós de animação facial) para que os valores de piscada não sejam sobrescritos por outra lógica.
Configuração
O nó Update MetaHuman Auto Blink aceita um struct Config opcional. Os padrões já parecem naturais para a maioria dos personagens, expanda abaixo se quiser ajustar o comportamento.
Propriedades do Config
Temporização
| Propriedade | Padrão | Descrição |
|---|---|---|
| Min Time Between Blinks | 2.0 s | Intervalo mínimo entre piscadas enquanto os olhos estão totalmente abertos. |
| Max Time Between Blinks | 4.0 s | Intervalo máximo entre piscadas. O intervalo real é aleatório entre o mínimo e o máximo. |
| Min Closed Hold Time | 0.04 s | Tempo mínimo que os olhos permanecem totalmente fechados. |
| Max Closed Hold Time | 0.08 s | Tempo máximo que os olhos permanecem totalmente fechados. |
Interpolação
| Propriedade | Padrão | Descrição |
|---|---|---|
| Close Interp Speed | 35.0 | Velocidade ao fechar os olhos. Humanos fecham os olhos mais rápido do que os abrem, então isso é intencionalmente maior que a velocidade de abertura. |
| Open Interp Speed | 18.0 | Velocidade ao abrir os olhos. |
| Closed Threshold | 0.97 | Valor no qual a piscada é considerada "totalmente fechada" e a fase de espera começa. |
| Open Threshold | 0.02 | Valor no qual a piscada é considerada "totalmente aberta" e a próxima piscada é agendada. |
Diversos
| Propriedade | Padrão | Descrição |
|---|---|---|
| Independent Eyes | false | Quando true, o olho esquerdo e o direito piscam independentemente com temporizações separadas. Quando false (padrão), ambos os olhos piscam em sincronia perfeita. |
bEnabled (pino da função) | true | Quando false, os olhos se abrem suavemente e as piscadas param. Útil para cutscenes, sono, morte, etc. |
Controle em Tempo de Execução
Você também pode chamar Reset Auto Blink State para limpar explicitamente o estado interno de um determinado AnimInstance (ex: ao renascer um personagem ou alternar estados cinematográficos).
Eyes Aim
O helper Eyes Aim é um nó do 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 clamping de yaw/pitch, suavização, proteção anti-flip 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 Details do nó:
| Modo | O que ele aciona | Onde colocá-lo |
|---|---|---|
| Curves (padrão) | As curvas de olhar do Control Rig da Face (CTRL_expressions_eyeLook*) | No Face Animation Blueprint (ex: Face_AnimBP), antes do nó Control Rig |
| Bones | Os ossos FACIAL_L_Eye / FACIAL_R_Eye diretamente, ignorando o Control Rig | No Face Post Process Animation Blueprint (ex: Face_PostProcess_AnimBP), após o nó AnimNode_RigLogic |
O modo Curves é o padrão recomendado. Ele se compõe de forma limpa com outros sistemas faciais baseados em curvas (lip sync, expressões, blendshapes ARKit, etc.), já que os valores são combinados através da avaliação normal do Control Rig, em vez de disputar as transformações dos ossos.
Em algumas variantes do MetaHuman (notadamente rigs mais antigos, incluindo alguns baixados via Quixel Bridge), as curvas de olhar não acionam os olhos de fato. O sintoma visível é que os olhos olham para baixo com as pupilas quase escondidas quando o nó no modo Curves está ativo, independentemente da localização do alvo.
Se você vir isso, mude para o modo Bones. O modo Bones rotaciona diretamente os ossos dos olhos, então funciona em todas as variantes do MetaHuman, independentemente de como o Control Rig está configurado. Veja a aba Bones em Configuração abaixo.
Configuração
- Modo Curves (padrão)
- Modo Bones (fallback)
A configuração padrão. O nó reside no Face Animation Blueprint padrão e aciona as curvas de olhar do Control Rig da Face.
Dois passos: adicione o nó ao seu Anim Graph, então alimente-o com uma localização alvo do Event Graph.
1. Anim Graph: adicione o nó
No Anim Graph do seu Face Animation Blueprint:
- Adicione um nó
Runtime MetaHuman Eyes Aim - Deixe Mode definido como Curves no painel Details
- Coloque-o após toda outra lógica facial que possa escrever nas curvas de olhar (lip sync, animações personalizadas, etc.), mesmo princípio do nó Control Rig do Auto Blink
- Conecte a pose existente a Source Pose
- Conecte a saída ao próximo nó em 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á esta variável do Event Graph no próximo passo.

2. Event Graph: alimente uma localização alvo
O pino Target World Location espera um FVector no espaço do mundo. Um caso comum é fazer o MetaHuman olhar para a câmera do jogador. Em Event Blueprint Update Animation:
- Obtenha Player Camera Manager (Player Index 0)
- Verifique Is Valid
- Se válido, chame Get Camera Location
- Armazene-o na variável do Blueprint
TargetWorldLocation

Para rastrear um ator arbitrário (NPC, item, ponto de interesse), obtenha a localização desse ator a cada frame e armazene-a na mesma variável. Para um ponto de olhar fixo, defina Target World Location uma vez ou como uma constante no painel Details do nó.
Use esta configuração se a abordagem do modo Curves não funcionar para sua variante do MetaHuman (veja o aviso acima). No modo Bones, o nó rotaciona diretamente os ossos dos olhos e deve ser executado após o Control Rig ter terminado a avaliação, o que significa que ele pertence ao Face Post Process Animation Blueprint em vez do Face AnimBP regular.
Três passos: localize o Post Process Anim BP, adicione o nó após o RigLogic, então alimente-o com uma localização alvo do Event Graph desse blueprint.
1. Localize o Face Post Process Anim BP
- Abra o face Skeletal Mesh do seu MetaHuman (ex:
Facena pasta do seu MetaHuman) - No painel Details do asset, encontre o campo Post Process Anim Blueprint
- Abra esse asset, ele é tipicamente 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 da Face em transformações de ossos) - Adicione um nó
Runtime MetaHuman Eyes AimapósAnimNode_RigLogice antes deOutput Pose - No painel Details do nó, defina Mode como Bones
- Conecte
AnimNode_RigLogicao 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 seu personagem usa um esqueleto personalizado com nomes de ossos oculares diferentes, substitua-os no painel Details do nó sob a categoria Bones.
3. Event Graph: alimente uma localização alvo
Como o nó reside no Post Process Anim BP, a lógica da localização alvo também deve viver no Event Graph deste blueprint, não no Face_AnimBP. A configuração é idêntica ao modo Curves (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 (lip sync, auto blink, etc.) pode permanecer no Face AnimBP regular. Apenas o cálculo da localização alvo para o Eyes Aim precisa ser movido para cá. O Face Control Rig aciona forçadamente os ossos dos olhos a cada frame 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 de ossos, então é o lugar correto para aplicar rotações finais de ossos 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 Details do nó Runtime MetaHuman Eyes Aim.
Mira & Clamp
Mira
| Propriedade | Padrão | Descrição |
|---|---|---|
| Mode | Curves | Seleciona como os olhos são acionados. Veja Escolhendo um Modo. |
| Target World Location | (0,0,0) | Ponto no espaço do mundo para o qual os olhos olham. Exposto como um pino por padrão. |
bEnabled | true | Quando false, os olhos retornam suavemente para a frente e ignoram o alvo. Exposto como um pino por padrão. |
Clamp
| Propriedade | Padrão | Descrição |
|---|---|---|
| Max Yaw Degrees | 35° | Deflexão horizontal máxima (yaw) da direção frontal da cabeça. Limitado de 0 a 80. |
| Max Pitch Degrees | 25° | Deflexão vertical máxima (pitch) da direção frontal da cabeça. Limitado de 0 a 80. |
| Anti Flip Behind | true | Previne que os olhos virem quando o alvo passa atrás da cabeça. |
Suavização & Sacadas
Suavização
| Propriedade | Padrão | Descrição |
|---|---|---|
| Interp Speed | 12.0 | Velocidade de suavização para o movimento dos olhos. Maior = mais rápido, menor = mais lânguido. |
Sacadas
Micro-sacadas são pequenos desvios de olhar aleatórios que os olhos reais realizam constantemente. Adicioná-las evita a aparência de "olho morto" de um rastreamento perfeitamente suave.
| Propriedade | Padrão | Descrição |
|---|---|---|
| Enable Saccades | true | Ativa/desativa micro-sacadas. |
| Saccade Yaw Amplitude Deg | 1.5° | Máximo tremor horizontal por sacada. Valores pequenos (1–2°) parecem naturais; valores maiores parecem nervosos. |
| Saccade Pitch Amplitude Deg | 1.0° | Máximo tremor vertical por sacada. Geralmente ligeiramente menor que a amplitude de yaw. |
| Min Saccade Interval | 0.6 s | Tempo mínimo entre sacadas. |
| Max Saccade Interval | 2.5 s | Tempo máximo entre sacadas. Valores maiores parecem mais calmos, valores menores parecem mais inquietos. |
Bones (apenas modo Bones)
| Propriedade | Padrão | Descrição |
|---|---|---|
| Left Eye Bone | FACIAL_L_Eye | Nome do osso do olho esquerdo. Corresponde ao esqueleto facial padrão do MetaHuman. |
| Right Eye Bone | FACIAL_R_Eye | Nome do osso do olho direito. Corresponde ao esqueleto facial padrão do MetaHuman. |
Calibração (apenas modo Curves)
Esses valores definem como os ângulos do espaço da cabeça mapeiam para os valores das curvas de olhar do CR da Face MetaHuman. Os padrões são ajustados para o CR da Face MetaHuman padrão e raramente precisam ser alterados.
| Propriedade | Padrão | Descrição |
|---|---|---|
| Yaw Degrees Per Unit Curve | 30° | Ângulo que mapeia para um valor de curva de 1.0 para curvas de olhar de yaw. |
| Pitch Degrees Per Unit Curve | 25° | Â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 são projetados para coexistir com os nós de lip sync do plugin e qualquer animação facial personalizada que você já tenha. A regra geral: coloque os nós Eyes Aim e Control Rig (auto-blink) após o lip sync e qualquer animação facial personalizada, para que seus valores não sejam sobrescritos downstream.
Ver Fluxograma de Execução Detalhado (Modo Curves vs. Modo Bones)
Dependendo se seu rig MetaHuman usa o Modo Curves recomendado ou o Modo Bones alternativo, a colocaçã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:
O Auto Blink e a lip sync ainda residem no Face AnimBP normal em ambos os modos.
Para detalhes sobre camadas com animações corporais, consulte Combining with Existing Animations.
Notas e Limitações
Esses helpers são específicos do MetaHuman. Eles dependem dos nomes de curvas padrão 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?
Para solicitações de desenvolvimento personalizado, entre em contato com [email protected].