В этом уроке, созданном в версии Substance Painter 2019 года, но также применимом и к другим версиям, как более ранним, так и более поздним, мы рассмотрим, как получить ID Colors модели, если они доступны, и использовать их для быстрого создания масок слоёв.
Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.
Текстовая расшифровка видео
Всем привет! В этом уроке, созданном в версии Substance Painter 2019 года, но также применимом и к другим версиям, как более ранним, так и более поздним, мы рассмотрим, как получить ID Colors модели, если они доступны, и использовать их для быстрого создания масок слоёв.
ID Colors, как следует из названия, представляют собой цвета, связанные с вершинами или полигонами 3D-модели. Это не те цвета, которые отображаются при рендеринге, а дополнительная информация, хранящаяся в канале данных объекта «Vertex Colors». Поскольку RGB-значения цвета фактически являются числовыми значениями, их можно использовать в качестве параметров для фильтров и других инструментов.

Substance Painter, как и другое программное обеспечение, может получать эту информацию и использовать её для различных задач. Например, в Substance Painter мы можем создавать маски слоёв, выбирая за одну операцию все геометрические элементы, которые имеют одинаковый Vertex Color.
Когда мы добавляем маску слоя к материалу в проекте, одним из доступных эффектов маски является «Color Selection». Однако после добавления этого эффекта вы можете увидеть сообщение «ID not found», а инструмент «Pick Color» не сможет обнаружить какой-либо цвет на геометрии.

На самом деле во вступлении к этому уроку я уточнил «если они доступны», потому что эти цвета записываются в канал информации объекта «Vertex Colors» при экспорте модели, но эта операция выполняется не всегда, поэтому такие данные иногда могут отсутствовать. Давайте перейдём в Blender 3D, в данном случае версии 2.92, и посмотрим, как назначить Vertex Colors отдельным частям объекта перед экспортом в Substance Painter.

В рассматриваемом примере нам необходимо выделить как минимум четыре области: кабель, две глянцевые пластиковые части корпуса, металлические части разъёма и матовые пластиковые разделители.
Давайте посмотрим на UV-развёртку объекта. Мы видим, что различные части действительно были разделены с помощью seams, поэтому они размещены на разных UV islands. Однако такие острова не всегда легко распознать, и в данной модели их совсем немного, но вам наверняка встретятся гораздо более сложные UV-развёртки. Поэтому мы решаем назначить Vertex Colors.

В окне 3D View переключитесь в режим Vertex Paint и, что особенно важно, включите режим Face Selection в заголовке 3D View. Затем снимите выделение со всего объекта с помощью ALT+A или команды Select → None в заголовке, чтобы можно было начать выбирать различные части и назначать им цвета.


Выделение можно выполнять различными инструментами, которые предоставляет Blender. Поскольку в данном примере разные части разделены и расположены на отдельных UV islands, я могу легко выделять их нажатием клавиши L («Linked»), когда курсор мыши находится над нужной частью.

Я начну с выбора глянцевых пластиковых частей разъёма. По мере выделения они будут менять цвет и перестанут отображать каркасные рёбра.
Чтобы назначить этим частям Vertex Color, сначала выберите цвет в панели Vertex Paint Properties, которую можно открыть или закрыть клавишей N, затем нажмите SHIFT+K или выберите команду Paint → «Set Vertex Color» в заголовке окна 3D View.

Чтобы перейти к следующей группе, снимите выделение со всего объекта клавишами ALT+A, затем повторите процесс: выделите нужные острова, выберите цвет, примените «Set Vertex Color» и продолжайте таким же образом для всех остальных групп. В нашем случае их четыре.

При выборе цветов я рекомендую по возможности использовать цвета, которые СИЛЬНО отличаются друг от друга. Это позволяет сразу визуально различать области как в Blender, где так проще заметить пропущенные или ошибочно назначенные элементы, так и в Substance Painter, где это помогает избежать путаницы между слишком похожими оттенками при выборе.
После завершения этой работы остаётся лишь экспортировать 3D-модель в формат, поддерживающий информацию Vertex Color, например FBX, а затем вернуться в Substance Painter.

После повторного импорта файла модели в Substance Painter нажмите «Bake Mesh Maps» на вкладке «Texture Set Settings».

В окне Baking отключите каналы, которые вас не интересуют, и оставьте включённым только «ID». Однако перед нажатием кнопки Bake откройте настройки этого канала и убедитесь, что параметр «Color Source», определяющий источник цветов для генерации карты, установлен в значение «Vertex Color». В этом случае Substance Painter получит доступ к этой дополнительной информации модели и создаст ID-карту.

Нажмите Bake и дождитесь завершения генерации карты. После этого вы найдёте её как в разделе ID вкладки «Texture Set Settings», так и в панелях «Properties – Color Selection» различных эффектов «Color Selection», используемых в масках вашего проекта.

Теперь, нажав «Pick Color», вы сможете выбрать ID Color непосредственно на модели, и маска будет создана мгновенно, назначив данный материал всем областям модели, которым соответствует этот Vertex Color.

При необходимости эту операцию можно повторить и для других материалов. Это инструмент, который может быть очень полезен в определённых ситуациях, однако в зависимости от задачи может оказаться проще использовать инструменты Brush, Polygon, UV Chunk или другие способы выделения. ID Mask — это просто ещё один инструмент в вашем арсенале, который дополняет остальные, а не заменяет их.

Подведём итог: если модель содержит Vertex Colors, эту информацию можно получить в Substance Painter, выполнив bake ID-карты и указав «Vertex Color» в качестве источника данных, которые необходимо извлечь из модели. После этого можно добавить компонент «Color Selection» в маски материалов и с помощью инструмента «Pick Color» создать маску, включающую только те геометрические элементы, которым назначен выбранный Vertex Color.

На этом всё для данного видеоурока! До скорой встречи!