14 января 2015 14.01.15 7 2501

Разработка игры. Бродилка. [Лог#4]

+15

ТЕМА: Анимация

Сегодня пчела (или оса? :) ) оживёт! Ну или почти. В анимации я не специалист, да и не все фишки Блендера использую, а о некоторых вообще не знаю, но как мне кажется здесь главное практика.

Анимация будет скелетная — это такая техника, которая появилась ещё во времена первого Half-life, суть такова: в модели имеются кости (трансформации), которые могут иметь предков и потомков (организация иерархии). Каждой вершине модели задаётся кость( в современных играх на одну вершину могут влиять уже несколько костей, например, 4 ). После назначения вершина «подчиняется» трансформациям( перенос, поворот, размер ) кости именно на этом и построена костная анимация. (В различных играх\движках\фреймворках возможно это устроенно немного иначе, например, не вершина хранит кость, а кость хранит в себе список вершин ).

Начинаем мы с открытия файла с моделькой, удаляем всё лишнее и подстраиваем интерфейс под себя

Теперь создаём объект скелета, в рамках блендера он называется armature.

Потом идём в режим редактирования этого объекта. Тут нет вершин и полигонов, только кости. Выделяем одну единственную кость и дублируем или создаём новую. ( возможно меня будут ругать за то, что я не «соединяю» кости и они выглядят как вертикальные палки )

Именуем наши кости, это очень важный момент на самом деле. И задаём иерархию т.е. указываем костям их родителей ( линии соединяющие кости )

Тут видно, что все наши кости находятся по середине — это такие кости, которые не требуют симметрии (например, голова у пчелы то одна, зачем две кости :) )

Теперь создаём и позиционируем кости, которые будут симметричны. Обратите внимание на .L (left) в конце каждой такое кости — это очень важно.

Хвала Блендеру, что он умеет такое! Устанавливаем 3D-курсор в центр координат ( Shift+C ), устанавливаем центром преобразований этот курсор, копируем наши симметричные кости и применяем зеркальное отражение ( Ctrl+M иX ). Красота же! Но вот имена…

И вновь у Блендера есть фишка — «Отразить имена» (Flip Names)

Теперь слева (относительно объекта, а не вида) кости с .L, а справа — .R

Выделяем сначала объект, а потом арматуру (очень важен порядок) и создаём связь (Ctrl+P). Я предпочитаю вручную устанавливать каждой кости вершины, поэтому выбираю «With Empty Groups».

После этого к объекту будет добавлен модификатор, позволяющий арматуре (скелету) модифицировать вершины.

Ещё появится вот такой список групп вершин, очень важный момент — имя кости и имя группы должны совпадать (так Блендер понимает, какие вершины какой костью изменять )

Сейчас все группы пусты, а чтобы записать в них вершину нужно сделать вот такое:
выделить вершины, выделить группу к которой хотим привязать и нажимаем «assign»

Спустя какое-то время потраченное на привязку костей к вершинам можно проверить как всё привязалось, для этого нужно использовать Pose Mode (у арматуры). Можно крутить, перемещать кости и наша модель будет изменяться

Теперь будем записывать наши изменения костей, для этого я включаю Auto Key — автоматическая вставка ключевых кадров, после изменения кости. Путём преобразований ( по большей части поворотов ) создаю анимацию «ожидания». Все анимации будут не больше 50 кадров, поэтому устанавливаем конец временной линии на 50.

К сожалению не могу в деталях описать весь процесс анимирования — лучше смотреть видео, будет более понятно :)

Вот тут уже анимация атаки.

Это анимация полёта (или что-то вроде этого)

«Пчёлку жалко: ' ( »

Вот результаты анимации в виде gif. (по странным причинам скорость анимации в 2 раза ниже)

Что дальше?
Думаю рассказать больше о локациях, возможно, будут концепты, какие-то идеи организации этих локаций, в общем информация о игровом мире :)

Вы можете предлагать и свои темы, когда-нибудь до них доберусь )


Лучшие комментарии

Это да, косяк) Но честно говоря это мой третий подход к анимации вообще, так сказать осваиваю ещё :)
Спасибо )
Согласен по поводу темы, она обязательно будет. Скорее всего в формате рассуждения, нежели поэтапного «как написать движок с 0» ) Но постараюсь описать компоненты движка как следует, всё равно мне придётся его писать :)
Клёво! Но движения крыльев какие-то подозрительные. Смотри как живая пчела крыльями машет (с большей амплитудой и ещё вокруг оси крылья крутятся):
Можешь ознакомится с диздоком, возможно, поймёшь о чём игра :) (или можно представить игру Legend of Zelda, хотя я в неё даже не играл, но думаю основные элементы геймплея совпадают )
Ну ты просто, молодец)))Отличная работа. Я предлагаю осветить тему — архитектура движка. По моему это будет интересно.
Читай также