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

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

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

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

Для надёжной работы с моделями 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

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

  • 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).

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

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

Видеообзор

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

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

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

Эта настройка применяется к 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 для вашего проекта учитывайте следующие факторы:

РассмотрениеСтандартная модельРеалистичная модельРеалистичная модель с поддержкой настроений
Совместимость с персонажамиMetaHumans и все пользовательские типы персонажейПерсонажи MetaHumans (и ARKit)Персонажи MetaHumans (и ARKit)
Визуальное качествоХороший lip sync с эффективной производительностьюПовышенный реализм с более естественными движениями ртаПовышенный реализм с эмоциональными выражениями
ПроизводительностьОптимизировано для всех платформ, включая мобильные/VRПовышенные требования к ресурсамПовышенные требования к ресурсам
Возможности14 visemes, обнаружение смеха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, из-за которого синхронизация губ может перестать работать при повторном использовании генераторов после периодов тишины.

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

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 секунд.

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

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