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

Конфигурация модели с поддержкой настроения
Узел Create Realistic MetaHuman Lip Sync With Mood Generator предоставляет дополнительные параметры конфигурации помимо базовой реалистичной модели:
Базовая конфигурация
Lookahead Ms: Время упреждения в миллисекундах для повышения точности синхронизации губ.
- По умолчанию: 80 мс
- Диапазон: от 20 мс до 200 мс (должно делиться на 20)
- Более высокие значения обеспечивают лучшую синхронизацию, но увеличивают задержку
Output Type: Управляет тем, какие лицевые контроллеры генерируются.
- Full Face: Все 81 лицевой контроллер (брови, глаза, нос, рот, челюсть, язык)
- Mouth Only: Только контроллеры, связанные с ртом, челюстью и языком
Performance Settings: Использует те же настройки Intra Op Threads и Inter Op Threads, что и обычная реалистичная модель.
Настройки настроения
Доступные настроения:
- Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
- Confident, Excited, Bored, Playful, Confused
Mood Intensity: Управляет тем, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)
Управление настроением во время выполнения
Вы можете изменять настройки настроения во время выполнения с помощью следующих функций:
- Set Mood: Изменяет текущий тип настроения
- Set Mood Intensity: Регулирует, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)
- Set Lookahead Ms: Изменяет время упреждения для синхронизации
- Set Output Type: Переключает между контроллерами Full Face и Mouth Only

