Как устранить пробелы между ключевыми формами рта в 2D-ригге персонажа
Чтобы устранить пробелы между ключевыми формами рта, найдите точные значения параметров, при которых появляется пробел, определите, какая губа, внутренняя сетка или маска затронута, и исправьте этот переход. Добавьте промежуточную ключевую форму, если существующим формам нужен другой путь между ними; сначала проверьте, не вызвана ли проблема отсутствующими ключами или настройками обрезки.
Это руководство предназначено для авторов, которые устраняют неполадки деформируемого рта в Live2D Cubism. Вам понадобится редактируемая модель, доступ к параметрам рта и сохранённая копия перед внесением изменений. Цель — добиться того, чтобы рот оставался цельным во время всего движения, в том числе между готовыми позами.
Почему готовые ключевые формы рта выглядят правильно, а при переходах появляются пробелы?
Ключевая форма задаёт форму объекта при определённом значении параметра. Cubism автоматически интерполирует формы между ключами, поэтому корректные закрытый и открытый рот не гарантируют, что все промежуточные положения будут выглядеть правильно. В официальном руководстве о параметрах эта связь показана на примере открывания и закрывания рта.
Обычно Cubism использует линейную интерполяцию. В документации по расширенной интерполяции объясняется, что движение точек по прямым траекториям может приводить к нежелательному сжатию, если предполагаемое движение должно идти по кривой. При поиске неполадок рта это помогает разделить две задачи: проверьте и созданные вами позы, и траектории между ними.
Рассматривайте рот как несколько взаимодействующих форм. Контур губ, закрашенная внутренняя часть и маска обрезки могут совпадать в ключевой форме, но расходиться при переходе. Сначала выясните, какая граница перестаёт совпадать.
Как определить сочетание параметров, при котором появляется пробел?
Сохраните отдельную рабочую копию, затем верните несвязанные параметры к значениям по умолчанию. Для начала установите рот анфас, чтобы рассматривать открывание и изменение формы без одновременной настройки движения головы.
В стандартной конфигурации Cubism параметр ParamMouthOpenY принимает значения от 0 для закрытого рта до 1 для открытого, а диапазон ParamMouthForm обычно идёт от −1 через 0 до +1. В пользовательском риге диапазоны могут быть другими; проверьте их, прежде чем вносить изменения. Эти соглашения описаны в списке стандартных параметров Live2D.
Проведите такую диагностическую проверку. Приведённые значения — точки для осмотра, а не обязательный набор ключевых форм:
- Установите Mouth Form на 0 и медленно проведите Mouth Open через весь диапазон.
- Проверьте значения открывания, например 0, 0.25, 0.5, 0.75 и 1.
- Повторите проверку при крайних значениях Mouth Form.
- Зафиксируйте открывание около участка с самым большим пробелом и плавно изменяйте Mouth Form.
- Запишите оба значения и место, где видна область фона.
Эта последовательность — практический способ диагностики, основанный на поведении интерполяции в Cubism. Если проблема возникает только при открывании, сначала проверьте этот переход. Если она появляется лишь при одновременном изменении открывания и формы, сохраните оба значения при поиске причины. Иначе вы можете снова и снова редактировать позу, в которой дефект не воспроизводится.
Какой компонент рта следует исправить в первую очередь?
При значениях, вызывающих проблему, осмотрите компоненты рта по отдельности. Временно изолируйте их в рабочей копии, а перед оценкой результата целиком снова включите отображение. Выберите следующий шаг по этой таблице; перечисленные варианты — возможные направления диагностики, а не подтверждённые причины.
| Что вы видите | Что проверить дальше |
|---|---|
| Узкая полоса фона между контуром и внутренней частью рта | Покрытие внутренней части и соседнюю границу губы |
| Треугольная выемка при переходе | Движение вершин в этой области и расположение треугольников |
| Компонент рта пропадает целиком | Наличие ключей у этого объекта и управляющую им иерархию |
| Тонкий светлый ободок вокруг обрезанной графики | Края маски и полупрозрачные пиксели текстуры |
| Дефект возникает только при сочетании двух параметров рта | То же сочетание параметров у всех затронутых объектов |
Не меняйте все компоненты одновременно. Внесите одно небольшое исправление, повторите проблемное движение и сравните результат с сохранённой версией. Локальная проверка позволяет понять, устранило ли изменение причину или просто скрыло её в одном положении.
Как исправить покрытие внутренней части и деформацию сетки?
Начните с границы, ближайшей к пробелу. Проверьте, заходит ли внутренняя часть за губу на всём проблемном переходе. Если это допускает ваша графика, скорректируйте внутреннюю часть так, чтобы она немного перекрывала контур, вместо того чтобы рассчитывать на точное совпадение двух независимо деформируемых краёв. Это рекомендация по моделированию, а не предписание конкретной величины перекрытия.
Если смещение границы создаёт резкую выемку или неровную кривую, проверьте сетку. Live2D рекомендует вручную подготавливать подходящие ArtMesh для детальной деформации лица, в том числе рта. В руководстве «Редактирование сетки вручную» описана треугольная структура сетки и инструменты для редактирования вершин и рёбер.
Обратите внимание на вершины, которые остаются на месте, пока соседние перемещаются, на очень узкие треугольники и на углы, движение которых неожиданно тянет за собой большую область. Сначала скорректируйте геометрию существующей ключевой формы. Если топология не позволяет получить чистую форму, измените её в сохранённой копии, а затем повторно проверьте все затронутые позы рта.
В качестве полезного примера можно обратиться к документации автора: в статье «Риггинг сложных форм рта в live2d» Sydney Cook описывает согласованную работу верхней губы, нижней губы и внутренней маски, а также намеренное ограничение геометрии внутренней части, чтобы средние вершины не оставались позади. Этот пример показывает, почему важно контролировать движение вершин; это не универсальный шаблон сетки для любого рига.
Когда следует добавить промежуточную ключевую форму рта?
Добавьте корректирующий ключ, если соседние позы выглядят хорошо, но форма между ними требует явного управления. Сначала убедитесь, что у затронутых объектов есть подходящие ключи во всём нужном диапазоне. Live2D отмечает, что объект всего с одной ключевой формой отображается только при её значении; у объектов, которые должны оставаться видимыми, ключи нужны на обоих концах диапазона параметра. См. раздел «Добавление и удаление ключей параметров».
Например, предположим, что нейтральный рот выглядит правильно при значениях открывания 0 и 1, но около 0.4 внутренняя часть отходит от нижнего контура. Выберите затронутый объект, введите 0.4 в числовое поле параметра и используйте элемент управления + во всплывающем окне настройки параметра, чтобы добавить ключ. Исправьте форму, затем проверьте оба новых интервала: 0–0.4 и 0.4–1. В официальном руководстве по редактированию ключей описано, как задавать числовое положение и добавлять ключи через это всплывающее окно.
Во время исправления оставьте Mouth Form на записанном проблемном значении, а затем проверьте соседние значения формы. Исправление, которое работает только при одном точном сочетании параметров, требует доработки. Добавляйте ключи только там, где проверка выявила отдельную необходимость в изменении формы; большое количество ключей затруднит оценку последующих правок.
Как отличить артефакты обрезки от незамкнутой геометрии?
Если внутренняя часть расположена правильно, но по краю виден светлый ободок, прежде чем снова менять форму рта, проверьте обрезку. Live2D объясняет, что полупрозрачные границы маски могут пропускать цвета нижележащего ArtMesh. В руководстве «Маска обрезки» также описан выбор маски через элемент управления Clipping ID в Inspector.
Проверьте, что компоненты рта, для которых используется обрезка, ссылаются на нужную маску. Затем осмотрите эту маску при проблемном сочетании параметров. Для конкретного случая с полупрозрачным краем в руководстве описана дублирующая увеличенная маска с непрозрачностью 0%, деформированная по форме исходной. Используйте этот способ только после того, как обнаружили артефакт по краю.
Также проверьте наличие ключей маски во всём диапазоне и восстановите отображение всех временно скрытых частей перед экспортом. В том же руководстве объясняется, что пропуски в диапазонах ключей и скрытые маски могут приводить к различиям между Editor и приложением с SDK. Если используется обрезка, проверьте экспортированную модель в целевом приложении.
Стоит ли использовать расширенную интерполяцию или ограничения Blend Shape?
Расширенную интерполяцию стоит проверить, если нежелательная деформация возникает из-за траектории между в остальном удачными формами. Сравните результат для затронутого объекта и повторите проверку диапазона параметров. В Cubism доступна криволинейная интерполяция через настройки Extended Interpolation, для которой, согласно руководству «Тип интерполяции», требуется не менее трёх ключей параметра.
Криволинейная траектория сама по себе не гарантирует, что внутренняя часть перекрывает проём или что маска назначена правильно. Оставьте эту настройку только в том случае, если проверка показывает улучшение во всём нужном диапазоне. В руководстве Live2D по расширенной интерполяции также отмечается, что созданные ключи интерполяции могут увеличить размер модели, если используются несколько параметров.
Если в риге используются перекрывающиеся Blend Shape для гласных, проверьте их совместное влияние. Live2D наглядно показывает, как формы рта нарушаются при одновременной активации нескольких Blend Shape для гласных, и объясняет, как ограничить их вклад в разделе «Настройки ограничений весов Blend Shape». Это относится к сочетаниям Blend Shape; для обычной коррекции открывания рта преобразовывать риг не требуется.
Как проверить, что исправление работает во всём диапазоне движения рта?
После каждого существенного изменения повторяйте исходную проверку диапазона. Увеличьте рот, чтобы обнаружить мелкие дефекты, а затем оцените результат в предполагаемом размере отображения. Проверьте положения непосредственно до и после каждого корректирующего ключа, а не только сам ключ.
Используйте этот список для завершения проверки:
- Проведите Mouth Open через весь диапазон при центральном и обоих крайних значениях Mouth Form.
- Проверьте Mouth Form при закрытом, частично открытом и полностью открытом рте.
- Одновременно изменяйте оба параметра в ранее проблемной области.
- Восстановите остальные параметры и проверьте положения головы, используемые персонажем.
- Убедитесь, что временные настройки изоляции восстановлены.
- Если для рта используется обрезка, сравните экспортированную модель в целевом приложении.
Хорошее исправление устраняет воспроизводимую причину: отсутствие ключей в нужном диапазоне, расхождение границ, плохую деформацию сетки или нежелательный край, создаваемый маской. Не удаляйте записанные проблемные значения до завершения проверки. Они позволят точно подтвердить, что исходный пробел устранён и при этом соседние участки движения рта по-прежнему работают.
Источники
- О параметрах — руководство Live2D Editor
- Список стандартных параметров — руководство Live2D Editor
- Добавление и удаление ключей параметров — руководство Live2D Editor
- Редактирование сетки вручную — руководство Live2D Editor
- Риггинг сложных форм рта в live2d — Sydney Cook
- Маска обрезки — руководство Live2D Editor
- Об расширенной интерполяции — руководство Live2D Editor
- Тип интерполяции — руководство Live2D Editor
- Настройки ограничений весов Blend Shape — руководство Live2D Editor
