Перейти к основному содержимому

Как использовать плагин с собственными персонажами

Это руководство проведёт вас через процесс настройки Runtime MetaHuman Lip Sync для персонажей, не являющихся MetaHuman. Этот процесс требует знакомства с концепциями анимации и риггинга. Если вам нужна помощь во внедрении этого для вашего конкретного персонажа, вы можете обратиться за профессиональной поддержкой по адресу [email protected].

Важное примечание о моделях липсинка​

Совместимость с пользовательскими персонажами

В этом руководстве рассматриваются пользовательские персонажи, не использующие соглашения об именовании морф-таргетов MetaHuman или ARKit.

Модель Realistic (Higher Quality) работает с персонажами, чьи морф-таргеты соответствуют стандартам именования MetaHuman или ARKit; это настраивается через Morph Target Set Selection. Если ваш персонаж уже использует (или может быть экспортирован/конвертирован для использования) имена блендшейпов по стандарту ARKit, вы можете использовать модель Realistic, не выполняя процедуру ручного сопоставления из этого руководства. См. Преобразование персонажей в блендшейпы ARKit для распространённых персонажей, таких как CC4/CC5 и Daz Genesis.

Если ваш персонаж использует другой набор морф-таргетов (например, Daz Genesis, Reallusion CC3/CC4/CC5, Mixamo или упрощенный кастомный риг), то поддерживаемым вариантом является модель Standard (Faster) — далее следуйте шагам, описанным ниже.

Требуется плагин расширения: Чтобы использовать Standard Model с пользовательскими персонажами, необходимо установить плагин 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 плагина будет работать эффективно, поскольку это близкие постальвеолярные звуки.

Справочник по сопоставлению визем​

Ниже приведены соответствия между распространёнными системами визем и виземами, требуемыми плагином:

ARKit предоставляет полный набор блендшейпов для лицевой анимации, включая несколько форм рта. Вот как сопоставить их с висемами RuntimeMetaHumanLipSync:

RuntimeMetaHumanLipSync виземаАналог ARKitЗаметки
SilmouthCloseНейтральное/исходное положение
PPmouthPressLeft + mouthPressRightДля билабиальных звуков используйте обе формы сжатия вместе.
FFlowerLipBiteLeft + lowerLipBiteRight (или mouthRollLower)Нижняя губа касается верхних зубов, как при звуках «f» и «v».
THtongueOutARKit имеет прямое управление языком.
DDjawOpen (mild) + tongueUp (if you have tongue rig)Язык касается альвеолярного гребня; лёгкое опускание челюсти.
KKmouthLeft or mouthRight (mild)Едва заметное оттягивание уголков рта приблизительно воспроизводит велярные звуки.
CHjawOpen (mild) + mouthFunnel (mild)Комбинируйте для постальвеолярных звуков.
SSmouthFrownИспользуйте лёгкое нахмуривание для сибилянтов.
NNjawOpen (very mild) + mouthCloseПочти закрытый рот с лёгким открытием челюсти
RRmouthPucker (mild)Лёгкое округление для звуков «р»
AAjawOpen + mouthStretchLeft + mouthStretchRight (or jawOpen + mouthOpen)Широко открытый рот для звука «а».
EjawOpen (mild) + mouthSmileСреднеоткрытое положение с лёгкой улыбкой
IHmouthSmile (mild)Легкое растягивание губ
OHmouthFunnelОткрытая скруглённая форма
OUmouthPuckerПлотно округлённые губы

Создание собственного Pose Asset​

Следуйте этим шагам, чтобы создать пользовательский ассет позы для вашего персонажа, который будет использоваться с узлом Blend Runtime MetaHuman Lip Sync:

1. Найдите скелетную сетку вашего персонажа.​

Найдите скелетную сетку, содержащую морф-таргеты (блендшейпы), которые вы хотите использовать для анимации синхронизации губ. Это может быть сетка всего тела или просто сетка лица, в зависимости от дизайна вашего персонажа.

2. Проверьте морф-таргеты и кривые​

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

Проверка морф-таргетов: Убедитесь, что ваша скелетная сетка содержит морф-таргеты (блендшейпы), которые можно использовать в качестве визем для анимации синхронизации губ. У большинства персонажей с поддержкой лицевой анимации должны быть морф-таргеты фонем/визем.

