Making of: Pulse plasma railgun «Reaper» | by Валерий Зельманчук

В этой статье Валерий рассказал нам о процессе создания своей пушки. Поделился тем, как происходил поиск референсов и некоторыми полезными советами: например, как сэкономить время и силы на этапе моделирования.

А также несколько слов о себе - как боролся со страхом перед моделированием, чем занимался кроме 3D и как пришёл в Геймдев.

I Знакомство

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

В 2020, когда из-за пандемии ситуация на рынке изменилась не в лучшую сторону и несколько месяцев пришлось сидеть дома, я заинтересовался 3D. Начал ковыряться (по-другому сейчас и не назову) в Cinema 4D, смотреть туториалы на ютубе, пытался повторить. Занимался бессистемно, с перерывами, иногда без сильного желания и это лучшее, чего я смог достичь за год:

1-4.jpg

Все изменило 1 апреля 2021 года :) Листая Пикабу, я наткнулся на милейшие миниатюры плацкартного купе, кухни и бара, которые были сделаны со вкусом, в классной цветовой палитре, приятными формами и композицией. Автор писала, что делала в Blender и училась по бесплатному курсу Wagon. Начав гуглить, нашел ютуб канал Kaino и тот самый курс.

Вам знаком эффект dolly zoom? Это когда актер или объект в кадре приближается, а задний фон/окружение отдаляется. Эффектный прием, когда нужно сделать эмоциональный акцент в сцене. Если бы момент, когда я запустил курс с каретой снимали на камеру, dolly zoom весьма точно показал бы мое ощущение от увиденного. Я был поражен и буквально пленен курсом уже с момента заставки – оформление, звуки, музыка, голос преподавателя, манера подачи материала и его структура, все это захватило и не отпускало до финального результата.

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

1-4.jpg

Останавливаться не хотелось и далее был курс «Blender 2.0», который я жадно проглотил за три недели. Много новой информации и еще более впечатливший меня результат. После курса я взял небольшой перерыв в обучении и закрепил полученные знания самостоятельным проектом.

1-4.jpg

Глядя на эту работу и сравнивая ее с работами ребят с курса Gamedev я понял, что нужно идти дальше, потому что хотелось творить лучше – научиться создавать более сложные формы, рисовать текстуры и разобраться уже до конца, что такое UV-развертка.

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

II Личный проект. Making of

Я сразу же знал, что буду делать что-то сай-файное, mecha-образное. Сама тематика и ее футуристичная эстетика форм и линий мне нравится с детства. В поисках рефов я пошел на артстейшн и пинтерест. Первоначальная задумка состояла в том, чтобы сделать что-то свое, уникальное, но я сразу же столкнулся с тем, что те смутные образы и формы, которые роились в голове, было очень сложно облечь в приемлемую, органичную и интересную по композиции форму. С грустью пришлось признаться себе, что концепт — это весьма сложная наука – нужна насмотренность и набитая рука. Поэтому, чтобы эту самую руку набить, я решил наступить на горло своей песне и повторить толковый реф, дабы обрести опыт создания сложных и красивых форм и в дальнейшем уже использовать этот опыт при создании своих, уникальных моделей. В процессе поиска наткнулся на работы интересного концепт художника Paul Dave Malla, чьи работы мне увиделись сложными, красивыми и наполненными множеством деталей. Выбор пал на Reaper pulse rail gun.

Согласовав модель с куратором, принялся за этап блокинга.

Иногда я встречаю на стримах или в комментариях вопрос от начинающих: «Мне страшно моделировать, я на знаю с чего начать. Что делать?». Я тоже начинающий и я тоже столкнулся с этим вопросом :) Одно дело повторять по уроку за преподавателем и чувствовать спокойную уверенность, что все получается и я со всем справляюсь, и совсем другое – остаться один на один с безликим кубом, камерой и источником света начальной сцены. Есть рецепт борьбы со страхом. Нужно смело удалить начальный, бездушный куб, камеру и свет и создать новый, душевный куб, зайти в режим редактирования и начать двигать вершины. Всё! Это запустит внутреннего творца и дальше работа пойдет сама собой. Затем следующий меш. И еще один, и затем третий. Главное не останавливаться и глушить мысли «боже, как это сделать?!».

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

Для себя определил следующие элементы, реализация которых мне виделась интересной:

  • Часть геометрии выполнить флоатерами.

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

