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.

Справочные материалы:

  1. Studio | Face tracking [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/getting-started/face-tracking/

  2. Studio | Attachment Points [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/subsymbols/attachment-points/

  3. Studio | Masking Objects [Электронный ресурс] // Официальная страница ZapWorks . – URL: https://docs.zap.works/studio/advanced/masking-objects/

Last updated