Как сделать поезд в блендере
Когда-то давно я открыл программу для 3д моделирования и. закрыл через 10 минут, а потом не возвращался к ней несколько лет. Она показалась мне тогда чем-то нереально сложным и непонятным.
Спустя время я увидел на ютюбе рекламу Яндекс GO. Я тогда и понятия не имел, как это сделано. Человечки, машины, здания, плавная анимация и всё это в 3д. Я обещал себе, что когда-нибудь сделаю такую же но конечно же не думал, что вообще научусь чему-то подобному. Настолько нереально сложным это мне казалось.
Шло время и я снова вернулся к 3д. Прогресс пошёл, а уже меньше, чем через пол года я мог создавать low poly модели и не очень сложную анимацию. Именно тогда я вспомнил о рекламе Яндекс, которой так восхищался. А чтобы было интереснее, я решил повторить её за 24 часа. Получится ли у меня хоть что-то, из того, что я задумал? Об этом вы узнаете уже в конце статьи.
Сразу оговорюсь, что я не учитывал время на сон и еду, так как во сне я могу лишь только мечтать о ещё более крутых проектах. Итак, время пошло.
Для моделирования я решил использовать бесплатную программу Blender. И это именно тот случай, когда бесплатная не означает плохая. В этой программе сделаны многие крутые мультфильмы, реклама, модели для игр и т.д.
Я решил начать с общей сцены, на которой отображаются дома, газоны и дороги. Уже потом я вспомнил, что можно было сразу добавить оригинальное видео на сцену, чтобы смотреть на него, а не вставлять скриншоты для каждого из ракурсов.
Я насчитал около десяти разных видов домов и быстро набросал их на плоскость. Мне нравится Blender тем, что в интернете огромное количество туториалов и примеров, на которые можно посмотреть, если появляются какие-то трудности. Трудностей при создании видео было много, поэтому я часто гуглил что-то вроде "Как быстро сделать звезду в Blender" или "Как стать про в анимации за 10 минут." Ютюб, Скорость 2x, вы знаете что делать.
Кроме обычных геометрических фигур, на сцене есть также две "спешл" фигуры. Слоёное здание с жёлтым центром и ларёк с табуретками. Со слоёным зданием проблем не возникло. А вот над ларьком нужно было подумать.
Принцип построения газонов такой же - плоскость со скруглёнными углами. Так как я пытаюсь повторить видео максимально близко к оригиналу, не буду забывать о мелких элементах, которые добавляют атмосферы сцене. Пару минут, и я добавил модные пешеходные переходы с отражением света и светофоры. Вода, дороги, мост. Основа карты готова. Даже странно, что пока всё идёт без проблем, но прошло уже 2 часа.
Чтобы всё выглядело более красочно, я решил покрасить уже созданные элементы карты. Судя по видео, у каждого дома есть сглаживание. Ещё 20 минут ушло на создание сглаживания и всё стало выглядить более-менее прилично.
Сначала я подумал, что в ролике используют несколько моделей машин. Поэтому начал с "первой" модели на скриншоте, но потом присмотрелся и понял, что моделлеры яндекс тоже не любят сильно запариваться и что они клонировали одну модель и по-разному её раскрасили. Уже после того, как я сделал финальный вариант машины, вспомнил, что можно было скачать фото, например, форда фокус и сделать модельку по нему. Но я же не ищу лёгких путей.
Спустя час и множество проклятий, у меня получилось более менее вменяемая моделька машины, на которую вы смотрите. Если сравнивать с машиной в ролике и машиной из Вспомнить всё, то мне кажется моя машина больше похожа на второй вариант.
Как хорошо, что в Blender можно просто скопировать объект и поменять в нём то, что нужно. Именно так я и сделал с машинами. А судя по оригиналу, они отличаются только краской корпуса.
В этом видео есть одна моделька, которую не так просто увидеть. Она появляется в кадре всего на 3 секунды. Как вы могли угадать - это автобус. 30 минут и моделька на 3 секунды готова.
Тележка. Хм, с виду выглядит просто. Почему-же тогда на YouTube десятки видео "Как сделать тележку для продуктов в Blender?". Оказывается есть свой способ, который сильно экономит время и нервы. Я взял куб, разделил его на полигоны, удалил ненужные грани и связал с кривой в виде круга. И конечно не забыл добавить колёса и ручку. Готово, не так и сложно. Но чтобы было поменьше полигонов, всё равно пришлось переделывать тележку заново.
А тем временем прошло уже целых 4 часа. В видео 9 человечков, 3 курьера на самокате, 1 курьер на велосипеде, 1 пассажир такси, 1 курьер с коробкой, 1 человечек, который получает коробку и 1 водитель, который садится в машину. Ах, да, ещё один человечек, который стоит на другом берегу реки, но похоже он хотел топиться, поэтому в видео участвовать не будет. Ещё 15 минут работы и человечек готов. Человечки в видео различаются только по цвету одежды. И забегая вперёд скажу, что придётся красить их ещё раз. Но сейчас я продолжаю наслаждаться покраской клонов.
Я не слежу за соотношением размеров домов и машин, но человечка всё таки нужно подогнать по размеру. Ведь если он будет слишком маленький - это будет выглядеть некрасиво, а если слишком большой, он просто не уберётся в машину.
Когда я расставил человечков по местам это выглядело, так будто бы они хотят обнять друг друга, пылая большой и сильной любовью.
Самое время приступить к созданию экипировки для курьеров. На спину курьеру я закрепил квадратную желтую сумку. А под ноги поставил самокат. Когда-нибудь яндекс захватит всё и по городу будут разъезжать курьеры такого размера, но пока этого не случилось продолжаем наводить порядок на сцене.
Я как мог долго откладывал создание курьера на велосипеде. Но без этого никуда. Хоть он и появляется в видео, как и автобус всего на несколько секунд, без таких мелочей, всё будет выглядеть совсем по-другому. Вообще создавая подобные low poly модельки можно было делать всё ещё проще и не тратить столько времени на их проработку. Но я ориентировался на оригинальное видео, а в нём модельки выглядят достаточно качественно. Ещё 30 минут и велосипед готов.
В реальной жизни такое видео можно было бы снять например с дрона. Но возможности blender позволяют сделать вообще какой угодно ракурс и перемещение камеры без всяких ваших дронов. Да, в Blender также используется камера, для которой можно настроить тип, глубину резкости, размер, апертуру и много чего ещё. Я выбрал ортографическую камеру и по кадрам анимировал её перещение так же, как в оригинальном видео.
Дело в том, что для создания изометрических сцен в Blender нужно выставлять определённые настройки камеры. Но почему-то с такими настройками я никак не мог получить нужный ракурс. Потратив ещё 40 минут, я всё таки настроил ракурс и перемещение камеры по сцене.
Прошло уже шесть с половиной часов с начала создания видео и впереди ждал самый трудный на мой взгляд этап, на который я потратил больше всего времени, а именно анимация объектов и персонажей.
Как вы уже могли заметить, в Blender есть много вещей из обычной жизни. Например своё солнце, камеры, ну а для перемещения персонажей проще всего использовать путь.
Для этого я создал кривые для каждого объекта, которые нужно перемещать не по прямой линии. Если посмотреть видео, можно заметить, что пути объектов могут пересекаться с другими, но построены они таким образом, чтобы всё выглядело гармонично и чтобы объекты не врезались друг в друга.
Для анимации большое количество моделлеров используют замечательный сервис Mixamo от Adobe. Если вкратце, то любой пользователь может загрузить в этот сервис свою 3д модельку человека, монстра или любого другого героя и анимировать её. А что ещё круче, для модельки будет автоматически создан скелет. Да-да, для движения моделек используется скелет, почти к у обычных людей.
Я загрузил уже готовую модельку курьера, выставил точки для подбородка, локтей, запястьев, паха, коленей и. из-за особенностей геометрии курьера, у него стали просвечивать бока. Я провёл ему несложную, но болезненную операцию и слегка увеличил их толщину. Ура, всё получилось.
В Mixamo огромное количество уже готовых анимаций, и мне нужно было выбрать только то, что подойдёт. Курьер передаёт коробку другой модельке, поэтому я искал анимацию по слову box - коробка. Но в mixamo была только анимация бокса. И я решил остановиться на анимации походки. Она подошла, так как в дальнейшем я её отредактировал.
При создании анимации, каждая кость может перемещаться отдельно. В моём случае курьер должен передвигаться с коробкой в руках. Я добавил коробку и поменял расположение рук. И получилось то что нужно. Оставалось добавить анимацию передачи коробки и поставить курьера на нужно место. Только сейчас я понял, что проще было взять уже готового курьера со скелетом, из Mixamo, а не загружать и настраивать нового человечка каждый раз. В этом случае нужно было просто перекрасить каждую модельку в нужный цвет.
Курьер должен вернуться обратно к машине, поэтому я добавил и это его перемещение.Вся эта небольшая анимация отняла целых три часа. Курьера с сумкой всё таки пришлось загрузить в Mixamo. И хорошо, что анимация поездки на скейте, считай на самокате, здесь уже была.
При перещениии кости в Blender, она действует на всю модельку. Для контроля этого поведения в программе существует возможность указать вес каждой кости.Если описать одним словом работу с весами в Blender, то для меня это слово будет боль. Это само по себе сложно, но как вы сможете узнать в конце статьи, этот опыт мне сильно помог. Несколько раз я перекрашивал веса для курьера и в итоге получилось, то, что меня устроило. Я в прямом смысле привязал ногу курьера к самокату и нарисовал для него свой путь, по которому он будет проезжать. Как хорошо, что для других курьеров не нужно будет настраивать веса.
В Mixamo я нашёл только анимацию упражнения велосипед, поэтому пришлось создавать анимацию езды с нуля. Я посадил курьера на велосипед, слегка изменил положение рук и тела и анимировал ноги, чтобы они двигались по пути следования педалей. Гораздо проще сначала анимировать поворот педалей, а уже потом подстраивать под их положение ноги, как я и сделал. И конечно же я не забыл анимировать движение колёс.
После добавления пути для велосипедиста, из-за смещённого центра он поворачивал с заносом. Это бы подошло для игры про велосипедистов дрифтеров, но не для моего видео.
Прошло уже целых 14 часов, но хорошо, что большая часть работы позади.
Следующий на очереди - пассажир такси. Его можно видеть в самом начале видео. Когда такси подъезжает, он открывает дверь, садится в такси и уезжает в нём. Вы же знаете что такое магия кино? Вот ей я и воспользовался.
Конечно нет никакого смысла в том, чтобы рисовать полную анимацию посадки пассажира, а потом ещё и перемещать его в машине. Для этой сцены будет достаточно того, чтобы пассажир открыл дверь,наклонился и сделал вид, что садится внутрь, а потом закрыть дверь такси, а отображение человечка выключить. Так я и сделал, предварительно разрезав кузов такси, чтобы была возможность открыть дверь. Да и куда, в конечном счёте он сядет, если в такси и пола то нет. С технической точки зрения он просто открыл дверь и спрятался за машиной, чтобы его не видела камера.
С водителем похожая ситуация, но здесь камера направленна точно на него, поэтому сесть в машину ему всё таки придётся. Аниматоры из яндекс решили, что человечку проше протянуть руку к рулю, чем наклонить тело вперёд. Ну ладно. Может никто и не заметил? А я просто запихнул водителя в машину.
Последняя моделька для анимации водитель-курьер. Так как в этом кадре камера находится высоко, то можно было ещё больше упростить анимацию, ведь зритель просто не увидит каких-то мелочей.
На красную метку наезжает камера и она переводит на себя внимание зрителя. Здесь ничего сложного. Для неё я изменил размер, положение и поворот в соответствии с движением камеры.
Если присмотреться, при приближении камеры, меняются некоторые элементы карты. Например исчезают дороги и появляются пешеходные зебры. Я изменил тип наложения и прозрачность материалов и анимировал их. С 3д частью закончено, ура.
Да, одним блендером тут не обойтись. Титры и кадры с телефоном в конце я сделал через программу After Effects. Тут всё по старой схеме. Кинул на сцену оригинал видео и ориентировался на него.
Основа заставки - это три анимированных прямоугольника со скруглёнными углами. Когда я думал, что всё будет проще простого, появилась новая проблема. У каждого объекта есть так называемая якорная точка, от которой афтер эффектс отсчитывает изменение размера. Проблемы нет, когда нужно изменить размер прямоугольника, но у меня никак не получалось уменьшить размер прямоугольника со скруглёнными углами, чтобы сохранить правильные пропорции. Провозившись битый час в поисках решения в гугле, и перепробовав несколько вариантов, я всё таки нашёл нужное решение. А именно - скрипт, который прописал для изменения точки. В After Effects можно использовать код для создания анимации и других полезных вещей. Для этого используется специальная версия языка JavaScript, созданная компанией Adobe.
Вот такая маленькая задача может вылиться в большую проблему. И я был очень рад, когда получилось её решить. Тем более, что время поджимало.
Всё что оставалось сделать - финальную заставку. Смартфон, лого и девиз. Я создал телефон из такого же прямоугольника со скруглёнными углами, а вместо иконок добавил разноцветные квадраты. Последний штрих - анимация наезда камеры и готово.Я закончил даже слегка раньше.
Это были тяжёлые 24 часа, но я справился и очень этому рад. И по-моему получилось близко к оригинальному видео. Я получил огромное количество нового опыта и ещё больше прокачал свой скилл в 3d и моушн графике.
Я всегда знал, что чем сложнее задача, тем больше прогресс. Лишний раз убеждаюсь, что если чего-то действительно захотеть, то всё обязательно получится.
Пишите комментарии, если эта статья и видео были вам интересны. И до встречи.
04:24
03:31
05:41
05:02
02:29
03:36
04:43
Может не так часто будет полезно, но иногда пригодится. Выделите объект, как при обычной привязке, затем выделите другой объект с зажатым SHIFT. После этого перейдите в режим редактирования и выделите минимум три вершины, к которой вы хотите сделать привязку.
К примеру, можно использовать для симуляции взаимодействии волн и объектов на них.
Хоткей: CTRL + P
№ 8 Сужение/расширение
Лучшее решение для модификации объектов, по типу верёвок. Так же применимо к сегментам кривых. Экономит кучу времени!
Хоткей: ALT + S
№ 9 История операций
Как и в Photoshop или Gimp, в Блендере есть история операций - которую можно использовать, чтобы посмотреть - а не лучше ли было до редактирования.
Хоткей: CTRL + ALT + Z
Мы все привыкли нажимать T, чтобы открывать параметры инструмента слева. Но если вы пропустили потрясающую функциональность плавающих меню в версии 2.4*, то это для вас.
Хоткей: F6
В очень больших сценах бывает затруднительно выбрать нужный объект. С помощью этого хоткея вы вызовете всплывающее меню со списком объектов, и это перестанет быть проблемой!
Хоткей: Alt + правая кнопка мыши
В средах трехмерной графики и анимации часто моделируются физические явления реального мира. Это может быть идущий дождь, развивающаяся на ветру ткань, льющаяся жидкость, огонь, туман и др.
Создавать такое вручную было бы трудоемко. Представьте, сколько потребуется ключевых кадров, чтобы имитировать колебание флажка, или сколько надо капель-объектов, чтобы в вашем фильме пошел дождь.
Для моделирования физики реального мира Blender содержит физический движок и ряд других инструментов, которые существенно упрощают жизнь. При их использовании открывается доступ ко множеству настроек, с помощью которых можно получить желаемый эффект.
В Blender настройка частиц и остальная физика разделены по разным вкладкам редактора Properties.
К частицам относится не только то, что имеет малый размер, многочисленность и в норме падает сверху вниз. Также здесь моделируются волосы, в том числе трава, мех и т. п.
В Blender частицы порождаются излучателем (источником, эмиттером – Emitter), которым может выступать любой mesh-объект. Часто выбирают плоскость.
Одному мешу может быть назначено несколько систем частиц. Например, если моделируется дождь с градом, то имеет смысл к одному излучателю подключить две системы частиц. Элементарные единицы одной будут похожи на капли, другой – на белые шары. Также у каждой системы может быть свое поведение, т. к. град должен падать быстрее и отскакивать от поверхности.
Системы частиц добавляются в слоты подобно тому, как это делается при добавлении объекту нескольких материалов. Хотя обычно бывает достаточно одной системы частиц.
Кнопки Emitter и Hair позволяют выбрать, будет ли объект испускать частицы или из него будут расти волосы.
На изображении в случае Emitter это не первый кадр, а частично проигранная анимация.
Если выполнить рендер (F12), то волосы мы увидим, а вот частицы – нет. Если посмотреть на панель Render вкладки Particles редактора Properties, то по-умолчанию заявлено, что частицы должны прорисовываться как Path или Halo – светящиеся точки. Чего мы не наблюдаем.
Однако если из списка Render As выбрать вариант Object, то можно указать объект, который будет играть роль частиц. Понятно, что объект перед этим должен быть добавлен на сцену.
В этом случае при рендере частицы видны.
Предварительно частицы надо сгенерировать, для этого следует запустить анимацию (Пробел). Частицы начнут сыпаться вниз из объекта-излучателя. После одного цикла анимации ее можно остановить, перейти к нужному кадру и выполнить рендер (F12), чтобы увидеть, как выглядят частицы на картинке. Можно создать видеофайл с анимацией.
Если потом вы вносите какие-либо изменения, то анимацию лучше снова переиграть.
На панели Emission (Излучение) поле Number определяет количество излучаемых частиц. Это влияет на их плотность на единицу пространства. Start и End определяют промежуток шкалы времени, когда эмиттер излучает частицы. Lifetime – время жизни одной частицы. Так если конкретная частица родилась в 60-м кадре, а время ее жизни 50 кадров, то она исчезнет в 110-м кадре.
По умолчанию настройки таковы, что к 250-му кадру все частицы исчезают, так как последние были рождены в 200-м.
Когда частицы падают, то на их пути могут встречаться другие объекты. По умолчанию эти другие объекты никак не реагируют на частицы. Последние проходят сквозь них, как-будто нет никаких препятствий. Чтобы объект реагировал на другой объект, ему добавляется "физика столкновения".
Делается это уже на вкладке Physics редактора свойств. У объектов, которые должны взаимодействовать с другими физическими объектам, должна быть включена коллизия.
На изображении выше коллизия включена для объекта, который находится на пути у падающих частиц, а не самого эмиттера. В настройках увеличен параметр клейкости (Stickiness). Так частицы не будут отскакивать от объекта вверх, а будут задерживаться на нем.
Для одного объекта может быть включено несколько "физик". При включении на соответствующей кнопке появляется крестик.
Рассмотрим моделирование ткани. Оставим куб стартового файла и добавим на сцену плоскость или сетку, которую увеличим и поднимем над кубом. Подразделим ее. После этого включим для плоскости кнопку Cloth на вкладке Physics редактора свойств.
Если теперь запустить анимацию, плоскость, игнорируя наличие куба под ней, просто упадет вниз под действием виртуальной силы тяжести Земли.
Если для куба включить Collision, то плоскость столкнется с ним и обернет его подобно ткани. На рисунке ниже у плоскости также было включено сглаживание.
Теперь представим, что ткань к чему-то прикреплена. Создадим группу вершин и назначим ей несколько вершин плоскости (см. практическую работу 10-го урока). Во вложенной панели Shape укажем группу вершин в качестве значения Pin Group.
Теперь ткань повиснет на вершинах.
Отметим, что при работе с физикой ее следует "выпекать". При этом генерируются кадры анимации, что в последствии ускоряет прорисовку. Можно создать множество слотов с разными выпечками, каждая из которых сохраняет отличные от других настройки физики.
Одним из типов "физик" Blender'а являются силовые поля (force fields) – ветер, вихрь, магнитное поле и др. Соответствующая кнопка включения и последующий выбор типа силового поля находятся на вкладке Physics редактора свойств. При этом силовое поле добавляется выделенному объекту.
С другой стороны, силовые поля доступны через меню Add (Shift+A). На самом деле здесь происходит примерно то же самое, но автоматически: на сцену добавляется объект-пустышка и ему включается физика выбранного силового поля. Так что для последующей настройки надо перейти на вкладку Physics.
На рисунке ниже сцену добавлен ветер (Wind) через Add → Force Field. Стрелка указывает его направление, которое можно изменить, поворачивая объект. Сильно увеличена сила (strength) ветра. В результате ткань не падает на куб, а поднимается вверх. Силовые поля также могут влиять на частицы.
Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия
Читайте также: