Базовая скелетная анимация персонажа в 3Ds max

К комментариям (1)
15.09.2015 — 17:41
Автор: Siegrun

Статья «Базовая скелетная анимация персонажа в 3Ds max» специально для TESALL.RU

Интерфейс лидера рынка 3D - программы 3Ds Max - очередной раз изменился, а все простые уроки анимации в сети в основном расчитаны на старые версии. Я исправлю эту несправедливость.

Для выполнения урока у вас уже должна быть загружена модель с выполненными ригом (скелетоном) и скином, и вы должны быть достаточно знакомы с программой. Я воспользовалась скелетоном от Bethesda Softworks, в процессе моддинга к игре TES IV, с привязанной моделью от Petrovich. А  вы можете пользоваться любым доступным вам скелетоном и телом. Загружайте его в макс и поехали.

[center]Скриншоты не уменьшались, и кликабельны.[/center]

Выставите в свойствах оболочки галочку "видеть сквозь" - see through. Затем заморозьте ее. [b]Очень хорошо включить Отображение траектории[/b], но я не пользовалась ей.

Перво-наперво определяем сколько кадров и времени нам понадобится на анимацию.  Средняя скорость нормального фильма или движка - в районе 30 кадров в секунду. Так как мы будем маленькую анимацию делать, буквально какую попало, выставим 30 кадров.

[center][b]КАК выставить линейку времени и кадров?[/b][/center]


Чем меньше единиц на шкале времени, тем быстрее движение. [b]Жмем иконку с часиками и выбираем End time[/b]

[center][img]http://img-fotki.yandex.ru/get/3909/zamanaliuzhe.d/0_297c4_fccab30a_orig[/img][/center]


[center][b]Выставляем выбранное число[/b]. [/center]

[center][img]http://img-fotki.yandex.ru/get/4302/zamanaliuzhe.d/0_297b7_818d05d1_orig[/img][/center]


[center]У нас есть 30 кадров. Далее варианта развития событий два.[/center]

Если нажать[b] autokey[/b], писать можно с любого кадра. Нулевой захватит вашу начальную позу автоматически. Пользуйтесь ЭТИМ режимом для написания анимации. Так вы ничего не потеряете. Продвинутые товарищи могут включить режим [b]set key[/b] и жать кнопку с иконкой ключа в любом месте, где им нужен ключ. Это если вы уже точно знаете,  где и что у вас будет. Но пока [b]используйте авторежим[/b].

[center][b]Как начать записывать анимацию?[/b][/center]


[b]Нажимаем кнопку autokey[/b]. В РЕЖИМЕ autokey ЛЮБОЕ ДВИЖЕНИЕ В КАДРЕ автоматически СОЗДАСТ КЛЮЧ!!! Можно написать нулевую позу сразу, если она не соответствует позе загрузки, а можно не писать. Там все равно создастся ключик, и мы к нему еще вернемся.

[center][img]http://img-fotki.yandex.ru/get/4304/zamanaliuzhe.d/0_297b8_af292cc8_orig[/img][/center]


