Конфигурация плагина
Конфигурация модели
Для надежной работы с моделями Realistic и Mood-Enabled Realistic пересоздавайте генератор перед каждым новым воспроизведением аудио, а не используйте его повторно во время длительных пауз. Подробнее см. Пересоздание генератора в разделе «Устранение неполадок».
Конфигурация стандартной модели
Узел Create Runtime Viseme Generator использует настройки по умолчанию, которые хорошо работают в большинстве сценариев. Конфигурация осуществляется через свойства узла смешивания Animation Blueprint.
Для параметров конфигурации Animation Blueprint см. раздел Конфигурация Lip Sync ниже.
Настройка реалистичной модели
Узел Create Realistic MetaHuman Lip Sync Generator принимает необязательный параметр Configuration, позволяющий настроить поведение генератора:
Тип модели
Настройка Тип модели определяет, какую версию реалистичной модели использовать:
| Тип модели | Производительность | Визуальное качество | Устойчивость к шуму | Рекомендуемые сценарии использования |
|---|---|---|---|---|
| Высокооптимизированная (по умолчанию) | Максимальная производительность, минимальное использование ЦП | Хорошее качество | Возможны заметные движения рта при фоновом шуме или неречевых звуках | Чистые аудиосреды, сценарии, критичные к производительности |
| Полуоптимизированная | Хорошая производительность, умеренное использование ЦП | Высокое качество | Лучшая стабильность с шумным аудио | Сбалансированные производительность и качество, смешанные аудиоусловия |
| Оригинальная | Подходит для использования в реальном времени на современных ЦП | Максимальное качество | Наиболее стабильна при фоновом шуме и неречевых звуках | Высококачественные проекты, шумные аудиосреды, когда требуется максимальная точность |
Настройки производительности
Внутриоперационные потоки: Управляет количеством потоков, используемых для внутренних операций обработки модели.
- 0 (По умолчанию/Автоматически): Использует автоматическое определение (обычно 1/4 доступных ядер процессора, максимум 4)
- 1-16: Укажите количество потоков вручную. Более высокие значения могут повысить производительность на многоядерных системах, но требуют больше ресурсов процессора
Inter Op Threads: Управляет количеством потоков, используемых для параллельного выполнения различных операций модели.
- 0 (По умолчанию/Автоматически): Используется автоматическое определение (обычно 1/8 доступных ядер ЦП, максимум 2)
- 1-8: Укажите количество потоков вручную. Обычно оно поддерживается низким для обработки в реальном времени.
Размер блока обработки
Размер блока обработки определяет, сколько сэмплов обрабатывается на каждом шаге инференса. Значение по умолчанию — 160 сэмплов (10 мс аудио на частоте 16 кГц):
- Меньшие значения обеспечивают более частые обновления, но увеличивают нагрузку на CPU
- Большие значения снижают нагрузку на CPU, но могут уменьшить отзывчивость синхронизации губ
- Рекомендуется использовать числа, кратные 160, для оптимального выравнивания

Конфигурация модели с поддержкой настроения
Узел Create Realistic MetaHuman Lip Sync With Mood Generator предоставляет дополнительные параметры конфигурации помимо базовой реалистичной модели:
Базовая конфигурация
Упреждение (мс): Время упреждения в миллисекундах для повышения точности синхронизации губ.
- По умолчанию: 80 мс
- Диапазон: от 20 мс до 200 мс (должно делиться на 20)
- Более высокие значения обеспечивают лучшую синхронизацию, но увеличивают задержку
Тип вывода: Определяет, какие лицевые контролы создаются.
- Полное лицо: Все 81 элемент управления лицом (брови, глаза, нос, рот, челюсть, язык)
- Только рот: Только элементы управления, связанные с ртом, челюстью и языком
Настройки производительности: Использует те же настройки Intra Op Threads и Inter Op Threads, что и обычная реалистичная модель.
Настройки настроения
Доступные настроения:
- Нейтральное, Радость, Грусть, Отвращение, Гнев, Удивление, Страх
- Уверенный, Взволнованный, Скучающий, Игривый, Растерянный
Интенсивность настроения: Управляет тем, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0).
Контроль настроения в реальном времени
Вы можете изменять настройки настроения во время выполнения с помощью следующих функций:
- Задать настроение: Изменяет текущий тип настроения
- Задать интенсивность настроения: Настраивает, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)
- Задать время упреждения (мс): Изменяет время упреждения для синхронизации
- Задать тип вывода: Переключает управление между режимами «Полное лицо» и «Только рот»

