Повторил рекламу Яндекс GO в Blender за 24 часа

sqdqtwb1fmcd39onvd4-rcc_t9i.jpeg

Всем привет!

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

Когда-то давно я открыл программу для 3д моделирования и… закрыл через 10 минут, а потом не возвращался к ней несколько лет. Она показалась мне тогда чем-то нереально сложным и непонятным.

image-loader.svg

Но спустя время я увидел на ютюбе рекламу Яндекс GO. Я тогда и понятия не имел, как это сделано. Человечки, машины, здания, плавная анимация и всё это в 3д. Я обещал себе, что когда-нибудь сделаю такую же, но конечно же не думал, что вообще научусь чему-то подобному. Настолько нереально сложным это мне казалось.

image-loader.svg

Шло время и я снова вернулся к 3д. Прогресс пошёл, а уже меньше, чем через пол года я мог создавать low poly модели и не очень сложную анимацию. Именно тогда я вспомнил о рекламе Яндекс, которой так восхищался. А чтобы было интереснее, я решил повторить её за 24 часа. Получится ли у меня хоть что-то, из того, что я задумал? Об этом вы узнаете уже в конце статьи.

image-loader.svg

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

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

image-loader.svg

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

image-loader.svg

Я насчитал около десяти разных видов домов и быстро набросал их на плоскость. Мне нравится Blender тем, что в интернете огромное количество туториалов и примеров, на которые можно посмотреть, если появляются какие-то трудности. Трудностей при создании видео было много, поэтому я часто гуглил что-то вроде «Как быстро сделать звезду в Blender» или «Как стать про в анимации за 10 минут.» Ютюб, Скорость 2x, Вы знаете что делать.

image-loader.svg

Кроме обычных геометрических фигур, на сцене есть также две «спешл» фигуры. Слоёное здание с жёлтым центром и ларёк с табуретками. Со слоёным зданием проблем не возникло. А вот над ларьком нужно было подумать.

image-loader.svg

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

image-loader.svg

Чтобы всё выглядело более красочно, я решил покрасить уже созданные элементы карты. Судя по видео, у каждого дома есть сглаживание. Ещё 20 минут ушло на создание сглаживания и всё стало выглядить более-менее прилично.

image-loader.svg

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

image-loader.svg

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

image-loader.svg

Как хорошо, что в Blender можно просто скопировать объект и поменять в нём то, что нужно. Именно так я и сделал с машинами. А судя по оригиналу, они отличаются только краской корпуса.

image-loader.svg

В этом видео есть одна моделька, которую не так просто увидеть. Она появляется в кадре всего на 3 секунды. Как вы могли угадать — это автобус. 30 минут и моделька на 3 секунды готова.

image-loader.svg

Тележка. Хм, с виду выглядит просто. Почему-же тогда на YouTube десятки видео «Как сделать тележку для продуктов в Blender?». Оказывается есть свой способ, который сильно экономит время и нервы. Я взял куб, разделил его на полигоны, удалил ненужные грани и связал с кривой в виде круга. И конечно не забыл добавить колёса и ручку. Готово, не так и сложно. Но чтобы было поменьше полигонов, всё равно пришлось переделывать тележку заново.

image-loader.svg

А тем временем прошло уже целых 4 часа. В видео 9 человечков, 3 курьера на самокате, 1 курьер на велосипеде, 1 пассажир такси, 1 курьер с коробкой, 1 человечек, который получает коробку и 1 водитель, который садится в машину. Ах, да, ещё один человечек, который стоит на другом берегу реки, но похоже он хотел топиться, поэтому в видео участвовать не будет. Ещё 15 минут работы и человечек готов. Человечки в видео различаются только по цвету одежды. И забегая вперёд скажу, что придётся красить их ещё раз. Но сейчас я продолжаю наслаждаться покраской клонов.

image-loader.svg

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

image-loader.svg

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

image-loader.svg

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

image-loader.svg

Я как мог долго откладывал создание курьера на велосипеде. Но без этого никуда. Хоть он и появляется в видео, как и автобус всего на несколько секунд, без таких мелочей, всё будет выглядеть совсем по-другому. Вообще создавая подобные low poly модельки можно было делать всё ещё проще и не тратить столько времени на их проработку. Но я ориентировался на оригинальное видео, а в нём модельки выглядят достаточно качественно. Ещё 30 минут и велосипед готов.

