Пресеты экспорта Substance Painter для 3D-маркетплейсов: Мое экспертное руководство
После многих лет продаж ассетов на всех основных платформах я понял, что безупречный экспорт — это не роскошь, а основа профессионального бизнеса на 3D-маркетплейсах. В этом руководстве я поделюсь точными пресетами экспорта Substance Painter и рабочим процессом, которые я использую, чтобы мои модели, включая те, что созданы с помощью ИИ-инструментов, таких как Tripo, загружались и работали правильно с первого раза, каждый раз. Это руководство для 3D-художников и технических художников, которые хотят исключить ошибки при загрузке и создать надежный, масштабируемый конвейер создания ассетов.
Основные выводы:
- Успех на маркетплейсе зависит от технического соответствия; надежная библиотека пресетов — ваш самый ценный инструмент.
- "Универсального" экспорта не существует; вам нужны индивидуальные пресеты для Unreal, Unity и веб-форматов.
- Интеграция геометрии, сгенерированной ИИ, требует специального пред-текстурного чеклиста для ретопологии и UV.
- Автоматизация с помощью скриптов и строгий процесс валидации являются обязательными для профессионального результата.
- Совместное использование стандартизированных пресетов в команде — самый быстрый способ обеспечить согласованность и качество.
Почему пресеты экспорта для маркетплейсов являются обязательными
Универсальные требования маркетплейсов, которые я всегда проверяю
У каждого маркетплейса есть документ с техническими спецификациями, и игнорирование его — самый быстрый способ получить отклонение вашего ассета или потонуть в негативных отзывах. Универсальные константы, которые я всегда проверяю, это разрешение текстур (должно быть степенью двойки, например, 1024, 2048, 4096), поддерживаемые форматы файлов (обычно PNG или TGA для растровых, иногда TIF) и строгое соглашение об именовании текстурных карт. Я также проверяю специфические требования к цветовому пространству (sRGB для albedo, линейное для roughness/metalness) и разрешены ли встроенные альфа-каналы для определенных карт. Соблюдение этих спецификаций как закона экономит бесчисленные часы переделок.
Как мои неудачные загрузки сформировали мою философию пресетов
В начале своей карьеры я вручную настраивал каждый экспорт. Результат? Несогласованные имена файлов, неправильная глубина цвета и неудачные загрузки из-за неподдерживаемого сжатия. Одно особенно болезненное воспоминание связано с пакетом из 50 ассетов, где каждая карта нормалей была экспортирована в неправильном формате для целевого движка. С того дня я руководствуюсь основным принципом: никогда не экспортировать вручную для маркетплейса. Пресет — это контракт, который гарантирует согласованность, а согласованность строит доверие с клиентами и алгоритмами платформы.
Проблема "один размер не подходит всем" и мое решение
Вы не можете использовать одинаковые настройки экспорта для Unreal Engine Marketplace и Sketchfab. Unreal ожидает специфической упаковки Ambient Occlusion, Roughness и Metallic в одну текстуру (ORM), в то время как модель GLTF/GLB для веба нуждается в них как в отдельных, стандартных PBR-картах. Мое решение — это специализированная библиотека пресетов. У меня нет одного пресета "Лучший экспорт"; у меня есть "UE5_Marketplace_4K", "Unity_URP_2K" и "Web_GLTF_2K". Этот целенаправленный подход — единственный способ удовлетворить нюансные потребности каждой экосистемы.
Создание моей основной библиотеки пресетов: Пошаговый рабочий процесс
Мой стандартизированный набор текстур и соглашение об именовании карт
Прежде чем я прикоснусь к настройкам экспорта, я определяю, какие карты мне нужны. Мой стандартный набор PBR для неметаллического/шероховатого рабочего процесса: Albedo, Normal, Roughness, Metallic, AmbientOcclusion и иногда Height. Для рабочего процесса spec/gloss это Diffuse, Normal, Specular, Glossiness. Именование имеет решающее значение. Я использую этот последовательный шаблон: {AssetName}_{MaterialID}_{MapType}.png (например, SciFiPanel_01_Albedo.png). Это поддерживает файлы организованными для меня и легко разбираемыми любой системой материалов игрового движка.
Настройка разрешения и глубины цвета: Что я устанавливаю и почему
Моя отправная точка — всегда самое высокое разрешение, которое я собираюсь продавать (например, 4K). Я создаю пресеты для версий 4K, 2K и 1K. Для глубины цвета карты Albedo/Diffuse всегда 8-битные с цветовым пространством sRGB. Карты нормалей 8-битные, если мне не нужна экстремальная точность для ключевого ассета, тогда я могу использовать 16-бит. Карты оттенков серого, такие как Roughness и Metallic, всегда 8-битные. Я никогда не экспортирую их как 16-битные; это излишний объем файла для ассетов маркетплейса. Ключевым является правильная установка "Color Space" для каждой карты в диалоговом окне экспорта: sRGB для цвета, Linear (raw) для всего остального.
Формат файла и сжатие: Баланс качества и размера файла
Для Unreal и Unity я в основном использую PNG. Он предлагает сжатие без потерь и универсально поддерживается. Я полностью избегаю JPEG из-за его потерь. Для очень больших пакетов ассетов, где каждый мегабайт имеет значение, я могу использовать TGA со сжатием RLE, но PNG — мой выбор по умолчанию. Для веб-форматов, таких как GLTF, выбор часто делается за меня — стандартом является PNG или JPEG для текстур, объединенных в GLB. В Substance Painter я отключаю любое "Dithering" для экспорта в оттенках серого, чтобы избежать внесения ненужного шума.
Пресеты для конкретных платформ: Мои индивидуальные конфигурации
Мой пресет для Unreal Engine Marketplace (UE5 Ready)
Этот пресет создан для системы материалов Unreal. Самый важный шаг — настройка упакованной текстуры ORM (OcclusionRoughnessMetallic). В моем пресете я устанавливаю канал R для Ambient Occlusion, G для Roughness и B для Metallic. Я также убеждаюсь, что мои карты нормалей экспортируются в формате DirectX (по умолчанию для Unreal). Мой набор текстур обычно включает: Albedo, Normal, ORM и, по желанию, Emissive. Я всегда устанавливаю "Output maps in sub-folders" и организую их в /Textures/.
Мой пресет для Unity Asset Store (совместим с URP/HDRP)
Пайплайн Unity различается, поэтому мой пресет разработан для максимально широкой совместимости. Я экспортирую карты как отдельные файлы: Albedo, Normal, Metallic, Smoothness (я инвертирую свою карту шероховатости для этого) и Occlusion. Для HDRP я могу также включить карту Mask (Metallic, Occlusion, Detail Mask, Smoothness). Важный совет: я устанавливаю формат карты нормалей на OpenGL, так как это ожидаемый формат Unity. Я также явно избегаю упаковки Occlusion и Smoothness вместе, если только я не создаю выделенный ассет HDRP, так как шейдер URP Lit ожидает их отдельно.
Мой пресет для Sketchfab и универсального GLTF/GLB для веба
Для моделей, просматриваемых в вебе, эффективность является ключевой. Мой пресет экспортирует стандартный набор PBR: BaseColor, Normal, Roughness, Metallic и Emissive. Я часто ограничиваю разрешение до 2K, чтобы размер загрузки был разумным. Я использую сжатие PNG, но иногда допускаю JPEG для BaseColor, если модель очень сложная и потеря качества приемлема. Самый важный шаг здесь — проверить экспорт в локальном GLTF-просмотрщике, таком как Babylon.js Sandbox, перед загрузкой, чтобы убедиться, что все карты правильно связаны и отображаются.
Интеграция AI-генерированных ассетов: Мой пайплайн Tripo AI
От сетки Tripo AI до Painter: Моя проверка ретопологии и UV
Когда я приношу модель из Tripo в свой пайплайн, моя первая остановка никогда не является Substance Painter. Сначала я проверяю ретопологию. Хотя вывод Tripo чист, я часто провожу быстрый автоматизированный проход ретопологии, чтобы обеспечить оптимальную, равномерную квад-структуру для анимации или деформации, если это необходимо. Затем я осматриваю UV. Я ищу адекватную плотность текселей, минимальное растяжение и логичное расположение. Я часто переупаковываю UV, чтобы максимизировать пространство и обеспечить правильное заполнение островов. Эта 10-минутная проверка предотвращает растекание текстур и артефакты запекания позже.
Применение и запекание смарт-материалов для согласованности на маркетплейсе
Модели, сгенерированные ИИ, могут иметь уникальные детали поверхности. Чтобы мои текстуры были готовы к производству и плиточными для похожих ассетов, я использую инструменты запекания Substance Painter. Я запекаю карту деталей высокого разрешения с оригинальной сетки ИИ на мою ретопологизированную низкополигональную сетку. Это позволяет мне применять плиточные смарт-материалы, сохраняя при этом уникальные высокочастотные детали модели. Этот шаг имеет решающее значение для создания целостного, стилистически последовательного вида для всего пакета ассетов, созданных с помощью ИИ.
Экспорт моделей, созданных с помощью ИИ, с уверенностью, используя мои пресеты
После текстурирования ИИ-происхождение модели становится неактуальным. Я отношусь к ней как к любому другому ассету и пропускаю ее через свой стандартный рабочий процесс пресетов для маркетплейса. Ценность моих пресетов полностью реализуется здесь: независимо от того, была ли базовая сетка вылеплена вручную, отсканирована или сгенерирована ИИ, экспорт в Unreal, Unity или в веб идентичен и гарантированно соответствует требованиям. Это позволяет мне использовать скорость ИИ для генерации и базовой геометрии без введения технического долга на этапе окончательной доставки.
Расширенная оптимизация и валидация: Мои окончательные проверки
Автоматизация с помощью скриптов ввода/вывода: Скрипты, которые я запускаю перед экспортом
Я использую простые скрипты Python через Substance Painter's I/O Scripting API для автоматизации задач перед экспортом. Один скрипт выполняет аудит набора текстур, убеждаясь, что все необходимые карты (Albedo, Normal, Roughness) присутствуют и правильно настроены. Другой скрипт стандартизирует все имена слоев по всему проекту, чтобы они соответствовали моему соглашению об именовании. Эта автоматизация исключает человеческие ошибки и особенно мощна при пакетной обработке нескольких ассетов из такого инструмента, как Tripo.
Валидация экспорта в движках и просмотрщиках: Мой процесс контроля качества
Экспорт не завершен, пока он не проверен. Мой процесс:
- Немедленная визуальная проверка: Я открываю экспортированные текстуры в просмотрщике, таком как Adobe Bridge, чтобы проверить на наличие явных повреждений или неправильного цветового пространства.
- Импорт в движок: Я импортирую текстуры и FBX в пустой проект Unreal или Unity (в зависимости от пресета). Я применяю их к материалу и просматриваю их при различных условиях освещения (HDRi небо, прямой свет).
- Функциональная проверка: Я проверяю, что карты шероховатости влияют на блеск, карты нормалей реагируют на свет, а металлические карты ведут себя правильно.
Обновление пресетов: Как я развиваю свои шаблоны с новыми технологиями
Маркетплейсы и движки обновляют свои требования. Я пересматриваю свои пресеты ежеквартально. Когда Unreal 5.4 представил новые функции материалов, я обновил свой пресет UE, чтобы он мог опционально экспортировать карту PackedMaterialAttributes. Я подписываюсь на RSS-ленты технических блогов Unity и Unreal marketplace. Когда новый формат, такой как Basis Universal, получает более широкую поддержку, я создам для него новый экспериментальный пресет. Моя библиотека пресетов — это живая система, а не статичный набор файлов.
Распространенные ошибки и профессиональные советы из моего опыта
Ошибки с альфа-каналом, которые я вижу (и как я их избегаю)
Самая распространенная ошибка — это непреднамеренные альфа-каналы. Экспорт простого Albedo PNG из Painter иногда включает пустой альфа-канал, что может сбить с толку некоторые импортеры игровых движков. В своих пресетах я явно устанавливаю опцию экспорта "Alpha Channel" в "None" для всех карт, которые не требуют прозрачности (Albedo, Normal, Roughness и т. д.). Я включаю "Alpha Channel: Embedded" только для карт, которые действительно его используют, таких как Opacity или Cutout map.
Управление ассетами с несколькими материалами для чистого экспорта
Для ассетов с несколькими Material ID (например, персонаж с кожей, металлом и тканью) я организую свой проект Painter с одним Texture Set на каждый материал. Мой пресет экспорта настроен на экспорт всех наборов текстур в одной партии, используя соглашение об именовании {AssetName}_{TextureSetName}_{MapType}.png. Это позволяет хранить все файлы для одного ассета вместе. Я также использую "Common" набор текстур для общих карт, таких как глобальное покрытие грязью, которое автоматически запекается в экспорт каждого материала.
Моя система обмена шаблонами для командных проектов
Согласованность в команде жизненно важна. Я не просто делюсь файлами SPP (проекта Painter); я делюсь всей шаблоном проекта. Это включает:
- Настроенный файл SPP с пустыми, правильно названными наборами текстур.
- Папку
./export-presets/со всеми моими файлами пресетов JSON. - Файл README.txt с точными шагами по установке пресетов (скопировать в папку Substance Painter
assets/). - Эта система гарантирует, что независимо от того, работаю ли я один или с другими, каждый ассет, который мы производим для маркетплейса, имеет одну и ту же техническую основу.