Руководство по выбору настроения
Выберите подходящие настроения в зависимости от вашего контента:
| Mood | Наилучшее применение | Типичный диапазон интенсивности |
|---|---|---|
| Нейтральное | Общая беседа, повествование, состояние по умолчанию | 0.5 - 1.0 |
| Радость | Позитивный контент, веселый диалог, праздники | 0.6 - 1.0 |
| Грусть | Меланхоличный контент, эмоциональные сцены, мрачные моменты | 0.5 - 0.9 |
| Отвращение | Негативные реакции, неприятный контент, неприятие | 0.4 - 0.8 |
| Гнев | Агрессивный диалог, конфликтные сцены, раздражение | 0.6 - 1.0 |
| Удивление | Неожиданные события, откровения, шоковые реакции | 0.7 - 1.0 |
| Страх | Угрожающие ситуации, тревога, нервный диалог | 0.5 - 0.9 |
| Уверенность | Профессиональные презентации, лидерский диалог, уверенная речь | 0.7 - 1.0 |
| Восторг | Энергичный контент, объявления, восторженный диалог | 0.8 - 1.0 |
| Скука | Монотонный контент, равнодушный диалог, усталая речь | 0.3 - 0.7 |
| Игривость | Непринужденная беседа, юмор, беззаботное общение | 0.6 - 0.9 |
| Растерянность | Диалог с большим количеством вопросов, неуверенность, недоумение | 0.4 - 0.8 |
Конфигурация Animation Blueprint
Конфигурация синхронизации губ
- Стандартная модель
- Реалистичные модели
Узел Blend Runtime MetaHuman Lip Sync имеет параметры конфигурации в своей панели свойств:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Скорость интерполяции | 25 | Управляет тем, насколько быстро движения губ переходят между висемами. Более высокие значения приводят к более быстрым и резким переходам. |
| Время сброса | 0.2 | Длительность в секундах, после которой синхронизация губ сбрасывается. Это полезно, чтобы синхронизация губ не продолжалась после остановки аудио. |
Анимация смеха
Вы также можете добавить анимации смеха, которые будут динамически реагировать на смех, обнаруженный в аудио:
- Добавьте узел
Blend Runtime MetaHuman Laughter - Подключите вашу переменную
RuntimeVisemeGeneratorк пинуViseme Generator - Если вы уже используете липсинк:
- Подключите выход узла
Blend Runtime MetaHuman Lip Syncк пинуSource PoseузлаBlend Runtime MetaHuman Laughter - Подключите выход узла
Blend Runtime MetaHuman Laughterк пинуResultузлаOutput Pose
- Подключите выход узла
- Если используется только смех без синхронизации губ:
- Подключите вашу исходную позу напрямую к пину
Source PoseузлаBlend Runtime MetaHuman Laughter - Подключите выход к пину
Result
- Подключите вашу исходную позу напрямую к пину

