Создал уровень из Battletoads / Double Dragon в 3D, часть 2 — анимация

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

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

Всем привет!

В первой части я рассказывал о том, как создавал уровень из замечательной NES игры Battletoads / Double Dragon в 3D.

Эта тема стала интересна читателям Хабра, поэтому я решил добавить вторую часть, в которой создал анимацию персонажей, деталей локации и конечно же главного босса Абобо.

Эта статья - текстовая версия моего видео, поэтому если вам больше нравится смотреть видео, ссылку я как всегда оставлю в конце статьи.

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

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

Но как вы знаете, я не ищу лёгких путей, а чем труднее проект тем больше полезного опыта я получаю.

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

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

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

И сразу приступил к анимации. Я начал с самого простого - с частей корабля. Неведомые штуки крутятся вокруг своей оси. Я добавил кадры с анимацией и зациклил их, а потом взялся за винты и пропеллеры.

С винтами ничего сложного а для того, чтобы пропеллер крутился в нужной плоскости, я создал путой объект и привязал к нему модельку. Осталось заменить все пропеллеры на корабле на пропеллеры с анимацией.

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

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

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

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

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

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

В первой части я уже создавал ретро бластеры (Retro Blasters). В игре они передвигаются, подлетают к главному герою, двигают пушками и стреляют. Я решил создать путь, чтобы лучше контролироать их передвижение и для теста добавил кадры с анимацией.

Пришло время Мекно Мит (Mecho Mit) или руки. Мне пришлось немного поработать над ней. Или скажу по-другому. Я создал её заново. Для кривой и насаженных на неё сфер я добавил пустые объекты, которыми контролировал перемещение руки, а ещё чуть позже заново раскрасил её случайными цветами.

Так как у нас с вами что-то вроде HD версии игры, я подумал, что было бы интересно добавить частицы и другие эффекты. Частицы в блендере используются в огромном количестве случаев. Например для создания реалистичных волос, взрывов, обломков, дыма и тому подобного.

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

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

После того как рука побеждена, из вентиляторов вылетают её части. Я снова добавил частицы, которые представляли собой то, что осталось от руки. Шарики не могут вылетать из вентилятора просто так. Им нужна какая-то сила, которая или тянет или толкает их. И для этого в блендере есть Форс Филд (Force Field) или силовые поля. Вы можете создать что-то вроде магнита, который будет действовать на частицы на сцене, поменять для него силу воздействия и другие настройки. Так я и сделал. Создал силу Force и настроил её. После этого шарики начали лететь в нужную сторону.

Я добавил ещё один эффект с шариками, которые вылетают в разные стороны, когда рука доходит до вентилятора. Такие же шарики я потом добавлю для анимации гибели врагов.

Как вы можете знать, я не создавал босса первого уровня - Абобо, в прошлый раз, поэтому начал делать его сейчас. Я скачал референсы, которые мне очень помогли в создании модельки.

Абобо достаточно массивный боец жуткого вида. Как написано на сайте фандома игры "Он большой, он плохой и действительно С ума сошел! Вы вторглись на его территорию, и он не успокоится, пока не столкнет вас с землей." Может быть автоматический перевод не совсем правильно сработал, но суть такая же.

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

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

Чтобы запугать бедного игрока, Абобо просто прорывается сквозь ворота своего же корабля. Для разрушений в блендере есть одна крутая штука. Рисуем места, где нужно разрушить объект, применяем модификатор, потом добавляем для каждого элемента Rigid Body, который указывает на то, что этот объект твёрдое тело, ставим галочку деактивации, чтобы части не падали без столкновения с объектом, Блендер рассчитывает массу каждой из частей и... ничего не работает.

Я переделывал эту последовательность раз десять, но частички ворот улетали как только начанала проигрываться анимация. Галочка с деактивацией просто отказывалась работать.

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

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

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

Всю анимацию вы в любом случае вы сможете увидеть совсем скоро.

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

Настоящая мощь.

С выбиванем ульев и ногой похожая ситуация. Руки и нога увеличиваются в размерах в нужный момент. Круто, что у меня были такие хорошие референсы, как геймплей оригинальной игры. Без него работать было бы ещё сложнее. Как я говорю, в мелочах самый большой смысл, поэтому всегда стараюсь уделить им как можно больше внимания.

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

По мере добавления анимаций, я стал собирать экшены в редакторе. Вот так выглядят действия Рэша в проекте.

У нас ещё есть вертолёт, для которого я анимировал движение винтов и понемногу стал настраивать камеру. Вертолёт прилетает на хвост корабля, ставит Рэша и в игре начинается самое интересное.

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

Скажу только, что после создания и правок 3д части, я приступил к саунд-дизайну и монтажу. Это тоже интересный и сложный процесс и если вы захотите, я расскажу о сайнд-дизайне в одной из других статей.

Это было действительно трудно, но я очень рад, что справился и довёл дело до конца. Надеюсь, что у меня получилось передать ту самую ламповую атмосферу игры начала девяностых годов, но уже в 3д.

Никогда бойтесь трудностей. Главное это просто начать делать.

Пишите комментарии, если эта статья и видео были вам интересны. И до встречи.

Оригинальное видео

Источник: https://habr.com/ru/post/570412/


Интересные статьи

Интересные статьи

В прошлой статье, посвященной выяснению победителя в состязании JS-парсеров строки buffers-атрибута узла плана PostgreSQL, мы дошли до факта, что самый эффективный в...
В предыдущих заметках данной серии мы уже успели поговорить о датасетах и инструментах, функциях потерь и примерах прикладных задач, а сейчас пора перейти к “ядру” любой подобласти глуб...
Java-разработчики знают, что язык и платформу создал Джеймс Гослинг, но зачастую на этом знания о нём и заканчиваются. Кто это вообще такой? Что ещё он делал в жизни? Почему переста...
В обновлении «Сидней» Битрикс выпустил новый продукт в составе Битрикс24: магазины. Теперь в любом портале можно создать не только лендинг или многостраничный сайт, но даже интернет-магазин. С корзино...
Привет, Хабр! Представляю вашему вниманию перевод статьи "How does a relational database work". Когда дело доходит до реляционных баз данных я не могу не думать, что чего-то не хватае...