Рисуем рот кривыми Безье
Программу, обрабатывающую точки Ломаной специальным способом, я называю Стоком. Почему такое слово - "Сток"? Сток это площадка, на которой можно обзавестись готовым изображением. Выставить, купить, посмотреть его.
Так и я, используя особые программы, делаю из россыпи точек некие готовые изображения. Настраивая Сток и двигая входящие в Ломаную линию точки это изображение можно менять - http://proza.ru/2022/10/27/1379
В статье по ссылке рассказывается про изображение глаз.
Совершенно естественно, что и для изображения рта можно тоже использовать Сток.
Что я и сделал. Как получилось? Получилось простенько, но эффективно. Упрощённое изображение рта, сделанное кривыми Безье, легко перестраивается. Мимика рта вполне соответствует фонемам произносимых звуков. Пример перестройки мимики вы можете видеть на иллюстрации.
В картинке, показанной на иллюстрации, строка, изображающая рот, выглядит так:
4> 9 2300 0 2630 45 46 47 48 169 373 255 5 4
После логотипа Ломаной 9 указаны координаты точки заливки, а далее идут числа, указывающие на строки массива абрисов. После этих четырёх чисел должен идти тип заливки, однако на его месте мы видим число 169. По этому признаку программа и определяет, что не нужно рисовать контур ломаной, а нужно идти на сток 16, и пусть его подпрограмма обрабатывает точки.
А как она их обрабатывает?
ЧТО ДЕЛАЕТ СТОК 16
В расчёт берутся пять точек каждого абриса. 1-я и 5-я определяют концы кривой Безье, 2-я и 4-я играют роль оттягивающих точек.
3-я точка имеет в стоке 16 специальную миссию – вначале, при создании стока с кривыми Безье, она совпадает с точкой 1, затем, редактируя контур, её можно двигать. Особая роль точки 3 состоит в том, что пропорционально расстоянию между ней и 5-й точкой, меняется толщина кривой Безье. Кроме того, это же расстояние пропорционально значению числа в поз.11 – размеру точки рисования.
Таким образом, толщины кривых Безье можно регулировать как совместно, для всех абрисов сразу, так и индивидуально для каждого абриса отдельно. Регулировка эта относительна – при увеличении или уменьшении размеров рта, толщины его очертаний меняются тоже.
Последнее обстоятельство делает очень удобным управление мимикой рта. Конечно, мимику можно менять, двигая точки индивидуально, но проще двигать их вместе – передвигая или поворачивая отдельные абрисы, или, ещё проще – изменяя размеры рта.
Дело в том, что изменение размеров рта может делаться отдельно в направлениях X и Z, а также в областях выше точки заливки, ниже точки заливки, и слева или справа от неё. На эти опции указывает вертикальная чёрточка спереди или сзади буквы x или z. Многообразие опций создаёт и многообразие мимики.
На иллюстрации в поз. 2,3,4,5 вы можете видеть эти изменения.
Так, в поз.2 рот раскрывается расширением нижней части в направлении Z, в поз.3 рот сужается по оси X, в поз.4 сужены правая часть рта и правый глаз, в поз.5 рот перевёрнут, а затем сужен в верхней своей части.
Более того, размыкая или замыкая абрисы, можно делать кривые Безье заострёнными или равномерными по своей толщине. Поставив 3-ю точку вплотную к 5-й, можно получить в качестве толщины кривой число ноль, и тогда кривая Безье исчезает – она не рисуется вовсе.
Первый и второй абрисы изображают губы, они имеют активный цвет. У третьего абриса цвет светло серый, им изображены зубы. Четвёртый абрис (полость рта или зазор между зубами) рисуется последним, он имеет цвет фона. Абрисы перекрывают друг друга. Меняя их цвет и взаимное расположение легко добиться желаемых очертаний рта.
Эксперименты показали, что сток 16 с четырьмя кривыми Безье вполне подходит для упрощённого изображения человеческого рта с легко управляемой мимикой. Использование стоков сильно упрощает труд аниматора и делает более привлекательным такое занятие.
__________
12.12.2022
Свидетельство о публикации №222121201570