Перейти к основному содержимому

Конфигурация плагина

Конфигурация модели​

Воссоздайте генераторы реалистичных моделей для каждого воспроизведения

Для надёжной работы с моделями Realistic и Mood-Enabled Realistic пересоздавайте генератор перед каждым новым воспроизведением аудио, а не используйте один и тот же на протяжении длительных пауз. Подробности см. в разделе Пересоздание генератора в руководстве по устранению неполадок.

Стандартная конфигурация модели​

Узел Create Runtime Viseme Generator использует настройки по умолчанию, которые хорошо подходят для большинства сценариев. Настройка выполняется через свойства узла смешивания в Animation Blueprint.

Параметры настройки Animation Blueprint см. в разделе Lip Sync Configuration ниже.

Конфигурация реалистичной модели​

Узел Create Realistic MetaHuman Lip Sync Generator принимает необязательный параметр Configuration, который позволяет настроить поведение генератора:

Тип модели​

Параметр Model Type определяет, какую версию реалистичной модели использовать:

Тип моделиПроизводительностьВизуальное качествоОбработка шумаРекомендуемые сценарии использования
Сильно оптимизированная (по умолчанию)Наивысшая производительность, минимальная нагрузка на CPUХорошее качествоВозможны заметные движения рта при фоновом шуме или неречевых звукахЧистая аудиосреда, сценарии с критичными требованиями к производительности
ПолуоптимизированнаяХорошая производительность, умеренная нагрузка на CPUВысокое качествоПовышенная устойчивость к зашумлённому аудиоСбалансированная производительность и качество, смешанные аудиоусловия
ОригинальнаяПодходит для использования в реальном времени на современных CPUНаивысшее качествоНаиболее устойчива к фоновому шуму и неречевым звукамВысококачественные проекты, зашумлённая аудиосреда, когда требуется максимальная точность

Настройки производительности​

Intra Op Threads: Управляет количеством потоков, используемых для внутренних операций обработки модели.

  • 0 (по умолчанию/автоматически): Использует автоматическое определение (обычно 1/4 доступных ядер CPU, максимум 4)
  • 1-16: Укажите количество потоков вручную. Более высокие значения могут повысить производительность на многоядерных системах, но используют больше CPU

Потоки межоперационного взаимодействия: Управляет количеством потоков, используемых для параллельного выполнения различных операций модели.

  • 0 (по умолчанию/автоматически): использует автоматическое определение (обычно 1/8 доступных ядер CPU, максимум 2)
  • 1-8: вручную задаёт количество потоков. Обычно поддерживается низким для обработки в реальном времени

Размер обрабатываемого фрагмента​

Размер обрабатываемого фрагмента определяет, сколько сэмплов обрабатывается на каждом шаге инференса. Значение по умолчанию — 160 сэмплов (10 мс аудио при 16 кГц):

  • Меньшие значения обеспечивают более частые обновления, но увеличивают нагрузку на CPU
  • Большие значения снижают нагрузку на CPU, но могут уменьшить отзывчивость lip sync
  • Рекомендуется использовать значения, кратные 160, для оптимального выравнивания

Setting Processing Chunk Size

Конфигурация модели с поддержкой настроений​

Узел Create Realistic MetaHuman Lip Sync With Mood Generator предоставляет дополнительные параметры конфигурации помимо базовой реалистичной модели:

Базовая конфигурация​

Lookahead Ms: Время упреждения в миллисекундах для повышения точности синхронизации губ.

  • По умолчанию: 80 мс
  • Диапазон: от 20 мс до 200 мс (должно делиться на 20)
  • Более высокие значения обеспечивают лучшую синхронизацию, но увеличивают задержку

Тип вывода: Определяет, какие элементы управления мимикой будут сгенерированы.

  • Всё лицо: Все 81 элемент управления лицевой анимацией (брови, глаза, нос, рот, челюсть, язык)
  • Только рот: Только элементы управления, связанные со ртом, челюстью и языком

Настройки производительности: Использует те же настройки Intra Op Threads и Inter Op Threads, что и обычная реалистичная модель.

Настройки настроения​

Доступные настроения:

  • Нейтральный, Радостный, Грустный, Отвращение, Гнев, Удивление, Страх
  • Уверенный, Взволнованный, Скучающий, Игривый, Смущённый

Интенсивность настроения: Управляет тем, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)

Управление настроением в реальном времени​

Вы можете настроить параметры настроения во время выполнения с помощью следующих функций:

  • Set Mood: Изменить текущий тип настроения
  • Set Mood Intensity: Настроить, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)
  • Set Lookahead Ms: Изменить время упреждения для синхронизации
  • Set Output Type: Переключение между управлением Full Face и Mouth Only

Mood Configuration

Руководство по выбору настроения​

Выбирайте подходящие настроения в зависимости от вашего контента:

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​

Конфигурация Lip Sync​

Узел Blend Runtime MetaHuman Lip Sync имеет параметры конфигурации на панели свойств:

СвойствоПо умолчаниюОписание
Скорость интерполяции25Управляет тем, насколько быстро движения губ переходят между виземами. Более высокие значения приводят к более быстрым и резким переходам.
Время сброса0.2Длительность в секундах, по истечении которой lip sync сбрасывается. Это полезно, чтобы lip sync не продолжался после остановки аудио.

Анимация смеха​

Вы также можете добавить анимации смеха, которые будут динамически реагировать на смех, обнаруженный в аудио:

  1. Добавьте узел Blend Runtime MetaHuman Laughter
  2. Подключите вашу переменную RuntimeVisemeGenerator к пину Viseme Generator
  3. Если вы уже используете lip sync:
    • Подключите выход узла Blend Runtime MetaHuman Lip Sync к Source Pose узла Blend Runtime MetaHuman Laughter
    • Подключите выход узла Blend Runtime MetaHuman Laughter к пину Result узла Output Pose
  4. Если использовать только смех без синхронизации губ:
    • Подключите исходную позу напрямую к входу Source Pose узла Blend Runtime MetaHuman Laughter
    • Подключите выход к пину Result

Blend Runtime MetaHuman Laughter

Когда в аудио обнаруживается смех, ваш персонаж будет динамически анимироваться соответствующим образом:

Конфигурация смеха​

Узел Blend Runtime MetaHuman Laughter имеет собственные параметры конфигурации:

СвойствоПо умолчаниюОписание
Скорость интерполяции25Управляет тем, насколько быстро движения губ переходят между анимациями смеха. Более высокие значения приводят к более быстрым и резким переходам.
Время сброса0.2Длительность в секундах, по истечении которой смех сбрасывается. Это полезно, чтобы смех не продолжался после остановки аудио.
Максимальный вес смеха0.7Масштабирует максимальную интенсивность анимации смеха (0.0 - 1.0).

Примечание: Обнаружение смеха в настоящее время доступно только в Standard Model.

Объединение с существующими анимациями​

Видеообзор

Предпочитаете смотреть, а не читать? Посмотрите видеоурок, посвящённый именно этой настройке.

Чтобы применить синхронизацию губ и смех вместе с существующими анимациями тела и пользовательскими анимациями лица, не перезаписывая их:

Анимации тела

Эта настройка применяется к Animation Blueprint лица, поскольку lip sync не является частью Animation Blueprint тела. Для пользовательских анимаций тела (например, торса, рук и других движений тела) просто подключите вашу анимационную последовательность (через Sequence Player) напрямую к выходной позе в Animation Blueprint тела. Дополнительная настройка там не требуется.

  1. Добавьте узел Layered blend per bone между вашими анимациями тела и финальным выводом.
  2. Настройте слои:
    • Добавьте 1 элемент в массив Layer Setup
    • Добавьте 3 элемента в Branch Filters для слоя со следующими Bone Name:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Важно для пользовательских лицевых анимаций: В Curve Blend Option выберите "Use Max Value". Это позволяет пользовательским лицевым анимациям (выражениям, эмоциям и т. д.) корректно накладываться поверх lip sync.
  4. Выполните подключения:
    • Ваша пользовательская анимация (обычно Sequence Player с нужным ассетом анимационной последовательности) → вход Base Pose
    • Выход лицевой анимации (от узлов lip sync и/или смеха) → вход Blend Poses 0
    • Узел слоистого смешивания → финальная поза Result

Layered Blend Per Bone

Выбор набора Morph Target​

Стандартная модель использует pose assets, которые по своей природе поддерживают любые соглашения об именовании morph target через настройку пользовательского pose asset. Дополнительная конфигурация не требуется.

Тонкая настройка поведения Lip Sync​

Масштабирование отдельных кривых Lip Sync​

Вы можете ослабить (или усилить) отдельные движения лица, создаваемые lip sync, с помощью узла Modify Curve. Это полезно, когда определённая кривая выглядит слишком выраженной для вашего аудиоконтента или персонажа.

Настройка:

  1. После вашего узла смешивания lip sync добавьте узел Modify Curve
  2. Щёлкните правой кнопкой мыши по узлу и выберите Add Curve Pin, затем введите имя кривой, которую хотите масштабировать
  3. Установите для свойства узла Apply Mode значение Scale
  4. Задайте параметр Value: значения ниже 1.0 ослабляют движение, значения выше 1.0 усиливают его (например, 0.8 = уменьшение на 20%)

Часто масштабируемые кривые:

Название кривойНазначениеПрименяется кТипичная настройка
CTRL_expressions_tongueOutВыдвижение языка вперёд при определённых фонемахСтандартная модель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 — поднятие щёк

Сравнение и выбор моделей​

Выбор между моделями​

При выборе модели lip sync для вашего проекта учитывайте следующие факторы:

