Помощники анимации глаз
Помимо синхронизации губ, плагин Runtime MetaHuman Lip Sync включает две дополнительные вспомогательные утилиты для анимации глаз MetaHuman:
- Автоматическое моргание: помощник, который создает естественные, случайные моргания глаз на MetaHuman
- Наведение взгляда: узел Animation Blueprint, который заставляет глаза MetaHuman смотреть на точку в мировом пространстве
Эти функции полностью независимы от липсинка и могут использоваться по отдельности, вместе или в сочетании с узлами липсинка. Они предназначены как легковесные вспомогательные инструменты для добавления реалистичного поведения глаз без необходимости создавать его вручную.
Предварительные обзоры функций
Пошаговое видео
Полное прохождение обоих помощников, включая обходной путь для легаси-рига.
Если ваш конвейер лицевой анимации уже включает моргания и динамический взгляд, эту страницу можно пропустить. Эти вспомогательные инструменты существуют для случаев, когда вам нужно реалистичное поведение глаз без самостоятельной настройки, например, когда ваши анимационные последовательности не включают моргания или когда глазам необходимо динамически следить за движущейся целью (чего статичные анимационные последовательности сделать не могут). Их также можно накладывать поверх существующей лицевой анимации, чтобы добавить недостающие элементы, например, моргания поверх последовательности, которая анимирует только рот.
Автоматическое моргание
Вспомогательный инструмент Auto Blink создаёт случайные, естественно выглядящие моргания глаз, управляя кривыми CTRL_L_eye_blink и CTRL_R_eye_blink контрольного рига лица MetaHuman.
Как это работает
Каждый кадр вызывайте Update MetaHuman Auto Blink из Event Graph вашего Face Animation Blueprint и передавайте в него дельта-время кадра. Функция:
- Отслеживает состояние каждого персонажа (время следующего моргания, текущая фаза открытия/закрытия и т.д.), привязанное к вызывающему
AnimInstance - Возвращает два значения с плавающей точкой в диапазоне 0..1, одно для левого глаза и одно для правого, показывающие, насколько закрыт каждый глаз в данный момент
- Затем вы сохраняете эти значения в переменных Blueprint и передаете их в узел Control Rig в графе анимаций
Установка
Два шага: добавьте вызов моргания в ваш Event Graph, затем передайте значения в узел Control Rig в Anim Graph.
1. Граф событий: управляйте значениями моргания каждый кадр
В вашем Face Animation Blueprint (например, Face_AnimBP или вашей дублированной/скопированной версии, см. Руководство по настройке), откройте Event Graph и добавьте следующее в Event Blueprint Update Animation:
- Вызовите
Update MetaHuman Auto Blink - Подключите Delta Time X (из события) к Delta Seconds
- (Необязательно) Настройте структуру Config. Значения по умолчанию уже выглядят естественно
- Продвигайте Left Blink Value и Right Blink Value до переменных Blueprint (например,
LeftBlinkValue,RightBlinkValue)

2. Граф анимации: передайте значения в контрольный риг лица.
В графе анимаций того же Animation Blueprint:
- Разместите узел Control Rig, который будет управлять кривыми моргания. То, куда именно он помещается, зависит от того, комбинируете ли вы Auto Blink с другой лицевой анимацией (синхронизацией губ, пользовательскими последовательностями и т. д.):
- Без другой лицевой анимации: разместите узел Control Rig напрямую в основной цепочке, перед
Output Pose. - Комбинирование с синхронизацией губ и/или другой лицевой анимацией: подключите этот узел Control Rig к узлу
Layered blend per boneвместо размещения напрямую в цепочке, см. подсказку ниже.
- Без другой лицевой анимации: разместите узел Control Rig напрямую в основной цепочке, перед
- В панели Details узла задайте Control Rig Class (Control Rig Asset Reference в UE 5.8+) как Control Rig лица вашего MetaHuman. Путь обычно такой:
/All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig- Путь в вашем проекте может отличаться в зависимости от того, как был импортирован MetaHuman.
- В панели Details разверните раздел Input и включите Use Pin для:
CTRL_L_eye_blinkCTRL_R_eye_blink
- Подключите вашу переменную
LeftBlinkValueкCTRL_L_eye_blink - Подключите вашу переменную
RightBlinkValueкCTRL_R_eye_blink

