Риггинг в 3ds max это

Обновлено: 06.07.2024

С самого начала своей карьеры я мечтал о персонажной анимации.

Я наслаждался диснеевскими полнометражками и падал от смеха, наблюдая за похождениями Тома и Джерри.

И, да. Я страстно хотел создавать такие же мультфильмы.

Это была рисованная анимация. А вот рисовать-то я как раз не умел. По этой причине о рисованной анимации можно было забыть.

В 1992 году на всемирные экраны вышла картина Джеймса Кэмерона "Терминатор 2: Судный день". Этот фильм полностью изменил мою жизнь.

Потрясающие спецэффекты и 3D анимация робота Т-1000 были настолько крутыми, что я неделю ходил под впечатлением. Вся графика целиком была сделана НА КОМПЬЮТЕРЕ.

И самое главное. Я понял, что появилась возможность воплотить в жизнь свою мечту. И для этого НЕ ОБЯЗАТЕЛЬНО УМЕТЬ РИСОВАТЬ.

В 92-м я установил на свой компьютер трехмерный редактор от Yost Group – 3d studio DOS r2.

Это было настоящим волшебством. Я создал какую-то вазу и положил на нее текстуру мрамора. Казалось бы, ну что тут сложного? Однако, моему восторгу не было предела. Я сам, своими руками, не умея рисовать, сотворил такой шедевр.


Что касается риггинга, то мои первые скелеты были, мягко говоря, очень слабыми. О хорошей анимации не могло быть и речи. Движения персонажей выглядели корявыми, угловатыми и неестественными.

Плюс ко всему мои родственники подливали масло в огонь. Им было непонятно, почему я целыми днями сижу за компом и двигаю ручки и ножки каких-то гоблинов.

- Хватит заниматься фигней. - говорили они, - Найди себе нормальную работу!

Были моменты, когда я вообще хотел все бросить, но желание создавать анимацию побеждало.

Обучающих материалов тогда, практически, не было. Я распечатал Хелп программы и изучал его, обложившись англо-русскими словарями.

На протяжении 4-х лет, путем проб и ошибок, я учился анимировать персонажей и создавать риги.

Постепенно, шаг за шагом, я набирал опыт. Риг усложнялся. Маленькие анимашки становились все более плавными и естественными.

Параллельно я искал работу, понимая, что моих навыков уже достаточно для начала.

И вот свершилось чудо!

В 1996 г. я начал работать на студии "АПС-реклама".

Когда я принес домой свою первую зарплату, поведение родственников резко изменилось.

- Мы знали, что у тебя получится. Мы верили в тебя. - говорили они и дружески похлопывали меня по плечу.

Так началась моя карьера в CG индустрии.

В первой части статьи я обещал рассказать вам о прямой и инверсной кинематике. Как видите, я не забыл.

ВЫПОЛНЯЮ СВОЕ ОБЕЩАНИЕ.

ПРЯМАЯ КИНЕМАТИКА (Forward Kinematics) используется в анимации для ВРАЩЕНИЯ суставов (Rotation). Вы ВРАЩАЕТЕ каждый сустав цепочки костей. Например, когда руки персонажа свободно двигаются в воздухе, не взаимодействуя с другими объектами.

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

Тем самым вы соблюдаете один из 12-ти принципов анимации - дуги (Arcs).

ИНВЕРСНАЯ КИНЕМАТИКА (Inverse Kinematics) используется для ПЕРЕМЕЩЕНИЯ всей цепочки костей с помощью специального объекта, который называется "конечный эффектор". Необходима в том случае, если руки нужно привязать к какому-либо объекту.

Например, ладони вашего персонажа должны быть зафиксированы на столе, в то время как торс и спина продолжают двигаться.

Анимировать свободное перемещение рук с помощью инверсной кинематики не очень хорошая идея. Траектория движений будет линейной, прямой. Придется добавлять приличное количество промежуточных ключей, чтобы добиться красивых дуг.

Теперь вы знаете в каких случаях используется прямая кинематика, а в каких инверсная.

Вам кажется, что все это очень сложно?

Представьте себе, что я скажу вам:

- Вы создадите классный риг САМОСТОЯТЕЛЬНО и разберетесь во всех тонкостях всего за несколько дней.