ОсобенностиСтандартная модельРеалистичная модельРеалистичная модель с поддержкой настроений
Совместимость с персонажамиMetaHuman и все пользовательские типы персонажейMetaHuman (и ARKit) персонажиMetaHuman (и ARKit) персонажи
Визуальное качествоХороший lip sync с эффективной производительностьюПовышенный реализм с более естественными движениями ртаПовышенный реализм с эмоциональными выражениями
ПроизводительностьОптимизировано для всех платформ, включая мобильные/VRПовышенные требования к ресурсамПовышенные требования к ресурсам
Функции14 визем, обнаружение смеха81 элемент управления мимикой, 3 уровня оптимизации81 элемент управления мимикой, 12 настроений, настраиваемый вывод
Поддержка платформWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Сценарии использованияОбщие приложения, игры, VR/AR, мобильные устройстваКинематографичные впечатления, взаимодействия крупным планомЭмоциональное повествование, продвинутое взаимодействие с персонажами

Совместимость с версиями движка​

Проблема совместимости с UE 5.2

Если вы используете Unreal Engine 5.2, реалистичные модели могут работать некорректно из-за ошибки в библиотеке ресемплинга UE. Пользователям UE 5.2, которым нужна надёжная функциональность синхронизации губ, следует использовать вместо них стандартную модель.

Эта проблема характерна только для UE 5.2 и не затрагивает другие версии движка.

Рекомендации по производительности​

  • Для большинства проектов Standard Model обеспечивает отличный баланс качества и производительности
  • Используйте Realistic Model, когда вам нужна максимальная визуальная точность для персонажей MetaHuman
  • Используйте Mood-Enabled Realistic Model, когда управление эмоциональной выразительностью важно для вашего приложения
  • Учитывайте производительные возможности вашей целевой платформы при выборе между моделями
  • Тестируйте различные уровни оптимизации, чтобы найти наилучший баланс для вашего конкретного случая использования

Устранение неполадок​

Распространённые проблемы​

Пересоздание генератора для реалистичных моделей: Для надёжной и стабильной работы с реалистичными моделями рекомендуется пересоздавать генератор каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия. Это связано с поведением среды выполнения ONNX, из-за которого синхронизация губ может перестать работать при повторном использовании генераторов после периодов тишины.

Например, вы можете пересоздавать генератор lip sync при каждом запуске воспроизведения, например, всякий раз, когда вы вызываете Play Sound 2D или используете любой другой метод для запуска воспроизведения звуковой волны и lip sync:

Recreate Lip Sync Generator On Play Sound

Расположение плагина для интеграции Runtime Text To Speech: При использовании Runtime MetaHuman Lip Sync вместе с Runtime Text To Speech (оба плагина используют ONNX Runtime) вы можете столкнуться с проблемами, если плагины установлены в папку Marketplace движка. Чтобы исправить это:

  1. Найдите оба плагина в папке установки UE по пути \Engine\Plugins\Marketplace (например, C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Переместите обе папки RuntimeMetaHumanLipSync и RuntimeTextToSpeech в папку Plugins вашего проекта
  3. Если в вашем проекте нет папки Plugins, создайте её в том же каталоге, где находится файл .uproject
  4. Перезапустите Unreal Editor

Это решает проблемы совместимости, которые могут возникать при загрузке нескольких плагинов на основе ONNX Runtime из каталога Marketplace движка.

Настройка упаковки (Windows): Если синхронизация губ не работает должным образом в вашем упакованном проекте на Windows, убедитесь, что вы используете конфигурацию сборки Shipping вместо Development. Конфигурация Development может вызывать проблемы с runtime ONNX реалистичных моделей в упакованных сборках.

Чтобы исправить это:

  1. В настройках проекта → Упаковка установите конфигурацию сборки Shipping
  2. Переупакуйте проект

Shipping Configuration

Проекты только на Blueprint

В некоторых проектах, использующих только Blueprint, Unreal Engine может по-прежнему собираться в конфигурации Development, даже если выбрана Shipping. Если это происходит, преобразуйте проект в проект C++, добавив хотя бы один класс C++ (он может быть пустым). Для этого перейдите в Tools → New C++ Class в меню редактора UE и создайте пустой класс. Это заставит проект корректно собираться в конфигурации Shipping. Ваш проект может оставаться Blueprint-only по функциональности — класс C++ нужен только для правильной конфигурации сборки.

Ухудшение отзывчивости Lip Sync: Если вы замечаете, что Lip Sync со временем становится менее отзывчивым при использовании Streaming Sound Wave или Capturable Sound Wave, это может быть вызвано накоплением памяти. По умолчанию память перераспределяется каждый раз при добавлении нового аудио. Чтобы предотвратить эту проблему, периодически вызывайте функцию ReleaseMemory для освобождения накопленной памяти, например, примерно каждые 30 секунд.

Оптимизация производительности:

  • Настройте размер чанка обработки для реалистичных моделей в соответствии с вашими требованиями к производительности
  • Используйте подходящее количество потоков для вашего целевого оборудования
  • Рассмотрите использование типа вывода «Только рот» для моделей с поддержкой настроения, когда полная лицевая анимация не требуется