Выбор пал на антенны, щиток на крыше и оптику.

1-4.jpg
  • Воссоздать сетку на трубках. До этого я не создавал текстуру с прозрачностью, только видел в чужих работах и хотелось приобрести подобный опыт.
1-4.jpg
  • Протектор на лапах запечь нормалями, а не делать геометрией. Очень хотелось повторить опыт Максима Соколова, который реализовал это в своем танке на этапе создания нарезки ствола.
1-4.jpg

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

1. Сразу определить для себя с какого максимального расстояния будет показываться модель.

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

Приведу пример. Деталь с дула пушки.

1-4.jpg

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

1-4.jpg

Эти фаски там просто теряются, их банально не видно, но они:

а) увеличивают поликаунт

б) создают лишние проблемы на этапе ХП

в) крадут время на создание, а также последующее решение проблем с артефактами на этапе ХП.

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

1-4.jpg

Резюмируя. Всегда сверяться с тем, насколько значима деталь в общей композиции объекта. Если она играет достаточно важную роль в создании образа – уделить ей максимум внимания, но если она незначительна из-за размера или расположения на модели, то можно смело упрощать геометрию и не тратить поликаунт и время на создания того, что никто в итоге не увидит или же оно будет играть незначительную роль в восприятии модели.

2. Не нужно шиковать на сегментах скругления и стараться на этапе блокинга воссоздать максимально приятные на вид округлости на деталях. Это лишний поликаунт и вопрос целесообразности – будет ли эту часть хорошо видно на рендере или на модели в игре. Пункт, на мой взгляд, перекликается с первым. Все время сопоставлять с тем, а с какого расстояния зритель будет видеть модель? Нужны ли здесь лишние трисы для плавности скругления или же достаточно будет запеченной фаски с хайполи?

3. Не нужно жадничать на сегментах скругления :) Решив экономить на поликаунте можно столкнуться с тем, что крупная деталь в итоге из-за недостающего одного-двух сегментов будет выглядеть угловато и портить впечатление от модели. Вообще, на эту тему мне очень помогла статья университета «Сколько сегментов закладывать в цилиндр? Немного про баланс поликаунта». Очень рекомендую к прочтению всем, кто впервые отправляется в самостоятельное моделирование.

Сам процесс моделирования каких-либо сложных вопросов не вызвал. На курсе ГД Павел подробно дает весьма обширный багаж знаний, которого было достаточно чтобы собрать базовый меш. Из запомнившегося хочу отметить момент, когда возникла необходимость на уже готовом объекте добавить сегмент скругления, чтобы убрать угловатость (см. пункт 3 выше) Как это сделать на полностью круглой детали вопросов не вызывало – инструмент cirlcle в аддоне looptools, а вот как это хорошо сделать на меше, где только часть скруглена мне на тот момент казалось мне нетривиальной задачей. Справиться с ней помог мой куратор, который на примере показал, как использовать тот же самый аддон Looptools, но с инструментами space и relax.

1-4.jpg

(Есть деталь, где нужно добавить сегмент к скруглению. Добавляем ребро)

1-4.jpg

(с помощью инструментов space и relax выравниваем расстояния между вершинами и сглаживаем скругление)

1-4.jpg

(если же нужно сместить скругление по какой-либо из осей, нужно выставить pivot point относительно активного элемента)

01
03

(выбрать нужные ребра скругления и сделав одно из них активным изменять скейл по нужным осям)

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

1-4.jpg

По окончанию этапа получилась весьма приятная модель, которая радовала меня своими формами, пропорциями и насыщенностью деталями.

1-4.jpg

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

Далее был этап запекания, которое я делал с помощью Marmoset toolbag, и, наконец, один из интереснейших этапов – текстурирование.

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

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

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

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

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

В качестве примера, покажу процесс создания текстуры для антенны.

1-4.jpg

Для начала я создал базовый материал. Это заливающий слой с каналами цвета, рафнеса и металик, который я выкрутил в ноль, так как материал планировался быть из пластика.

1-4.jpg

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

01
03

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

01
02

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

01
02

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

Для этого я выполнил следующие действия:

  • На слой с текстурой узора добавил якорную точку.
  • Создал новый заливающий слой с более темной краской для впадин и потертостей
  • На этот слой наложил маску и заливающий подслой со ссылкой на эту якорную точку.
  • Тоже самое проделал для создания вариативности по рафнесу.
