Как использовать плагин с пользовательскими персонажами
Это руководство проведет вас через процесс настройки Runtime MetaHuman Lip Sync для персонажей, не являющихся MetaHuman. Этот процесс требует знакомства с концепциями анимации и риггинга. Если вам нужна помощь во внедрении этого для вашего конкретного персонажа, вы можете обратиться за профессиональной поддержкой по адресу [email protected].
Важное замечание о моделях синхронизации губ
Это руководство охватывает пользовательские персонажи, которые не используют соглашения об именовании морф-таргетов MetaHuman или ARKit.
Модель «Реалистичная (высокое качество)» работает с персонажами, чьи морф-таргеты соответствуют стандарту именования MetaHuman или ARKit, настраиваемому через Выбор набора морф-таргетов. Если ваш персонаж уже использует (или может быть экспортирован/конвертирован для использования) названия блендшейпов стандарта ARKit, вы можете применить реалистичную модель без ручного сопоставления, описанного в этом руководстве.
Если ваш персонаж использует другой набор морф-таргетов (например, Daz Genesis, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe или упрощённый кастомный риг), поддерживаемым вариантом является стандартная (более быстрая) модель, следуя шагам ниже.
Требуется плагин расширения: Для использования стандартной модели с пользовательскими персонажами необходимо установить плагин расширения Standard Lip Sync Extension, как описано в разделе «Предварительные требования» основного руководства по настройке.
Это расширение обязательно для всех реализаций пользовательских персонажей, описанных в данном руководстве.
Предварительные требования
Перед началом убедитесь, что ваш персонаж соответствует следующим требованиям:
- Имеет корректный скелет
- Содержит морф-таргеты (бленд-шейпы) для мимики лица
- Желательно наличие 10+ морф-таргетов, определяющих виземы (чем больше визем, тем выше качество синхронизации губ)
Плагин требует сопоставления морф-таргетов вашего персонажа со следующими стандартными виземами:
Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)
Примечание: Если ваш персонаж имеет другой набор висем (что вполне вероятно), вам не нужно точное совпадение для каждой висемы. Часто достаточно приблизительных соответствий — например, сопоставление висемы SH вашего персонажа с висемой CH плагина будет работать эффективно, поскольку это близкие постувулярные звуки.
Справочная таблица соответствия визем
Вот соответствия между распространёнными системами визем и виземами, необходимыми для плагина:
- Apple ARKit
- Системы на основе FACS
- Система Престона Блэра
- Система фонем 3ds Max
- Пользовательские персонажи (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit предоставляет полный набор блендшейпов для анимации лица, включая несколько форм рта. Вот как сопоставить их с виземами RuntimeMetaHumanLipSync:
| RuntimeMetaHumanLipSync Viseme | Эквивалент ARKit | Примечания |
|---|---|---|
| Sil | mouthClose | Нейтральное/исходное положение |
| PP | mouthPressLeft + mouthPressRight | Для билабиальных звуков используйте обе формы сжатия вместе. |
| FF | lowerLipBiteLeft + lowerLipBiteRight (или mouthRollLower) | Нижняя губа касается верхних зубов, как в звуках "ф" и "в". |
| TH | tongueOut | ARKit имеет прямое управление языком |
| DD | jawOpen (mild) + tongueUp (if you have tongue rig) | Язык касается альвеолярного гребня; небольшое опускание челюсти. |
| KK | mouthLeft or mouthRight (mild) | Легкое растяжение уголков рта аппроксимирует велярные звуки |
| CH | jawOpen (mild) + mouthFunnel (mild) | Комбинируйте для постальвеолярных звуков |
| SS | mouthFrown | Используйте легкое нахмуривание для сибилянтов |
| NN | jawOpen (very mild) + mouthClose | Почти закрытый рот с небольшим открытием челюсти |
| RR | mouthPucker (mild) | Легкое округление для звуков «р» |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (или jawOpen + mouthOpen) | Широко открытый рот для звука "а" |
| E | jawOpen (mild) + mouthSmile | Слегка приоткрытое положение с легкой улыбкой |
| IH | mouthSmile (mild) | Небольшое растягивание губ |
| OH | mouthFunnel | Округлая открытая форма |
| OU | mouthPucker | Плотно округленные губы |
FACS (Система кодирования лицевых движений) использует Единицы действия (Action Units, AUs) для описания мимических движений. Многие профессиональные анимационные системы применяют подходы, основанные на FACS:
| RuntimeMetaHumanLipSync Viseme | Единицы действия FACS | Примечания |
|---|---|---|
| Sil | Нейтральный | Нет активных АУ |
| PP | AU23 + AU24 | Губы сжаты + губы плотно сомкнуты |
| FF | AU22 + AU28 | Губная воронка + втягивание губ |
| TH | AU25 (mild) + AU27 | Губы разомкнуты + растяжение рта |
| DD | AU25 + AU16 | Губы разомкнуты + депрессор нижней губы |
| KK | AU26 + AU14 | Опускание челюсти + ямочка |
| CH | AU18 + AU25 | Губы сжаты + губы разомкнуты |
| SS | AU20 | Растягиватель губ |
| NN | AU25 (very mild) | Губы слегка приоткрыты |
| RR | AU18 (mild) | Легкое поджатие губ |
| AA | AU27 + AU26 | Растяжение рта + опускание челюсти |
| E | AU25 + AU12 | Губы разомкнуты + уголки губ растянуты |
| IH | AU12 + AU25 (mild) | Подниматель уголков губ + легкое размыкание губ |
| OH | AU27 (mild) + AU18 | Легкое растяжение рта + поджатие губ |
| OU | AU18 + AU26 (mild) | Губы вытянуты трубочкой + лёгкое опускание челюсти |
Система Престона Блэра — это классический анимационный стандарт, использующий описательные названия для форм рта:
| RuntimeMetaHumanLipSync Viseme | Престон Блэр | Примечания |
|---|---|---|
| Sil | Rest | Нейтральное положение рта закрыто |
| PP | MBP | Классическая форма рта "MBP" |
| FF | FV | Положение «FV» с зубами на нижней губе |
| TH | TH | Язык касается передних зубов. |
| DD | D/T/N | Аналогичное положение для этих согласных |
| KK | CKG | Твердая позиция согласного |
| CH | CH/J/SH | Легкая надутость для этих звуков |
| SS | S/Z | Слегка приоткрытое положение зубов |
| NN | N/NG/L | Аналогично Д/Т, но другое положение языка. |
| RR | R | Округленные губы для звука R |
| AA | AI | Широко открытый рот |
| E | EH | Среднее открытие рта |
| IH | EE | Растянуть губы |
| OH | OH | Среднее закругленное отверстие |
| OU | OO | Плотно округленные губы |
3ds Max использует фонемную систему для своего Character Studio:
| RuntimeMetaHumanLipSync Viseme | 3ds Max Фонема | Примечания |
|---|---|---|
| Sil | rest | Положение рта по умолчанию |
| PP | p_b_m | Прямой эквивалент |
| FF | f_v | Прямой эквивалент |
| TH | th | Прямой эквивалент |
| DD | t_d | Прямой эквивалент |
| KK | k_g | Прямой эквивалент |
| CH | sh_zh_ch | Комбинированная форма |
| SS | s_z | Прямой эквивалент |
| NN | n_l | Комбинировано для этих звуков |
| RR | r | Прямой эквивалент |
| AA | ah | Открытый гласный звук |
| E | eh | Средний гласный |
| IH | ee | Закрытый гласный переднего ряда |
| OH | oh | Огубленный гласный заднего ряда |
| OU | oo | Закрытый гласный заднего ряда |
Пользовательские персонажи с виземами или бленд-шейпами/морф-таргетами рта (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe и т.д.) обычно могут быть сопоставлены с системой визем плагина с приемлемой точностью.
Создание пользовательского ассета позы
Выполните следующие шаги, чтобы создать пользовательский ассет позы для вашего персонажа, который будет использоваться с нодой Blend Runtime MetaHuman Lip Sync:
1. Найдите Skeletal Mesh вашего персонажа
Найдите скелетную сетку, содержащую целевые морфы (формы смешивания), которые вы хотите использовать для анимации синхронизации губ. Это может быть сетка всего тела или только сетка лица, в зависимости от дизайна вашего персонажа.
2. Проверьте морф-таргеты и кривые
Перед продолжением убедитесь, что ваша скелетная сетка имеет соответствующие морф-таргеты и кривые для анимации синхронизации губ.
Проверка морф-таргетов: Убедитесь, что ваш скелетный меш содержит морф-таргеты (бленд-шейпы), которые можно использовать в качестве визем для анимации синхронизации губ. Большинство персонажей с поддержкой лицевой анимации должны иметь несколько фонемных/виземных морф-таргетов.

Важно: Проверьте вкладку «Кривые» Этот шаг особенно важен для персонажей, экспортированных из Blender или другого стороннего ПО:
- Откройте вкладку Кривые в редакторе скелетной сетки
- Проверьте, видны ли кривые, соответствующие вашим целям морфинга
- Если вкладка «Кривые» пуста, но цели морфинга существуют, вручную добавьте новые кривые, используя точно такие же имена, как у ваших целей морфинга
Примечание: Эта проблема часто возникает при экспорте из Blender, когда морф-таргеты импортируются успешно, но анимационные кривые не создаются автоматически. Без соответствующих кривых анимация не будет корректно заполняться после запекания в Control Rig.
Альтернативное решение: Чтобы предотвратить эту проблему при экспорте из Blender, попробуйте включить Пользовательские свойства и Анимацию в настройках экспорта FBX — это может помочь включить кривые анимации вместе с целями морфинга.
3. Создайте анимацию референсной позы
- Перейдите в
Create Asset -> Create Animation -> Reference Pose - Введите описательное имя для последовательности анимации и сохраните её в подходящем месте
- Созданная последовательность анимации откроется автоматически, показывая пустую анимацию, воспроизводящуюся в цикле

- Нажмите кнопку
Pause, чтобы остановить воспроизведение анимации для упрощения редактирования.

4. Редактировать анимационную последовательность
- Нажмите
Edit in Sequencer->Edit with FK Control Rig - В диалоговом окне
Bake to Control Rigнажмите кнопкуBake to Control Rig, не меняя никаких настроек

- Редактор переключится в
Animation Modeс открытой вкладкойSequencer - Установите
View Range End Timeна 0016 (это автоматически установитWorking Range Endтакже на 0016) - Перетащите правый край ползунка к правому концу окна секвенсора
5. Подготовьте анимационные кривые
- Вернитесь к ассету Animation Sequence и найдите морф-таргеты в списке
Curves(если они не видны, закройте и снова откройте ассет Animation Sequence) - Удалите все морф-таргеты, не связанные с виземами или движениями рта, которые вы хотите использовать для синхронизации губ
6. Спланируйте сопоставление визем
Создайте план сопоставления, чтобы привести виземы вашего персонажа в соответствие с требуемым набором плагина. Например:
Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U
Обратите внимание, что допустимо иметь повторяющиеся сопоставления, если набор визем вашего персонажа не содержит точных соответствий для каждой требуемой виземы.
7. Анимируйте каждую визему
- Для каждой виземы анимируйте соответствующие кривые целевых морфов от 0.0 до 1.0
- Начинайте анимацию каждой виземы на разных кадрах
- Настройте дополнительные кривые по необходимости (открытие челюсти/рта, положение языка и т.д.), чтобы создать естественные формы визем
8. Создайте ассет позы
- Перейдите в
Create Asset->Pose Asset->Current Animation - Введите описательное имя для ассета позы и сохраните его в подходящем месте
- Созданный ассет позы откроется автоматически, отображая позы, такие как
Pose_0,Pose_1и т. д., каждая из которых соответствует виземе - Просмотрите веса визем, чтобы убедиться, что они работают как ожидалось

9. Завершите ассет позы
- Переименуйте каждую позу в соответствии с названиями визем из раздела Предварительные требования
- Удалите все неиспользуемые позы
Настройка обработки и смешивания аудио
Как только ваш ассет позы будет готов, необходимо настроить узлы обработки аудио и смешивания:
- Найдите или создайте Animation Blueprint вашего персонажа
- Настройте обработку аудио и смешивание, следуя тем же шагам, что описаны в стандартном руководстве по настройке плагина
- В узле
Blend Runtime MetaHuman Lip Syncвыберите свою собственную ассет позы вместо стандартной ассет позы MetaHuman

Комбинирование с анимациями тела
Если вы хотите выполнять синхронизацию губ вместе с другими анимациями тела:
- Следуйте тем же шагам, что описаны в стандартном руководстве по плагину
- Убедитесь, что вы указали правильные названия костей для скелета шеи вашего персонажа, а не используете названия костей MetaHuman
Результаты
Вот примеры пользовательских персонажей, использующих эту настройку:



Качество синхронизации губ во многом зависит от конкретного персонажа и того, насколько хорошо настроены его виземы. Приведенные выше примеры демонстрируют работу плагина с различными типами пользовательских персонажей, имеющими разные системы визем.