Making of «АК-45 «JACKAL»

Making of «АК-45 «JACKAL»

I. Знакомство

Привет, меня зовут Алексей, мой Artstation: https://www.artstation.com/alexeytrofimov

Я из Москвы, работаю инженером (IT) в банке. У меня экономическое образование, художественного нет. Сейчас мне 29 лет, и, поработав инженером, я понял, что это не то, чем я хотел бы заниматься. Тяжело работать морально, когда нет конечной цели. Моя текущая работа — это процесс, работа ради работы…

В CG и Digital я не первый день, мне всегда были интересны технологии и компьютерная графика, особенно в играх. Я изучил и опробовал разный софт: 3ds Max, Maya, ZBrush, Substance Painter, Premier Pro, After Effect, Photoshop и т.д. Но основными были 3ds Max и Photoshop. За это время я много чего узнал, но к созданию серьёзного законченного проекта был не готов, и о крутой визуализации вообще не было и речи. В основном моими работами были планировка своей комнаты, квартиры, дизайн мебели на заказ, простой монтаж под музыку и т.д. Все свои знания и умения я использовал для себя.

Когда неприязнь к работе начала усиливаться, на моем пути вовремя встретился университет Kaino. Всё поменялось после прохождения марафона, далее я прошёл курсы «Blender 2.0», «GameDev» и посмотрел стримы «GameDev». Это дало сильный буст. За короткий промежуток времени я получил много информации, которую ранее приходилось долго собирать по кусочкам на просторах интернета.

По окончании курса «GameDev» я сразу же приступил к личному проекту в портфолио. Как уже говорила Татьяна: «Я осознавала, что если не сейчас, то уже никогда, ведь, когда откладываешь на потом, то это "потом", зачастую, не наступает». И я полностью согласен с её словами. В любую свободную минуту я старался сесть за проект. В день выходило около 3-4 часов, приходилось сидеть до 2 ночи, а иногда вовсе не получалось за целый день. Работа, дела по дому и ребёнок очень сильно съедают свободное время.

P.S. Спасибо жене за терпение и за то, что отвлекала нашего полуторагодовалого сына от компьютера.

О проекте

Мне всегда нравилось огнестрельное оружие в играх. Особенно футуристичное, с узнаваемыми чертами настоящих аналогов нашего времени. А кастомные пушки ручной работы, сделанные на коленках — вообще что-то запредельное. Например, оружие в Metro 2033 и Far Cry New Dawn и единственная кастомная штурмовая винтовка в Call of Duty Infinite Warfare под названием «Волк», которая и стала основным референсом для создания данного проекта. Она имеет узнаваемые черты АК, футуристичные обвесы и изоленту — это просто мой идеал! Как по мне, гладкие и идеальные модели выглядят скучно и уныло, глазу не за что зацепиться, так что детали — наше всё.

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

Так я приступил к сбору референсов:

Референс-лист
Референс-лист

Этих референсов мне хватило для выполнения 90% работы. Почти все интересующие меня детали в них были. Остальные 10% я искал по факту. Для поиска использовал Artstation, Яндекс и делал скриншоты из самой игры.

II. Making of

Моделирование

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

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

Ниже — финальная LP и HP:

HP | LP

Текстурирование в Substance painter

Передача цвета

Первое, с чего советую начать — это настроить Color Management в Blender и Color Profile в Substance painter (далее «SP»). Так цветопередача будет максимально точной. Я использовал стандарт ACES. Ниже пример, как отображаются цвета во вьюпорте SP и на рендере CYCLES в Blender. В обоих случаях использовалась одна и та же HDRI и один и тот же плейн с текстурой ColorCheker’а.

Как видите, цвета максимально похожи:

ACES в Blender и Substance Painter
ACES в Blender и Substance Painter

Настройка и установка ACES

Substance Painter

Цветовой профиль ACES для SP можно найти на ArtStation или на просторах интернета. Часто его продают за символическую цену. Скачиваете файл, закидываете его на полку и выбираете в разделе Color Profile. Я использую ACESFilm, по мне, он максимально схож по цвету с ACEScg в Blender.

Blender

Официальной полноценной поддержки или аддона ACES в Blender пока нет, но умельцы уже собрали рабочий инструментарий. Он идёт вместо стандартного Color Management в Blender. Самое главное — он полностью бесплатный. После скачивания нужно просто переместить файлы в папку …\*Blender*\*версия*\datafiles\colormanagement.

Советую заранее сделать копию папки colormanagement, чтобы была возможность вернуть стандартный Color Management. Инструкцию и инструментарий можно найти на GitHub.

Albedo (Base Color)

Я очень долго не мог понять, почему мои материалы выглядят плохо на финальном рендере. Как оказалось, просто не нужно делать 100% чёрный цвет у Albedo. Чем темнее цвет объекта, тем сильнее он поглощает свет и материал выглядит некорректно. Но бывают исключения: если вы пытаетесь наложить текстуру на чёрную дыру, то в этом случае чем чернее, тем лучше.

PBR Validate

В SP есть фильтр PBR Validate, через него можно проверить альбедо на черноту. Создаем слой Paint — канал Base color переводим в режим наложения Passthrough — добавляем к этому слою фильтр PBR Validate. После это красным цветом подсветятся проблемные участки, которые нужно исправить.

PBR Validate

Пытайтесь добиваться того, чтобы ваша карта Albedo была не очень контрастной и тёмной. Для осветления тёмных участков я использовал фильтр Levels. Ниже пример, как должно выглядеть Albedo:

Светлый вариант правильный

Стекло

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

P.S. По финалу нужны будут все текстуры, кроме альбедо.

Детали на стекле

Также я затекстурил грязь и сделал для неё отдельный канал с маской.

Грязь и маска

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

Канал маски
Канал маски

С помощью этой маски можно будет с лёгкостью подмешать грязь к процедурному стеклу:

Добавление грязи через маску
Добавление грязи через маску

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

Напыление на стекле

Этого эффекта я добился с помощью нода Velvet BSDF.

Эффект напыления
Эффект напыления

Окружение

Для объема сцены я добавил волюметрию (volumetric) и пыль. Для волюметрии понадобится куб и материал с нодом Principled Volume. А с пылью я решил немного заморочиться и добавить вариативности.

Нашёл вот такую текстуру:

Исходник для пыли
Исходник для пыли

Сделал из неё коллекцию Dust_particle, состоящую из плейнов с разными текстурами частиц, и подключил данную коллекцию в Particle System.

Коллекция для пыли и настройки системы частиц
Коллекция для пыли и настройки системы частиц

Результат:

Рендер пыли
Рендер пыли

Но с пылью лучше не перебарщивать, а то получится как у меня на первых рендерах:

Неудачный рендер и пыль
Неудачный рендер и пыль

Аддон Photographer (цена 14$)

Опишу настройки, которых нет в Blender по умолчанию.

Камера

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

К примеру, если вы измените показатель Aperture (размер диафрагмы), то это изменит и экспозицию; Shutter Speed (скорость затвора) повлияет на размытие движения. Также для новичков можно включить автоэкспозицию или автофокус. С аддоном Photographer не придётся гадать, какие настройки нужно выставить, все работает по реальным законам физики. Соответственно, чтобы пользоваться данным аддоном, нужно обладать базовыми знаниями работы с фотографией.

P.S. Можете искать уроки, подсказки, шпаргалки и статьи по фотографированию. Например, такие:

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

Добавление камер

Свет

Аддон Photographer добавляет удобное меню-список Light Mixer для работы со светом. В нем появляется возможность настраивать цвет по шкале Кельвина.

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

Light Mixer

Свет в сцене

Каких-то секретных знаний, универсального решения или кнопки «Сделать красиво» у меня нет. Я около месяца потратил на первый рендер в поисках красивого света, но потом как по щелчку я стал понимать, что и зачем я делаю. Последние 13 рендеров я сделал уже за 2 недели.

Могу сказать одно — свет нужно чувствовать. Если вы пытаетесь сделать визуализацию какого-то предмета, почитайте про предметную фотосъёмку. Принципы работы камеры и расстановки света для рендера идентичны с реальной фотосъёмкой, только в 3D редакторе куда больше возможностей и меньше ограничений.

При первом рендере у меня было около 20 источников света (не надо так). Во втором количество света уменьшилось, картинка стала лучше, но все равно оставалась плоской. Мне посоветовали расставить свет в сермате без текстур — так лучше видно, куда попадают лучи света. И я понял, что четырёх источников света вполне достаточно, чтобы подсветить объект.

При выставлении света ориентируйтесь на референсы, смотрите, куда падает тень и с какой стороны блики, чтобы понять, откуда светит источник. Как основной инструмент для подсветки сцены я использовал свет типа Area, он единственный физически точный свет в Blender.

Настройки света Area, которыми я пользовался

Color — цвет (RGB и Kelvin).

Power — интенсивность (есть разные единицы измерения).

Shape — форма источника влияет на пятно света и блики. Если выбрать форму Disk, то пятно света будет более мягкое, как и края у бликов, нежели у Square.

Size — чем меньше размер источника света (или чем он ближе к освещаемому объекту), тем более жёсткие тени он даёт. Если он больше (или дальше), то наоборот.

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

Настройки света Area
Настройки света Area

В итоге в сцене я задействовал семь источников света и HDRI. Четыре из них предназначены для АК-45, остальные для других объектов в сцене, подсветки бетона и деталей.

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

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

Источники света по отдельности

Расстановка света

За основу я взял трёхточечный принцип освещения, но в процессе все поменялось — я начал расставлять свет от пятна прожектора.

Финальный свет: начал с белого прожектора сверху, он дал основное освещение и жёсткие тени → добавил 2 источника (тёплый и холодный), они заполнили тени и дали блики → добавил 2 зелёных для подсветки бетона → добавил 1 зелёный для блика на щёчке приклада → ещё 1 зелёный для подсветки граффити → последним я покрутил HDRI для получения приятных бликов.

Порядок расстановки света

Финальный рендер был в Cycles с разрешением 2 560 х 1 440 и 20 000 семплов.

Финальная обработка

Для улучшения финальной картинки в Compositor я добавил два нода:

1) Glare в режиме Fog Glow — добавляет свечение вокруг ярких пикселей;

2) Lens Distortion — создает эффект искажения линзы и разложения света (хроматическая аберрация) по краям картинки как у плёночного фотоаппарата.

Свечения, искажение и хроматическая аберрация

Наконец добавляем виньетку. Она затемняет края и таким образом фокусирует внимание в центре картинки. Её можно сделать в Compositor Blender или Photoshop. В Photoshop мне результат понравился больше (Filter — Lens Correction или Shift + Ctrl +R).

Как сделать виньетку в Photoshop

Сохраняем — и финальная иллюстрация готова!

III. Заключение

Желаю вам успехов в CG, побольше идей и вдохновения. Не ленитесь при создании работы для портфолио, это в будущем принесёт плоды. Не бойтесь сложных задач — только такие задачи и заставляют вас развивать свои навыки и знания. Не останавливайтесь на половине пути к своей цели!

У меня в планах на ближайший год подготовить хорошее портфолио и уйти на фриланс.

P.S. Спасибо, что дочитал до конца. Надеюсь, моя статья была интересной и полезной для тебя!

Автор: Алексей Трофимов

5353
27 комментариев

Без обид, но выглядит как калаш, который школьник облепил псевдовысокотехнологичной фигней.

Если интересно, могу описать совсем печальные моменты.

8
Ответить

интересно

Ответить

могу описать совсем печальные моменты

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

1
Ответить

Беломор - папиросы, а не сигареты. И пачка другая

4
Ответить

Когда увидел это сразу перестал читать, лол

Ответить

Облегченный рамочный приклад + переднее расположение магазина + обвес ствола = смещение центра тяжести сильно вперед.
Если приклад был складным - теперь не будет из-за микрух по бокам.
Печатная плата над стволом - зажарится при первой очереди.
И главный вопрос - функциональность. Зачем это? В "Элизиуме" у обвеса АКМ было назначение. Ситуация с переводчиком огня отлично иллюстрирует в чем тут проблема.

Визуально - красиво, на уровне. Впечетляющий объем работы. Смотри на стволы серии Metro, у них реалистичный "кустарный" стиль, и 1-3 Killzone - у них "альтернативный, с элементами реальных стволов".

4
Ответить

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

Ответить