image-loader.svg

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

image-loader.svg

Дело в том, что для создания изометрических сцен в Blender нужно выставлять определённые настройки камеры. Но почему-то с такими настройками я никак не мог получить нужный ракурс. Потратив ещё 40 минут, я всё таки настроил ракурс и перемещение камеры по сцене.

image-loader.svg

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

image-loader.svg

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

image-loader.svg

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

image-loader.svg

Для анимации большое количество моделлеров используют замечательный сервис Mixamo от Adobe. Если вкратце, то любой пользователь может загрузить в этот сервис свою 3д модельку человека, монстра или любого другого героя и анимировать её. А что ещё круче, для модельки будет автоматически создан скелет. Да-да, для движения моделек используется скелет, почти к у обычных людей.

image-loader.svg

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

image-loader.svg

В Mixamo огромное количество уже готовых анимаций, и мне нужно было выбрать только то, что подойдёт. Курьер передаёт коробку другой модельке, поэтому я искал анимацию по слову box — коробка. Но в mixamo была только анимация бокса. И я решил остановиться на анимации походки. Она подошла, так как в дальнейшем я её отредактировал.

image-loader.svg

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

image-loader.svg

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

image-loader.svg

При перещениии кости в Blender, она действует на всю модельку. Для контроля этого поведения в программе существует возможность указать вес каждой кости.
Если описать одним словом работу с весами в Blender, то для меня это слово будет боль. Это само по себе сложно, но как вы сможете узнать в конце статьи, этот опыт мне сильно помог. Несколько раз я перекрашивал веса для курьера и в итоге получилось, то, что меня устроило. Я в прямом смысле привязал ногу курьера к самокату и нарисовал для него свой путь, по которому он будет проезжать. Как хорошо, что для других курьеров не нужно будет настраивать веса.

image-loader.svg

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

image-loader.svg

После добавления пути для велосипедиста, из-за смещённого центра он поворачивал с заносом. Это бы подошло для игры про велосипедистов дрифтеров, но не для моего видео.

image-loader.svg

Прошло уже целых 14 часов, но хорошо, что большая часть работы позади.

image-loader.svg

Следующий на очереди — пассажир такси. Его можно видеть в самом начале видео. Когда такси подъезжает, он открывает дверь, садится в такси и уезжает в нём. Вы же знаете что такое магия кино? Вот ей я и воспользовался.

image-loader.svg

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

image-loader.svg

С водителем похожая ситуация, но здесь камера направленна точно на него, поэтому сесть в машину ему всё таки придётся. Аниматоры из яндекс решили, что человечку проше протянуть руку к рулю, чем наклонить тело вперёд. Ну ладно. Может никто и не заметил? А я просто запихнул водителя в машину.

image-loader.svg

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

image-loader.svg

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

image-loader.svg

Если присмотреться, при приближении камеры, меняются некоторые элементы карты. Например исчезают дороги и появляются пешеходные зебры. Я изменил тип наложения и прозрачность материалов и анимировал их. С 3д частью закончено, ура.

image-loader.svg

Да, одним блендером тут не обойтись. Титры и кадры с телефоном в конце я сделал через программу After Effects. Тут всё по старой схеме. Кинул на сцену оригинал видео и ориентировался на него.

image-loader.svg

Основа заставки — это три анимированных прямоугольника со скруглёнными углами. Когда я думал, что всё будет проще простого, появилась новая проблема. У каждого объекта есть так называемая якорная точка, от которой афтер эффектс отсчитывает изменение размера. Проблемы нет, когда нужно изменить размер прямоугольника, но у меня никак не получалось уменьшить размер прямоугольника со скруглёнными углами, чтобы сохранить правильные пропорции. Провозившись битый час в поисках решения в гугле, и перепробовав несколько вариантов, я всё таки нашёл нужное решение. А именно — скрипт, который прописал для изменения точки. В After Effects можно использовать код для создания анимации и других полезных вещей. Для этого используется специальная версия языка JavaScript, созданная компанией Adobe.

image-loader.svg

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

image-loader.svg

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

Я закончил даже слегка раньше.

Это были тяжёлые 24 часа, но я справился и очень этому рад. И по-моему получилось близко к оригинальному видео. Я получил огромное количество нового опыта и ещё больше прокачал свой скилл в 3d и моушн графике.

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

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

Ссылка на видео

© Habrahabr.ru