FACE TRACKING. Базовые маски
Ключевые слова: ZapWorks Studio, Face tracking, Face Group, Face Paint, Face Attachment Points
Функция отслеживания лиц ZapWorks Studio позволяет без особых усилий создавать проекты с отслеживанием лиц, и не важно является это основной функцией проекта или частью более сложного решения. Для того чтобы работало отслеживание лица, сначала необходимо добавить объект, который за это отвечает в окне Иерархии. В нашем случае доступно два типа параметров отслеживания лиц: Face Group и Face Paint.
Face Group позволяет накладывать 2D и 3D контент на лицо пользователя, размещая его относительно точек лица (Face Attachment Points), в то время как Face Paint проецирует изображение на лицо пользователя. Для того чтобы найти эти опции, вам необходимо нажать ПКМ на root объект и выбрать в открывшемся контекстном меню New > Tracking (рис. 1).
Рис. 1 - Расположение Face Group и Face Paint
Face group
По умолчанию, когда в Иерархию добавляется новый объект Face group, он уже содержит следующие ключевые точки лица:
центр лица (origin);
левый глаз (left eye);
правый глаз (right eye);
центр рта (mouth center);
подбородок (chin).
С помощью перетаскивания оверлея между объектами этих точек можно менять точку крепления самого оверлея, а следовательно, и точку отображения. Например, если мы оставим объект сферу вложенным (дочерним) объектом для объекта mouth center, то при каждом распознавании лица на наши губы будет накладываться маленькая белая сфера.
Рис. 2 - Перетаскивание объекта между ключевыми точками лица
Кроме уже перечисленных пяти точек существуют и другие ключевые точки лица. Их можно добавить в Иерархию, щелкнув ПКМ на объекте Face Group и выбрав New > Face Attachment Point и выбрать подходящую точку из доступного списка (рис. 3).
Рис. 3 - Добавление новой ключевой точки лица
Ниже приведена таблица доступных ключевых точек лица, а также соответствующее положение на лице пользователя в двух проекциях (рис. 4).
Ключевая точка лица (Face attachment point) | Соответствующая точка на изображении |
Центр лица - Origin | A |
Левый глаз - Left eye | B |
Правый глаз - Right eye | C |
Левое ухо - Left ear | D |
Правое ухо - Right ear | E |
Переносица - Nose bridge | F |
Кончик носа - Nose tip | G |
Основание носа - Nose base | H |
Верхняя губа - Top lip | I |
Центр рта - Mouth center | J |
Нижняя губа - Bottom lip | K |
Подбородок - Chin | L |
Левая бровь - Left eyebrow | M |
Правая бровь - Right eyebrow | N |
Рис. 4 - Ключевые точки лица: спереди (1) и сбоку (2)
Также Face Group содержит события, основанные на различных движениях лица. Они могут быть активированы с помощью интерфейса Action в меню Properties или напрямую в коде. В следующих блоках мы детальнее разберем как работать с Actions. Полный список Actions доступен здесь.
Далее мы перейдем уже непосредственно к настройке объектов оверлея. По умолчанию содержимое в Face Group не использует маску на лице, это означает, что 3D-модель будет отображаться полностью поверх лица пользователя. В случаях, когда модель должна быть частично скрыта головой пользователя может использоваться объект Head Mask, который имитирует голову пользователя и может быть использован перекрытия 3D-объектов, расположенных позади (рис. 5).
Рис. 5 - Отображение оверлея: до использования HeadMask (1), после добавления HeadMask (2)
HeadMask в студии представлен в качестве подсимвола. Его можно найти, нажав на кнопку "+" в окне Symbol Defenitions, в разделе Компоненты (рис. 6).
Рис. 6 - Расположение HeadMask
Face Paint
В отличие от Face Group, объект Face Paint не предоставляет точек привязки в Иерархии (и их нельзя добавить через контекстное меню), поскольку выбранное изображение будет проецироваться на все лицо пользователя, а не располагаться вокруг него.
Чтобы изменить проецируемое изображение необходимо у объекта Face Paint изменить свойство Materials в окне Properties. Как только необходимое изображение будет добавлено и выбрано, на сцене у Facemesh (сетка лица) изменится текстура (рис. 7).
Рис. 7 - Меню изменения материала у объекта Face Paint
Пожалуйста, обратите внимание, что искажения могут возникать из-за того, что изображение растягивается и сжимается при проецировании на контуры лица пользователя. Чтобы создать более точные изображения лица, используйте шаблон сетки для лица в качестве шаблона при создании масок.
Объект Face Paint может взаимодействовать со всеми событиями и движениями лица, так же как и Face Group.
Справочные материалы:
Studio | Face tracking [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/getting-started/face-tracking/
Studio | Attachment Points [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/subsymbols/attachment-points/
Studio | Masking Objects [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/advanced/masking-objects/
Last updated