Это не шутка. Я собрал все свои идеи и наработки, которые накопились за 20 лет и записал убойный видеокурс "Легкий и функциональный риг персонажа в 3ds Max".

Это 4 с лишним часа подробнейших уроков по построению скелета со всеми необходимыми функциями для анимации ваших героев. Да еще и В РЕАЛЬНОМ ВРЕМЕНИ.

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

Приобретите этот видеокурс прямо сейчас. И если вы поторопитесь, то в качестве бонуса получите мини-книгу "8 основных ошибок начинающих трёхмерщиков".

Если вы новичок, то эта книга поможет избавиться от самых распространенных ошибок.

Если вы бывалый тридешник, то читая ее, улыбнетесь и вспомните, как когда-то начинали свой путь в 3D.

Я также обещал рассказать вам о САМОЙ ВАЖНОЙ ЧАСТИ РИГА персонажа.
Что ж.

Эта статья и так получилась слишком длинной. Поэтому расскажу об этом в следующей части.

Человеческая мимика очень выразительна и информативна. Можно понять собеседника без слов, смотря на экспрессию его лица, отражающего грусть или радость, удивление или разочарование, злость или страх, восхищение или отвращение. Этот язык универсален для всех.

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

Например, Уолт Дисней не хотел включать в мультфильм «Леди и Бродяга» сцену поедания спагетти, так как считал, что ее нельзя сделать достаточно романтичной. Однако знаменитый аниматор Фрэнк Томас справился с этой задачей! Чувства персонажей прекрасно отражаются на их лицах (точнее мордах), атмосфера, во многом благодаря мимике героев, пропитана романтикой, и сцена в итоге стала культовой.

Лицевая анимация в 3D и 2D

Существует мнение, что лицевая анимация в 3D менее выразительна, чем у нарисованных персонажей. Так ли это?

Первый трехмерный мультсериал — «Повторная загрузка» (Reboot, 1994) появился даже раньше первого полнометражного 3D-фильма — «Истории игрушек». Анимация в нем сейчас выглядит сильно устаревшей.

Энзо Матрикс из «Повторной загрузки». Какое выражение застыло на этом лице?

То же самое можно сказать и о других мультфильмах того времени, даже созданных Disney или Pixar. Например, каким неестественным и пугающим кажется сейчас лицо мальчика Сида – персонажа первой «Истории игрушек»!

Хотя сами игрушки в этом же мультфильме выглядят более привлекательно.

Может быть, потому что их внешний вид и не был приближен к человеческому? Как думаете? Оставьте свое мнение в комментариях)

Однако технологии развиваются, и возможности современной компьютерной анимации значительно расширяются. Мимика трехмерных персонажей в наше время не менее выразительна, чем мимика рисованных – естественно, если работа выполнена качественно.

Лицо Анны из «Холодного сердца 2» (2019) выглядит живым и эмоциональным

Что такое риггинг

Мимику компьютерного персонажа убедительной и выразительной позволяет сделать риг, то есть система контроллеров для управления деформациями объекта. Если проще, риг – это подобие виртуального скелета. Дернул за одну кость – она потащила за собой остальные

Риг позволяет аниматору управлять движением тела и лица персонажа. Каждую кость нужно поместить на свое место. Это не значит, что в «скелете» обязательно должно быть 33 позвонка, но лучше повторять те кости, которые соединяются суставами, хотя они могут стоять и анатомически не верно. При этом важно правильно разместить суставы, чтобы движения выглядели правдоподобно. Это касается и лицевого рига. Количество костей напрямую зависит от нужной степени детализации движения лицевых мышц. Однако для воспроизведения основных эмоций достаточно минимального набора — это кости, отвечающие за движения глаз и лба, области носа, губ, скул. Часто конструкция костей строится только для одной половины лица, а на вторую ее можно просто отзеркалить, потому что тело персонажа симметрично.

Принципы и методики риггинга похожи в разных программах, поэтому научившись создавать риг в одной программе, можно перейти и в другую. Риг персонажа должен быть максимально автоматизирован, чтобы облегчить работу аниматору.

Пример рига анимационного персонажа:

Существуют различные способы реализации рига. Один из них – риг на основе костей. Кости формируются и располагаются в местах лицевых мышц, отвечающих за мимику. Аниматор управляет персонажем, перемещая контроллеры – специальные управляющие 3D-элементы, как кукловод дергает ниточки.

Широко распространен риг на основе морфов или блендшейпов – это 3D-модели с идентичной топологией, то есть, с одинаковым расположением полигонов, но с отличающейся формой. Моделер на базе основной головы делает большое количество ее копий, и мимику каждой копии меняет на уникальную, нужную ему. В результате, отображается множество голов персонажа с разными выражениями. Главное требование к морфингу – использование копий объектов с одинаковой топологией для создания разных деформационных переходов. В первую очередь, моделируется голова с нейтральным выражением лица, а затем создаются другие выражения. Типичные примеры выражений лица – улыбающийся рот, приподнятая бровь или закрытый глаз. При этом, нельзя использовать голову одного персонажа для создания деформационных копий для другого персонажа. В лицевой анимации набор таких копий выражений лиц часто называют ключевыми позами.

Пример морфов (или блендшейпов) анимационного персонажа

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

Возможности рига лица

Интересна история риггинга при создании мультфильма от DreamWorks «Как приручить дракона» (2010). И на драконах, и на людях использовался собственный софт студии для ригов. Предназначена эта система для человеческой лицевой анатомии, но при небольших изменениях она отлично справлялась и с мимикой драконов. Изначально, для сравнения, было создано множество лицевых блендшейпов (морфов) и упрощенная система мышечной анимации. После тестов этих двух моделей лицевой анимации были сделаны выводы: блендшейпы отлично справлялись с конечным выражением лица, но зато анимация на основе лицевых мускулов давала потрясающие результаты при анимации перехода от одного выражения лица к другому, потому что позволяла сделать эти движения плавными и естественными. Так от применения блендшейпов отказались, и была разработана многоуровневая система управления лицевыми мышцами.

Лицевой анимацией управляли с помощью сотен контроллеров, привязанных к лицевым мышцам. Для этого были созданы контроллеры высокого уровня, каждый из которых влиял на большие участки поверхности. И только когда требовалась тонкая настройка какого-либо специфического выражения лица, аниматор «спускался» на уровень ниже и редактировал базовые контроллеры. Именно поэтому на начальную настройку всех контроллеров лица уходило от восьми до десяти недель. Причем основная часть времени тратилась на подгонку системы мышечной анимации под конкретного персонажа и отладку работы контроллеров высокого уровня

В результате мимика персонажей мультфильма – и людей, и драконов – впечатляет своей выразительностью.

Эмоции Беззубика - одного из ключевых персонажей трилогии «Как приручить дракона»

В наше время аниматор способен даже выходить за рамки возможностей рига. Например, после того как основная анимация будет сделана, можно деформировать геометрию тела для еще большей экспрессии. Этот способ использовали в Sony Pictures Animations при работе над «Отелем Трансильвания» («Hotel Transylvania», 2012). В чем художественная ценность такого приема? Режиссер картины, Геннеди Тартаковски, так высказался об анимации мультфильма: «Мы хотели добиться безграничной экспрессии.

Главной фишкой фильма стала карикатурная, абсолютно не реалистичная графика. Именно она придала каждому кадру уникальную энергетику». Для создания очень пластичных и гиперэмоциональных персонажей требовалось нарушить каноны традиционной компьютерной анимации. «В большинстве фильмов аниматоры рассматривают компьютерную модель персонажа как куклу, – объясняет режиссер. – Да, ее можно подвигать, но в четких границах, устанавливаемых режиссерами и сценаристами. Для меня же компьютер – лишь очередной инструмент, такой же как, скажем, карандаш. Вы можете сделать с ним все, что заблагорассудится». Глядя на мимику персонажей этого мультфильма, мы видим, какими широкими возможностями обладает 3D-аниматор, креативно использующий риг.