Когда в аудио обнаруживается смех, ваш персонаж будет динамически анимироваться соответствующим образом:
Конфигурация смеха
Узел Blend Runtime MetaHuman Laughter имеет собственные параметры конфигурации:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Скорость интерполяции | 25 | Определяет, насколько быстро движения губ переходят между анимациями смеха. Более высокие значения обеспечивают более быстрые и резкие переходы. |
| Время сброса | 0.2 | Продолжительность в секундах, через которую выполняется сброс смеха. Это полезно для предотвращения продолжения смеха после остановки аудио. |
| Максимальный вес смеха | 0.7 | Масштабирует максимальную интенсивность анимации смеха (0.0 - 1.0). |
Примечание: Обнаружение смеха в настоящее время доступно только в стандартной модели.
Узел Blend Realistic MetaHuman Lip Sync имеет параметры конфигурации на панели свойств:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Скорость интерполяции | 30 | Управляет скоростью перехода мимики во время активной речи. Более высокие значения приводят к более быстрым и резким переходам. |
| Скорость интерполяции в состоянии покоя | 15 | Управляет скоростью возврата мимики в состояние покоя/нейтральное состояние. Более низкие значения обеспечивают более плавный и постепенный возврат к позе покоя. |
| Время сброса | 0.2 | Длительность в секундах, по истечении которой синхронизация губ сбрасывается в состояние покоя. Полезно для предотвращения продолжения мимики после остановки аудио. |
| Сохранение состояния покоя | false | При включении сохраняет последнее эмоциональное состояние в периоды покоя вместо сброса в нейтральное. |
| Сохранение выражений глаз | true | Управляет тем, сохраняются ли элементы управления мимикой, связанные с глазами, в состоянии покоя. Действует только при включённом параметре «Сохранение состояния покоя». |
| Сохранение выражений бровей | true | Управляет тем, сохраняются ли элементы управления мимикой, связанные с бровями, в состоянии покоя. Действует только при включённом параметре «Сохранение состояния покоя». |
| Сохранение формы рта | false | Управляет тем, сохраняются ли элементы управления формой рта (за исключением специфических для речи движений, таких как движения языка и челюсти) в состоянии покоя. Действует только при включённом параметре «Сохранение состояния покоя». |
Сохранение состояния бездействия
Функция Сохранение состояния покоя определяет, как модель Realistic обрабатывает периоды тишины. В отличие от модели Standard, которая использует дискретные виземы и при тишине всегда возвращается к нулевым значениям, нейронная сеть модели Realistic может сохранять едва заметное положение лица, отличающееся от стандартной позы покоя MetaHuman.
Когда включать:
- Поддержание эмоциональных выражений между речевыми сегментами
- Сохранение черт характера персонажа
- Обеспечение визуальной непрерывности в кинематографических последовательностях
Региональные параметры управления:
- Выражения глаз: Сохраняет прищуривание, расширение глаз и положение век
- Выражения бровей: Сохраняет положение бровей и лба
- Форма рта: Сохраняет общий изгиб рта, позволяя речевым движениям (язык, челюсть) возвращаться в исходное положение
Объединение с существующими анимациями
Предпочитаете смотреть, а не читать? Посмотрите видеоурок, охватывающий именно эту настройку.
Чтобы применить синхронизацию губ и смех наряду с существующими анимациями тела и пользовательскими анимациями лица, не переопределяя их:
Эта настройка применима к Animation Blueprint лица, так как синхронизация губ не является частью Animation Blueprint тела. Для пользовательских анимаций тела (например, торс, руки и другие движения тела) просто подключите вашу анимационную последовательность (через Sequence Player) напрямую к выходной позе в Animation Blueprint тела. Там не требуется дополнительная настройка.
- Добавьте узел
Layered blend per boneмежду вашими анимациями тела и финальным выводом. Убедитесь, чтоUse Attached Parentравно true. - Настройте конфигурацию слоёв:
- Добавьте 1 элемент в массив
Layer Setup - Добавьте 3 элемента в
Branch Filtersдля слоя, со следующимиBone Name:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- Добавьте 1 элемент в массив
- Важно для пользовательской анимации лица: В
Параметре смешивания кривыхвыберите «Использовать максимальное значение». Это позволяет корректно накладывать пользовательские анимации лица (выражения, эмоции и т. д.) поверх синхронизации губ. - Установите соединения:
- Ваша пользовательская анимация (обычно
Sequence Playerс нужным ассетом последовательности анимации) → входBase Pose - Выход лицевой анимации (от узлов липсинка и/или смеха) → вход
Blend Poses 0 - Узел слоёного смешивания → финальная поза
Result
- Ваша пользовательская анимация (обычно

Выбор набора морф-таргетов
- Стандартная модель
- Реалистичные модели
Стандартная модель использует ассеты позы, которые изначально поддерживают любое соглашение об именовании морф-таргетов благодаря настройке пользовательского ассета позы. Никакой дополнительной настройки не требуется.
Узел Blend Realistic MetaHuman Lip Sync включает свойство набор морф-таргетов, которое определяет, какое соглашение об именовании морф-таргетов использовать для лицевой анимации:
| Набор морф-целей | Описание | Варианты использования |
|---|---|---|
| MetaHuman (по умолчанию) | Стандартные имена морф-целей MetaHuman (например, CTRL_expressions_jawOpen) | Персонажи MetaHuman |
| ARKit | Имена, совместимые с Apple ARKit (например, JawOpen, MouthSmileLeft) | Персонажи на основе ARKit |
Тонкая настройка поведения липсинка
Масштабирование конкретных кривых липсинка
Вы можете ослабить (или усилить) отдельные движения лица, создаваемые синхронизацией губ, с помощью узла Modify Curve. Это полезно, когда конкретная кривая выглядит слишком выраженной для вашего аудиоматериала или персонажа.
Настройка:
- После вашего узла смешивания липсинка добавьте узел
Modify Curve - Щёлкните узел правой кнопкой мыши и выберите Add Curve Pin, затем введите имя кривой, которую нужно масштабировать
- Установите для свойства Apply Mode узла значение Scale
- Установите параметр Value: значения ниже 1.0 ослабляют движение, значения выше 1.0 усиливают его (например, 0.8 = уменьшение на 20%)
Часто масштабируемые кривые:
| Curve Name | Purpose | Applies To | Typical Adjustment |
|---|---|---|---|
CTRL_expressions_tongueOut | Forward tongue protrusion during certain phonemes | Standard model | 0.8 to reduce protrusion |
CTRL_expressions_jawOpen | Jaw opening range | Realistic models | 0.9 to reduce jaw movement |
Вы можете добавить несколько кривых-пинов к одному и тому же узлу Modify Curve, чтобы масштабировать сразу несколько кривых.
Тонкая настройка под конкретное настроение
Для моделей с поддержкой настроения вы можете точно настраивать конкретные эмоциональные выражения:
Управление бровями:
CTRL_expressions_browRaiseInL/CTRL_expressions_browRaiseInR- Поднятие внутренней части бровиCTRL_expressions_browRaiseOuterL/CTRL_expressions_browRaiseOuterR- Поднятие внешней части бровиCTRL_expressions_browDownL/CTRL_expressions_browDownR- Опускание брови
Управление выражением глаз:
CTRL_expressions_eyeSquintInnerL/CTRL_expressions_eyeSquintInnerR- Прищуривание глазCTRL_expressions_eyeCheekRaiseL/CTRL_expressions_eyeCheekRaiseR- Поднятие щёк
Сравнение и выбор моделей
Выбор между моделями
При выборе модели синхронизации губ для вашего проекта учтите следующие факторы:
| Рассмотрение | Стандартная модель | Реалистичная модель | Реалистичная модель с поддержкой настроения |
|---|---|---|---|
| Совместимость с персонажами | MetaHumans и все типы пользовательских персонажей | персонажи MetaHumans (и ARKit) | Персонажи MetaHumans (и ARKit) |
| Визуальное качество | Хороший липсинк с эффективной производительностью | Улучшенный реализм с более естественными движениями рта. | Улучшенный реализм с эмоциональными выражениями |
| Производительность | Оптимизировано для всех платформ, включая мобильные/VR | Более высокие требования к ресурсам | Повышенные требования к ресурсам |
| Возможности | 14 визем, определение смеха | 81 лицевой контрол, 3 уровня оптимизации | 81 лицевой контрол, 12 настроений, настраиваемый вывод |
| Поддержка платформ | Windows, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest |
| Варианты использования | Обычные приложения, игры, VR/AR, мобильные | Кинематографические впечатления, взаимодействия крупным планом | Эмоциональное повествование, продвинутое взаимодействие персонажей |
Совместимость версий движка
Если вы используете Unreal Engine 5.2, реалистичные модели могут работать некорректно из-за ошибки в библиотеке ресемплинга UE. Пользователям UE 5.2, которым нужна надёжная синхронизация губ, следует вместо этого использовать стандартную модель.
Эта проблема характерна для UE 5.2 и не затрагивает другие версии движка.
Рекомендации по производительности
- Для большинства проектов стандартная модель обеспечивает отличный баланс качества и производительности
- Используйте реалистичную модель, когда вам нужна максимальная визуальная точность для персонажей MetaHuman
- Используйте реалистичную модель с поддержкой эмоций, когда контроль эмоциональных выражений важен для вашего приложения
- Учитывайте производительность вашей целевой платформы при выборе между моделями
- Протестируйте различные уровни оптимизации, чтобы найти лучший баланс для вашего конкретного случая использования
Устранение неполадок
Распространенные проблемы
Пересоздание генератора для реалистичных моделей:
Для надежной и стабильной работы с реалистичными моделями рекомендуется пересоздавать генератор каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия. Это связано с поведением ONNX Runtime, из-за которого синхронизация губ может переставать работать при повторном использовании генераторов после периодов тишины.
Например, вы можете пересоздавать генератор синхронизации губ при каждом начале воспроизведения, например, всякий раз, когда вы вызываете Play Sound 2D или используете любой другой метод для запуска воспроизведения звуковой волны и синхронизации губ:

Расположение плагина для интеграции Runtime Text To Speech: При использовании Runtime MetaHuman Lip Sync вместе с Runtime Text To Speech (оба плагина используют ONNX Runtime) могут возникать проблемы, если плагины установлены в папке Marketplace движка. Чтобы это исправить:
- Найдите оба плагина в папке установки UE в
\Engine\Plugins\Marketplace(например,C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace) - Переместите папки
RuntimeMetaHumanLipSyncиRuntimeTextToSpeechв папкуPluginsвашего проекта - Если в вашем проекте нет папки
Plugins, создайте её в той же директории, где находится файл.uproject - Перезапустите Unreal Editor
Это устраняет проблемы совместимости, которые могут возникать при загрузке нескольких плагинов на основе ONNX Runtime из каталога Marketplace движка.
Конфигурация упаковки (Windows): Если липсинк неправильно работает в упакованном проекте на Windows, убедитесь, что вы используете конфигурацию сборки Shipping, а не Development. Конфигурация Development может вызывать проблемы с ONNX runtime для реалистичных моделей в упакованных сборках.
Чтобы исправить это:
- В ваших Настройках проекта → Упаковка, установите Конфигурацию сборки на Shipping
- Переупакуйте ваш проект

В некоторых проектах, использующих только Blueprint, Unreal Engine может всё равно выполнять сборку в конфигурации Development, даже если выбрана конфигурация Shipping. Если это происходит, преобразуйте проект в проект C++, добавив хотя бы один класс C++ (он может быть пустым). Для этого перейдите в Tools → New C++ Class в меню редактора UE и создайте пустой класс. Это заставит проект правильно собираться в конфигурации Shipping. По функциональности проект может оставаться проектом только на Blueprint, класс C++ нужен лишь для корректной конфигурации сборки.
Снижение отзывчивости синхронизации губ: Если вы замечаете, что синхронизация губ со временем становится менее отзывчивой при использовании потоковой звуковой волны или захватываемой звуковой волны, это может быть вызвано накоплением памяти. По умолчанию память перераспределяется каждый раз при добавлении нового аудио. Чтобы предотвратить эту проблему, периодически вызывайте функцию ReleaseMemory для освобождения накопленной памяти, например, каждые 30 секунд или около того.
Оптимизация производительности:
- Настройте размер фрагмента обработки для реалистичных моделей в соответствии с вашими требованиями к производительности
- Используйте подходящее количество потоков для вашего целевого оборудования
- Рассмотрите возможность использования типа вывода «Только рот» для моделей с поддержкой настроения, когда полная лицевая анимация не требуется