Как использовать плагин
Это руководство проведёт вас через процесс настройки Runtime MetaHuman Lip Sync для ваших персонажей MetaHuman.
Примечание: Runtime MetaHuman Lip Sync работает как с MetaHuman, так и с пользовательскими персонажами. Плагин поддерживает различные типы персонажей, включая:
- Популярных коммерческих персонажей (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe и др.)
- Персонажей с FACS-based блендшейпами
- Модели, использующие стандарты блендшейпов ARKit
- Персонажей с наборами фонем Preston Blair
- Системы фонем 3ds Max
- Любых персонажей с пользовательскими морф-таргетами для мимики
Подробные инструкции по настройке пользовательских персонажей, включая справочники по маппингу визем для всех перечисленных стандартов, см. в руководстве по настройке пользовательских персонажей.
Предварительные требования
Перед началом работы убедитесь, что:
- Плагин MetaHuman включён в вашем проекте (Примечание: Начиная с UE 5.6, этот шаг больше не требуется, так как функциональность MetaHuman интегрирована непосредственно в движок)
- У вас есть хотя бы один персонаж MetaHuman, загруженный и доступный в проекте
- Установлен плагин Runtime MetaHuman Lip Sync
Плагин расширения стандартной модели
Если вы планируете использовать Стандартную (Быструю) Модель, вам потребуется установить плагин расширения:
- Скачайте Standard Lip Sync Extension plugin с Google Drive
- Распакуйте папку из скачанного архива в папку
Plugins
вашего проекта (создайте эту папку, если её нет) - Убедитесь, что ваш проект настроен как C++ проект (даже если у вас нет C++ кода)
- Пересоберите проект
- Это расширение требуется только если вы хотите использовать Стандартную Модель. Если вам нужна только Реалистичная Модель, этот шаг можно пропустить.
- Для получения дополнительной информации о ручной сборке плагинов см. руководство по сборке плагинов
Дополнительные плагины
- Если вы планируете использовать захват аудио (например, ввод с микрофона), установите плагин Runtime Audio Importer.
- Если вы планируете использовать функциональность преобразования текста в речь:
- Для локального TTS установите плагин Runtime Text To Speech.
- Для внешних TTS провайдеров (ElevenLabs, OpenAI) установите плагин Runtime AI Chatbot Integrator.
Конфигурация для конкретных платформ
Настройка для Android / Meta Quest
Если вы ориентируетесь на платформы Android или Meta Quest и сталкиваетесь с ошибками сборки при использовании этого плагина, вам необходимо отключить архитектуру x86_64 (x64) для Android в настройках проекта:
- Перейдите в Edit > Project Settings
- Откройте раздел Platforms > Android
- В секции Platforms - Android, раздел Build, найдите опцию Support x86_64 [aka x64] и убедитесь, что она отключена, как показано ниже
Это связано с тем, что плагин в настоящее время поддерживает только архитектуры arm64-v8a и armeabi-v7a для платформ Android / Meta Quest.
Процесс настройки
Шаг 1: Поиск и модификация Blueprint для анимации лица
- UE 5.5 и более ранние версии (или Legacy MetaHumans в UE 5.6+)
- Персонажи MetaHuman Creator в UE 5.6+
Вам необходимо модифицировать Animation Blueprint, который будет использоваться для лицевых анимаций вашего MetaHuman персонажа. Стандартный Animation Blueprint для лица MetaHuman находится по пути:
Content/MetaHumans/Common/Face/Face_AnimBP
У вас есть несколько вариантов реализации функции Lip Sync:
- Редактирование стандартного ассета (самый простой вариант)
- Создание дубликата
- Использование кастомного Animation Blueprint
Откройте стандартный Face_AnimBP
напрямую и внесите изменения. Любые модификации повлияют на всех персонажей MetaHuman, использующих этот Animation Blueprint.
Примечание: Этот подход удобен, но затронет всех персонажей, использующих стандартный Animation Blueprint.
- Дублируйте
Face_AnimBP
и дайте ему описательное имя - Найдите Blueprint-класс вашего персонажа (например, для персонажа "Bryan" он будет расположен по пути
Content/MetaHumans/Bryan/BP_Bryan
) - Откройте Blueprint персонажа и найдите компонент Face
- Измените свойство Anim Class на ваш новый дублированный Animation Blueprint
Примечание: Этот подход позволяет кастомизировать Lip Sync для конкретных персонажей, оставляя других неизменными.
Вы можете реализовать смешивание Lip Sync в любом Animation Blueprint, имеющем доступ к необходимым лицевым костям:
- Создайте или используйте существующий кастомный Animation Blueprint
- Убедитесь, что ваш Animation Blueprint работает со скелетом, содержащим те же лицевые кости, что и стандартный
Face_Archetype_Skeleton
MetaHuman (это стандартный скелет, используемый для любого персонажа MetaHuman)
Примечание: Этот подход дает максимальную гибкость для интеграции с кастомными системами анимации.
Начиная с UE 5.6, была представлена новая система MetaHuman Creator, которая создает персонажей без традиционного ассета Face_AnimBP
. Для таких персонажей плагин предоставляет Animation Blueprint лица, расположенный по пути:
Content/LipSyncData/LipSync_Face_AnimBP
Этот Animation Blueprint находится в папке контента плагина и будет перезаписываться при каждом обновлении плагина. Чтобы избежать потери ва ших изменений, настоятельно рекомендуется:
- Скопировать этот ассет в папку Content вашего проекта (например, в
YourProject/Content/MetaHumans/LipSync_Face_AnimBP
) - Использовать вашу копию в настройках персонажа
- Вносить все изменения только в скопированную версию
Это гарантирует сохранность ваших настроек синхронизации губ при обновлениях плагина.
Использование Face Animation Blueprint плагина:
- Найдите Blueprint класс вашего персонажа из MetaHuman Creator
- Откройте Blueprint персонажа и найдите компонент Face
- Измените свойство Anim Class на
LipSync_Face_AnimBP
плагина - Продолжите с шагами 2-4 для настройки функциональности Runtime MetaHuman Lip Sync
Альтернативные варианты:
- Использовать устаревшие инструкции: Вы можете следовать инструкциям для UE 5.5 выше, если работаете с устаревшими MetaHumans или предпочитаете традиционный подход
- Создать собственный Animation Blueprint: Создайте свой Animation Blueprint, совместимый со структурой скелета MetaHuman Creator
Примечание: Если вы используете UE 5.6+, но работаете с устаревшими MetaHumans (не созданными через MetaHuman Creator), используйте инструкции из вкладки "UE 5.5 and Earlier".
Важно: Смешивание Runtime MetaHuman Lip Sync может быть реализовано в любом ассете Animation Blueprint, имеющем доступ к позе, содержащей лицевые кости из стандартного Face_Archetype_Skeleton
MetaHuman. Вы не ограничены приведёнными выше вариантами - это лишь распространённые подходы к реализации.
Шаг 2: Настройка Event Graph
Откройте ваш Face Animation Blueprint и перейдите в Event Graph
. Вам нужно создать генератор, который будет обрабатывать аудиоданные и создавать анимацию синхронизации губ.
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Добавьте ноду
Event Blueprint Begin Play
, если её ещё нет - Добавьте ноду
Create Runtime Viseme Generator
и подключите её к событию Begin Play - Сохраните вывод в переменную (например, "VisemeGenerator") для использования в других частях графа
- Добавьте ноду
Event Blueprint Begin Play
, если её ещё нет - Добавьте ноду
Create Realistic MetaHuman Lip Sync Generator
и подключите её к событию Begin Play - Сохраните вывод в переменную (например, "RealisticLipSyncGenerator") для использования в других частях графа
- (Опционально) Установите Processing Chunk Size для объекта Realistic MetaHuman Lip Sync Generator
Примечание: Realistic Model оптимизирован специально для Meta Персонажи типа Human и не совместим с пользовательскими типами персонажей.
Настройка размера обрабатываемого фрагмента: Параметр Processing Chunk Size определяет, сколько сэмплов обрабатывается на каждом шаге вывода. Значение по умолчанию — 160 сэмплов, что соответствует 10 мс аудио при частоте 16 кГц (внутренняя частота обработки). Вы можете изменить это значение для баланса между ч астотой обновления и нагрузкой на CPU:
- Меньшие значения обеспечивают более частые обновления, но увеличивают нагрузку на CPU
- Большие значения снижают нагрузку на CPU, но могут уменьшить отзывчивость Lip Sync
Чтобы установить Processing Chunk Size:
- Откройте объект
Realistic MetaHuman Lip Sync Generator
- Найдите свойство
Processing Chunk Size
- Установите желаемое значение
Рекомендуется использовать значения, кратные 160. Это соответствует внутренней структуре обработки модели. Рекомендуемые значения включают:
160
(по умолчанию, минимальное рекомендуемое)320
480
640
- и т.д.
Значение по умолчанию 160
сэмплов соответствует 10 мс аудио при 16 кГц. Использование значений, кратных 160, помогает сохранить выравнивание с базовой единицей, что может оптимизировать эффективность обработки и обеспечить стабильное поведение при разных размерах фрагментов.
Опции оптимизаци и модели
По умолчанию Realistic Model использует квантованную и оптимизированную версию для значительного повышения производительности и снижения нагрузки на CPU. Однако, если приоритетом является максимально возможное качество визуализации, а не оптимизация, можно использовать оригинальную неоптимизированную версию модели.
Использование оригинальной неоптимизированной модели:
В будущих версиях появятся более автоматизированные и удобные способы переключения между оптимизированной и неоптимизированной моделями через настройки. Текущий метод — временное, но рабочее решение.
Для перехода на оригинальную неоптимизированную модель:
- Скачайте оригинальную модель: Скачать с Google Drive
- Найдите папку плагина в установке движка:
- Перейдите в директорию установки UE, затем в
Engine\Plugins\Marketplace\
- Пример (ваш путь будет отличаться):
F:\Epic Games\UE_5.6\Engine\Plugins\Marketplace\
- Найдите папку плагина — точное название зависит от версии движка:
- Некоторые версии используют понятные имена, например
RuntimeMetaHumanLipSync
- Другие используют зашифрованные имена, например
RuntimeM879a7d628ddcV1
- Некоторые версии используют понятные имена, например
- Перейдите в директорию установки UE, затем в
- Перейдите в папку с данными модели:
- Откройте
Content\RealisticModelData\
внутри папки плагина - Найдите файл
EpicMetaHumanLipSyncCpuModel.uasset
- Откройте
- Замените файл модели:
- Распакуйте скачанный архив
- Замените существующий
EpicMetaHumanLipSyncCpuModel.uasset
на файл из архива
- Перезапустите проект, чтобы изменения вступили в силу Вопросы производительности:
Версия модели | Производительность | Визуальное качество | Рекомендуемые сценарии использования |
---|---|---|---|
Оптимизированная (по умолчанию) | Высокая производительность, низкая нагрузка на CPU | Отличное качество | Большинство проектов, приложения реального времени, сценарии с критичной производительностью |
Оригинальная неоптимизированная | Высокая нагрузка на CPU | Максимальная визуальная точность | Кинопроизводство, оффлайн-рендеринг, когда качество является приоритетом |
Выберите версию, которая лучше всего соответствует требованиям производительности и стандартам качества вашего проекта.
Для надежной и стабильной работы с Realistic Model необходимо воссоздавать Realistic MetaHuman Lip Sync Generator каждый раз, когда вы хотите передать новые аудиоданные после периода бездействия. Это связано с поведением ONNX runtime, которое может привести к прекращению работы lip sync при повторном использовании генераторов после периодов молчания.
Пример сценария: Если вы выполнили TTS lip sync, затем остановили процесс, а позже хотите выполнить lip sync снова с новым аудио, создайте новый Realistic MetaHuman Lip Sync Generator вместо повторного использования существующего.
Шаг 3: Настройка обработки аудиовхода
Необходимо настроить метод обработки аудиовхода. Существует несколько способов в зависимости от источника аудио.
- Микрофон (реальное время)
- Микрофон (Воспроизведение)
- Text-to-Speech (Локальный)
- Text-to-Speech (Внешние API)
- From Audio File/Buffer
- Custom Audio Source
Этот подход выполняет lip sync в реальном времени при разговоре в микрофон:
- Стандартная (быстрая) модель
- Реалистичная (высококачественная) модель
- Создайте Capturable Sound Wave с помощью Runtime Audio Importer
- Перед началом захвата аудио привяжитесь к делегату
OnPopulateAudioData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator - Начните захват аудио с микрофона
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Standard Model, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Этот подход захватывает аудио с микрофона, затем воспроизводит его с синхронизацией губ:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Создайте Capturable Sound Wave используя Runtime Audio Importer
- Начните захват аудио с микрофона
- Перед воспроизведением capturable sound wave, привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Standard Model, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные мен ьшими частями для более отзывчивой синхронизации губ, отрегулируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления синхронизации губ.
- Regular
- Стриминг
Этот подход синтезирует речь из текста и выполняет синхронизацию губ:
- Standard (Faster) Model
- Реалистичная (Высокое качество) Модель
- Используйте Runtime Text To Speech для генерации речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизвед ением импортированного sound wave, привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается для Реалистичной модели из-за конфликтов с ONNX runtime. Для преобразования текста в речь с Реалистичной моделью рассмотрите использование внешних TTS сервисов (таких как OpenAI или ElevenLabs через Runtime AI Chatbot Integrator) или используйте Стандартную модель.
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, измените расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления Lip Sync.
Этот подход использует потоковый синтез речи с синхронизацией губ в реальном времени:
- Стандартная (Быстрая) Модель
- Реалистичная (Высокое качество) Модель
- Используйте Runtime Text To Speech для генерации потоковой речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением потокового звука привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается для Реалистичной модели из-за конфликтов с ONNX runtime. Для преобразования текста в речь с Реалистичной моделью рассмотрите использование внешних TTS сервисов (таких как OpenAI или ElevenLabs через Runtime AI Chatbot Integrator) или используйте Стандартную модель.
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, измените расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления Lip Sync.
- Обычный
- Streaming
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной речи из AI-сервисов (OpenAI или ElevenLabs) и синхронизации губ:
- Стандартная (Быстрая) Модель
- Реалистичная (Высококачественная) Модель
- Используйте Runtime AI Chatbot Integrator для генерации речи из текста с помощью внешних API (OpenAI, ElevenLabs и т.д.)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением импортированной звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Реалистичная Модель использует тот же рабочий процесс обработки аудио, что и Стандартная Модель, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Стандартной Модели, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порция ми для более отзывчивой синхронизации губ, отрегулируйте расчёт в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления синхронизации губ.
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной потоковой речи от AI-сервисов (OpenAI или ElevenLabs) и выполнения Lip Sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Используйте Runtime AI Chatbot Integrator для подключения к потоковым TTS API (например ElevenLabs Streaming API)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением потокового звука привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров для Standard Model просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Имена функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные меньшими фрагментами для более отзывчивого Lip Sync, отрегулируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (потоковая передача каждые ~6.67 мс) вместо 100 (потоковая передача каждые 10 мс) обес печит более частые обновления Lip Sync.
Этот подход использует предварительно записанные аудиофайлы или аудиобуферы для синхронизации губ:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Используйте Runtime Audio Importer для импорта аудиофайла с диска или из памяти
- Перед воспроизведением импортированного звука привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator - Воспроизведите импортированный звук и наблюдайте анимацию синхронизации губ
Realistic Model использует тот же рабочий проце сс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Standard Model, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой синхронизации губ, отрегулируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления синхронизации губ.
Для пользовательского источника звука вам потребуется:
- Standard (Faster) Model
- Реалист ичная (Высокое качество) Модель
- Аудиоданные в формате float PCM (массив сэмплов с плавающей точкой)
- Частота дискретизации и количество каналов
- Вызов
ProcessAudioData
из вашего Runtime Viseme Generator с этими параметрами
Вот пример стриминга аудио из пользовательского источника:
Реалистичная Модель использует тот же рабочий процесс обработки аудио, что и Стандартная Модель, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Стандартной Модели, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, измените расчет в функции SetNumSamplesPerChunk
. Например, разделив частоту дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс), вы получите более частые обновления Lip Sync.
Шаг 4: Настройка Anim Graph
После настройки Event Graph переключитесь на Anim Graph
, чтобы подключить генератор к анимации персонажа:
Lip Sync
- Стандартная (Быстрая) Модель
- Реалистичная (Высокое качество) Модель
- Найдите позу, содержащую лицо MetaHuman (обычно из
Use cached pose 'Body Pose'
) - Добавьте ноду
Blend Runtime MetaHuman Lip Sync
- Подключите позу к
Source Pose
нодыBlend Runtime MetaHuman Lip Sync
- Подключите вашу переменную
RuntimeVisemeGenerator
к пинуViseme Generator
- Подключите выход ноды
Blend Runtime MetaHuman Lip Sync
к пинуResult
нодыOutput Pose
При обнаружении Lip Sync в аудио ваш персонаж будет динамически анимироваться соответствующим образом:
- Найдите позу, содержащую лицо MetaHuman (обычно из
Use cached pose 'Body Pose'
) - Добавьте ноду
Blend Realistic MetaHuman Lip Sync
- Подключите позу к
Source Pose
нодыBlend Realistic MetaHuman Lip Sync
- Подключите вашу переменную
RealisticLipSyncGenerator
к пинуLip Sync Generator
- Подключите выход ноды
Blend Realistic MetaHuman Lip Sync
к пинуResult
нодыOutput Pose
Реалистичная Модель обеспечивает улучшенное визуальное качество с более естественными движениями рта:
Примечание: Реалистичная Модель предназначена исключительно для персонажей MetaHuman и не совместима с пользовательскими типами персонажей.
Анимация смеха
Вы также можете добавить анимации смеха, которые будут динамически реагировать на смех, обнаруженный в аудио:
- Добавьте ноду
Blend Runtime MetaHuman Laughter
- Подключите вашу переменную
RuntimeVisemeGenerator
к пинуViseme Generator
- Если вы уже используете Lip Sync:
- Подключите выход из ноды
Blend Runtime MetaHuman Lip Sync
кSource Pose
нодыBlend Runtime MetaHuman Laughter
- Подключите выход ноды
Blend Runtime MetaHuman Laughter
к пинуResult
вOutput Pose
- Подключите выход из ноды
- Если используете только смех без Lip Sync:
- Подключите ваш исходный поз у напрямую к
Source Pose
нодыBlend Runtime MetaHuman Laughter
- Подключите выход к пину
Result
- Подключите ваш исходный поз у напрямую к
Когда в аудио будет обнаружен смех, ваш персонаж динамически анимируется соответствующим образом:
Комбинация с анимациями тела
Чтобы применить 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 элемент в массив
- Сделайте подключения:
- Существующие анимации (например
BodyPose
) → входBase Pose
- Выход лицевой анимации (из нод Lip Sync и/или смеха) → вход
Blend Poses 0
- Нода слоистого смешивания → финальная поза
Result
- Существующие анимации (например
Почему это работает: Фильтры ветвей изолируют кости лицевой анимации, позволяя Lip Sync и смеху смешиваться исключительно с движениями лица, сохраняя оригинальные анимации тела. Это соответствует структуре MetaHuman лицевого рига, обеспечивая естественную интеграцию.
Примечание: Функции Lip Sync и смеха разработаны для недеструктивной работы с вашей существующей анимационной настройкой. Они влияют только на специфичные кости лица, необходимые для движения рта, оставляя другие лицевые анимации нетронутыми. Это означает, что вы можете безопасно интегрировать их в любой точке вашей анимационной цепочки - либо перед другими лицевыми анимациями (позволяя этим анимациям переопределять Lip Sync/смех), либо после них (позволяя Lip Sync/смеху смешиваться поверх ваших существующих анимаций). Эта гибкость позволяет комбинировать Lip Sync и смех с морганием глаз, движениями бровей, эмоциональными выражениями и другими лицевыми анимациями без конфликтов.
Конфигурация
Настройка Lip Sync
- Стандартная (быстрая) модель
- Реалистичная (высококачественная) модель
У ноды Blend Runtime MetaHuman Lip Sync
есть настройки в панели свойств:
Свойство | По умолчанию | Описание |
---|---|---|
Interpolation Speed | 25 | Определяет скорость перехода между виземами. Более высокие значения приводят к более резким переходам. |
Reset Time | 0.2 | Время в секундах, после которого синхронизация губ сбрасывается. Полезно для остановки синхронизации после завершения аудио. |
У ноды Blend Realistic MetaHuman Lip Sync
есть настройки в панели свойств:
Свойство | По умолчанию | Описание |
---|---|---|
Interpolation Speed | 30 | Определяет скорость перехода между позициями губ. Более высокие значения приводят к более резким переходам. |
Reset Time | 0.2 | Время в секундах, после которого синхронизация губ сбрасывается. Полезно для остановки синхронизации после завершения аудио. |
Настройка смеха
У ноды Blend Runtime MetaHuman Laughter
есть свои параметры:
Свойство | По умолчанию | Описание |
---|---|---|
Interpolation Speed | 25 | Определяет скорость перехода между анимациями смеха. Более высокие значения приводят к более резким переходам. |
Reset Time | 0.2 | Время в секундах, после которого анимация смеха сбрасывается. Полезно для остановки смеха после завершения аудио. |
Max Laughter Weight | 0.7 | Масштабирует максимальную интенсивность анимации смеха (0.0 - 1.0). |
Выбор между моделями синхронизации губ
При выборе модели синхронизации губ для вашего проекта учитывайте следующие факторы:
Критерий | Стандартная модель | Реалистичная модель |
---|---|---|
Совместимость с персонажами | MetaHumans и все пользовательские типы персонажей | Только MetaHumans |
Визуальное качество | Хорошая синхронизация с эффективной производительностью | Улучшенный реализм с более естественными движениями рта |
Производительность | Оптимизирована для всех платформ, включая мобильные/VR | Несколько более высокие требования к ресурсам |
Сценарии использования | Общие приложения, игры, VR/AR, мобильные | Кинематографические сцены, близкие взаимодействия с персонажами |
Совместимость с версиями движка
Если вы используете Unreal Engine 5.2, Реалистичная модель может работать некорректно из-за ошибки в библиотеке ресемплинга UE. Для пользователей UE 5.2, которым нужна надежная синхронизация губ, рекомендуется использовать Стандартную модель.
Эта проблема специфична для UE 5.2 и не затрагивает другие версии движка.
Для большинства проектов Standard Model обеспечивает отличный баланс качества и производительности, поддерживая при этом самый широкий с пектр типов персонажей. Realistic Model идеально подходит, когда требуется максимальная визуальная достоверность, особенно для персонажей MetaHuman, в контекстах, где производительность менее критична.