Мы привыкли, что мимика анимационных персонажей гипертрофирована, эмоции на их лицах отражаются преувеличенно. Однако хороший отыгрыш – это не обязательно преувеличенные эмоции, иногда нужна тонкая игра. Микродвижения позволяют сделать эмоции на лице модели более реалистичными. Полное застывание персонажа в анимации недопустимо, даже в состоянии покоя он должен дышать, совершать различные мелкие движения, как это делают реальные люди. Дрожание губ, движения век и ресниц придают правдоподобности, персонаж на экране воспринимается живым и настоящим. Ощущение текстуры и гармонии сцене придает тщательно спланированное чередование действия и бездействия, макро- и микродвижений.

Сколько эмоций на лице Иккинга при минимуме движения!

При зарождении 3D-технологий у аниматоров было множество ограничений технического характера. В настоящее время 3D не хуже ручной анимации позволяет показать и преувеличенные мультяшные эмоции, и тонкую игру, основанную на микродвижениях.

Подтверждает это и Арсений Тургулайнен, преподаватель курса лицевой анимации: «Не думаю, что кто-то может сказать, что персонажи из 3D мультфильмов топовых студий недостаточно передают эмоции. Тут всё зависит от бюджетов и профессиональных возможностей риггеров. Задача аниматора – вытянуть максимум ярких эмоций из любого персонажа, независимо от того, насколько сильно ограничен персонаж в плане возможностей».

Простите за недельный перерыв, сессия, сами понимаете.

Продолжаем цикл постов/статеек о том, как я делал игры. Дошли мы в позапрошлом посте до риггинга и скиннинга. Оговорюсь, что я здесь описываю конкретно те нюансы, которые показались лично мне сложными, не хочу делать очередной урок, коих много и ссылки я на них даю.

Итак, как было сказано, сделал я персонажа в Zbrush, потом его ретопологию и UV-развертку в 3d max, потом назад экспортировал в ZBrush (вот уроки, по которым я учился). Делал я все части персонажа отдельно, так как я не умел нормально, а потому штаны отдельно, куртка отдельно, голова тоже. В принципе так и надо, другое делоЮ что потом это всё по-хорошему надо поместить на одну текстурную карту, а я сделал так же все раздельно (это неправильно!). Вот сам персонаж в максе.

Одинокая разработка и понятия скиннинга и риггинга Риггинг, Скины, 3DS max, Gamedev, Одиночка, Длиннопост

Ну логично руку можно сделать одну и ботинок тоже один, потом копировать и отзеркалить. (только следите иногда модель отзеркаливается так, что полигоны становятся видимы снутри, а не снаружи, всё исправляется модификатором Normal/Flip normals). Ещё следите чтобы длина рук была подходящей, а не как у гориллы, лучше делайте персонажа и его одежду по болванке, есть нормальные болванки людей в самом ZBrush. Ну и модель я объединил в одну путем Attach, не бойтесь материалы не потеряются и развертки тоже, если что можно сделать даже Detach, и разобрать модель назад, как конструктор.
Ну вот, получился такой кривой персонаж, он страдает, бьётся в агонии, а всё почему? Правильно! Он редкий урод беспозвоночный. Займемся риггингом, по-русски сделаем ему скелет. Использовал я стандартный скелет, так как опыта не имел совсем. Вот он где в максе, называется Biped.

Одинокая разработка и понятия скиннинга и риггинга Риггинг, Скины, 3DS max, Gamedev, Одиночка, Длиннопост

Выбрали, поставили (вот топорный урок, но там всё понятно, да это и так понятно), выбрали сколько костей у Вашего бипеда и подогнали под модель. Это просто, нудно, но просто.
Дальше скиннинг, по-русски привязка костей к модели. Выделили модель (не скелет), выбрали модификатор Skin и всё. Потом выбрали кости отвечающие за движение (где стрелочка).

Одинокая разработка и понятия скиннинга и риггинга Риггинг, Скины, 3DS max, Gamedev, Одиночка, Длиннопост

А дальше всё по вот этим видеоурокам. Там всё подробно рассказано, спасибо автору. Обязательно весь скиннинг делайте с загнутыми конечностями, просто поверните кости, чтобы видеть, насколько криво и неестественно сгибается одежда или ноги персонажа. В принципе, Вам пригодятся только первый и второй уроки, далее всё для детальной уберпродвинутой подгонки персонажа под скелет.
Главное после подгонки энвелопов (поймете по мере просмотра уроков) подогнать веса каждого вертекса принадлежащего им, чтобы получилось идеально. Это делается путем "рисования" (кнопка в модификаторе Skin где стрелочка). В уроке всё подробно объяснено.

