Создание походки персонажа с использованием системы анимации CAT
Создание походки персонажа с использованием системы анимации CAT
Урок предназначен для тех, кто в своей работе занимается персонажной анимацией и использует CharacterStudio (или хочет ей заниматься). Мы будем разбираться с одним из наиболее сложных аспектов персонажки – создание ходьбы. Для тех, кто совсем не знаком с CS, сначала поясню. Модуль CS (теперь уже встроенный в 3DS MAX) предназначен для анимации двуногих персонажей. Работа с ним построена следующим образом: с помощью одного нажатия вы создаёте готовый настроенный скелет, используя его - создаёте анимацию - и готово. Мало того, у него есть инструменты, позволяющие создать готовую походку и редактировать её. К тому же можно создавать слои анимации для каждой кости. Использовать прямую и инверсную кинематику. Естественно, есть возможность загружать готовые файлы с движениями. Есть также микшер, позволяющий смешивать разные движения для создания плавных переходов между ними. Вот так вкратце. Возможно что-то даже пропустил. Но и этого вполне достаточно, чтобы поразить начинающего аниматора. Очень интересный и мощный инструмент. Но… в этом уроке я не буду больше рассказывать о достоинствах CS, потому что есть более удобная система анимации для создания и, главное – простого редактирования походки персонажа. Это CAT!
Те, кто уже знаком с CS знают, что создать походку с его помощью очень просто. И насколько же сложно её потом редактировать. В чём же дело? А в том, что создавая походку, вы указываете программе различные данные – ширину шага, их количество и т.д. После этого нажимаете на кнопку Ok.
Ваши введённые данные превращаются в ключи анимации и… вы теряете возможность непосредственного управления походкой. Если вам нужно, чтобы персонаж поворачивал голову при каждом шаге – нужно ставить ключи на каждый поворот. Решили увеличить длину шага – это всё вручную. Для того чтобы посмотреть, как будет выглядеть персонаж с широко размахиваемыми руками, вы создаёте ключи для каждого шага и видите, что размах получился слишком большой и все созданные только что ключи анимации необходимо исправлять. И опять нет уверенности, что получится, как хочется. Вот такая ложка дёгтя в бочку с CS.
Поэтому я и решил рассказать вам о системе CAT, которая позволяет не только легко создавать персонажа и его походку, но также просто и редактировать! Хочу привести такой пример. Создайте два куба. Один из них конвертируйте в Poly. Попробуйте теперь поменять у обоих, например, количество полигонов. Для конвертированного куба нужно приложить определённые усилия для этого, а для исходного – просто двинуть движок на панели Modify. Созданный куб – объект параметрический, т.е. его параметры можно редактировать не только в процессе создания, но и в дальнейшем. А вот с редактированием походки в CS всё не так, как хотелось бы. Напоминаю - после того, как походка создана – её редактирование доступно только на уровне её подобъектов. Надеюсь, я понятно объяснил, почему для создания походки я предлагаю использовать намного более удобную систему CAT. К тому же все перечисленные достоинства CS у неё присутствуют.
Что же мы хотим получить в результате её использования в своей работе? Тот же пример с размахиванием руками. Я всего лишь меняю один-два параметра, не ставлю ни одного ключа и тут же в реальном времени вижу готовую анимацию. Слишком широко машет – уменьшим параметр и готово. Те, кто этим ещё не пользовался, а использовал только CS -будут поражены. Скорость редактирования – невероятная!
На этом теоретическая вводная часть окончена. Приступаем к практическим процедурам.
Необходимо сначала установить модуль CAT в ваш 3DS MAX.
Принцип работы с CAT такой: нажимаем на кнопку - получаем готовый настроенный скелет (как и в CS). Создаём походку (а вот тут всё по-другому). И добавляем анимацию (как в CS). Этот урок посвящён созданию походки – этим и займёмся.
В уроке я буду использовать CAT 2.5 для 3DS MAX 9.
Заходим на закладку Helpers и в свитке находим CAT Objects.
Нажмите кнопку CAT Parent.
Ниже появится свиток с различными готовыми скелетами.
Это ещё одно приятное отличие от CS, в котором можно выбирать только либо мужской, либо женский скелет. Здесь же выбор намного больше. Чего только нет. И лошадь, и дракон, и ящерица, и даже многоножка. Я ещё не сказал, что CAT может работать не только с двуногими персонажами, но и с МНОГОногими. Их количество неограничено! Кстати, в списке выбора присутствует даже знакомый скелет из CS – Bip. Поэтому, если вы привыкли работать с ним в CS – пожалуйста.
Для нашего примера выбираем – SheK. Если хотите, можете выбрать другой персонаж, лишь бы у него было две ноги, т.к. мы будем делать походку двуногого персонажа. В окне перетаскиваем мышку для указания высоты персонажа. Абсолютная высота персонажа не важна, потому что все единицы измерения привязаны к ней. В результате при изменении высоты ничего не меняется. Скелет готов.
Вот такой колоритный экземпляр.
Переходим на закладку Motion.
Большинство настроек персонажа находиться именно здесь.
Естественно, этот персонаж можно изменять, подгоняя под готовую оболочку. Но это тема для другого урока. Мы займёмся созданием его походки. Для этого создадим специальный слой анимации, который предназначен именно для этого.
Нажимаем
и выбираем
Получаем нужный нам слой анимации CATMotion Layer.
Переходит в режим воспроизведения анимации.
Нажимаем
и выбираем
Включите воспроизведение и увидите, что персонаж уже движется. Конечно, совсем не так, как нам хотелось бы. Настройкой его походки мы и займёмся. Напомню, что вся настройка полностью параметрическая, т.е. все внесённые изменения можно вернуть, исправить и добавить. При этом не нужно ставить ни одного ключа анимации. Для того, чтобы быстрее создать походку, нужно как можно более чётко представлять желаемый результат. Ещё один немаловажный момент: процесс создания походки схож с обычным художественным процессом. Т.е. сначала вставляете крупные, более заметные штрихи, а затем переходите к более мелким. В тоже время вы всегда можете вернуться и поправить то, что перестало вам нравиться.
В уроке я решил создать походку крадущегося человека (поэтому и выбрал для этой роли такого колоритного персонажа). Представьте себе, как движется крадущийся человек. А лучше сами попробуйте это сделать. Запомните основные детали движения. С них и начнём. Это будут «крупные штрихи», а потом добавим деталей.
Основные детали этой походки:
1) персонаж идёт только на носках (чтобы не создавать шума),
2) не расставляет ноги широко в стороны (чтобы ничего не зацепить),
3) при каждом шаге позвоночник наклоняется вперёд (чтобы шаг был как можно более тихим),
4) шаг короткий и быстрый (из-за того, что персонаж идёт на носках, то ему труднее сохранять равновесие, когда он находиться на одной ноге),
5) руки широко назад и впёрёд (тоже для равновесия),
6) при каждом шаге он немного приседает (чтобы ещё смягчить шаги),
7) колени немного согнуты (чтобы ещё смягчить шаги).
Пока, я думаю, достаточно. Штрихи добавим после.
Как я уже говорил, все размеры в CAT привязаны к высоте персонажа, а теперь добавлю, что все временные интервалы привязаны к времени шага персонажа. Т.е. время измеряется не в кадрах, а в частях времени, которое затрачивается на один шаг. Поэтому так же безболезненно, как вы можете изменять высоту персонажа, вы можете менять скорость движения персонажа.
Для редактирования походки необходимо войти в окно редактирования походки.
Появляется окно редактирования параметров ходьбы.
В левой части окна можно выбирать, что мы будем редактировать, а в правой - вносить необходимые изменения. Коротко о левой части. Первая строка меню, как видно из названия, это готовые походки (Presets), ниже - глобальные настройки. Посмотрите на картинку выше: начало и конец анимации, время шага, его максимальная длина и т.д.
В меню LimbPhases вы можете управлять временем начала цикла для каждой конечности. Можно, например, заставить персонаж двигать правой рукой вместе с правой ногой (если это вдруг понадобится). И ещё 3 строки меню для разных разделов персонажа: для нижних конечностей и таза, для позвоночника и рук, и для головы.
Давайте посмотрим на походку нашего персонажа. С чего же начать? Каждый это может делать по-своему, а я начну с того, что замедлю походку. Персонаж крадётся, он движется медленно. Поэтому переходим на закладку Globals и меняем время шага:
Мне понравилось такое значение.
Всё! Персонаж замедлил своё движение.
Дальше смотрим наши требования к желаемой походке.
У нашего персонажа ноги расставлены слишком широко. Не пугайтесь. Нам не придётся перемещать и редактировать ключи анимации для каждого шага. Их вообще не придётся редактировать. Потому что их нет и не будет! Просто переходим на закладку PelvisGroup>Legs>FootPlatform>OffsetPos (сдвиг) и меняем значение Z. Ноги сдвигаются.
Этот параметр (OffsetPos) один из неанимируемых (он просто указывает начальное положение).
Посмотрите, что получилось. Когда ноги на земле – всё хорошо, но когда нога в воздухе она проходит сквозь другую ногу. Вот тут и понадобится анимируемый параметр, который сможет двигать ноги вправо-влево в зависимости от цикла шага. Таким параметром является Swerve.
И тут уже есть возможность изменять величину параметра в зависимости от цикла шага. Светло-зелёная часть графика обозначает время, когда ноги находятся на земле, а тёмно-зелёная – когда в воздухе. По-умолчанию график линейный, т.е. расстояние между ступнями в ширину не меняется. Поэтому нужно просто перетащить точку в середине шага на требуемую величину или ввести цифры.
Все изменения тут же отображаются в окне просмотра. Теперь в середине шага персонаж отодвигает ногу в сторону. Можно также использовать маркеры Безье для получения более точного результата. Да, забыл сказать: во время редактирования совсем не обязательно выключать воспроизведение! Редактируйте и моментально проверяйте результат.
Теперь сделаем шаги резкими и короткими. (Он идёт на носках и ему трудно сохранять равновесие).
Переходим к параметру LiftPlantMod. Уменьшаем его значение.
Теперь нога будет отрываться от земли позже, а опускаться раньше. Получился короткий резкий шаг. Что и требовалось.
Но теперь персонаж идёт неестественно, потому что у него из-за резкого шага полностью разгибаются колени. Поэтому мы плавно переходим к нашему следующему требованию -
колени должны быть немного согнуты и он должен немного приседать при каждом шаге.
Из-за того, что он в последствии будет сгибаться при ходьбе, таз отодвинем немного назад
Переходим к параметру Pelvis>Lift. Он отвечает за поднятие и опускание таза во время ходьбы. У него целых 4 точки редактирования - две на шаг левой и две на шаг правой. Я предлагаю такие значения
Time: 13 Value: -12
Time: 33 Value: -25
Time: 68 Value: -11
Time: 90 Value: -24
В результате персонаж в начале каждого шага чуть приподнимается, а потом опускается на подставленную ногу. (Если не разобрались – загрузите конечный файл и посмотрите настройки. Ведь даже после того, как походка уже создана, можно всё посмотреть, разобраться и поправить).
Теперь добьёмся, чтобы позвоночник сгибался в такт шагам (вперёд-назад).
Редактируем параметр Ribcage>Pitch таким образом, чтобы позвоночник сгибался и разгибался на каждом шаге.
Теперь займёмся руками. Персонаж должен размахивать ими широко для того, чтобы держать равновесие. Для этого переходим к параметру Ribcage>Arms>Swing
Точки редактирования придвигаем друг к другу, чтобы взмахи, как и шаги были более резкими, и увеличиваем амплитуду
Value: 80
Value: -47
Совсем другое дело. Уже чувствуется динамика движения.
Но обычно рука сгибается в локте, когда находится впереди и разгибается сзади. Поэтому редактируем параметр Ribcage>Arms>Bend
В результате в начале шага рука разогнута, в конце сгибается.
Вот каркас и готов. В принципе этого может быть вполне достаточно, но мы добавим некоторые детали для большей реалистичности.
Заставим персонаж поворачивать голову по сторонам (проверять нет ли кого?)
Для этого редактируем параметр Head>Twist
В точке 1 он поворачивает голову в одну сторону.
В точке 2 держит ровно.
В точке 3 поворачивает в другую.
В точке 4 держит ровно.
Заставим таз поворачиваться, следуя за движущейся вперёд ногой
Таз поворачивается то в одну, то в другую сторону.
ДА! А как же мы забыли, что персонаж движется на носках? Ничего страшного. Сейчас всё сделаем. Для этого нужно параметром FootPlatform>PitchPivotPos сдвинуть центр ступни на носок, а параметром FootPlatform>Pitch повернуть ступню вокруг этого центра.
Посмотрите как всё получилось.
Ну, теперь вы представляете, насколько просто вернуться, если понадобилось, и поправить параметры.
Вот и всё. Походка крадущегося персонажа готова.
Но как вы понимаете, урок совсем не для того, чтобы научить создавать именно её. Вы должны научиться смоделировать любую походку. А для этого нужно 2 вещи. Хорошо представить себе требуемую походку и знать, какой параметр за какое движение отвечает. Поэтому приведу краткий справочник этих параметров и их действий.
Справочник
(Неанимируемые параметры действуют постоянно и неизменно в течение всего цикла. Их лучше использовать для помещения кости в начальное нулевое положение.
Анимируемые параметры меняют своё воздействие в зависимости от цикла шага.)
PelvisGroup
Pelvis
Twist – поворачивает таз по X (вслед за ногой);
Roll – поворачивает таз по Y (переваливается с ноги на ногу);
Pitch – поворачивает таз по Z;
Lift – перемещает таз вверх-вниз;
Push – перемещает таз вперёд-назад;
WeightShift – перемещает таз вправо-влево;
OffsetPos – перемещает по всем осям (неанимируемый);
OffsetRot – поворачивает по всем осям (неанимируемый).
Legs
KneeAngle – изменяет угол колена;
Twist – поворачивает ногу по X;
CrossSwing – поворачивает ногу по Y;
Swing – поворачивает ногу по Z;
OffsetRot – поворачивает ноги по всем осям (не аним.);
LiftPlantMod – управляет отношением между временем, когда нога на земле и временем, когда она в воздухе.
Ankle
DigitSpreadAngle – растопыривает пальцы ноги в стороны ;
DigitRollAngle – вращает пальцы ноги;
DigitCurlAngle – сгибает пальцы ноги;
OffsetRot - поворачивает лодыжку по всем осям (неанимируемый);
TargetAlign – управляет позицией центра для лодыжки;
FootBend – управляет углом лодыжки.
FootPlatform
Twist - поворачивает стопу по X;
RollPivotPos – управляет позицией центра ступни вправо-влево;
Roll – поворачивает стопу по Y;
PitchPivotPos – управляет позицией центра ступни вперёд-назад;
Pitch – поворачивает ступe по Z;
Lift – передвигает ступню вверх-вниз;
FootPush – передвигает ступню вперёд-назад;
Swerve – передвигает ступню вправо-влево;
OffsetRot – поворачивает ступню по всем осям (не аним.);
OffsetPos – передвигает ступню по всем осям (не аним.);
StepShape – управляет скоростью ступни в воздухе.
RibcageGroup
Ribcage
Twist – поворачивает позвоночник вдоль длины (скручивает);
Roll – поворачивает позвоночник вправо-влево;
Pitch – поворачивает позвоночник вперёд-назад;
Lift – сдвигает позвоночник вверх-вниз;
Push – сдвигает позвоночник вперёд-назад;
WeightShift – сдвигает позвоночник вправо-влево;
OffsetPos – сдвигает позвоночник по всем осям (не аним.);
OffsetRot – поворачивает позвоночник по всем осям (не аним.).
Arms
Bend – сгибает руку в локте;
Twist – выворачивает предплечье в сторону;
CrossSwing – управляет углом руки в направлении от тела;
Swing – управляет вращением руки вперёд-назад;
OffsetRot – поворачивает по всем осям (не аним.).
Collarbone
MotionZ – вращает ключицу по Z;
MotionY – вращает ключицу по Y;
MotionX – вращает ключицу по X;
Offset – вращает по всем осям (не аним.).
Palm
DigitSpreadAngle – растопыривает пальцы руки;
DigitRollAngle – вращает пальцы руки;
DigitCurlAngle – сгибает пальцы руки;
OffsetRot – поворачивает ладонь по всем осям (не аним.);
HandTwist – вращает ладонь по Z;
HandFlopY – вращает ладонь по Y;
HandFlopX – вращает ладонь по X.
HeadGroup
Head
Twist – поворачивает голову вправо-влево;
Roll - наклоняет голову вправо-влево;
Pitch - поворачивает голову вверх-вниз;
Lift – сдвигает голову вверх-вниз;
Push - сдвигает голову вперёд-назад;
WeightShift - сдвигает голову вправо-влево;
OffsetPos – сдвигает голову по всем осям (не аним.);
OffsetRot – поворачивает голову по всем осям (не аним.).
Теперь вы сможете создавать с помощью CAT любые походки. Но это, конечно, не всё, что он может. Естественно, он может анимировать с помощью обычных ключей (без этого не обойтись), записывать анимацию в отдельные слои, смешивать их. А уж если вам нужна анимация многоногого существа, то это вообще незаменимый инструмент. Но это темы уже для других уроков. Я попытался просто задать направление для вашего развития. Надеюсь, урок окажется полезным.