Скрипт для рига конечностей персонажей

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

Ранее мы поговорили с Чингисом Чойбсоновым, риггером мультсериала «Ми-ми-мишки», который рассказал, что написал скрипт, позволяющий за пару нажатий создать риг конечности по костям с уже готовыми контролами. Сегодня, он раскроет нам секрет этого скрипта и покажет, как это работает.

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

СКРИПТИНГ В РИГГИНГЕ

Сфера применения скриптинга огромна, в том числе и в CG сфере. В основном, программирование в компьютерной графике используется для автоматизации рутинных операций, а также для разработки плагинов, расширяющих стандартный функционал программного пакета (например Autodesk Maya, Foundry Nuke, Adobe Photoshop и т. д.). К сожалению, скриптинг лишь автоматизирует различные операции. В данном случае, все, что вы можете сделать, используя скрипты, вы сможете сделать, используя стандартный пользовательский интерфейс.

Часто бывает так, что вам нужно произвести однотипные операции над множеством объектов. Например, из простого, нужно повесить контролы на несколько объектов.

СКРИПТИНГ В РИГГИНГЕ

Для этого нужно создать контрол, расположить его, присоединить объект к контролу. Для парочки объектов это не проблема, но когда их много, скажем 50, это может занять довольно много времени. Написав скрипт, не имеет значения сколько объектов, их может быть 5, 500 или 50000, вы выделяете нужные объекты, 1 раз запускаете скрипт и все готово.

СЕКРЕТ УСПЕХА

Существует множество языков программирования, но лично я пользуюсь Python. Он довольно прост в изучении, поддерживается 3D пакетом Maya и может применяться в других сферах (web-разработка, машинное обучение, разработка прикладного ПО и многое другое). Данный язык программирования имеет больше возможностей , поддерживает ООП (объектно ориентированное программирование), не ограничен одной лишь только Maya и является одним из самых популярных языков программирования.

Python содержит список команд, с помощью которых можно совершать операции, используя команды из модуля cmds. Недостатком использования этого модуля является то, что все объекты воспринимается Python-ом как просто текст (название объекта). Вследствии чего, Python не знает над каким типом объекта он работает, геометрией (3D-моделью), костью и т. д. Этот недостаток исправляет модуль PyMel, который создан на основе cmds, но организован иначе, в нем Python обращается к элементам сцены как объектам, имеющим свои атрибуты и функции.

СКЕЛЕТ ЗА ДВА КЛИКА

Также пользуется популярностью такая вещь как «авториг». Данный инструмент служит для создания зариганного скелета персонажа в пару кликов. Эта система представляет из себя скрипт, который обычно имеет пользовательский интерфейс, где выведены различные настройки скелета (например, количество пальцев).

АВТОРИГ СКЕЛЕТА
АВТОРИГ СКЕЛЕТА

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

Я писал себе нечто подобное, но только для рига конечностей, на проекте «Ми-ми-мишки» у нас иногда появлялись второстепенные персонажи, где я использовал этот скрипт.

фото работы скрипта

На «Мимимишках» 2D лица тоже создавались скриптом: автоматически подтягивались текстуры и устанавливались все необходимые связи. Затем требовалось вручную подкорректировать расположение элементов лица (глаз, рта, бровей) на лице.

РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ ЛИЦА
РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ ЛИЦА

Наверное, у каждого риггера есть своя «библиотека контролов». В самой Maya единственная кривая, которую можно создать в один клик — это круг. Остальные же формы требуется «рисовать» вручную. Можно сохранить контролы как отдельные файлы и затем вручную импортировать их в сцену. Но гораздо удобнее иметь окно с набором кнопок для мгновенного создания контролов разных форм. Такой скрипт может включать кнопки для раскрашивания контролов в разные цвета, так как в старых версиях Maya этот процесс был не очень удобным и интуитивным.