Руководство по выбору настроения
Выбирайте подходящие настроения в зависимости от вашего контента:
| Настроение | Для чего лучше всего подходит | Типичный диапазон интенсивности |
|---|---|---|
| Neutral | Обычный разговор, повествование, состояние по умолчанию | 0.5 - 1.0 |
| Happy | Позитивный контент, веселый диалог, празднования | 0.6 - 1.0 |
| Sad | Меланхоличный контент, эмоциональные сцены, мрачные моменты | 0.5 - 0.9 |
| Disgust | Негативные реакции, неприятный контент, отвержение | 0.4 - 0.8 |
| Anger | Агрессивный диалог, конфронтационные сцены, разочарование | 0.6 - 1.0 |
| Surprise | Неожиданные события, откровения, реакции шока | 0.7 - 1.0 |
| Fear | Угрожающие ситуации, тревога, нервный диалог | 0.5 - 0.9 |
| Confident | Профессиональные презентации, лидерский диалог, уверенная речь | 0.7 - 1.0 |
| Excited | Энергичный контент, объявления, восторженный диалог | 0.8 - 1.0 |
| Bored | Монотонный контент, незаинтересованный диалог, усталая речь | 0.3 - 0.7 |
| Playful | Непринужденная беседа, юмор, легкие взаимодействия | 0.6 - 0.9 |
| Confused | Диалог с большим количеством вопросов, неуверенность, замешательство | 0.4 - 0.8 |
Конфигурация Animation Blueprint
Конфигурация синхронизации губ
- Стандартная модель
- Реалистичные модели
Узел Blend Runtime MetaHuman Lip Sync имеет параметры конфигурации на панели свойств:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Interpolation Speed | 25 | Управляет скоростью перехода движений губ между виземами. Более высокие значения приводят к более быстрым и резким переходам. |
| Reset Time | 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 имеет собственные параметры конфигурации:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Interpolation Speed | 25 | Управляет скоростью перехода анимации губ между анимациями смеха. Более высокие значения приводят к более быстрым и резким переходам. |
| Reset Time | 0.2 | Длительность в секундах, после которой смех сбрасывается. Это полезно для предотвращения продолжения смеха после остановки аудио. |
| Max Laughter Weight | 0.7 | Масштабирует максимальную интенсивность анимации смеха (0.0 - 1.0). |
Примечание: Обнаружение смеха в настоящее время доступно только для Standard Model.
Узел Blend Realistic MetaHuman Lip Sync имеет параметры конфигурации на панели свойств:
| Свойство | По умолчанию | Описание |
|---|---|---|
| Interpolation Speed | 30 | Управляет скоростью перехода мимики во время активной речи. Более высокие значения приводят к более быстрым и резким переходам. |
| Idle Interpolation Speed | 15 | Управляет скоростью возврата мимики в состояние покоя/нейтральное состояние. Более низкие значения создают более плавные и постепенные возвраты в исходное положение. |
| Reset Time | 0.2 | Длительность в секундах, после которой синхронизация губ сбрасывается в состояние покоя. Полезно для предотвращения продолжения выражений после остановки аудио. |
| Preserve Idle State | false | При включении сохраняет последнее эмоциональное состояние в периоды бездействия вместо сброса в нейтральное. |
| Preserve Eye Expressions | true | Определяет, сохраняются ли лицевые контроллеры, связанные с глазами, в состоянии покоя. Эффективно только при включенном Preserve Idle State. |
| Preserve Brow Expressions | true | Определяет, сохраняются ли лицевые контроллеры, связанные с бровями, в состоянии покоя. Эффективно только при включенном Preserve Idle State. |
| Preserve Mouth Shape | false | Определяет, сохраняются ли контроллеры формы рта (исключая специфичные для речи движения, такие как язык и челюсть) в состоянии покоя. Эффективно только при включенном Preserve Idle State. |
Сохранение состояния покоя
Функция Preserve Idle State решает вопрос обработки периодов тишины реалистичной моделью. В отличие от стандартной модели, которая использует дискретные виземы и последовательно возвращается к нулевым значениям во время тишины, нейронная сеть реалистичной модели может поддерживать едва заметное позиционирование лица, которое отличается от позы покоя MetaHuman по умолчанию.
Когда включать:
- Поддержание эмоциональных выражений между сегментами речи
- Сохранение черт характера персонажа
- Обеспечение визуальной непрерывности в кинематографических последовательностях
Опции регионального контроля:
- Eye Expressions: Сохраняет прищуривание, расширение глаз и положение век
- Brow Expressions: Сохраняет положение бровей и лба
- Mouth Shape: Сохраняет общий изгиб рта, позволяя сбрасывать речевые движения (язык, челюсть)
Комбинирование с существующими анимациями
Чтобы применить синхронизацию губ и смех вместе с существующими анимациями тела и пользовательскими анимациями лица, не переопределяя их:
- Добавьте узел
Layered blend per boneмежду вашими анимациями тела и финальным выходом. Убедитесь, чтоUse Attached Parentимеет значение true. - Настройте конфигурацию слоя:
- Добавьте 1 элемент в массив
Layer Setup - Добавьте 3 элемента в
Branch Filtersдля слоя со следующимиBone Name:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- Добавьте 1 элемент в массив
- Важно для пользовательских анимаций лица: В
Curve Blend Optionвыберите "Use Max Value". Это позволяет правильно наслаивать пользовательские анимации лица (выражения, эмоции и т.д.) поверх синхронизации губ. - Выполните соединения:
- Существующие анимации (например,
BodyPose) → входBase Pose - Выход анимации лица (от узлов синхронизации губ и/или смеха) → вход
Blend Poses 0 - Узел смешивания слоев → финальная поза
Result
- Существующие анимации (например,

Выбор набора morph target
- Standard Model
- Реалистичные модели
Стандартная модель использует ассеты поз, которые по своей сути поддерживают любые соглашения об именах morph target благодаря настройке пользовательского ассета позы. Дополнительная конфигурация не требуется.
Узел Blend Realistic MetaHuman Lip Sync включает свойство Morph Target Set, которое определяет, какое соглашение об именах morph target использовать для анимации лица:
| Morph Target Set | Описание | Варианты использования |
|---|---|---|
| MetaHuman (По умолчанию) | Стандартные имена morph target 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%)
Обычно масштабируемые кривые:
| Имя кривой | Назначение | Применяется к | Типичная корректировка |
|---|---|---|---|
CTRL_expressions_tongueOut | Выдвижение языка вперед во время определенных фонем | Standard model | 0.8 для уменьшения выдвижения |
CTRL_expressions_jawOpen | Диапазон открытия челюсти | Реалистичные модели | 0.9 для уменьшения движения челюсти |
Вы можете добавить несколько контактов кривых в один узел 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- Поднятие щек
Сравнение и выбор модели
Выбор между моделями
При принятии решения о том, какую модель синхронизации губ использовать для вашего проекта, учитывайте следующие факторы:
| Аспект | Standard Model | Realistic Model | Mood-Enabled Realistic Model |
|---|---|---|---|
| Совместимость с персонажами | 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, которым требуется надежная функциональность синхронизации губ, используйте вместо нее Standard Model.
Эта проблема характерна для UE 5.2 и не затрагивает другие версии движка.
Рекомендации по производительности
- Для большинства проектов Standard Model обеспечивает отличный баланс качества и производительности
- Используйте Realistic Model, когда вам нужна максимальная визуальная точность для персонажей MetaHuman
- Используйте Mood-Enabled Realistic Model, когда контроль эмоционального выражения важен для вашего приложения
- Учитывайте возможности производительности вашей целевой платформы при выборе между моделями
- Тестируйте различные уровни оптимизации, чтобы найти наилучший баланс для вашего конкретного случая использования
Устранение неполадок
Распространенные проблемы
Пересоздание генератора для реалистичных моделей: Для надежной и стабильной работы с реалистичными моделями рекомендуется пересоздавать генератор каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия. Это связано с поведением среды выполнения ONNX, которое может привести к остановке синхронизации губ при повторном использовании генераторов после периодов тишины.
Например, вы можете пересоздавать генератор синхронизации губ при каждом запуске воспроизведения, например, всякий раз, когда вы вызываете 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 реалистичных моделей в упакованных сборках.
Чтобы это исправить:
- В настройках вашего проекта (Project Settings) → Packaging установите Build Configuration в Shipping
- Переупакуйте ваш проект

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