Как создать оружие для Counter-Strike 2 в стиле ретро-аппаратуры
Петру Грати рассказал о процессе создания скина для оружия Audio Sawed-Off для Counter-Strike 2 и упомянул использование перспективной выпечки — хитрости, которая помогает, когда вы не можете редактировать низкополигональную модель.


Введение
Здравствуйте, я Петру Грати, 3D-художник по твёрдым поверхностям из Молдовы. Сейчас я студент, но взял академический отпуск, чтобы сосредоточиться на личных проектах. Я начал практиковать 3D-искусство во время пандемийных локдаунов, используя своё свободное время для изучения Blender с помощью видеороликов на YouTube. Мне не терпится поделиться некоторой информацией в этой статье, особенно о технике перспективного запекания, которую я использовал в своём последнем проекте: Sawed-Off Audio.

Хотя в то время я не до конца это осознавал, меня с детства тянуло к искусству. Мне нравилось проявлять креативность с Lego, играми типа «песочницы», работой по дереву и другими практическими занятиями. Тем не менее я никогда не думал, что буду заниматься искусством как карьерой, пока не открыл для себя 3D-искусство в 2020 году. Это открытие привело меня к поступлению на программу Game Graphics в Howest DAE. Я занимаюсь моделированием уже пять лет.
Колледж научил меня ценным дополнительным навыкам, таким как теория искусства, процедурные рабочие процессы в Houdini и скрипты, а также дал мне возможность познакомиться с замечательными художниками и друзьями. Тем не менее я считаю свои основные навыки самостоятельно приобретёнными, развитыми за тысячи часов, проведённых за моделированием с использованием различных техник и зацикленности на мелких деталях для достижения максимально возможного качества моделей.
Сейчас я провожу большую часть своего времени, создавая контент для мастерской Counter-Strike 2. Это игра, в которую я играю, и хотел бы работать над ней профессионально, а участие в мастерской — это самое близкое, что я могу сделать для достижения этой цели на данный момент. Я работал почти над 400 проектами, 79 из них — оригинальные дизайны, а остальные — цветовые вариации. Один из скинов, которые я сделал с моим другом EGODEATH, Tec-9 Slag, официально добавлен в игру как часть первых 17 скинов, добавленных в CS2. Мой последний проект, Sawed-Off Audio, — это тот, о котором я расскажу подробнее в этом интервью.


Начало работы над Sawed-Off Audio
Я попал в эту нишу после знакомства с Миллией, опытным художником-фантастом, который работал над космическими кораблями для Fractured Space и создал несколько потрясающих скинов оружия для CSGO.
Она познакомила меня с другими художниками, занимающимися аналогичной работой, такими как Emu, Sparkwire и, самое главное, EGODEATH. Он стал хорошим другом и сыграл большую роль в том, чтобы помочь мне начать. Работа с ним действительно расширила мои возможности, мы сотрудничали в большинстве моих проектов, и около 80% моих работ были сделаны вместе с ним.
Я потратил тысячи часов на переработку внутриигровых моделей оружия, чтобы создать чистые, пригодные для использования базовые текстуры либо для себя, либо для других художников, которые могли бы использовать их для создания собственных дизайнов. Это повторяющийся и часто утомительный процесс, но он необходим для достижения высоких результатов, и я пришёл к тому, что ценю его как способ тренировки своих глаз и терпения. Я полностью переделал 16 оружий CSGO, которые больше не используются, и пока что 20 из 35 моделей CS2. Я представил 5 из них в старом портфолио:
Я взял академический отпуск, чтобы было больше времени для творческих проектов помимо «фабричной работы» по переработке базовых моделей оружия. Этот процесс — только отправная точка. Как только модель готова, начинается настоящая дизайнерская работа. Я всегда увлекался компьютерным оборудованием, ценя как производительность, так и эстетику. Я часто ловлю себя на том, что изучаю продукты, которые не собираюсь покупать, просто чтобы понять их форму и представить, как их моделировали оригинальные дизайнеры. В последнее время я полюбил старые серые компьютеры с зелёными печатными платами, машины, не тронутые модной тенденцией «RGB-геймеров» или минималистичной монохромной эстетикой. Есть что-то в стиле ретро-аппаратуры, связанном с эпохой Windows Aero, что я действительно ценю. Однажды я наткнулся на старый модуль аудиоинтерфейса, забавно называемый Sound Blaster, который в итоге вместе с другими элементами ретро-компьютеров превратил в дизайн оружия.
Я был взволнован, когда наконец-то смог попробовать технику, которую исследовал в течение долгого времени, но у меня не было ни знаний, ни возможности использовать её до сих пор: перспективное запекание. Впервые я обнаружил её в руководстве Де Пюисо по созданию 3D-иллюзий с помощью проекций, метод, который позже использовался во многих проектах Миллии, и в конечном итоге был адаптирован в более современный рабочий процесс NameJeff21, который любезно научил меня, как это работает. Чтобы сломать лёд и сделать его частью своего обычного рабочего процесса, я решил изучить и применить его в этом проекте.
Моделирование
Я предпочитаю моделировать с использованием метода моделирования на основе подразделения поверхностей в Blender, несмотря на то, что у меня есть опыт работы с приложениями CAD, такими как Plasticity и Fusion 360. Причина такого выбора заключается в том, что полигональное моделирование позволяет вносить очень точные и тонкие изменения, позволяя мне максимально точно соответствовать оригинальной низкополигональной форме. Структура модели CAD основана на строгих геометрических правилах, которые сложно согласовать, когда низкополигональная модель не идеальна и имеет оптимизации наклона или даже несовпадающие стандарты. Поскольку моделирование на основе подразделения позволяет более гибко подгонять форму, оно также обеспечивает наилучшее запекание карт нормалей.
Я пришёл к выводу, что CAD — отличный инструмент для художников, работающих с твёрдыми поверхностями, особенно для быстрого и эффективного перебора концепций. Однако я предпочитаю использовать его в рабочих процессах от высокого к низкому, продолжая полагаться на моделирование на основе подразделения для рабочих процессов от низкого к высокому. Не всё можно эффективно смоделировать, используя только подразделение; некоторые формы просто не стоят усилий, чтобы добиться хороших результатов. Ярким примером может служить любой разрез на поверхности цилиндра, который всегда будет приводить к некоторой степени сжатия. Чтобы решить эту проблему, я начал использовать булевы операции для таких элементов, которые оставляют острый угол на стороне разреза и требуют постобработки. Художники подходят к этой постобработке по-разному в зависимости от своих потребностей.
Я предпочитаю сглаживать эти области с помощью полировки в ZBrush — популярного метода, который включает в себя плотное перестроение всей модели, использование ползунков полировки для сглаживания на основе угла, а затем уменьшение количества полигонов для оптимизации перед экспортом её для запекания. Для художников, не желающих использовать ZBrush, хорошим альтернативным вариантом может стать шейдер скоса в Marmoset Toolbag 5.
Я сделал урок по полировке в ZBrush на своём канале YouTube и настоятельно рекомендую ознакомиться с дополнительной информацией, написанной об этой технике Эриком Коррейей на ArtStation.
Топология
Я считаю, что если только топология недеформируемой высокополигональной модели не должна соответствовать определённым рекомендациям для проекта, единственное, что действительно имеет значение, — это затенение. Пока затенение и запекание хороши, не имеет значения, сколько N-угольников или насколько беспорядочна топология, уменьшенная в ZBrush.
Я заметил, что во многих школах игрового искусства, включая мою, преподаватели склонны демонизировать N-угольники и стыдить треугольники. Хотя использование только квадов может быть хорошей временной практикой для новичков, привыкающих к топологии, это редко объясняется ученикам. В результате многие приходят к выводу, что их модели должны состоять только из квадов даже после окончания учёбы. Топология с равномерным распределением всех квадов может выглядеть красиво в рендерах портфолио в виде каркаса, но дополнительное время на производство и компромиссы, на которые приходится идти, чтобы сохранить её, часто не стоят того.

Нам не разрешено изменять низкополигональную модель в CS2 Workshop, и мы можем отправлять только PBR-текстуры для существующих моделей. На первый взгляд может показаться, что это сокращает мою рабочую нагрузку, но на самом деле это замедляет весь процесс. Это вынуждает использовать рабочий процесс от низкого к высокому и ограничивает творческие возможности.
Чтобы обойти это ограничение, мне пришлось найти способы сделать формы на плоских поверхностях пистолета максимально трёхмерными. Детали карты нормалей часто искажаются под определёнными углами обзора, но я использовал несколько хитростей, чтобы сделать их более убедительными. Например, я слегка сгладил высокополигональную модель, чтобы повлиять на большее количество пикселей на экране зрителя, и намеренно наклонил каждый угол, который в реальной жизни был бы идеальным прямым углом, например, порты, циферблаты или отверстия, чтобы избежать резких переходов затенения.
Единственной частью, которую мне пришлось развернуть, была конкретная деталь, которую я хотел передать через перспективное запекание: печатная плата внутри рукоятки. Текстурирование было упрощено за счёт использования фотореалистичных техник, представленных Иэном Хубертом в его выступлении «World Building in Blender». Забавно, что это просто включало в себя применение фотографий непосредственно в качестве текстур, которые он описал так: «Фотографии фотореалистичны, потому что это фотографии». Этот быстрый и грязный подход позволил быстро выполнить итерацию и упростил отказ от деталей, которые не работали должным образом, деталей, которые в противном случае могли бы быть сохранены просто из-за затраченных усилий на их создание.

Текстурирование
Это то, чем я больше всего хочу поделиться. Я написал об этом подробно, чтобы избежать недопонимания, но, несмотря на длинное объяснение, сам процесс довольно прост, если вы выполните его один раз и привыкнете к нему. Это интересный метод, который даже удивил некоторых профессионалов отрасли, с которыми я им поделился.
Эта техника — удобный инструмент, особенно когда модификация низкополигональной модели невозможна. Однако важно отметить, что она лучше всего работает для небольших участков модели и всё равно требует традиционного запекания под ней, чтобы правильно замаскировать его. Вы можете представить это как вырезание слов из газеты и наклеивание их поверх других абзацев, по сути заменяя детали.
Он лучше всего работает с прямоугольными формами, не так хорошо — с изогнутыми, поэтому круглая рукоятка моего дробовика имеет четыре угловых опорных элемента.
Настройка:
Есть два уровня сложности: цвет и карта нормалей, для последнего требуется несколько дополнительных шагов. Чтобы начать, у нас должны быть низкополигональная и высокополигональная модели.
- Первый шаг — обработать высокополигональную модель как объект только для рендеринга, который никогда не будет экспортироваться. Желательно выполнить эти шаги на копии основного файла.
- Камеру нужно разместить в направлении, откуда текстура будет иметь наибольший смысл. В моём случае — перпендикулярно плоскости для печатной платы и идеально выровненной по модели игрока в игре для выключателя питания сзади.
- Выравнивание камеры перпендикулярно поверхности можно сделать очень легко вручную, однако сопоставление перспективы камеры Blender с моделью игрока в игре может оказаться сложной задачей. Плагин GeoTracker, который стоит довольно дорого, но имеет бесплатную пробную версию, предоставил мне инструменты для лёгкого сопоставления фокусного расстояния и положения, но это не обязательно.
- Дублируйте низкополигональную модель, она будет нашим поддельным высокополигоном для запекания. Оттенки не имеют значения.
- Её UV должны соответствовать рендеру. Перейдите в редактор UV, войдите в режим просмотра камеры и нажмите F3 в 3D-виде, чтобы найти и применить «Проекцию из вида».
- Это хорошая практика, особенно для развёртывания от первого лица игрока, несколько раз подразделить объект или изменить его топологию перед проецированием, иначе стороны могут исказиться при запекании.
После выравнивания нам нужно убедиться, что мы подготовили все материалы и источники света для рендеринга. В моём случае я использую это для схем, покрытых прозрачным пластиком, и выключателя питания.
- И прозрачный пластик, и выключатель питания используют материал Blender Glass BSDF с модифицированными параметрами по моему вкусу, причём у последнего изменён цвет. Увеличение шероховатости стекла BSDF размывает изображение печатной платы, что делает эффект немного более правдоподобным.
- Для печатной платы используется фототекстура, как и для кабелей, пока я не решил дать им отдельные материалы с использованием Fresnel для улучшения читаемости их кривизны в рендере.
- Настройка освещения должна предотвращать появление большого количества резких бликов, потому что запекание их в базовый цвет приведёт как к реальному и движущемуся блику в движке, так и к статическому фальшивому. Несмотря на то что изображение немного размыто из-за отсутствия теней, я решил разместить свет в том же положении, что и камера печатной платы, чтобы избежать бликов как можно больше. Кнопка питания на удлинителе обычно имеет свет внутри, поэтому вид с перспективы для неё включает как внутреннее, так и внешнее освещение.
Запекание цвета:
- Как только всё настроено, мы можем приступить к рендерингу, предпочтительно с достаточно высоким разрешением. Мы преобразуем этот рендер в подходящую текстуру поверх низкополигональной модели.
- Низкополигональная модель и поддельный высокополигональный объект могут быть экспортированы в печь Marmoset Toolbag. Добавьте рендер в качестве цветовой текстуры поддельного высокополигонального объекта и запеките его на низкополигональную модель. Я сделал это 5 раз для цветовых текстур, с каждой из 4 сторон рукоятки и с точки зрения в игре для выключателя питания. Для каждого запекания требовался другой поддельный высокополигональный объект, развёрнутый с предполагаемого направления камеры.
- Запечённые цвета можно добавить в Substance 3D Painter и замаскировать с помощью идентификатора материала и/или ручной росписи.
Нормальное запекание:
Как упоминалось ранее, технику модернизированного карт нормалей мне научил NameJeff21, соавтор Featherweight MP9. В этой технике он использовал перспективное запекание, чтобы правильно запечь углы в 90 градусов со стороны игрока. Этот процесс немного сложнее и требует больше усилий.
- Чтобы запечь карты нормалей из перспективы, материал визуализируемых объектов должен эффективно превратиться в нормаль мирового пространства. Это можно сделать, просто подключив узел Normal Map к поверхности выхода материала. Оси 3D в Blender и Marmoset отличаются, поэтому между ними должен быть узел Mapping, который поворачивает ось X на -90 градусов. Хороший способ выяснить, работает ли всё как задумано, — убедиться, что левая сторона красная, а верхняя — зелёная.
- Все виды компоновки должны быть отключены для рендеринга, в том числе меню Editor Render > Sampling > Render > Denoise. Рендер должен быть сохранён в формате OpenEXR.
- Откройте тот же файл Marmoset Toolbag, который использовался ранее в MT4 для запекания цвета, потому что эта техника ещё не работает в MT5 по неизвестным мне, NameJeff21 или разработчикам Marmoset причинам.
- Загрузите EXR-рендер в качестве карты нормалей на поддельный высокополигональный объект. Убедитесь, что Scale & Bias отключены, а Object Space включён. Он будет странно затеняться на высокополигональном виде в окне просмотра, но запечётся как раз для карты нормалей на низкополигональной модели.
- Карта нормалей будет беспорядочной в любом другом месте, кроме точки фокусировки рендеринга. Её нужно обрезать и добавить поверх традиционной карты нормалей. Я решил объединить их в Substance 3D Painter. Я создал новый файл специально для этого и импортировал традиционные и перспективные карты нормалей, не назначая ни одной из них в настройках набора текстур. Создал слой заливки для каждого, поместил текстуры в нормальный слой и переключил нормальный канал с Normal Map Detail на Normal, чтобы полностью заменить цвет, а не смешивать то, что находится под ним.

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

Заключение
Мне ещё многое предстоит узнать о дизайне твёрдых поверхностей, но моё мнение, которое почти всегда работает, — это поддержание хорошего соотношения блочных и изогнутых поверхностей; слишком много того или другого приводит либо к оружию в стиле Roblox, которое выглядит как выдавленные 2D-эскизы, либо к кристаллизованной сахарной вате. Хорошо известным примером хорошего дизайна формы является АК-47, который эстетически приятен, потому что сочетает изогнутую пылезащитную крышку, деревянную рукоятку, приклад, упор для руки и магазин в форме банана с блочной нижней частью, железным прицелом и другими мелкими деталями.
Я очень часто вижу чрезмерно блочные научно-фантастические дизайны с кубическими рукоятками, которые выглядят так, будто порежут мне руку своими острыми краями, если я осмелюсь их подержать. Я очень требователен к научно-фантастическому дизайну. Думаю, что лучшими образцами для вечных референсов являются дизайны оружия, опубликованные Алексом Рябцевым на его ArtStation, и модели терранов StarCraft 2 (ретро).
Новичкам, особенно тем, кто пытается превратить это в свою профессию, я предлагаю изо всех сил постараться найти нишу, которой они увлечены в этой области неограниченных возможностей, что-то, что им понравится делать, одновременно принося пользу тем, кто её потребляет. Искусство — это путешествие длиною в жизнь, практика, которая способствует любопытству и постоянным изменениям, вы должны действительно любить то, что вы делаете, чтобы заниматься этим в течение длительного времени. У меня в настоящее время зарегистрировано 6400 часов работы в Blender. Бог знает, сколько ещё у меня есть в менее, но значительно используемом программном обеспечении. Около трети моего времени, не связанного со сном, было потрачено на 3D за последние 5 лет. Искусство изменило мою жизнь так, как мне нужно больше слов, чем в этой статье, чтобы объяснить. Найдите свою страсть, держитесь за неё и никогда не отпускайте.
Петру Грати, 3D-художник
Интервью проведено Глорией Левин
Автор: Petru Grati
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.