Использование плагина с пользовательскими персонажами
Это руководство проведёт вас через процесс настройки Runtime MetaHuman Lip Sync для персонажей, не являющихся MetaHuman. Данный процесс требует знакомства с концепциями анимации и риггинга. Если вам нужна помощь в реализации этого для вашего конкретного персонажа, вы можете обратиться за профессиональной поддержкой по адресу [email protected].
Предварительные требования
Перед началом убедитесь, что ваш персонаж соответствует следующим требованиям:
- Имеет валидный скелет
- Содержит морф-таргеты (blend shapes) для мимики
- В идеале имеет 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-системы
- Система Preston Blair
- Система фонем 3ds Max
- Пользовательские персонажи (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit предоставляет обширный набор блендшейпов для анимации лица, включая несколько форм рта. Вот как их сопоставить с виземами RuntimeMetaHumanLipSync:
Визема RuntimeMetaHumanLipSync | Эквивалент ARKit | Примечания |
---|---|---|
Sil | mouthClose | Нейтральное/покоящееся положение |
PP | mouthPressLeft + mouthPressRight | Для билабиальных звуков используйте оба блендшейпа вместе |
FF | lowerLipBiteLeft + lowerLipBiteRight | Создают контакт губы с зубами для "f/v" |
TH | tongueOut | ARKit имеет прямой контроль языка |
DD | jawOpen (умеренно) + tongueUp | Комбинация небольшого открытия челюсти и положения языка |
KK | mouthLeft или mouthRight (умеренно) | Лёгкое подтягивание уголков рта аппроксимирует велярные звуки |
CH | jawOpen (умеренно) + mouthFunnel (умеренно) | Комбинация для постальвеолярных звуков |
SS | mouthFrown | Лёгкое опуск ание уголков рта для сибилянтов |
NN | jawOpen (очень умеренно) + mouthClose | Почти закрытый рот с небольшим открытием челюсти |
RR | mouthPucker (умеренно) | Лёгкое округление для звуков "р" |
AA | jawOpen + mouthOpen | Комбинация для широко открытых гласных |
E | jawOpen (умеренно) + mouthSmile | Среднее открытие с лёгкой улыбкой |
IH | mouthSmile (умеренно) | Лёгкое растягивание губ |
OH | mouthFunnel | Округлённая открытая форма |
OU | mouthPucker | Плотно округлённые губы |
FACS (Facial Action Coding System) использует Action Units (AUs) для описания движений лица. Многие профессиональные системы анимации используют подходы на основе FACS:
Визема RuntimeMetaHumanLipSync | Action Units FACS | Примечания |
---|---|---|
Sil | Neutral | Нет активных AUs |
PP | AU23 + AU24 | Сжиматель губ + напрягатель губ |
FF | AU22 + AU28 | Воронкообразование губ + всасывание губ |
TH | AU25 (умеренно) + AU27 | Разомкнутые губы + растяжение рта |
DD | AU25 + AU16 | Разомкнутые губы + опускатель нижней губы |
KK | AU26 + AU14 | Опускание челюсти + ямочки |
CH | AU18 + AU25 | Округление губ + разомкнутые губы |
SS | AU20 | Растягиватель губ |
NN | AU25 (очень умеренно) | Лёгкое размыкание губ |
RR | AU18 (умеренно) | Лёгкое округление губ |
AA | AU27 + AU26 | Растяжение рта + опускание челюсти |
E | AU25 + AU12 | Разомкнутые губы + подниматель уголков губ |
IH | AU12 + AU25 (умеренно) | Подниматель уголков губ + лёгкое размыкание губ |
OH | AU27 (умеренно) + AU18 | Лёгкое растяжение рта + округление губ |
OU | AU18 + AU26 (умеренно) | Округление губ + лёгкое опускание челюсти |
Система Preston Blair — это классический стандарт анимации, использующий описательные названия форм рта:
Визема RuntimeMetaHumanLipSync | Preston Blair | Примечания |
---|---|---|
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 | Схоже с D/T, но другое положение языка |
RR | R | Округлённые губы для звука "р" |
AA | AI | Широко открытый рот |
E | EH | Средне открытый рот |
IH | EE | Растянутые губы |
OH | OH | Округлённое среднее открытие |
OU | OO | Плотно округлённые губы |
3ds Max использует систему на основе фонем для Character Studio:
Визема RuntimeMetaHumanLipSync | Фонема 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 и др.) обычно могут быть сопоставлены с системой визем плагина с разумными приближениями.
Создание пользовательского Pose Asset
Выполните следующие шаги, чтобы создать пользовательский Pose Asset для вашего персонажа, который будет использоваться с узлом Blend Runtime MetaHuman Lip Sync
:
1. Найдите Skeletal Mesh вашего персонажа
Найдите скелетный меш, содержащий морф-таргеты (блендшейпы), которые вы хотите использовать для анимации губ. Это может быть меш всего тела или только лица, в зависимости от дизайна персонажа.
2. Проверьте доступные Morph Targets
Убедитесь, что ваш скелетный меш имеет подходящие морф-таргеты, которые можно использовать как виземы для анимации губ. Большинство персонажей с поддержкой анимации лица должны иметь некоторые морф-таргеты для фонем/визем.
3. Создайте Reference Pose Animation
- Перейдите в
Create Asset -> Create Animation -> Reference Pose
- Введите описательное имя для анимационной последовательности и сохраните её в подходящем месте
- Созданная Animation Sequence откроется автоматически, показывая пустую анимацию, воспроизводящуюся в цикле
- Нажмите кнопку
Pause
, чтобы остановить воспроизведение анимации для удобства редактирования
4. Редактирование Animation Sequence
- Нажмите
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) - Удалите все морф-таргеты, не связанные с виземами или движениями рта, которые вы хотите использовать для lip sync
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. Создание Pose Asset
- Перейдите в
Create Asset
->Pose Asset
->Current Animation
- Введите описательное имя для Pose Asset и сохраните его в подходящей локации
- Созданный Pose Asset откроется автоматически, отображая позы типа
Pose_0
,Pose_1
и т.д., каждая из которых соответствует визему - Проверьте веса виземов, чтобы убедиться, что они работают как ожидалось
9. Финальная настройка Pose Asset
- Переименуйте каждую позу в соответствии с названиями виземов из раздела Prerequisites
- Удалите неиспользуемые позы
Настройка обработки и смешивания аудио
После подготовки Pose Asset необходимо настроить узлы обработки и смешивания аудио:
- Найдите или создайте Animation Blueprint вашего персонажа
- Настройте обработку и смешивание аудио, следуя тем же шагам, что описаны в стандартном руководстве по настройке плагина
- В узле
Blend Runtime MetaHuman Lip Sync
выберите ваш кастомный Pose Asset вместо стандартного Pose Asset MetaHuman
Комбинирование с анимациями тела
Для синхронизации губ совместно с другими анимациями тела:
- Следуйте шагам из стандартного руководства по плагину
- Убедитесь, что используете корректные имена костей шеи скелета вашего персонажа вместо имен костей MetaHuman
Результаты
Примеры кастомных персонажей с данной настройкой:
Качество синхронизации губ во многом зависит от конкретного персонажа и правильности настройки его визем. Приведенные примеры демонстрируют работу плагина с разными типами кастомных персонажей, имеющих различные системы визем.