Если вы не комбинируете с другой лицевой анимацией, разместите узел Control Rig после узлов смешивания липсинка (и любых других узлов лицевой анимации) в цепочке, чтобы значения моргания не перезаписывались. Если вы всё же комбинируете с липсинком или другой лицевой анимацией, следуйте руководству Комбинирование с существующими анимациями и подключите этот узел Control Rig к входу Base Pose узла Layered blend per bone вместо этого — узел слоёного смешивания сохраняет оба эффекта, а не позволяет одному просто перезаписывать другой.
Конфигурация
Узел Update MetaHuman Auto Blink принимает необязательную структуру Config. Значения по умолчанию уже выглядят естественно для большинства персонажей; разверните раздел ниже, если хотите настроить поведение.
Свойства конфигурации
Тайминг
| Свойство | По умолчанию | Описание |
|---|---|---|
| Мин. интервал между морганиями | 2,0 с | Минимальный интервал между морганиями, когда глаза полностью открыты. |
| Макс. интервал между морганиями | 4,0 с | Максимальный интервал между морганиями. Фактический интервал выбирается случайным образом между минимальным и максимальным значениями. |
| Мин. время удержания закрытого состояния | 0,04 с | Минимальное время, в течение которого глаза остаются полностью закрытыми. |
| Макс. время удержания закрытого состояния | 0,08 с | Максимальное время, в течение которого глаза остаются полностью закрытыми. |
Интерполяция
| Свойство | По умолчанию | Описание |
|---|---|---|
| Скорость закрытия | 35.0 | Скорость при закрытии глаз. Люди закрывают глаза быстрее, чем открывают, поэтому это значение намеренно выше скорости открытия. |
| Скорость открытия | 18.0 | Скорость при открытии глаз. |
| Порог закрытия | 0.97 | Значение, при котором моргание считается «полностью завершённым» и начинается фаза удержания. |
| Порог открытия | 0.02 | Значение, при котором моргание считается «полностью открытым» и планируется следующее моргание. |
Разное
| Свойство | По умолчанию | Описание |
|---|---|---|
| Независимые глаза | false | Когда true, левый и правый глаз моргают независимо с разным временем. Когда false (по умолчанию), оба глаза моргают идеально синхронно. |
bEnabled (пин функции) | true | Когда false, глаза плавно открываются, и моргание приостанавливается. Полезно для катсцен, сна, смерти и т. д. |
Runtime Control
Вы также можете вызвать Reset Auto Blink State, чтобы явно очистить внутреннее состояние для заданного AnimInstance (например, при возрождении персонажа или переключении кинематографических состояний).
Прицеливание взглядом
Вспомогательный узел Eyes Aim — это узел Animation Blueprint (Runtime MetaHuman Eyes Aim), который заставляет глаза персонажа следить за точкой в мировом пространстве, например, за камерой игрока, другим актором или любой движущейся целью. Он поддерживает ограничение по рысканию/тангажу, сглаживание, защиту от переворота, когда цель проходит за головой, и опциональные микросаккады для дополнительной реалистичности.
Выбор режима
Узел поддерживает два режима, выбираемых через раскрывающийся список Mode на панели Details узла:
| Mode | Что это управляет | Где это разместить |
|---|---|---|
| Кривые (по умолчанию) | Кривые слежения за взглядом Control Rig лица (CTRL_expressions_eyeLook*) | В Face Animation Blueprint (например, Face_AnimBP), до узла Control Rig |
| Кости | Кости FACIAL_L_Eye / FACIAL_R_Eye напрямую, минуя Control Rig | В Face Post Process Animation Blueprint (например, Face_PostProcess_AnimBP), после узла AnimNode_RigLogic |
Режим кривых — рекомендуемый вариант по умолчанию. Он корректно сочетается с другими системами лицевой анимации на основе кривых (синхронизация губ, выражения, блендшейпы ARKit и т. д.), поскольку значения объединяются через обычную оценку Control Rig, а не конфликтуют за трансформации костей.
На некоторых вариантах MetaHuman (особенно на старых ригах, включая некоторые, загруженные через Quixel Bridge), кривые взгляда на самом деле не управляют глазами. Видимый симптом заключается в том, что глаза смотрят вниз, а зрачки почти скрыты, когда активен узел в режиме Curves, независимо от целевого местоположения.
Если вы видите это, переключитесь в режим Bones. Режим Bones напрямую вращает кости глаз, поэтому он работает с любым вариантом MetaHuman независимо от того, как настроен Control Rig. См. вкладку Bones в разделе Настройка ниже.
Установка
- Режим кривых (по умолчанию)
- Режим костей (запасной)
Стандартная настройка. Нода находится в стандартном Face Animation Blueprint и управляет кривыми взгляда глаз в Control Rig лица.
Два шага: добавьте узел в ваш Anim Graph, а затем передайте ему целевую позицию из Event Graph.
1. Граф анимаций: добавьте узел
В Anim Graph вашего Face Animation Blueprint:
- Добавьте узел
Runtime MetaHuman Eyes Aim - Оставьте параметр Mode установленным в Curves на панели Details
- Разместите его после всей остальной логики лицевой анимации, которая может записывать данные в кривые взгляда (липсинк, пользовательские анимации и т. д.), по тому же принципу, что и узел Auto Blink Control Rig
- Подключите существующую позу к Source Pose
- Подключите выход к следующему узлу в вашей цепочке (или к
Output Pose) - Создайте переменную Blueprint типа
Vector(например,TargetWorldLocation) и подключите её к пину Target World Location узла. Вы будете обновлять эту переменную из Event Graph на следующем шаге.

