Как использовать плагин
Это руководство проведет вас через процесс настройки Runtime MetaHuman Lip Sync для ваших персонажей MetaHuman.
Примечание: Runtime MetaHuman Lip Sync работает как с MetaHuman, так и с пользовательскими персонажами. Плагин поддерживает различные типы персонажей, включая:
- Популярных коммерческих персонажей (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe и т.д.)
- Персонажей с блендшейпами на основе FACS
- Модели, использующие стандарты блендшейпов ARKit
- Персонажей с наборами фонем Preston Blair
- Системы фонем 3ds Max
- Любых персонажей с пользовательскими морф-таргетами для мимики
Подробные инструкции по настройке пользовательских персонажей, включая справочники по маппингу висем для всех перечисленных выше стандартов, смотрите в руководстве по настройке пользовательских персонажей.
Предварительные требования
Перед началом работы убедитесь, что:
- Плагин MetaHuman включен в вашем проекте (Примечание: Начиная с UE 5.6, этот шаг больше не требуется, так как функциональность MetaHuman интегрирована непосредственно в движок)
- У вас есть хотя бы один персонаж MetaHuman, загруженный и доступный в вашем проекте
- Плагин Runtime MetaHuman Lip Sync установлен
Плагин расширения для стандартной модели
Если вы планируете использовать Стандартную (Более быструю) Модель, вам необходимо установить плагин расширения:
- Скачайте Standard Lip Sync Extension plugin с Google Диска
- Извлеките папку из скачанного архива в папку
Plugins
вашего проекта (создайте эту папку, если она не существует) - Убедитесь, что ваш проект настроен как C++ проект (даже если у вас нет кода на C++)
- Пересоберите ваш проект
- Это расширение требуется только если вы хотите использовать Стандартную Модель. Если вам нужна только Реалистичная Модель, вы можете пропустить этот шаг.
- Для получения дополнительной информации о том, как собирать плагины вручную, см. руководство по сборке плагинов
Дополнительные плагины
- Если вы планируете использовать захват аудио (например, входной сигнал с микрофона), установите плагин Runtime Audio Importer.
- Если вы планируете использовать функционал преобразования текста в речь с моими плагинами (у вас может быть собственное кастомное TTS или другой источник аудио), то в дополнение к плагину Runtime Audio Importer также установите:
- Для локального TTS — плагин Runtime Text To Speech.
- Для внешних TTS-провайдеров (ElevenLabs, OpenAI) — плагин Runtime AI Chatbot Integrator.
Процесс настройки
Шаг 1: Найдите и измените Blueprint анимации лица
- UE 5.5 и более ранние (или Legacy MetaHumans в UE 5.6+)
- UE 5.6+ MetaHuman Creator Characters
Вам необходимо изменить Animation Blueprint, который будет использоваться для лицевой анимации вашего MetaHuman персонажа. Стандартный Animation Blueprint лица MetaHuman находится по пути:
Content/MetaHumans/Common/Face/Face_AnimBP
У вас есть несколько вариантов для реализации функциональности lip sync:
- Edit Default Asset (Simplest Option)
- Create Duplicate
- Use Custom 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 работает со скелетом, который содержит те же лицевые кости, что и стандартный скелет MetaHuman
Face_Archetype_Skeleton
(который является стандартным скелетом, используемым для любого персонажа MetaHuman)
Примечание: Этот подход дает вам максимальную гибкость для интеграции с пользовательскими системами анимации.
Начиная с UE 5.6, была представлена новая система MetaHuman Creator, которая создает персонажей без традиционного ассета Face_AnimBP
. Для этих персонажей плагин предоставляет face Animation Blueprint, расположенный по адресу:
Content/LipSyncData/LipSync_Face_AnimBP
Этот Animation Blueprint расположен в папке контента плагина и будет перезаписываться при каждом обновлении плагина. Чтобы предотвратить потерю ваших настроек, настоятельно рекомендуется:
- Скопировать этот ассет в папку Content вашего проекта (например, в
YourProject/Content/MetaHumans/LipSync_Face_AnimBP
) - Использовать вашу скопированную версию в настройках персонажа
- Вносить все изменения в скопированную версию
Это гарантирует, что ваши конфигурации lip sync сохранятся при обновлениях плагина.
Использование 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
. Вам нужно будет создать генератор, который будет обрабатывать аудиоданные и генерировать анимацию lip sync.
- 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") для использования в других частях графа
- (Опционально) Настройте параметры генератора, используя параметр Configuration
- (Опционально) Установите Processing Chunk Size на объекте Realistic MetaHuman Lip Sync Generator

