Конфигурация плагина
Конфигурация модели
Стандартная конфигурация модели
Узел Create Runtime Viseme Generator
использует настройки по умолчанию, которые хорошо работают в большинстве сценариев. Конфигурация обрабатывается через свойства узла смешивания Animation Blueprint.
Для параметров конфигурации Animation Blueprint см. раздел Конфигурация Lip Sync ниже.
Конфигурация реалистичной модели
Узел 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: Указать количество потоков вручную. Обычно держится на низком уровне для обработки в реальном времени
Размер чанка обработки
Processing Chunk Size определяет, сколько сэмплов обрабатывается на каждом шаге вывода. Значение по умолчанию — 160 сэмплов (10мс аудио при 16кГц):
- Меньшие значения обеспечивают более частые обновления, но увеличивают использование CPU
- Большие значения снижают нагрузку на CPU, но могут уменьшить отзывчивость lip sync
- Рекомендуется использовать кратные 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, что и обычная реалистичная модель.
Настройки настроения (Mood)
Доступные настроения:
- Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
- Confident, Excited, Bored, Playful, Confused
Mood Intensity: Определяет, насколько сильно настроение влияет на анимацию (от 0.0 до 1.0)
Управление настроением во время выполнения (Runtime)
Вы можете настраивать параметры настроения во время выполнения с помощью следующих функций:
- 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
Конфигурация Lip Sync
- Standard Model
- Realistic Models
Узел Blend Runtime MetaHuman Lip Sync
имеет параметры конфигурации в панели свойств:
Свойство | По умолчанию | Описание |
---|---|---|
Interpolation Speed | 25 | Определяет, насколько быстро движения губ переходят между висемами. Более высокие значения приводят к более быстрым и резким переходам. |
Reset Time | 0.2 | Продолжительность в секундах, после которой синхронизация губ сбрасывается. Это полезно для предотвращения продолжения синхронизации губ после остановки аудио. |
Узел Blend Realistic MetaHuman Lip Sync
имеет параметры конфигурации в панели свойств:
Свойство | По умолчанию | Описание |
---|---|---|
Interpolation Speed | 30 | Определяет, насколько быстро движения губ переходят между позициями. Более высокие значения приводят к более быстрым и резким переходам. |
Reset Time | 0.2 | Продолжительность в секундах, после которой синхронизация губ сбрасывается. Это полезно для предотвращения продолжения синхронизации губ после остановки аудио. |
Примечание: Один и тот же узел Animation Blueprint используется как для обычных, так и для реалистичных моделей с поддержкой настроения.
Анимация смеха
Вы также можете добавить анимации смеха, которые будут динамически реагировать на смех, обнаруженный в аудио:
- Добавьте узел
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). |
Примечание: Обнаружение смеха в настоящее время доступно только в Стандартной модели. |
Комбинирование с существующими анимациями
Чтобы применить Lip Sync и смех вместе с существующими анимациями тела и пользовательскими лицевыми анимациями, не перезаписывая их:
- Добавьте узел
Layered blend per bone
между вашими анимациями тела и финальным выводом. Убедитесь, чтоUse Attached Parent
установлен в true. - Настройте структуру слоев:
- Добавьте 1 элемент в массив
Layer Setup
- Добавьте 3 элемента в
Branch Filters
для слоя со следующими именами костей (Bone Name
):FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- Добавьте 1 элемент в массив
- Важно для пользовательских лицевых анимаций: В
Curve Blend Option
выберите "Use Max Value". Это позволяет корректно накладывать пользовательские лицевые анимации (выражения, эмоции и т.д.) поверх Lip Sync. - Сделайте соединения:
- Существующие анимации (например,
BodyPose
) → входBase Pose
- Выход лицевой анимации (из узлов Lip Sync и/или смеха) → вход
Blend Poses 0
- Узел
Layered blend per bone
→ Финальная позаResult
- Существующие анимации (например,
Тонкая настройка поведения Lip Sync
Управление высовыванием языка
В стандартной модели Lip Sync вы можете заметить чрезмерное выдвижение языка вперед во время определенных фонем. Чтобы контролировать это:
- После вашего узла смешивания Lip Sync добавьте узел
Modify Curve
- Щелкните правой кнопкой мыши на узле
Modify Curve
и выберите Add Curve Pin - Добавьте пин кривой с именем
CTRL_expressions_tongueOut
- Установите свойство Apply Mode узла в значение Scale
- Настройте параметр Value, чтобы контролировать выдвижение языка (например, 0.8 для уменьшения выдвижения на 20%)
Управление открытием челюсти
Реалистичный Lip Sync может создавать чрезмерно активные движения челюсти в зависимости от вашего аудиоконтента и визуальных требований. Чтобы настроить интенсивность открытия челюсти:
- После вашего узла смешивания Lip Sync добавьте узел
Modify Curve
- Щелкните правой кнопкой мыши на узле
Modify Curve
и выберите Add Curve Pin - Добавьте пин кривой с именем
CTRL_expressions_jawOpen
- Установите свойство Apply Mode узла в значение Scale
- Настройте параметр Value, чтобы контролировать диапазон открытия челюсти (например, 0.9 для уменьшения движения челюсти на 10%)
Тонкая настройка для конкретного настроения
Для моделей с поддержкой настроения вы можете точно настраивать определенные эмоциональные выражения:
Управление бровями:
CTRL_L_brow_raiseIn.ty
/CTRL_R_brow_raiseIn.ty
- Поднятие внутренней части бровиCTRL_L_brow_raiseOut.ty
/CTRL_R_brow_raiseOut.ty
- Поднятие внешней части бровиCTRL_L_brow_down.ty
/CTRL_R_brow_down.ty
- Опускание брови
Управление выражением глаз:
CTRL_L_eye_squintInner.ty
/CTRL_R_eye_squintInner.ty
- Прищуривание глазCTRL_L_eye_cheekRaise.ty
/CTRL_R_eye_cheekRaise.ty
- Поднятие щеки
Сравнение моделей и выбор
Выбор между моделями
При выборе модели синхронизации губ для вашего проекта учитывайте следующие факторы:
Критерий | Стандартная модель | Реалистичная модель | Реалистичная модель с настроениями |
---|---|---|---|
Совместимость с персонажами | MetaHumans и все пользовательские типы персонажей | Только MetaHumans | Только MetaHumans |
Визуальное качество | Хорошая синхронизация губ с эффективной производительностью | Улучшенный реализм с более естественными движениями рта | Улучшенный реализм с эмоциональными выражениями |
Производительность | Оптимизирована для всех платформ, включая мобильные/VR | Более высокие требования к ресурсам | Более высокие требования к ресурсам |
Функции | 14 визем, обнаружение смеха | 81 контроль лица, 3 уровня оптимизации | 81 контроль лица, 12 настроений, настраиваемый вывод |
Поддержка платформ | Windows, Android, Quest | Windows, Mac, iOS, Linux | Windows, Mac, iOS, Linux |
Варианты использования | Общие приложения, игры, VR/AR, мобильные | Кинематографические сцены, взаимодействия крупным планом | Эмоциональное повествование, продвинутое взаимодействие с персонажами |
Совместимость с версиями движка
Если вы используете Unreal Engine 5.2, Реалистичные модели могут работать некорректно из-за ошибки в библиотеке ресемплинга UE. Пользователям UE 5.2, которым требуется надежная функция синхронизации губ, рекомендуется использовать Стандартную модель.
Эта проблема характерна только для UE 5.2 и не затрагивает другие версии движка.
Рекомендации по производительности
- Для большинства проектов Стандартная модель обеспечивает отличный баланс качества и производительности
- Используйте Реалистичную модель, когда вам нужна максимальная визуальная точность для персонажей MetaHuman
- Используйте Реалистичную модель с настроениями, когда контроль эмоциональных выражений важен для вашего приложения
- Учитывайте производительность целевой платформы при выборе между моделями
- Тестируйте разные уровни оптимизации, чтобы найти наилучший баланс для вашего конкретного случая использования
Совместимость с TTS
Тип модели | Поддержка локального TTS (через Runtime Text To Speech) | Поддержка внешнего TTS | Примечания |
---|---|---|---|
Стандартная модель | ✅ Полная поддержка | ✅ Полная поддержка | Совместима со всеми вариантами TTS |
Реалистичная модель | ❌ Ограниченная поддержка | ✅ Полная поддержка | Конфликты среды выполнения ONNX с локальным TTS |
Реалистичная модель с настроениями | ✅ Полная поддержка | ✅ Полная поддержка | Совместима со всеми вариантами TTS |
Устранение неполадок
Распространенные проблемы
Пересоздание генератора для реалистичных моделей: Для надежной и стабильной работы с Реалистичными моделями рекомендуется пересоздавать генератор каждый раз, когда вы хотите передать новые аудиоданные после периода бездействия. Это связано с поведением среды выполнения ONNX, которое может привести к прекращению работы синхронизации губ при повторном использовании генераторов после периодов тишины. Совместимость с локальным TTS: Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается с обычной моделью Realistic из-за конфликтов рантайма ONNX. Однако он полностью совместим как со Standard моделью, так и с Mood-Enabled Realistic моделью. Используйте внешние TTS сервисы, если вам конкретно нужна обычная модель Realistic с функциональностью TTS.
Оптимизация производительности:
- Настраивайте размер чанка обработки (Processing Chunk Size) для Realistic моделей в соответствии с вашими требованиями к производительности
- Используйте подходящее количество потоков (thread counts) для вашего целевого оборудования
- Рассмотрите использование типа вывода "Только рот" (Mouth Only output type) для mood-включенных моделей, когда полная лицевая анимация не требуется