2. Граф событий: укажите целевое местоположение
Пин Target World Location ожидает FVector в мировом пространстве. Частый случай — заставить MetaHuman смотреть на камеру игрока. В Event Blueprint Update Animation:
- Получить Player Camera Manager (Player Index 0)
- Проверить Is Valid
- Если допустимо, вызвать Get Camera Location
- Сохранить его в переменной Blueprint
TargetWorldLocation

Чтобы отслеживать произвольного актора (NPC, предмет, точку интереса), вместо этого получайте местоположение этого актора каждый кадр и сохраняйте его в той же переменной. Для фиксированной точки взгляда задайте Target World Location один раз или как константу на панели Details узла.
Используйте эту настройку, если подход с режимом Curves не работает для вашего варианта MetaHuman (см. предупреждение выше). В режиме Bones узел напрямую вращает кости глаз и должен выполняться после завершения оценки Control Rig, что означает, что он относится к Face Post Process Animation Blueprint, а не к обычному Face AnimBP.
Три шага: найдите Post Process Anim BP, добавьте узел после RigLogic, затем передайте ему целевую позицию из Event Graph этого блюпринта.
1. Найдите Face Post Process Anim BP
- Откройте ассет Skeletal Mesh лица вашего MetaHuman (например,
Faceв папке вашего MetaHuman) - В панели Details ассета найдите поле Post Process Anim Blueprint
- Откройте этот ассет, обычно он называется как-то вроде
Face_PostProcess_AnimBP
2. Anim Graph: добавьте узел после RigLogic
В Anim Graph анимационного блюпринта пост-процесса лица (Face Post Process Anim BP):
- Найдите существующий узел
AnimNode_RigLogic(он преобразует кривые Control Rig лица в трансформации костей) - Добавьте узел
Runtime MetaHuman Eyes AimпослеAnimNode_RigLogicи доOutput Pose - На панели Details узла установите Mode в значение Bones
- Подключите
AnimNode_RigLogicк Source Pose узла Eyes Aim - Подключите выход узла Eyes Aim к
Output Pose - Создайте переменную Blueprint типа
Vector(например,TargetWorldLocation) в этом Post Process Anim BP и подключите её к пину Target World Location узла

Ссылки на кости по умолчанию (FACIAL_L_Eye и FACIAL_R_Eye) соответствуют стандартному скелету лица MetaHuman. Если ваш персонаж использует кастомизированный скелет с другими именами костей глаз, переопределите их в панели Details узла в категории Bones.
3. Граф событий: передайте целевое местоположение
Поскольку нода находится в Post Process Anim BP, логика целевого местоположения также должна находиться в Event Graph этого блюпринта, а не в Face_AnimBP. Настройка идентична режиму Curves (получить местоположение камеры, местоположение актора или использовать константу), просто выполняется внутри Face_PostProcess_AnimBP.