Примечание: Реалистичная модель оптимизирована специально для персонажей MetaHuman и не совместима с пользовательскими типами персонажей.
Параметры конфигурации
Узел Create Realistic MetaHuman Lip Sync Generator
принимает необязательный параметр Configuration, который позволяет настроить поведение генератора:
Тип модели
Настройка Model Type определяет, какую версию реалистичной модели использовать:
Тип модели | Производительность | Визуальное качество | Обработка шума | Рекомендуемые случаи использования |
---|---|---|---|---|
Highly Optimized (По умолчанию) | Наивысшая производительность, наименьшее использование CPU | Хорошее качество | Может показывать заметные движения рта при фоновом шуме или не-голосовых звуках | Чистые аудио среды, сценарии, критичные к производительности |
Optimized | Хорошая производительность, умеренное использование CPU | Высокое качество | Лучшая стабильность с зашумленным аудио | Сбалансированная производительность и качество, смешанные аудио условия |
Original Unoptimized | Подходит для использования в реальном времени на современных CPU | Наивысшее качество | Наиболее стабилен с фоновым шумом и не-голосовыми звуками | Производства с высоким качеством, зашумленные аудио среды, когда необходима максимальная точность |
Настройки производительности
Intra Op Threads: Управляет количеством потоков, используемых для внутренних операций обработки модели.
- 0 (По умолчанию/Автоматически): Использует автоматическое определение (обычно 1/4 доступных ядер CPU, максимум 4)
- 1-16: Указать количество потоков вручную. Более высокие значения могут улучшить производительность на многопроцессорных системах, но используют больше CPU
Inter Op Threads: Управляет количеством потоков, используемых для параллельного выполнения различных операций модели.
- 0 (По умолчанию/Автоматически): Использует автоматическое определение (обычно 1/8 доступных ядер CPU, максимум 2)
- 1-8: Указать количество потоков вручную. Обычно держится на низком уровне для обработки в реальном времени
Использование конфигурации
Чтобы настроить генератор:
- В узле
Create Realistic MetaHuman Lip Sync Generator
разверните параметр Configuration - Установите Model Type в предпочитаемый вариант:
- Используйте Highly Optimized для наилучшей производительности (рекомендуется для большинства пользователей)
- Используйте Optimized для сбалансированной производительности и качества
- Используйте Original Unoptimized только когда максимальное качество является essential
- При необходимости настройте Intra Op Threads и Inter Op Threads (в большинстве случаев оставьте значение 0 для автоматического определения) Рекомендации по производительности:
- Для большинства проектов с чистым аудио используйте модель Highly Optimized для наилучшей производительности
- Если вы работаете с аудио, содержащим фоновый шум, музыку или неголосовые звуки, рассмотрите использование моделей Optimized или Original Unoptimized для лучшей стабильности
- Модель Highly Optimized может показывать небольшие движения рта при обработке неголосового аудио из-за техник оптимизации, примененных при создании модели
- Модель Original Unoptimized, хотя и требует больше ресурсов CPU, все еще подходит для приложений реального времени на современном оборудовании и обеспечивает наиболее точные результаты в сложных аудиоусловиях
- Настраивайте количество потоков только если вы испытываете проблемы с производительностью или имеете специфические требования к оптимизации
- Большее количество потоков не всегда означает лучшую производительность - оптимальные значения зависят от вашего конкретного оборудования и требований проекта
Настройка размера обрабатываемого чанка: Размер обрабатываемого чанка определяет, сколько сэмплов обрабатывается на каждом шаге инференса. Значение по умолчанию - 160 сэмплов, что соответствует 10 мс аудио при 16 кГц (внутренняя частота дискретизации обработки). Вы можете настроить это значение для баланса между частотой обновления и использованием CPU:
- Меньшие значения обеспечивают более частые обновления, но увеличивают использование CPU
- Большие значения снижают нагрузку на CPU, но могут уменьшить отзывчивость липсинка
Чтобы установить Размер обрабатываемого чанка:
- Откройте ваш объект
Realistic MetaHuman Lip Sync Generator
- Найдите свойство
Processing Chunk Size
- Установите желаемое значение
Рекомендуется использовать значения, которые являются кратными 160. Это согласуется с внутренней структурой обработки модели. Рекомендуемые значения включают:
160
(по умолчанию, минимальное рекомендуемое)320
480
640
- и т.д.
Размер обрабатываемого чанка по умолчанию 160
сэмплов соответствует 10 мс аудио при 16 кГц. Использование значений, кратных 160, сохраняет выравнивание с этой базовой единицей, что может помочь оптимизировать эффективность обработки и сохранить стабильное поведение при разных размерах чанков.
Для надежной и стабильной работы с реалистичной моделью требуется пересоздавать Realistic MetaHuman Lip Sync Generator каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия. Это связано с поведением ONNX runtime, которое может привести к прекращению работы липсинка при повторном использовании генераторов после периодов тишины.
Пример сценария: Если вы выполнили TTS липсинк и затем остановили его, и позже хотите выполнить липсинк снова с новым аудио, создайте новый Realistic MetaHuman Lip Sync Generator вместо повторного использования существующего.
Шаг 3: Настройка обработки аудиовхода
Вам необходимо настроить метод обработки аудиовхода. Существует несколько способов сделать это в зависимости от вашего источника аудио.
- Microphone (Real-time)
- Microphone (Playback)
- Text-to-Speech (Local)
- Text-to-Speech (External APIs)
- From Audio File/Buffer
- Streaming Audio Buffer
Этот подход выполняет синхронизацию губ в реальном времени во время разговора в микрофон:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Создайте 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 использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Standard Model, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: Если вы хотите обрабатывать аудиоданные меньшими частями для более отзывчивой Lip Sync, скорректируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления Lip Sync.
- Regular
- Streaming
Этот подход синтезирует речь из текста и выполняет Lip Sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Используйте Runtime Text To Speech для генерации речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением импортированной звуковой волны привяжитесь к ее делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается с моделью Realistic из-за конфликтов рантайма ONNX. Для синтеза речи с моделью Realistic рассмотрите использование внешних TTS-решений (таких как OpenAI или ElevenLabs через Runtime AI Chatbot Integrator) или любого другого TTS, который работает в отдельном процессе или не использует рантайм ONNX, либо используйте вместо этого модель Standard.
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, скорректируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления Lip Sync.
Этот подход использует потоковый синтез речи из текста с Lip Sync в реальном времени:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Используйте Runtime Text To Speech для генерации потоковой речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением потоковой звуковой волны привяжитесь к ее делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается с моделью Realistic из-за конфликтов рантайма ONNX. Для синтеза речи с моделью Realistic рассмотрите возможность использования внешних TTS-сервисов (таких как OpenAI или ElevenLabs через Runtime AI Chatbot Integrator) или используйте модель Standard.
Примечание: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, скорректируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (стриминг каждые ~6.67 мс) вместо 100 (стриминг каждые 10 мс) обеспечит более частые обновления Lip Sync.
- Regular
- Streaming
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной речи из AI-сервисов (OpenAI или ElevenLabs) и выполнения lip sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Используйте Runtime AI Chatbot Integrator для генерации речи из текста с помощью внешних API (OpenAI, ElevenLabs и т.д.)
- Используйте 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.
Этот подход использует плагин 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
- Realistic (Higher Quality) Model
- Аудиоданные в формате float PCM (массив семплов с плавающей точкой), доступные из вашего потокового источника
- Частота дискретизации и количество каналов
- Вызов
ProcessAudioData
из вашего Runtime Viseme Generator с этими параметрами по мере поступления аудиофрагментов
Вот пример обработки Lip Sync из потоковых аудиоданных:
Примечание: При использовании потоковых аудиоисточников обязательно управляйте временем воспроизведения аудио соответствующим образом, чтобы избежать искаженного воспроизведения. См. документацию по Streaming Sound Wave для получения дополнительной информации о правильном управлении потоковым аудио.
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
В каждом из примеров, показанных для Standard Model, просто замените:
VisemeGenerator
на вашу переменнуюRealisticLipSyncGenerator
- Названия функций и параметры остаются идентичными для обеих моделей
Примечание: При использовании потоковых аудиоисточников обязательно управляйте временем воспроизведения аудио соответствующим образом, чтобы избежать искаженного воспроизведения. См. документацию по Streaming Sound Wave для получения дополнительной информации о правильном управлении потоковым аудио.
Примечание: Если вы хотите обрабатывать аудиоданные меньшими фрагментами для более отзывчивого Lip Sync, скорректируйте расчет в функции SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (потоковая передача каждые ~6,67 мс) вместо 100 (потоковая передача каждые 10 мс) обеспечит более частые обновления Lip Sync.
Шаг 4: Настройка Anim Graph
После настройки Event Graph переключитесь на Anim Graph
, чтобы подключить генератор к анимации персонажа:
Lip Sync
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Найдите позу, содержащую лицо 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
Когда в аудио обнаруживается синхронизация губ, ваш персонаж будет динамически анимироваться соответствующим образом:
- Найдите позу, содержащую лицо 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
Модель Realistic обеспечивает улучшенное визуальное качество с более естественными движениями рта:
Примечание: Модель Realistic предназначена исключительно для персонажей MetaHuman и не совместима с пользовательскими типами персонажей.
Анимация смеха
Вы также можете добавить анимации смеха, которые будут динамически реагировать на смех, обнаруженный в аудио:
- Добавьте ноду
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
- Подключите вашу исходную позу напрямую к пину
Когда в аудио обнаруживается смех, ваш персонаж будет динамически анимироваться соответствующим образом:
Комбинирование с лицевой и телесной анимацией
Чтобы применить синхронизацию губ и смех вместе с существующими анимациями тела и пользовательскими лицевыми анимациями (такими как выражения, эмоции или любые другие лицевые движения), не перезаписывая их:
- Добавьте узел
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". Это позволяет пользовательским лицевым анимациям (выражениям, эмоциям и т.д.) правильно накладываться поверх синхронизации губ. - Сделайте соединения:
- Существующие анимации (например,
BodyPose
) → входBase Pose
- Выход лицевой анимации (от узлов синхронизации губ и/или смеха) → вход
Blend Poses 0
- Узел Layered blend → Финальная поза
Result
- Существующие анимации (например,
Почему это работает: Фильтры ветвей изолируют кости лицевой анимации, позволяя синхронизации губ и смеху смешиваться исключительно с лицевыми движениями, сохраняя при этом оригинальные анимации тела. Опция смещения кривых "Use Max Value" берет максимальное значение от каждой кривой вместо их аддитивного смешивания, что позволяет пользовательским лицевым анимациям (таким как выражения и эмоции) правильно комбинироваться с синхронизацией губ без конфликтов. Это соответствует структуре лицевого рига MetaHuman для естественной интеграции.
Примечание: Функции синхронизации губ и смеха разработаны для работы неразрушающим образом с вашей существующей анимационной настройкой. Они влияют только на конкретные лицевые кости, необходимые для движения рта, оставляя другие лицевые анимации нетронутыми. Это означает, что вы можете безопасно интегрировать их в любой точке вашей анимационной цепочки - либо до других лицевых анимаций (позволяя этим анимациям переопределять синхронизацию губ/смех), либо после них (позволяя синхронизации губ/смеху накладываться поверх ваших существующих анимаций). Эта гибкость позволяет вам комбинировать синхронизацию губ и смех с морганием глаз, движениями бровей, эмоциональными выражениями и другими лицевыми анимациями без конфликтов.
Тонкая настройка поведения синхронизации губ
После настройки базовой функциональности синхронизации губ вы можете захотеть тонко настроить определенные аспекты движения рта, чтобы лучше соответствовать требованиям вашего проекта.
Управление высовыванием языка
В стандартной модели синхронизации губ вы можете заметить чрезмерное выдвижение языка вперед во время определенных фонем. Чтобы контролировать высовывание языка:
- После вашего узла
Blend Runtime MetaHuman Lip Sync
илиBlend Realistic MetaHuman Lip Sync
добавьте узелModify Curve
- Щелкните правой кнопкой мыши на узле
Modify Curve
и выберите Add Curve Pin - Добавьте пин кривой с именем
CTRL_expressions_tongueOut
- Установите свойство Apply Mode узла в значение Scale
- Настройте параметр Value для управления высовыванием языка (например, 0.8 для уменьшения высовывания на 20%)
Управление открытием челюсти
Реалистичная синхронизация губ может создавать чрезмерно активные движения челюсти в зависимости от вашего аудиоконтента и визуальных требований. Чтобы настроить интенсивность открытия челюсти:
- После вашего узла смешивания lip sync добавьте узел
Modify Curve
- Щелкните правой кнопкой мыши на узле
Modify Curve
и выберите Add Curve Pin - Добавьте пин кривой с именем
CTRL_expressions_jawOpen
- Установите свойство Apply Mode узла в значение Scale
- Настройте параметр Value для управления диапазоном открытия челюсти (например, 0.9 для уменьшения движения челюсти на 10%)
Конфигурация
Конфигурация Lip Sync
- Standard (Faster) Model
- Realistic (Higher Quality) Model
Узел 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). |
Выбор между моделями Lip Sync
При выборе модели синхронизации губ для вашего проекта учитывайте следующие факторы:
Критерий | Стандартная Модель | Реалистичная Модель |
---|---|---|
Совместимость с персонажами | MetaHumans и все типы пользовательских персонажей | Только MetaHumans |
Визуальное качество | Хорошая синхронизация губ с эффективной производительностью | Улучшенный реализм с более естественными движениями рта |
Производительность | Оптимизирована для всех платформ, включая мобильные/VR | Несколько более высокие требования к ресурсам |
Случаи применения | Универсальные приложения, игры, VR/AR, мобильные | Кинематографичные сцены, близкие взаимодействия с персонажами |
Совместимость с версиями движка
Если вы используете Unreal Engine 5.2, Реалистичная Модель может работать некорректно из-за ошибки в библиотеке ресемплинга UE. Пользователям UE 5.2, которым требуется надежная функция синхронизации губ, рекомендуется использовать Стандартную Модель.
Эта проблема характерна только для UE 5.2 и не затрагивает другие версии движка.
Для большинства проектов Стандартная Модель обеспечивает отличный баланс качества и производительности, поддерживая при этом самый широкий спектр типов персонажей. Реалистичная Модель идеальна в тех случаях, когда требуется максимальная визуальная достоверность именно для персонажей MetaHuman в контекстах, где производительность менее критична.