Я перехожу в 10 кадр. [b]Двигаем бегунок[/b] в 10. [b]У меня будет смещение, поэтому я нахожу bip1 (это точка, в которую сходится привязка всех костей, вершина "дерева привязки" и продвигаю все тело сразу вперед.[/b]  Если же вы делали классический риг для рендера внутри программы, найдите свой управляющий деревом элемент (обычно это большой сплайн). Затем [b] инструментом вращение придем костям позу[/b]. Выделять весь скелет и создавать запись в ключе для каждой кости не надо, кости зависят друг от друга и эта зависимость сама поставит их, как необходимо. Например, чтобы подвинуться вперед всем телом, достаточно записи положения bip1, даже если весь скелет не выделен.

[center][img]http://img-fotki.yandex.ru/get/4305/zamanaliuzhe.d/0_297b9_3a02c4ee_orig[/img][/center]


Я делаю ключевую позу. Что я имею ввиду? Это самые базовые точки движения. Например, при ходьбе их около шести на цикл. [b]НЕ отключая режима автокей, перевожу бегунок[/b]  в кадр 20 - предыдущая поза записана. [b]Создаю вторую  позу.[/b]

[center][img]http://img-fotki.yandex.ru/get/4300/zamanaliuzhe.d/0_297c8_c54d3259_orig[/img][/center]


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

[center][b]КАК записать отдельный ключ?[/b][/center]


[b]Выделите весь скелет! В режиме autokey 30 кадре я не трггаю кости, а нажму setkey[/b], (НЕ кнопку с такой надписью, а большую квадратную кнопку с иконкой ключа), [b]ключ запишется[/b], а я передвину бегунок в 0. Фигурка вернулась в исходное положение руки в стороны.

[center][img]http://img-fotki.yandex.ru/get/4200/zamanaliuzhe.d/0_297ba_52d6eff6_orig[/img][/center]


Меня это не устраивает. Я опущу ей руки. Ключ перепишется. (мы все еще в режиме autokey, так что аккуратнее) [b]Выходим из режима autokey[/b]. Передвигаем бегунок в 30 кадр. Тело принимает последнюю заданную позу.

[center][b]КАК скопировать позу из другого ключа?[/b][/center]

Выделяем все кости. [b]Щелкаем правой кнопкой по бегунку.[/b] Вы помните, что у нас был шаг вперед? Снимаем галочку position, [b]оставляем только rotate и scale[/b]. [b]В строчке source пишем номер кадра, откуда хотим взять позу[/b], в данном случае 0, и жмем Enter. Тело принимает позу из нулевого кадра. Если вы забудете о галочке position, вас сдернет в те координаты! Аккуратно выбирайте, какой ключ хотите копировать.

[center][img]http://img-fotki.yandex.ru/get/4205/zamanaliuzhe.d/0_297bc_64db44d8_orig[/img][/center]


Можно отморозить тело, снять галочку видеть насквозь и проиграть анимацию.

[center][img]http://img-fotki.yandex.ru/get/4201/zamanaliuzhe.d/0_297bd_221094d5_orig[/img][/center]


[center]Конечно, она будет смотреться ужасно. Почему?[/center]

[center][b]КАК добиться правильной анимации?[/b][/center]


[b]Анимация начинается сразу, плавно и завершается тоже.[/b] Это результат того, что программа генерирует "реалистичный" приход фигуры в позу. Получается, что не успев толком закончить одно движение, она начнет второе. Вот почему вам понадобится вовсе не два ключа, чтобы тело подняло поочередно обе ноги. [b]Вам придется написать промежуточные ключи.[/b] Но, записав вначале ключевые позы, вы спокойно проделаете эту работу, аккуратно двигая бегунок, включая и выключая запись, и определяя, на каких этапах вам понадобится ключ. Совершенно очевидно, что скорость анимации слишком высока.

[center][b]КАК сменить скорость?[/b][/center]


Добавим времени. Идем в самую первую иконку с часиками и ставим end time 60. Выделяем ключи двойным кликом и переразмещаем на линейке. 30 на 60, 20 на 40 а 10 на 20. Вы помните, что мы уже несколько абзацев НЕ находимся в режиме  autokey?

[center][b]КАК работать с исправлениями?[/b][/center]


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

[center][img]http://img-fotki.yandex.ru/get/4305/zamanaliuzhe.d/0_297be_a203698c_orig[/img][/center]


Вот теперь ноги она поднимает и опускает по очереди и руками машет, как надо. Но вот в начале анимации происходит форменный кавардак! На самом деле, мах ногой начинается одновременно с движением вперед, и шага нет... Исправим это. Переведем бегунок в 15 кадр. Включим автокей и нажмем setkey. И создадим ключик. Выйдем из режима автокей. Выделим весь скелетон. Копируем позу из 20 кадра, ТОЛЬКО position. А потом из нулевого - КРОМЕ position. Тренировка прежде всего!


Проиграем. Смешно, она подплывает туда, как лич. Стоит убрать это перемещение. Для чего мы писали 15 кадр? потренируемся убирать ненужное.

[center][b]КАК убрать лишнее движение?[/b][/center]


Для этого копируйте в ключи значение position из 0, НЕ переписывая rotation и scale. Теперь дама только машет ногами, но зато возникла пауза в начале. Если движения больше нет, удалите ключ из кадра 15.

[center][b]КАК удалить ненужный ключ?[/b][/center]


[b]Для этого два раза щелкните по нему левой кнопкой и затем правой кнопой и выберите Delete Selected Keys [/b]. Ну а теперь, просто расставьте оставшиеся ключи равномерно. Но мы хотим, чтобы она потанцевала подольше, или вовсе не прекращала этого делать, пока мы не скажем.

[center][b]КАК записать повторяющуюся анимацию?[/b][/center]

Чтобы зациклить анимацию, выделим все косточки, и перейдем в curve editor.

[center][img]http://img-fotki.yandex.ru/get/4300/zamanaliuzhe.d/0_297bf_47840cda_orig[/img][/center]


Да, а кто говорил, что будет легко? Это вот такая страшноватая, но волшебная вещь.

[center][img]http://img-fotki.yandex.ru/get/4304/zamanaliuzhe.d/0_297c0_8f0ae942_orig[/img][/center]


[b]Находим там Parameter Curve и выставляем: маленькую левую кнопочку под Constant, а правую маленькую кнопочку под Loop - петлю. Анимация зациклена[/b]. Попробуйте  и другие версии, не стесняйтесь.

[b]ЕСЛИ вы хотите создавать ПОХОДКУ или анимацию с перемещением, выберите правую кнопку под Относительным Повторением (Relative Repeat)[/b]. Почему? Да потому, что походка перемещает вас относительно начальной координаты. И если вы выберете петлю, вас швырнет в ноль после завершения анимации. А я выбрала петлю, потому, что движок игры перерасчитывает координату локально - 0-30, 0-30...

Ну вот, красотка заправски машет ногами и руками, хоть сейчас в кремлевские курсанты.

[b]Редактор кривых позволит вам установить симметрию движения.[/b] Например, заставить правую ногу подниматься так же высоко, как левую. [b]Это имеет смысл как раз в долгом цикле типа походки, там ошибки имеют свойство накапливаться.[/b] А вообще, человек не умеет совершать одинаковых движений, и автоматизм только кажущийся, поэтому исправлять симметрию мы в этом  жесте не будем. Оставим реализм.

[center][b]Удачи.[/b][/center]

PS. Если вы блаженно выставили начальную позу и вдруг увидели, что забыли включить автокей, не пугайтесь. Включите его и сдвиньте бегунок в другой кадр, и там пошевелите ручкой-ножкой или сеткей нажмите - первая поза запишется в нулевой ключ сама АВТОМАТИЧЕСКИ, независимо от сложности.

[center][img]http://img-fotki.yandex.ru/get/4305/zamanaliuzhe.d/0_297c1_20d44541_orig[/img][/center]