Одинокая разработка и понятия скиннинга и риггинга Риггинг, Скины, 3DS max, Gamedev, Одиночка, Длиннопост

Ну в общем то всё, те ссылки, которые я Вам дал предлагают исчерпывающий материал по понятиям скиннинг и риггинг. Персонажа я делал для своей хоррор игры, которая валяется на Greenlight, как пробный проект.

Я уже писал ранее, что планирую сделать сетевую игру, но совершенно не имею представления о создании серверов и пр. Есть вопрос, с чего начать изучение? Сеть планируется простая, типа игрок-клиент является и сервером, он создаёт комнату/сервер, а если он выходит эта ноша ложится на другого. Да и вообще все вопросы физики и сглаживания перемещения игрока и пр., где мне это взять, подскажите пожалуйста? По детски расписал, но простите, изучение только предстоит, я джва года жду эту игру, хочу пограбить корованы.

Задавайте вопросы касаемо разработки игр, постараюсь ответить в рамках моих компетенции!

Maya rigging Introduction to rigging_01

Перед тем как, начать вставлять кости направо и налево, вернемся немного назад и рассмотрим основные инструменты и приемы, использующиеся для создания ригга.

Maya rigging Introduction to rigging_02

В этой серии уроков мы достаточно глубоко погрузимся в ригг, использующийся в компьютерной графике. Этот урок – вводный, мы будем рассматривать, какие инструменты используются в Maya для создания ригга, однако, сам принцип работает и в любых других пакетах. Мы создадим ригг для модели мужчины, который позволит аниматору легко с ним работать. Перед тем, как начать работать над риггом, давайте определим роль риггера, и познакомимся с основными инструментами для создания ригга, которыми пользуются риггеры, и потренируемся в создании хороших риггов, которые сведут аниматора с ума.

Меш, над риггом которого мы будем работать

Так что же такое ригг?

CG-персонажи могут двигаться только благодаря риггу. Ригг – это процесс создания цифрового скелета внутри статичной геометрии, персонажа, настройка связей между геометрией и скелетом (так называемый skinning, enveloping или binding), а также добавление контроллеров, за которые аниматор будет дергать персонажа, действую при этом как кукловод. Можно сказать, что риггер – это современный Джепетто.

Поскольку риггер – это связующее звено между моделлером и аниматором, было бы неплохо, если бы он понимал, что получил от моделлера для ригга, и что он должен в результате отдать аниматору. Таким образом, риггеру нужно понимать, хороша ли топология модели и как она будет деформироваться, достаточно ли плотная сетка в местах деформации модели. Риггер должен четко понимать принципы анимации, и какие техники будет использовать аниматор. Кроме всего этого он должен хорошо знать анатомию человека и животных, а также кинезиологию. И это только то, что касается персонажной анимации. Для анимации автомобилей, поездов и пр. используется механический ригг. Все это я рассказываю вам не для того, чтобы вы испугались и решили, что ну его к черту, этот ригг, а, чтобы поняли какую чертовски важную роль играет риггер. Пока риггер не начнет работать над моделью, это всего лишь кусок геометрии, а когда закончит, создав надежный и удобный ригг, и передаст его аниматору, персонаж уже будет танцевать чечетку или заставлять нас рыдать от счастья.

Однако перед тем как воссоздать реальность с помощью CG, нужно тщательно изучить, как она выглядит, эта самая реальность. Если, допустим, вы создаете скелет человека, то для начала изучите, как двигается человеческий скелет, играют мышцы и работают суставы. Если же вы работаете над риггом автомобиля, обязательно посмотрите, как ездит машина. В обоих случаях, примеры того, как объекты двигаются, находятся вокруг вас, смотрите на них, а, если это легально, то их и потрогать можно.

Основная цель этого урока – рассмотреть основные инструменты, использующиеся для создания ригга в Maya. Мы рассмотрим отношения между родительскими и дочерними объектами, а также констрейны. Мы познакомимся с джоинтами, тем, как их создавать и редактировать. Не оставим без внимания порядок вращения джоинтов и gimbal lock, перед тем, как, наконец, научимся создавать аккуратные ригги, пригодные для анимации.

