что такое риг в анимации
Лицевая анимация и риг в 3D
Человеческая мимика очень выразительна и информативна. Можно понять собеседника без слов, смотря на экспрессию его лица, отражающего грусть или радость, удивление или разочарование, злость или страх, восхищение или отвращение. Этот язык универсален для всех.
Правдоподобной и богатой мимикой должен обладать и анимационный персонаж, чтобы зритель «считывал» его эмоции. Причем лицевая анимация включает в себя не только выражение эмоций персонажа, но и артикуляцию — движения лица при произнесении звуков. На успешность анимационной сцены во многом влияет отыгрыш, потому что нередко именно от мимики персонажа зависит, насколько вовлечен будет зритель в происходящее на экране.
Например, Уолт Дисней не хотел включать в мультфильм «Леди и Бродяга» сцену поедания спагетти, так как считал, что ее нельзя сделать достаточно романтичной. Однако знаменитый аниматор Фрэнк Томас справился с этой задачей! Чувства персонажей прекрасно отражаются на их лицах (точнее мордах), атмосфера, во многом благодаря мимике героев, пропитана романтикой, и сцена в итоге стала культовой.
Лицевая анимация в 3D и 2D
Существует мнение, что лицевая анимация в 3D мультфильмах менее выразительна, чем в рисованных. Так ли это?
Первый трехмерный мультсериал — «Повторная загрузка» (Reboot, 1994) появился даже раньше первого полнометражного 3D-фильма — «Истории игрушек». Анимация в нем сейчас выглядит сильно устаревшей.
Энзо Матрикс из «Повторной загрузки». Какое выражение застыло на этом лице?
То же самое можно сказать и о других мультфильмах того времени, даже созданных Disney или Pixar. Например, каким неестественным и пугающим кажется сейчас лицо мальчика Сида – персонажа первой «Истории игрушек»!
Так выглядел Сид Филлипс в «Истории игрушек» 1995 г.
Хотя сами игрушки в этом же мультфильме выглядят более привлекательно.
Может быть, потому что их внешний вид и не был приближен к человеческому? Как думаете?
Однако технологии развиваются, и возможности современной компьютерной анимации значительно расширяются. Мимика трехмерных персонажей в наше время не менее выразительна, чем мимика рисованных – естественно, если работа выполнена качественно.
Лицо Анны из «Холодного сердца 2» (2019) выглядит живым и эмоциональным
Что такое риггинг
Мимику компьютерного персонажа убедительной и выразительной позволяет сделать риг, то есть система контроллеров для управления деформациями объекта. Если проще, риг – это подобие виртуального скелета. Дернул за одну кость – она потащила за собой остальные.
Риг позволяет аниматору управлять движением тела и лица персонажа. Каждую кость нужно поместить на свое место. Это не значит, что в «скелете» обязательно должно быть 33 позвонка, но лучше повторять те кости, которые соединяются суставами, хотя они могут стоять и анатомически не верно. При этом важно правильно разместить суставы, чтобы движения выглядели правдоподобно. Это касается и лицевого рига. Количество костей напрямую зависит от нужной степени детализации движения лицевых мышц. Однако для воспроизведения основных эмоций достаточно минимального набора — это кости, отвечающие за движения глаз и лба, области носа, губ, скул. Часто конструкция костей строится только для одной половины лица, а на вторую ее можно просто отзеркалить, потому что тело персонажа симметрично.
Риг лица анимационного персонажа
Принципы и методики риггинга похожи в разных программах, поэтому научившись создавать риг в одной программе, можно перейти и в другую. Риг персонажа должен быть максимально автоматизирован, чтобы облегчить работу аниматору.
Пример рига анимационного персонажа:
Особенности рига лица
Существуют различные способы реализации рига. Один из них – риг на основе костей. Кости формируются и располагаются в местах лицевых мышц, отвечающих за мимику. Аниматор управляет персонажем, перемещая контроллеры – специальные управляющие 3D-элементы, как кукловод дергает ниточки.
Широко распространен риг на основе морфов или блендшейпов – это 3D-модели с идентичной топологией, то есть, с одинаковым расположением полигонов, но с отличающейся формой. Моделер на базе основной головы делает большое количество ее копий, и мимику каждой копии меняет на уникальную, нужную ему. В результате, отображается множество голов персонажа с разными выражениями. Главное требование к морфингу – использование копий объектов с одинаковой топологией для создания разных деформационных переходов. В первую очередь, моделируется голова с нейтральным выражением лица, а затем создаются другие выражения. Типичные примеры выражений лица – улыбающийся рот, приподнятая бровь или закрытый глаз. При этом, нельзя использовать голову одного персонажа для создания деформационных копий для другого персонажа. В лицевой анимации набор таких копий выражений лиц часто называют ключевыми позами.
Пример морфов (или блендшейпов) анимационного персонажа
Наиболее эффективен смешанный риг, включающий в себя элементы и морфинга, и рига на основе костей. Здесь аниматор имеет полный контроль над мимикой персонажа.
Возможности рига лица
Интересна история риггинга при создании мультфильма от DreamWorks «Как приручить дракона» (2010). И на драконах, и на людях использовался собственный софт студии для ригов. Предназначена эта система для человеческой лицевой анатомии, но при небольших изменениях она отлично справлялась и с мимикой драконов. Изначально, для сравнения, было создано множество лицевых блендшейпов (морфов) и упрощенная система мышечной анимации. После тестов этих двух моделей лицевой анимации были сделаны выводы: блендшейпы отлично справлялись с конечным выражением лица, но зато анимация на основе лицевых мускулов давала потрясающие результаты при анимации перехода от одного выражения лица к другому, потому что позволяла сделать эти движения плавными и естественными. Так от применения блендшейпов отказались, и была разработана многоуровневая система управления лицевыми мышцами.
Лицевой анимацией управляли с помощью сотен контроллеров, привязанных к лицевым мышцам. Для этого были созданы контроллеры высокого уровня, каждый из которых влиял на большие участки поверхности. И только когда требовалась тонкая настройка какого-либо специфического выражения лица, аниматор «спускался» на уровень ниже и редактировал базовые контроллеры. Именно поэтому на начальную настройку всех контроллеров лица уходило от восьми до десяти недель. Причем основная часть времени тратилась на подгонку системы мышечной анимации под конкретного персонажа и отладку работы контроллеров высокого уровня
В результате мимика персонажей мультфильма – и людей, и драконов – впечатляет своей выразительностью.
В наше время аниматор способен даже выходить за рамки возможностей рига. Например, после того как основная анимация будет сделана, можно деформировать геометрию тела для еще большей экспрессии. Этот способ использовали в Sony Pictures Animations при работе над «Отелем Трансильвания» («Hotel Transylvania», 2012). В чем художественная ценность такого приема? Режиссер картины, Геннеди Тартаковски, так высказался об анимации мультфильма: «Мы хотели добиться безграничной экспрессии. Главной фишкой фильма стала карикатурная, абсолютно не реалистичная графика. Именно она придала каждому кадру уникальную энергетику». Для создания очень пластичных и гиперэмоциональных персонажей требовалось нарушить каноны традиционной компьютерной анимации. «В большинстве фильмов аниматоры рассматривают компьютерную модель персонажа как куклу, – объясняет режиссер. – Да, ее можно подвигать, но в четких границах, устанавливаемых режиссерами и сценаристами. Для меня же компьютер – лишь очередной инструмент, такой же как, скажем, карандаш. Вы можете сделать с ним все, что заблагорассудится». Глядя на мимику персонажей этого мультфильма, мы видим, какими широкими возможностями обладает 3D-аниматор, креативно использующий риг.
Карикатурная мимика графа Дракулы
Мы привыкли, что мимика анимационных персонажей гипертрофирована, эмоции на их лицах отражаются преувеличенно. Однако хороший отыгрыш – это не обязательно преувеличенные эмоции, иногда нужна тонкая игра. Микродвижения позволяют сделать эмоции на лице модели более реалистичными. Полное застывание персонажа в анимации недопустимо, даже в состоянии покоя он должен дышать, совершать различные мелкие движения, как это делают реальные люди. Дрожание губ, движения век и ресниц придают правдоподобности, персонаж на экране воспринимается живым и настоящим. Ощущение текстуры и гармонии сцене придает тщательно спланированное чередование действия и бездействия, макро- и микродвижений.
Сколько эмоций на лице Иккинга при минимуме движения!
При зарождении 3D-технологий у аниматоров было множество ограничений технического характера. В настоящее время 3D не хуже ручной анимации позволяет показать и преувеличенные мультяшные эмоции, и тонкую игру, основанную на микродвижениях. Подтверждает это и Арсений Тургулайнен, преподаватель курса лицевой анимации в нашей школе: «Не думаю, что кто-то может сказать, что персонажи из 3D мультфильмов топовых студий недостаточно передают эмоций. Тут всё зависит от бюджетов и профессиональных возможностей риггеров. Задача аниматора – вытянуть максимум ярких эмоций из любого персонажа, независимо от того, насколько сильно ограничен персонаж в плане возможностей».
Лицевая анимация и риг в 3D
Человеческая мимика очень выразительна и информативна. Можно понять собеседника без слов, смотря на экспрессию его лица, отражающего грусть или радость, удивление или разочарование, злость или страх, восхищение или отвращение. Этот язык универсален для всех.
Правдоподобной и богатой мимикой должен обладать и анимационный персонаж, чтобы зритель «считывал» его эмоции. Причем лицевая анимация включает в себя не только выражение эмоций персонажа, но и артикуляцию — движения лица при произнесении звуков. На успешность анимационной сцены во многом влияет отыгрыш, потому что нередко именно от мимики персонажа зависит, насколько вовлечен будет зритель в происходящее на экране.
Например, Уолт Дисней не хотел включать в мультфильм «Леди и Бродяга» сцену поедания спагетти, так как считал, что ее нельзя сделать достаточно романтичной. Однако знаменитый аниматор Фрэнк Томас справился с этой задачей! Чувства персонажей прекрасно отражаются на их лицах (точнее мордах), атмосфера, во многом благодаря мимике героев, пропитана романтикой, и сцена в итоге стала культовой.
Лицевая анимация в 3D и 2D
Существует мнение, что лицевая анимация в 3D менее выразительна, чем у нарисованных персонажей. Так ли это?
Первый трехмерный мультсериал — «Повторная загрузка» (Reboot, 1994) появился даже раньше первого полнометражного 3D-фильма — «Истории игрушек». Анимация в нем сейчас выглядит сильно устаревшей.
То же самое можно сказать и о других мультфильмах того времени, даже созданных Disney или Pixar. Например, каким неестественным и пугающим кажется сейчас лицо мальчика Сида – персонажа первой «Истории игрушек»!
Хотя сами игрушки в этом же мультфильме выглядят более привлекательно.
Может быть, потому что их внешний вид и не был приближен к человеческому? Как думаете? Оставьте свое мнение в комментариях)
Однако технологии развиваются, и возможности современной компьютерной анимации значительно расширяются. Мимика трехмерных персонажей в наше время не менее выразительна, чем мимика рисованных – естественно, если работа выполнена качественно.
Мимику компьютерного персонажа убедительной и выразительной позволяет сделать риг, то есть система контроллеров для управления деформациями объекта. Если проще, риг – это подобие виртуального скелета. Дернул за одну кость – она потащила за собой остальные
Риг позволяет аниматору управлять движением тела и лица персонажа. Каждую кость нужно поместить на свое место. Это не значит, что в «скелете» обязательно должно быть 33 позвонка, но лучше повторять те кости, которые соединяются суставами, хотя они могут стоять и анатомически не верно. При этом важно правильно разместить суставы, чтобы движения выглядели правдоподобно. Это касается и лицевого рига. Количество костей напрямую зависит от нужной степени детализации движения лицевых мышц. Однако для воспроизведения основных эмоций достаточно минимального набора — это кости, отвечающие за движения глаз и лба, области носа, губ, скул. Часто конструкция костей строится только для одной половины лица, а на вторую ее можно просто отзеркалить, потому что тело персонажа симметрично.
Принципы и методики риггинга похожи в разных программах, поэтому научившись создавать риг в одной программе, можно перейти и в другую. Риг персонажа должен быть максимально автоматизирован, чтобы облегчить работу аниматору.
Пример рига анимационного персонажа:
Существуют различные способы реализации рига. Один из них – риг на основе костей. Кости формируются и располагаются в местах лицевых мышц, отвечающих за мимику. Аниматор управляет персонажем, перемещая контроллеры – специальные управляющие 3D-элементы, как кукловод дергает ниточки.
Широко распространен риг на основе морфов или блендшейпов – это 3D-модели с идентичной топологией, то есть, с одинаковым расположением полигонов, но с отличающейся формой. Моделер на базе основной головы делает большое количество ее копий, и мимику каждой копии меняет на уникальную, нужную ему. В результате, отображается множество голов персонажа с разными выражениями. Главное требование к морфингу – использование копий объектов с одинаковой топологией для создания разных деформационных переходов. В первую очередь, моделируется голова с нейтральным выражением лица, а затем создаются другие выражения. Типичные примеры выражений лица – улыбающийся рот, приподнятая бровь или закрытый глаз. При этом, нельзя использовать голову одного персонажа для создания деформационных копий для другого персонажа. В лицевой анимации набор таких копий выражений лиц часто называют ключевыми позами.
Наиболее эффективен смешанный риг, включающий в себя элементы и морфинга, и рига на основе костей. Здесь аниматор имеет полный контроль над мимикой персонажа.
Возможности рига лица
Интересна история риггинга при создании мультфильма от DreamWorks «Как приручить дракона» (2010). И на драконах, и на людях использовался собственный софт студии для ригов. Предназначена эта система для человеческой лицевой анатомии, но при небольших изменениях она отлично справлялась и с мимикой драконов. Изначально, для сравнения, было создано множество лицевых блендшейпов (морфов) и упрощенная система мышечной анимации. После тестов этих двух моделей лицевой анимации были сделаны выводы: блендшейпы отлично справлялись с конечным выражением лица, но зато анимация на основе лицевых мускулов давала потрясающие результаты при анимации перехода от одного выражения лица к другому, потому что позволяла сделать эти движения плавными и естественными. Так от применения блендшейпов отказались, и была разработана многоуровневая система управления лицевыми мышцами.
Лицевой анимацией управляли с помощью сотен контроллеров, привязанных к лицевым мышцам. Для этого были созданы контроллеры высокого уровня, каждый из которых влиял на большие участки поверхности. И только когда требовалась тонкая настройка какого-либо специфического выражения лица, аниматор «спускался» на уровень ниже и редактировал базовые контроллеры. Именно поэтому на начальную настройку всех контроллеров лица уходило от восьми до десяти недель. Причем основная часть времени тратилась на подгонку системы мышечной анимации под конкретного персонажа и отладку работы контроллеров высокого уровня
В результате мимика персонажей мультфильма – и людей, и драконов – впечатляет своей выразительностью.
В наше время аниматор способен даже выходить за рамки возможностей рига. Например, после того как основная анимация будет сделана, можно деформировать геометрию тела для еще большей экспрессии. Этот способ использовали в Sony Pictures Animations при работе над «Отелем Трансильвания» («Hotel Transylvania», 2012). В чем художественная ценность такого приема? Режиссер картины, Геннеди Тартаковски, так высказался об анимации мультфильма: «Мы хотели добиться безграничной экспрессии.
Главной фишкой фильма стала карикатурная, абсолютно не реалистичная графика. Именно она придала каждому кадру уникальную энергетику». Для создания очень пластичных и гиперэмоциональных персонажей требовалось нарушить каноны традиционной компьютерной анимации. «В большинстве фильмов аниматоры рассматривают компьютерную модель персонажа как куклу, – объясняет режиссер. – Да, ее можно подвигать, но в четких границах, устанавливаемых режиссерами и сценаристами. Для меня же компьютер – лишь очередной инструмент, такой же как, скажем, карандаш. Вы можете сделать с ним все, что заблагорассудится». Глядя на мимику персонажей этого мультфильма, мы видим, какими широкими возможностями обладает 3D-аниматор, креативно использующий риг.
Мы привыкли, что мимика анимационных персонажей гипертрофирована, эмоции на их лицах отражаются преувеличенно. Однако хороший отыгрыш – это не обязательно преувеличенные эмоции, иногда нужна тонкая игра. Микродвижения позволяют сделать эмоции на лице модели более реалистичными. Полное застывание персонажа в анимации недопустимо, даже в состоянии покоя он должен дышать, совершать различные мелкие движения, как это делают реальные люди. Дрожание губ, движения век и ресниц придают правдоподобности, персонаж на экране воспринимается живым и настоящим. Ощущение текстуры и гармонии сцене придает тщательно спланированное чередование действия и бездействия, макро- и микродвижений.
При зарождении 3D-технологий у аниматоров было множество ограничений технического характера. В настоящее время 3D не хуже ручной анимации позволяет показать и преувеличенные мультяшные эмоции, и тонкую игру, основанную на микродвижениях.
Подтверждает это и Арсений Тургулайнен, преподаватель курса лицевой анимации: «Не думаю, что кто-то может сказать, что персонажи из 3D мультфильмов топовых студий недостаточно передают эмоции. Тут всё зависит от бюджетов и профессиональных возможностей риггеров. Задача аниматора – вытянуть максимум ярких эмоций из любого персонажа, независимо от того, насколько сильно ограничен персонаж в плане возможностей».
Введение в ригг
Jahirul Amin, CG-дженералист, лектор в NCCA, расскажет об основах ригга в Maya
Перед тем как, начать вставлять кости направо и налево, вернемся немного назад и рассмотрим основные инструменты и приемы, использующиеся для создания ригга.
В этой серии уроков мы достаточно глубоко погрузимся в ригг, использующийся в компьютерной графике. Этот урок – вводный, мы будем рассматривать, какие инструменты используются в Maya для создания ригга, однако, сам принцип работает и в любых других пакетах. Мы создадим ригг для модели мужчины, который позволит аниматору легко с ним работать. Перед тем, как начать работать над риггом, давайте определим роль риггера, и познакомимся с основными инструментами для создания ригга, которыми пользуются риггеры, и потренируемся в создании хороших риггов, которые сведут аниматора с ума.
Меш, над риггом которого мы будем работать
Так что же такое ригг?
CG-персонажи могут двигаться только благодаря риггу. Ригг – это процесс создания цифрового скелета внутри статичной геометрии, персонажа, настройка связей между геометрией и скелетом (так называемый skinning, enveloping или binding), а также добавление контроллеров, за которые аниматор будет дергать персонажа, действую при этом как кукловод. Можно сказать, что риггер – это современный Джепетто.
Поскольку риггер – это связующее звено между моделлером и аниматором, было бы неплохо, если бы он понимал, что получил от моделлера для ригга, и что он должен в результате отдать аниматору. Таким образом, риггеру нужно понимать, хороша ли топология модели и как она будет деформироваться, достаточно ли плотная сетка в местах деформации модели. Риггер должен четко понимать принципы анимации, и какие техники будет использовать аниматор. Кроме всего этого он должен хорошо знать анатомию человека и животных, а также кинезиологию. И это только то, что касается персонажной анимации. Для анимации автомобилей, поездов и пр. используется механический ригг. Все это я рассказываю вам не для того, чтобы вы испугались и решили, что ну его к черту, этот ригг, а, чтобы поняли какую чертовски важную роль играет риггер. Пока риггер не начнет работать над моделью, это всего лишь кусок геометрии, а когда закончит, создав надежный и удобный ригг, и передаст его аниматору, персонаж уже будет танцевать чечетку или заставлять нас рыдать от счастья.
Однако перед тем как воссоздать реальность с помощью CG, нужно тщательно изучить, как она выглядит, эта самая реальность. Если, допустим, вы создаете скелет человека, то для начала изучите, как двигается человеческий скелет, играют мышцы и работают суставы. Если же вы работаете над риггом автомобиля, обязательно посмотрите, как ездит машина. В обоих случаях, примеры того, как объекты двигаются, находятся вокруг вас, смотрите на них, а, если это легально, то их и потрогать можно.
Основная цель этого урока – рассмотреть основные инструменты, использующиеся для создания ригга в Maya. Мы рассмотрим отношения между родительскими и дочерними объектами, а также констрейны. Мы познакомимся с джоинтами, тем, как их создавать и редактировать. Не оставим без внимания порядок вращения джоинтов и gimbal lock, перед тем, как, наконец, научимся создавать аккуратные ригги, пригодные для анимации.
Родители и дети, иерархии
Когда дело доходит до анимации, очень важно понимать взаимосвязи между объектами. Если вы сломаете ригг, все, с чем вы останетесь, будет несколько взаимосвязей и связей, совсем как в генеалогическом дереве. Главное в генеалогическом дереве – понимать какая атмосфера царит в семье и, что ваш дядя хоть устал, но все еще терпит вашу двоюродную сестру-клептоманку, а ваша мачеха как ни странно дружит с вашим двоюродным братом-наркоманом. Без понимания происходящего, даже если вам и удастся создать неплохой на первый взгляд ригг, он неизбежно «развалиться» позже.
Итак, мы имеем один объект, припаренченный к другому. Создайте еще несколько объектов и припарентите один к другому, так, чтобы получилась небольшая иерархия. Вы заметите, что объект, находящийся в самом верху иерархии, влияет на все остальные объекты, следующий за ним объект на все нижележащие и т. д. Это как если бы ваша прабабушка говорила вашей бабушке что делать, бабушка маме, мама вам и т. д. А потом вы выросли и перестали держаться за мамину руку. Чтобы вытянуть объект из иерархии, нужно его выбрать, перейти в Edit-> Unparent или просто нажать Shift+P.
Констрейны
При паренте мы берем какой-то объект или ноду и помещаем его под другим объектом, устанавливая между ними прямую зависимость. Констрейны позволяют создавать такие же связи, не изменяя при этом иерархическую структуру объектов. Кроме того, припаренчивание в один момент влияет на все информационные каналы объектов, констрейны позволяют создавать более узконаправленные связи между объектами. Например, вы можете сделать один объект зависящим только от перемещений другого, используя Point Constraint. При этом вы не можете как-то влиять на атрибуты, которые «законстрейнены». «Законстрейненный» объект просто вернется обратно к объекту, к которому он привязан. Но выход из этого есть. Можно поставить ключики на «законстрейненный» объект, создастся pairBlend-нода, которая позволит выбирать, что должно быть активным, сам констрейн или ключевой кадр. Никогда не был особым фанатом pairBlend-ноды, потому что в конечном итоге она способна свести меня с ума. Если мне нужно, чтобы объект контролировался большим числом исходящих связей, я просто добавляю еще констрейнов, это, на мой взгляд, выгодно отличает констрейны от простого припаренчивания. При использовании констрейнов, вы получаете один объект, зависящий от нескольких, при этом выбрать главный объект можно простым изменением весов влияния констрейнов. Сейчас попробуем это проделать.
Создайте новую сцену в Maya с кубиком и сферой, которые переместите подальше друг от друга. Переименуйте сферу в “leader”, а куб в “follower”. При паренте мы выбираем родительский, затем дочерний объект, и выполняем команду. Здесь все наоборот. Сначала выбираем “leader”, потом “follower”, переходим в раздел Анимации и идем в меню Constraint->Point (Options). Проверяем, чтоюы галочка Maintain Offset была отключена, настройки установлены по умолчанию и смело жмем Apply. Ведомый объект займет место ведущего. При этом вы заметите, что атрибуты в Channel Box будут выделены синим. Это означает, что констрейн активен. Загляните в Outliner и убедитесь, что иерархические связи между объектами остались нетронутыми, нода pointConstrain1 находится ниже follower или ведомого объекта. Оставим пока констрейны в покое, поскольку мы будем еще неоднократно к ним возвращаться. С остальными видами констрейнов поэкспериментируйте сами, чтобы иметь представление о том, как они работают.
Использование point-констрейна для управления местоположением сферы
Джоинты
А теперь перейдем к основным инструментам создания ригга – джоинтам. Джоинты, как и все другие объекты в Maya, являются всего лишь трансформ нодой: их можно перемещать, вращать и масштабировать. Уникальными их делает ориентация, поскольку только у них она и имеется. Параметр orientJoint позволяет ориентировать джоинты относительно осей. Это можно заметить на примере цепочки джоинтов: каждый родительский джоинт должен быть ориентирован на дочерний. Давайте, протестируем, как это работаем, а заодно рассмотрим алгоритм создания джоинтов.Создайте в Maya новую сцену. Перейдите в Skeleton-> Joint Tool. Выбрав боковую или фронтальную камере, нажмите LMB, чтобы создать несколько джоинтов. После создания цепочки джоинтов нажмите Enter, чтобы выйти из инструмента. Открыв Outliner, вы поймете, что цепочка джоинтов – это иерархия из родительских и дочерних объектов. Если повращать root-джоинт, остальные последуют за ним. Это называется форвардной кинематикой – вращательное движение, которое влияет на всю цепочку, с первого по последний джоинт. Проверьте с помощью инструмента Rotate, чтобы джоинты вращались по Local-осям (Ctrl+Shift+RMB), выберите первый в цепочке джоинт. Вы заметите, что он смотрит в сторону дочернего джоинта, а значения атрибутов вращения нулевые. Перейдите в Attribute Editor и найдите параметр jointOrient под вкладкой Joint. Здесь вы увидите, что джоинт использует ориентацию, вместо обычных атрибутов вращения, чтобы всегда смотреть в сторону дочерних объектов. Выберите инструмент Translate, перейдите в Object, и вы заметите, что родительский джоинт ориентирован в сторону дочернего по оси Х. Это – основная или Aim ось джоинта. Атрибуты перемещения по X также устанавливают длину родительского джоинта, что позволяет добиться в ригге такого эффекта как squash and stretch.
Теперь позицинируем джоинты внутри геометрии и настраиваем их ориентацию. В этом вопросе я очень привередлив: потому что самое важное в ригге – правильно и точно позиционировать джоинты. Позиция джоинтов, которые, фактически являются обычными пивотами, скажется на том, как будет двигаться геометрия. Неправильное позиционирование вызовет некорректную деформацию. При создании джоинтов я следую нескольким правилам. Во-первых, только root-джоинт может иметь перемещения по X, Y, Z. Во-вторых, все дочерние джоинты должны перемещаться только по X (создавая длину джоинтов), значения атрибутов вращения должны быть нулевыми. Фактически, при создании ригга, мы пользуемся несколькими дефолтными инструментами Maya и скриптами, если нам нужно создать нечто специфическое или ускорить процесс создания скелета. Особенно нравится набор скриптов Майкла Комета.
Два основных параметра джоинтов: jointOrient и translate X (длина джоинта)
Порядок вращения и Gimbal Lock
Порядок вращения относится к тем операциям, когда ориентация выбранного объекта будет оценена. Давайте разберем. В новой сцене создайте цепочку из трех джоинтов, которая будет имитировать руку во фронтальной камере. Назовем джоинты, начиная с root-джоинта как “shoulder_jnt”, “arm_jnt”, “wrist_jnt”. Добавим для большего понимания к джоинтам префикс jnt. Выберете shoulder и в Attribite Editor’е вы увидите, что порядок вращения или Rotation Order, который находится под вкладкой Transform Attributes, установлен как XYZ. Это означает что, ось Z будет влиять на X и Y. При этом ось У влияет на ось Х, ось Х же не влияет ни на что. Если читать справа налево, то это не покажется таким уж сумасшедшим.
Вращать джоинты нужно в режиме Local, хотя и можно подумать, что это нелогично, повращав shoulder. Сейчас вы сами во всем убедитесь. Обнулите значения атрибутов вращения, а режим вращения смените на Gimbal. Покрутив руку, вы поймете, какую на самом деле роль играют оси вращения. Быстро повернув руку по оси Y на 90 °, вы увидите, как очень быстро и аккуратно одна ось ложится поверх второй, ось X поверх оси Z. Поздравляю, вы познакомились с таким явлением как Gimbal Lock, когда две оси начинают вращаться одинаково. Gimbal Lock – это очень плохо, однако, в некоторых ситуациях избежать его невозможно. И как же это пофиксить, спросите вы? Нужно очень быстро решить, какие оси в текущем риге наиболее важны для нас и изменить для них порядок вращения. Поскольку мы тестируем ригг по мере его создания, и общаемся с аниматором на тему того, как впоследствии будет использоваться ригг, мы можем предугадать, что именно аниматор будет делать с ним и пофиксить возможные баги.
Изменение направление оси вращения на Gimbal. Видим, как должны быть позиционированы оси
Анимационные контроллеры
Напоследок рассмотрим анимационные контроллеры. В этом пункте нам придется вспомнить все, что мы уже узнали: парентинг, иерархии, констрейны, аккуратное позиционирование джоинтов и порядок вращения. Вы можете спросить, почему нельзя просто анимировать сами джоинты? Можно, но только для простых риггов. С правильно настроенными анимационными контроллерами можно творить чудеса. Помимо всего прочего, аниматоры просто обожают удалять вещи, которые не должны бы, на восстановление удаленного джоинта уйдет намного больше времени, чем на восстановление удаленного контроллера (в большинстве случаев).
Обычно для создания анимационных контроллеров используются кривые. Это может быть специально созданная с помощью инструмента CV-curve кривая или самая обычная окружность NURBS Primitives-> Circle. Кривые не рендерятся, а их форму можно очень быстро отредактировать, перейдя в режим редактирования компонентов. Для каждого ригга я обычно создаю небольшую иерархию, используя группы. Это позволяет располагать контроллеры точно там же, где находится контролируемый ими джоинт. Также это дает аниматору возможность быстро вернуть контроллер на место, просто обнулив его значения вращения и перемещения. Опробуем это на цепочке из трех джоинтов.
Создайте, как и в предыдущий раз, цепочку из трех джоинтов, и переименуйте ее, как и прежде. Теперь создадим контроллеры для первых двух джоинтов в цепочке. Создайте окружность Create-> NURBS Primitives-> Circle, сняв перед этим галочку Interactive Creation, чтобы объекты создавались сразу в центре мирового пространства сцены. Переименуйте контроллер в “shoulder_ctrl”. Используем для всех контроллеров префикс “_ctrl”. Выберите контроллер, который все еще находится в центре сцены и мирового пространства, сгруппируйте его дважды Edit-> Group или просто нажав дважды Ctrl+G. Верхнюю группу переименуйте в “shoulder_ctrl_offset”, нижнюю в “shoulder_ctrl_auto”. Нода “offset” будет использоваться для точного позиционирования контроллера, нода “auto” для создания дополнительных эффектов с помощью Driven Key или Expressions.
Для позиционирования контроллера я использую два следующих способа. Оба дадут одинаковый результат, поэтому выбирайте тот, который вам больше по душе. Способ №1: выберите ноду “shoulder_ctrl_offset”, с Shift’ом выберите “shoulder_jnt” и нажмите Р. Это припарентит ноду “_offset” к джоинту, которым она будет управлять. Теперь обнулите значения перемещения и вращения для ноды “_offset”, чтобы она заняла то же место, что и джоинт. Теперь просто выберите ноду “shoulder_ctrl_offset” и нажмите Shift+P, чтобы отпарентить ее от джоинта. В результате получим координаты ноды “shoulder_ctrl_offset” относительно мировой системы координат. Выбрав “shoulder_ctrl_auto”, можно заметить, что значения вращения и перемещения обнулены, при этом контроллер ориентирован так же, как и джоинт. Этого мы и добивались.
Второй способ опробуем на “elbow_jnt”. Создайте контроллер так же, как мы делали в предыдущий раз, группы для него и переименуйте их в “elbow_ctrl_offset”, “elbow_ctrl_auto” и “elbow_ctrl_jnt”. Выделите “elbow_ctrl_jnt” и с Shift’ом “elbow_ctrl_offset” и создайте для него констрейн Constraints-> Parent (Options). Снимите галочку Maintain Offset и нажмите Apply. Вся иерархия контроллеров займет свое место. Теперь просто удалите ноду parentConstraint, которая находится под в Outliner под нодой “_offset”. И снова мы имеем контроллеры, которые находятся на нужных нам местах.
Позже расскажу вам как написать скрипт, который будет делать это автоматически, поскольку создание и позиционирование контроллеров вручную – довольно трудоемкий процесс.
Следующее, что мы сделаем, заставим контроллеры влиять на иерархию джоинтов. Для этого воспользуемся парочкой констрейнов. Выделите “shoulder_ctrl”, с Shift’ом “shoulder_jnt” и назначьте констрейн Constrain-> Orient (Options). Снимите галочку Maintain Offset и нажмите Apply. Проделайте то же самое и для локтя. Покрутив контроллеры, увидите, что они действительно управляют джоинтами, но иногда происходит нечто странное. Это все, потому что цепочка джоинтов работает по принципу форвардной кинематики, а контроллеры нет. Контроллеры никак не влияют и не зависят друг от друга. Пофиксим это, припарентив “elbow_ctrl_offset” к “shoulder_ctrl”. Это создаст форвардную кинематику, похожую на взаимосвязь джоинтов, вуаля, наш ригг готов.
В следующий раз создадим ригг спины. Счастливых вам риггов!
Использование констрейнов, чтобы заставить контроллеры влиять на джоинты