Example of morph targets in a character

Важно: Проверьте вкладку Curves Этот шаг особенно важен для персонажей, экспортированных из Blender или другого внешнего ПО:

  1. Откройте вкладку Curves в редакторе Skeletal Mesh.
  2. Проверьте, видны ли кривые, соответствующие вашим морф-таргетам.
  3. Если вкладка Curves пуста, но морф-таргеты существуют, вручную добавьте новые кривые, используя точно такие же имена, как у ваших морф-таргетов.

Примечание: Эта проблема часто возникает при экспорте из Blender, когда морф-таргеты импортируются успешно, но анимационные кривые не создаются автоматически. Без соответствующих кривых анимация не заполнится корректно после запекания в контрольный риг.

Альтернативное решение: Чтобы избежать этой проблемы при экспорте из Blender, попробуйте включить Пользовательские свойства и Анимацию в настройках экспорта FBX — это может помочь включить анимационные кривые вместе с морф-таргетами.

3. Создайте анимацию референсной позы​

  1. Перейдите в Create Asset -> Create Animation -> Reference Pose
  2. Введите описательное имя для анимационной последовательности и сохраните её в подходящем месте
  3. Созданная анимационная последовательность откроется автоматически, показывая пустую анимацию, проигрываемую в цикле

Creating a reference pose asset Naming the reference pose asset

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

Pausing animation playback

4. Отредактируйте анимационную последовательность​

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

Editing with FK Control Rig Baking to Control Rig

  1. Редактор переключится в Режим анимации с открытой вкладкой Sequencer.
  2. Установите View Range End Time равным 0016 (при этом Working Range End автоматически также станет равным 0016).
  3. Перетащите правый край ползунка к правому концу окна секвенсора.

5. Подготовка анимационных кривых​

  1. Вернитесь к ассету Animation Sequence и найдите морф-таргеты в списке Curves (если они не видны, закройте и снова откройте ассет Animation Sequence)
  2. Удалите все морф-таргеты, которые не связаны с виземами или движениями рта, которые вы хотите использовать для липсинка.

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. Анимируйте каждую визему​

  1. Для каждой виземы анимируйте соответствующие кривые морф-таргетов от 0.0 до 1.0
  2. Начинайте анимацию каждой виземы на отдельном кадре
  3. Настройте дополнительные кривые по мере необходимости (открытие челюсти/рта, положение языка и т.д.), чтобы создать естественно выглядящие формы визем.

8. Создайте ассет позы​

  1. Перейдите в Создать ассет -> Ассет позы -> Текущая анимация
  2. Введите описательное имя для ассета позы и сохраните его в подходящем месте
  3. Созданный ассет позы откроется автоматически, отображая позы вроде Pose_0, Pose_1 и т. д., каждая из которых соответствует виземе
  4. Просмотрите веса визем, чтобы убедиться, что они работают как ожидается

Creating a pose asset Naming the pose asset Pose asset with visemes

9. Завершите работу над ассетом позы.​

  1. Переименуйте каждую позу в соответствии с названиями визем из раздела Предварительные требования.
  2. Удалите все неиспользуемые позы.

Настройка обработки аудио и его смешивания​

Как только ваш ассет позы готов, вам нужно настроить обработку аудио и узлы смешивания:

  1. Найдите или создайте Animation Blueprint вашего персонажа.
  2. Настройте обработку аудио и смешивание, следуя тем же шагам, которые описаны в стандартном руководстве по настройке плагина.
  3. В узле Blend Runtime MetaHuman Lip Sync выберите ваш пользовательский ассет позы вместо стандартного ассета позы MetaHuman.

Selecting the custom pose asset

Объединение с анимациями тела​

Если вы хотите выполнять липсинк одновременно с другими анимациями тела:

  1. Следуйте тем же шагам, что описаны в стандартном руководстве по плагину
  2. Убедитесь, что вы указали правильные названия костей для скелета шеи вашего персонажа, а не используете названия костей MetaHuman

Результаты​

Вот примеры пользовательских персонажей, использующих эту настройку:

Example 1: Lip sync with custom character

Example 2: Lip sync with different viseme system

Example 3: Lip sync with different viseme system

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