Родители и дети, иерархии

Когда дело доходит до анимации, очень важно понимать взаимосвязи между объектами. Если вы сломаете ригг, все, с чем вы останетесь, будет несколько взаимосвязей и связей, совсем как в генеалогическом дереве. Главное в генеалогическом дереве – понимать какая атмосфера царит в семье и, что ваш дядя хоть устал, но все еще терпит вашу двоюродную сестру-клептоманку, а ваша мачеха как ни странно дружит с вашим двоюродным братом-наркоманом. Без понимания происходящего, даже если вам и удастся создать неплохой на первый взгляд ригг, он неизбежно «развалиться» позже.

Самые основные взаимосвязи между объектами, которые можно создавать в Maya, это родительские и дочерние взаимосвязи. Сейчас поясню что это. Создайте сферу и куб. Сферу назовите “parent”, куб – “child”. Откройте Outliner (Window -> Outliner), чтобы можно было видеть, что происходит в сцене. Теперь отодвиньте куб и сферу подальше друг друга. Припарентим их друг к другу. Для начала выберите child-объект, затем, с Shift’ом, его родителя, потом зайдите в Edit-> Parent или просто нажмите P. В Outliner’е видно, что припаренченный куб теперь находится под своим родителем, сферой. Если вы переместите «родителя» в сцене, его дочерний объект последует за ним. Это касается и скейла, и ротейта. А происходит из-за того, что child-объект привязан к положению parent-объекта в сцене, поскольку теперь он является world’ом для child-объекта. Если вы вернете в ноль значения транслейта для parent-объекта, он вернется в ноль, по отношению к world в Maya, поскольку родитель, в свою очередь, припаренчен к world в Maya. Преимуществом припаренчивания является то, что child-объект сам по себе по-прежнему имеет свободу перемещений, в отличие от Parent Constraint’а, о котором мы еще поговорим.

Итак, мы имеем один объект, припаренченный к другому. Создайте еще несколько объектов и припарентите один к другому, так, чтобы получилась небольшая иерархия. Вы заметите, что объект, находящийся в самом верху иерархии, влияет на все остальные объекты, следующий за ним объект на все нижележащие и т. д. Это как если бы ваша прабабушка говорила вашей бабушке что делать, бабушка маме, мама вам и т. д. А потом вы выросли и перестали держаться за мамину руку. Чтобы вытянуть объект из иерархии, нужно его выбрать, перейти в Edit-> Unparent или просто нажать Shift+P.

Maya rigging Introduction to rigging_04

Констрейны

При паренте мы берем какой-то объект или ноду и помещаем его под другим объектом, устанавливая между ними прямую зависимость. Констрейны позволяют создавать такие же связи, не изменяя при этом иерархическую структуру объектов. Кроме того, припаренчивание в один момент влияет на все информационные каналы объектов, констрейны позволяют создавать более узконаправленные связи между объектами. Например, вы можете сделать один объект зависящим только от перемещений другого, используя Point Constraint. При этом вы не можете как-то влиять на атрибуты, которые «законстрейнены». «Законстрейненный» объект просто вернется обратно к объекту, к которому он привязан. Но выход из этого есть. Можно поставить ключики на «законстрейненный» объект, создастся pairBlend-нода, которая позволит выбирать, что должно быть активным, сам констрейн или ключевой кадр. Никогда не был особым фанатом pairBlend-ноды, потому что в конечном итоге она способна свести меня с ума. Если мне нужно, чтобы объект контролировался большим числом исходящих связей, я просто добавляю еще констрейнов, это, на мой взгляд, выгодно отличает констрейны от простого припаренчивания. При использовании констрейнов, вы получаете один объект, зависящий от нескольких, при этом выбрать главный объект можно простым изменением весов влияния констрейнов. Сейчас попробуем это проделать.