01
02

Далее пришло время сколов и царапин. Был создан заливающий слой с каналами цвета, высоты и рафнеса.

1-4.jpg

На этому слое, через маску, были наложены генератор Fiber glass edge wear и текстура с царапинами Grunge Scratches Rough.

1-4.jpg

Ну и, конечно же, грязь, куда без нее.

Для грязи я создал группу слоев с вариативностью по цвету и на группу наложил маску со следующими подслоями:

1-4.jpg

(MG Dust – генератор, покрывший антенну пылью)

1-4.jpg

(dirt – старый, добрый генератор грязи в щели)

1-4.jpg

(MG ground dirt – генератор грязи, который я наложил с режимом наложения subtract для того, чтобы задать вариативность покрытия предыдущими двумя генераторами)

1-4.jpg

(растер всю эту грязюку-пылюку текстурой Grunge wipe dusty с режимом наложения subtract)

1-4.jpg

(ну, а чтобы получившийся узор грязи и пыли был чуть менее ярким на изгибах детали, наложил генератор Curvature так же с режимом наложение subtract)

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

Молодец, сказали они.

Хорошая чистая модель, сказали они. :)

Но это лишь база, а теперь…

1-4.jpg

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

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

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

1-4.jpg

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

1-4.jpg

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

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

Покажу на примере, как я это делал.

1-4.jpg

(в фотошопе открываете фото с интересующим вас изображением)

1-4.jpg

(накладываете ч/б gradient map)

01
02

(с помощью инструмента levels добиваетесь контрастного ч/б изображения, когда царапины отчетливо белые, а пространство вокруг них максимально черное)

1-4.jpg

(с помощью кисточки закрашиваете оставшееся пространство черным цветом)

1-4.jpg

(кадрируем получившееся изображение и получаем кастомную альфу)

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

1-4.jpg

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

Так же, используя заготовленные ранее альфы я добавил уникальные повреждений на ряд деталей.

Приведу пример с уже рассмотренной ранее антенной.

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

1-4.jpg

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

1-4.jpg

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

1-4.jpg

Разводы от дождя — это слой заливки с подслоем в виде текстуры подтеков и дополнительная маска небольшой ручной корректировкой с помощью Mask Editor и ручного докрашивания кистью.

01
02

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

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

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

1-4.jpg

Мне понравилась окружение из сцены под номером 1, а в сценах 2 и 3 композиционное расположение моделей.

1-4.jpg

Решение же по выбору света и цвета было максимально быстрым. В один из дней я смотрел «Человек паук: нет пути домой» и в одной из сцен был свет, увидев который, я сразу понял, что это то самое – комплементарная пара плюс «золотой час».

1-4.jpg

Саму сцену разбил на:

1 – передний план с моделью, пропсами, волюметрикой и двумя типами света – холодным и теплым. Текстуру почвы я создал в Quixel Mixer, а с помощью Quixel Bridge подтянул в сцену пропсы с травой, стволами;

2 – задний план гор, роль которых выполняли плейны с дисплейсментом и текстурой камня + свет, который создавал нужные цветовые акценты;

3 – плейн с текстурой неба.

Чуть более подробно хочу остановиться на композиционном решении.

1-4.jpg

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

1-4.jpg

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

1-4.jpg

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

1-4.jpg

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

III Заключение

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

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

Для тех же читателей, кто, как и я, только начинает свой путь хочу дать несколько советов:

  • Дорогу осилит идущий. Не знаете с чего начать? Просто сделайте один шаг, хотя бы один. Создайте примитив и начните из него лепить хоть что-то. Устали, нет сил? Просто сделайте в день хотя бы одно действие в 3d приложении, сдвиньте одну вершину. Как показывает практика, на этом сложно остановиться и может так получиться, что вы на несколько часов погрузитесь в моделирование, хотя изначально казалось, что сил нет.
  • Иногда останавливайтесь, замедляйтесь и анализируйте окружающие вас предметы. Изо дня в день видя привычные вещи наш взгляд замыливается и мы порой не видим тех уникальных особенностей, которые их делают более интересными. Здесь потертость, тут царапина, тут краска выцвела чуть больше, а тут когда-то стояла кружка с чаем. Все это делает объект исследования наполненным историей, более контрастным и запоминающимся.
  • Не ставьте кружку с чаем перед клавиатурой!

Автор: Валерий Зельманчук

219
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.113 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)