NodeIcon BlendWrapping

BlendWrapping это метод враппинга модели на основе примеров, который может справиться с экстремальными изменения геометрии. Он более надежен и требует гораздо меньше контрольных точек, чем нода Wrapping. Этот метод использует набор уже существующих эталонных заврапленных моделей, предоставленный пользователем, для анализа того, как могут быть деформированы различные части базовой модели и, таким образом, повышения качества враппинга.

Стандартный нода Wrapping предполагает, что базовую модель можно деформировать только однородным образом. Хотя это предположение работает во многих случаях, оно не работает для таких областей, как веки или губы, где поверхность может быть значительно растянута в одном направлении, но не в другом.

Нода BlendWrapping преодолевает это ограничение. Его можно использовать для разных типов объектов, но наиболее распространенным применением являются выражения лица (СКЛиД (FACS)).

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

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

В результате нода BlendWrapping сводит необходимость очистки модели к минимуму.

Совет

BlendWrapping гораздо более надежен, чем стандартный Wrapping, и производит гораздо меньше артефактов, но из-за своей природы он не может так плотно подогнать базовую сетку к целевой поверхности, как Wrapping `. Рекомендуется использовать :ref:`Wrapping или OpticalFlowWrapping после BlendWrapping.

Внимание

BlendWrapping работает только с моделями сантиметрового масштаба!

Если входные модели используют другой масштаб, это приведет к ухудшению качества и скорости враппинга.

Самый простой способ проверить, использует ли модель сантиметровый масштаб, — это сравнить ее с базовыми сетками из галереи Wrap.

Эталонные модели

Как уже упоминалось, нода BlendWrapping нуждается в наборе эталонов, предоставленных пользователем, которые называются эталонными моделями. Все эталонные модели должны иметь ту же топологию, что и базовая модель.

Эталонные модели включают в себя:

Нейтральный эталон

— нейтральное выражение лица эталонного персонажа. Если эта эталонная модель имеет другую ориентацию или масштаб, чем базовая модель, вы можете включить параметр Использовать жесткое выравнивание, чтобы автоматически выровнять ее с базовой моделью.

Эталонные блендшейпы

набор блендшейпов эталонного персонажа

Все эталонные блендшейпы должны быть выровнены к нейтральному эталону и иметь одинаковый масштаб.

Не обязательно, чтобы эталонные блендшейпы были разложены по группам мышц, как это делается для риггинга. Т.е. если эталонные блендшейпы содержат выражение с оба глаза закрыты, то нет необходимости разлагать его на закрытие левого глаза и закрытие правого глаза. Алгоритм по-прежнему сможет заврапить выражение только с одним закрытым глазом.

Перенос

Ноде BlendWrapping необходимо перенести разницы блендшейпов с эталонных моделей на базовую модель.

Если опция Использовать перенос включена, нода BlendWrapping сделает это за вас автоматически.

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

Жесткое выравнивание

Эталонные модели могут иметь ориентацию и масштаб, отличающиеся от базовой сетки.

Если опция Использовать жесткое выравнивание включена, нода BlendWrapping автоматически выполнит жесткое выравнивание, используя набор точек, подключенных к входу точки выравнивания.

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

Совет

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


Входы

изменяемая геометрия

Geometry Геометрия для изменения (базовая модель)

закреплённая геометрия

Geometry Целевая геометрия, к которой выполняется подгонка

соответствия точек

PointCorrespondences (опционально) Набор соответствующих точек между изменяемой и закреплённой геометриями

исключённые полигоны

PolygonSelection (необязательно) Набор полигонов, которые будут исключены из процесса враппинга, т. е. они не будут пытаться соответствовать закреплённой геометрии, а будут деформироваться максимально жестко, чтобы соответствовать остальной части модели.

точки выравнивания

PointsOnTriangle Набор точек, выбранных либо на изменяемой геометрии, либо на нейтральном эталоне (поскольку они имеют одинаковую топологию).

Если параметр Использовать жесткое выравнивание включен, точки будут использоваться для жесткого выравнивания нейтрального эталона с изменяемой геометрией по ориентации и масштабу. Затем то же преобразование будет применено к каждому эталонному блендшейпу.

Выход

Geometry Заврапленная геометрия

Параметры

Автовычисление:

если установлено, узел будет пересчитываться каждый раз при изменении параметра или входных данных.

Вычислить:

если Автовычисление отключено, процесс враппинга начнётся в окне предварительного просмотра.

Нейтральный эталон:

имя файла модели нейтрального эталона

Эталонные блендшейпы:

список имён файлов эталонных блендшейпов

Количество компонентов:

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

Гладкость:

вес, определяющий жёсткость базовой модели

Алгоритм ближайших точек:

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

Вес контрольных точек:

определяет влияние контрольных точек на процесс враппинга. Более высокие значения приводят к более точной привязке контрольных точек к их целям.

Итерации АБТ:

количество итераций алгоритма ближайших точек

Итерации от грубого к тонкому:

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

Начальный радиус выборки:

размер частей базовой модели во время первой итерации от грубого к мелкому. Определяется в сантиметрах

Финальный радиус выборки:

размер частей базовой модели во время последней итерации от грубого к мелкому. Определяется в сантиметрах

Использовать жесткое выравнивание:

если установлено, нейтральный эталон выравнивается по базовой модели (изменяемая геометрия) по ориентации и масштабу. Он применяет то же преобразование выравнивания к эталонным блендшейпам.

Использовать перенос:

если установлено, для каждого эталонного блендшейпа вычисляется разница вершин от нейтрального эталона до эталонного блендшейпа и добавляется к базовой модели (изменяемая геометрия), создавая персонализированный набор блендшейпов