Лицо за 52 ключа: как делают мимику

5 авг 2026 · 6 мин · 💬 1

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

Shape key: лепим гримасу как глиняный слепок

Механика в Blender примитивная: Basis — спокойное лицо. Дальше + в панели Shape Keys, режим Key Sliders → Edit Mode, и ты двигаешь вершины только этой гримасы. Переключатель Value от 0 до 1 смешивает результат с базой. Всё. Никакой магии — чистая линейная алгебра над позициями вершин.

Отсюда первое число, которое стоит запомнить: каждый ключ — это полная копия меша по числу вершин. Лицо на 8000 вершин, 52 ключа — это фактически 416 тысяч координат, которые движок держит в памяти. Поэтому ключи лепят только на голову, тело остаётся на скелете.

ARKit: 52 ключа, которые стали языком

Apple для Face ID выкатила набор из 52 blend shapes: browInnerUp, cheekPuff, eyeBlinkLeft, jawOpen, mouthSmileLeft, tongueOut и так далее — по именам видно, что это перевод анатомии в API. Хорошая новость: это общий знаменатель. Запишешь мимику в этих ключах — её поймут Unity, Unreal, любой лицевой софт. Плохая: набор заточен под живое лицо из вебкамеры, а не под стилизованную мультипликацию. Диснеевское «глаза-тарелки» в 52 ключа не влезают, для них дописывают собственные.

Порядок работы, который экономит неделю:

  1. Векторы движения (motion vectors) — куда ездит каждая вершина на каждой гримасе. Рисуешь стрелками на референсе.
  2. Ключи-«утки»: сначала грубые — jawOpen, mouthClose, browDown. Проверяешь, что лицо не ломается.
  3. Комбо-ключи: smile + blink одновременно. Тут выясняется, что при улыбке щека съедает глаз, и нужно резать влияние.

Почему рот — самое сложное

Губы — это дырка в меше, обёрнутая вокруг зубов и языка. Три проблемы сразу:

  • Топология. Ротовые ключи требуют идеальных концентрических петель вокруг рта. Одна спираль не туда — и при mouthClose губы складываются в оригами из натянутых полигонов.
  • Зубы и язык. Губы двигаются, зубы должны стоять. Если зубы — часть того же меша, jawOpen растянет их как жвачку. Делают отдельными мешами или отдельными ключами-константами.
  • Влажные зоны. Внутри рта другая текстура, другой блеск. Граница «слизистая/кожа» при открытии должна ездить корректно — это отдельная работа с масками, о которой вспоминают на демо.

Глаза проще парадоксально: blink — один ключ на сторону, и он почти всегда работает. А вот mouthFunnel — пять часов лепки и три дня правок, потому что трубочка губами это конфликт трёх поверхностей сразу.

Проверка перед сдачей

Выставь все ключи на 0.5 одновременно — если лицо превратилось в кашу, где-то конфликтуют влияния. Прогони каждую пару «рот+глаза», «брови+лоб». И смотри на результат только в упор: мимика умирает на дистанции, где уже не видно 0.3 cheekPuff, но силуэт говорит «труп».

52 ключа — это не потолок и не стандарт ради стандарта. Это словарь. Персонаж говорит ровно теми словами, которые ты ему вылепил.

Комментарии (1)

Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.