Создайте новую сцену в Maya с кубиком и сферой, которые переместите подальше друг от друга. Переименуйте сферу в “leader”, а куб в “follower”. При паренте мы выбираем родительский, затем дочерний объект, и выполняем команду. Здесь все наоборот. Сначала выбираем “leader”, потом “follower”, переходим в раздел Анимации и идем в меню Constraint->Point (Options). Проверяем, чтоюы галочка Maintain Offset была отключена, настройки установлены по умолчанию и смело жмем Apply. Ведомый объект займет место ведущего. При этом вы заметите, что атрибуты в Channel Box будут выделены синим. Это означает, что констрейн активен. Загляните в Outliner и убедитесь, что иерархические связи между объектами остались нетронутыми, нода pointConstrain1 находится ниже follower или ведомого объекта. Оставим пока констрейны в покое, поскольку мы будем еще неоднократно к ним возвращаться. С остальными видами констрейнов поэкспериментируйте сами, чтобы иметь представление о том, как они работают.

Maya rigging Introduction to rigging_05

Использование 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.

Maya rigging Introduction to rigging_06

Теперь позицинируем джоинты внутри геометрии и настраиваем их ориентацию. В этом вопросе я очень привередлив: потому что самое важное в ригге – правильно и точно позиционировать джоинты. Позиция джоинтов, которые, фактически являются обычными пивотами, скажется на том, как будет двигаться геометрия. Неправильное позиционирование вызовет некорректную деформацию. При создании джоинтов я следую нескольким правилам. Во-первых, только 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 – это очень плохо, однако, в некоторых ситуациях избежать его невозможно. И как же это пофиксить, спросите вы? Нужно очень быстро решить, какие оси в текущем риге наиболее важны для нас и изменить для них порядок вращения. Поскольку мы тестируем ригг по мере его создания, и общаемся с аниматором на тему того, как впоследствии будет использоваться ригг, мы можем предугадать, что именно аниматор будет делать с ним и пофиксить возможные баги.

Maya rigging Introduction to rigging_07

Изменение направление оси вращения на 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”. Это создаст форвардную кинематику, похожую на взаимосвязь джоинтов, вуаля, наш ригг готов.

В следующий раз создадим ригг спины. Счастливых вам риггов!

Maya rigging Introduction to rigging_09

Использование констрейнов, чтобы заставить контроллеры влиять на джоинты


1. Introduction and project overview
2. Starting on the vertebrae
3. Setting up our vertebrae helpers
4. Creating bones for the vertebrae
5. Orienting our vertebrae bones along the spline
6. Building vertebrae controls
7. Creating the center of gravity and global controls
8. Connecting our vertebrae rig to the animation controls
9. Connecting the middle vertebrae control
10. Finishing our middle vertebrae rig
11. Starting on the vertebrae twist control
12. Starting on the vertebrae twist system
13. Finishing the vertebrae twist rig
14. Completing the vertebrae
15. Rigging the pelvic limbs
16. Mirroring the pelvic leg
17. Adding IK systems for the pelvic limbs
18. Designing pelvic limb controls
19. Adding a pelvis jiggle control
20. Connecting the leg controls
21. Creating custom parameters for the fetlocks and hooves
22. Finalizing the pelvic limbs
24. Mirroring the thoracic leg
25. Adding IK systems to the thoracic legs
26. Creating control objects for the thoracic legs
27. Building scapula controls
28. Connecting the thoracic legs to the animation controls
29. Finalizing the thoracic legs
30. Rigging the neck and head
31. Setting up the neck bones
32. Creating the head and ear bones
33. Adding the head control
34. Rigging the neck to twist
35. Creating custom parameters for the ears
36. Adjusting fins for the skeleton
37. Cleaning up the animation controls
38. Rigging the tail
39. Creating a system to lock the tail's length
40. Building the tail bones
41. Adding tail controls
42. Connecting the tail system to our animation controls
43. Attaching the tail rig to the pelvis
44. Dynamically linking the tail
45. Cleaning up the scene
46. Enveloping our horse
47. Weight painting techniques
48. Correcting deformations with morph targets
49. Bonus lesson: Enhancing the neck rig

- Первый курс из серии риггинга и анимации четвероногого персонажа на примере лошади. Мы полностью создадим систему костей с понятным управлением для аниматора в 3ds Max.
- Курс по анимации лошади можете посмотреть здесь
- На сайте вы можете ознакомиться с первыми 6 уроками онлайн.

Читайте также: