Создание материалов для Unity в Substance Designer

в 7:14, , рубрики: PBS, Physically Based Shading, substance designer, unity3d, разработка игр, создание материалов, узлы, шейдеры

Создание материалов для Unity в Substance Designer - 1

Ужасные мучения

Текстурирование и создание игровых материалов всегда были интересной… и мучительной работой одновременно. До перехода на Substance Designer я использовал для создания всех нужных карт Photoshop и xNormal. Приходилось много раз переключаться между двумя этими приложениями, и это надоедало. Теперь я избавился от этой проблемы.

Substance Designer (SD) — это программное обеспечение, позволяющее создавать материалы и текстуры «на лету». В нём используется удивительно простая система узлов. Я художник, и обычно меня очень пугала работа с узлами (и вообще всем, кроме кисти). Честно говоря, когда я впервые увидел SD, то слегка вздрогнул. К счастью, у авторов программы есть видео, демонстрирующие её возможности. Они дают такого мотивирующего «пинка», что вам приходится совершить «прыжок веры».

Почему SD?

Сначала определимся, почему мы остановились именно на Substance Designer? Первая причина — Unity перешёл на новую систему материалов под названием PBS, Physically Based Shading («физически обоснованный шейдинг»), хорошо описанную в этом потрясающем посте. Мы хотели использовать эту новую технологию по максимуму.

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

Последняя причина в том, что рабочий процесс переноса материалов в Unity просто безупречен. Можно экспортировать весь материал в Unity, изменять его уже там… и всё работает без проблем!

Примеры

Вот примеры материалов, созданных нами в Substance Designer.

Создание материалов для Unity в Substance Designer - 2
Золото, серебро, GreebleCity и лес.

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

Ищем золото!

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

Если вы знаете Substance Designer в совершенстве, вы, наверно, увидите способ сделать материал гораздо лучше. Если это так, то расскажите нам! С другой стороны, если вы полный новичок в этом ПО, я предлагаю вам сначала посмотреть очень полезные обучающие видео компании Allegorithmic.

Материал «золото» на самом деле довольно просто создать, но он всё равно требует множества настроек. Вот как выглядит окончательный граф в Substance Designer.

Создание материалов для Unity в Substance Designer - 3

Я обычно начинаю с настройки Specular/Glossiness (отражения/глянцевости). В основном потому, что я больше к ним привык, чем к Metallic/Roughness (металл/шероховатость). Это уже может быть странно, потому что настройка Metallic/Roughness — стандарт в Unity.

Во-вторых, мне нужна была красивая металлическая или каменная структура с трещинами и вмятинами.

Создание материалов для Unity в Substance Designer - 4

Cracks & Grain (трещины и зернистость) — это очень малозаметная структура, которая в основном видна на карте нормалей (Normal), и совсем немного — на карте диффузности (Diffuse). Я начал с мозаичного шаблона и соединил его с узлами Clouds (облака) для получения здесь малозаметной структуры.

Создание материалов для Unity в Substance Designer - 5

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

Создание материалов для Unity в Substance Designer - 6

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

Создание материалов для Unity в Substance Designer - 7

Добавив к карте Cracks & Grain простую градиентную карту (Gradient map), я могу быстро создать карту Diffuse.

Но нам кое-чего не хватает. В Substance Designer удобно то, что можно работать с ранее созданными картами. Здесь я взял карту нормалей, превратил её в карту Curvature, увеличил значения и превратил всё это в цветовую карту (color map). (Карты Grayscale и Color не смешиваются.)

Создание материалов для Unity в Substance Designer - 8

Смешав их поверх уже сущестующей карты Diffuse, мы получим немного более интересную текстуру.

Создание материалов для Unity в Substance Designer - 9

И, наконец, для отражения (Specular) я использовал простой узел Clouds. С помощью градиентной карты я нанёс немного более тёмные цвета, чем в диффузной карте, а поверх добавил детали с помощью curvature с увеличенными значениями.

Для глянцевости (Glossiness) я использовал тот же узел Clouds, осветлил результат (чем ярче, тем больше блеска), добавил увеличенные детали Curvature, и на этом всё!

Создание материалов для Unity в Substance Designer - 10

Создание материалов для Unity в Substance Designer - 11

Осталось экспортировать материал, просто нажав на Export. SD экспортирует файл .sbsar в Unity, и он работает в точности как материал. Он автоматически располагает карты в нужных местах, после чего позволяет выполнить настройку. Должен сказать, что материалы в Unity выглядят немного иначе, чем в самом Substance Designer, но, возможно, создатели ПО исправили это в последнем обновлении.

Создание материалов для Unity в Substance Designer - 12

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

Также тут есть кнопка Randomize. При её нажатии материал изменяет все сгенерированные значения. Сейчас моё золото выглядит не самым лучшим образом, потому что в нём всегда используются небольшие значения для облаков (clouds) и трещин (cracks). Однако если немного поднять значение cracks и нажать кнопку Randomize, то произойдёт следующее:

Создание материалов для Unity в Substance Designer - 13

Это уже близко к нужной нам процедурной генерации. Каждый раз материал будет выглядеть немного иначе.

Но SD способен на большее: можно раскрывать нужные узлы и функции. После этого они становятся видимыми в Unity, и их можно настраивать. В моём примере я раскрыл две функции: количество трещин по осям X и Y. В редакторе можно перетаскивать ползунки, настраивая материал на свой вкус.

Создание материалов для Unity в Substance Designer - 14

Рекомендуем!

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

А на прощание вот несколько графов, которые мы создали, осваивая программу. Успехов в работе!

Создание материалов для Unity в Substance Designer - 15

Создание материалов для Unity в Substance Designer - 16

Создание материалов для Unity в Substance Designer - 17

Игра Antegods поддерживается Dutch Cultural Media Fund (Голландским культурным медиафондом), Cultural Industries Fund NL (Голландским фондом индустрии культуры) и Программой Европейского Союза MEDIA.

Автор: PatientZero

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js