Любая несвязанная логика (липсинк, автоматическое моргание и т. д.) может остаться в обычном Face AnimBP. Сюда нужно перенести только расчёт целевого положения для Eyes Aim. Контрольный риг лица принудительно управляет костями глаз каждый кадр на основе своих кривых. Если бы узел Eyes Aim выполнялся в обычном Face AnimBP (до Control Rig), Control Rig впоследствии перезаписал бы вращения костей. Post Process Anim BP выполняется после того, как Control Rig сформировал финальные трансформации костей, поэтому это правильное место для применения финальных вращений костей, которые должны «побеждать».Почему режиму Bones нужен Post Process Anim BP?
Конфигурация
Все настройки доступны на панели Details узла Runtime MetaHuman Eyes Aim.
Прицеливание и ограничение
Цель
| Свойство | По умолчанию | Описание |
|---|---|---|
| Mode | Кривые | Определяет, как управляются глаза. См. Выбор режима. |
| Целевое мировое расположение | (0,0,0) | Точка в мировом пространстве, на которую смотрят глаза. По умолчанию отображается как пин. |
bEnabled | true | Когда false, глаза плавно возвращаются вперёд и игнорируют цель. По умолчанию отображается как пин. |
Зажать
| Свойство | По умолчанию | Описание |
|---|---|---|
| Макс. градусы по рысканию | 35° | Максимальное горизонтальное отклонение (по рысканию) от направления головы вперед. Ограничено от 0 до 80. |
| Макс. градусы по тангажу | 25° | Максимальное вертикальное отклонение (по тангажу) от направления головы вперед. Ограничено от 0 до 80. |
| Защита от переворота за головой | true | Предотвращает переворот глаз, когда цель проходит за головой. |
Сглаживание и саккады
Сглаживание
| Свойство | По умолчанию | Описание |
|---|---|---|
| Скорость интерполяции | 12.0 | Скорость сглаживания движения глаз. Выше = более резкое, ниже = более плавное. |
Саккады
Микросаккады — это крошечные случайные смещения взгляда, которые постоянно совершают настоящие глаза. Их добавление позволяет избежать эффекта «мёртвого взгляда», возникающего при идеально плавном отслеживании.
| Свойство | По умолчанию | Описание |
|---|---|---|
| Включить саккады | true | Включает/выключает микросаккады. |
| Амплитуда саккад по рысканию, град. | 1,5° | Максимальное горизонтальное дрожание за одну саккаду. Малые значения (1–2°) выглядят естественно; большие — дёргано. |
| Амплитуда саккад по тангажу, град. | 1,0° | Максимальное вертикальное дрожание за одну саккаду. Обычно немного меньше амплитуды по рысканию. |
| Мин. интервал саккад | 0,6 с | Минимальное время между саккадами. |
| Макс. интервал саккад | 2,5 с | Максимальное время между саккадами. Большие значения выглядят спокойнее, меньшие — беспокойнее. |
Кости (только режим Bones)
| Свойство | По умолчанию | Описание |
|---|---|---|
| Кость левого глаза | FACIAL_L_Eye | Название кости левого глаза. Соответствует стандартному скелету лица MetaHuman. |
| Кость правого глаза | FACIAL_R_Eye | Название кости правого глаза. Соответствует стандартному скелету лица MetaHuman. |
Калибровка (только режим кривых)
Эти значения определяют, как углы в пространстве головы сопоставляются со значениями кривой взгляда глаз в контрольном риге лица MetaHuman. Значения по умолчанию настроены для стандартного контрольного рига лица MetaHuman и редко требуют изменения.
| Свойство | По умолчанию | Описание |
|---|---|---|
| Кривая градусов рыскания на единицу | 30° | Угол, который соответствует значению кривой 1.0 для кривых взгляда по рысканию. |
| Кривая градусов тангажа на единицу | 25° | Угол, который соответствует значению кривой 1.0 для кривых взгляда по тангажу. |
Объединение с липсинком и другими анимациями
Оба помощника разработаны так, чтобы сосуществовать с узлами синхронизации губ плагина и любой пользовательской анимацией лица, которая у вас уже есть.
- Eyes Aim следует размещать после липсинка и любой пользовательской анимации лица в той же цепочке, чтобы его значения взгляда не перезаписывались ниже по цепочке. См. Выбор режима и Настройка выше.
- Auto Blink использует узел
Layered blend per boneвместо простого линейного размещения, см. подсказку Размещение имеет значение выше о подключении узла Control Rig к его входу Base Pose.
Посмотреть подробную блок-схему выполнения (режим кривых и режим костей)
В зависимости от того, использует ли ваш риг MetaHuman рекомендуемый режим кривых или запасной режим костей, размещение вашей логики выполнения изменится. Разверните схему ниже, чтобы увидеть точный порядок выполнения для обоих конвейеров:
Автоматическое моргание и синхронизация губ по-прежнему находятся в обычном Face AnimBP в обоих режимах.
Подробнее о наложении с анимациями тела см. в разделе Комбинирование с существующими анимациями.
Примечания и ограничения
Эти помощники являются специфичными для MetaHuman. Они полагаются на стандартные имена кривых Control Rig лица MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) и стандартные кости глаз (FACIAL_L_Eye, FACIAL_R_Eye). Они не предназначены для пользовательских персонажей, не относящихся к MetaHuman.
Нужна помощь?
Для запросов на индивидуальную разработку обращайтесь по адресу [email protected].