GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Как вы знаете - я люблю всякие доклады по 3D, ворлдбилдингу и всему такому. Все то что однажды поможет сделать мне игру-мечты. И "сегодня" мне в руки попался доклад Витауза Катарзиса, старшего 3д художника по окружению из Machine Games, по тому как они создают большие миры минимальными средствами.
Доклад называется:

"Процесс Создание мира от Гранул к Модулям."

Предисловие

В определенной степени этот доклад близок к тому о чем рассказывалось в таких конспектах (которые я так же записал!) как:

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

А Машингейм по современным меркам довольно небольшая студия (Больше 160, но меньше 200 человек) по меркам 2020х и как они сами себя в шутку называют :

"Мы инди - студия, и сейчас имеем право так зваться больше, чем кто либо другой на планете"

Надеюсь шутку про Инди как Индиану Джонса мне объяснять не надо...ох.

Ну да ладно, вот размер арт команды которая сделала ВСЕ локации и окружение для игры:

Cделано довольно небольшой командой...
Cделано довольно небольшой командой...

Очень небольшой.

Аутсорс был сведен к минимуму - по причинам нестандартного пайплайна - а именно движка ID TECH и пайплайна через MODO - что делает разработку их ресурсов текстур и материалов более похожей на кино-пайплайн чем на геймдев.

По сути каждый человек отвечал за свое направление и создал в одиночку 60-80% в рамках своего направления для игры про Индиану Джонса. Так Витаутас отвечал за архитектуру и города, и пещеры.

Окружение старого города Шанхая - я занимался этим пространством от начала его создания и до финализации, затронув практически все его аспекты. Поскольку наша команда разработчиков была очень и очень маленькой, и мне часто приходилось работать над декорациями для уровней полностью в одиночку, то создание эффективной и продуманной модульной структуры было для меня главным приоритетом.
Vytautas Katarzis

При этом они в Машинз Геймз делают игры которые могут потянуть на пару полноценных CGI мультфильма ибо содержат в себе 3-4 часа катсцен, а сама детализация мира игры достаточно плотная - что бы игрок ощущал себя не в "игре", а в фильме.

При этом многие проблемы пайплайна были решены раньше и их вариация движка ID Tech - Motor Engine уже поддерживал кучу технологий о которых команде не нужно было думать:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
  • GI через рэйтрейсинг RTGI (Ray Traced Global Illumination) и Path- Tracing для ПК
  • Систему работы с лепкой ланшафта
  • Систему процедурной генерации растительности
  • Участки открытого мира и разбиения мира на ячейки
  • Инструменты для создания сплайнов(кривых) дорог

А теперь переходим к самому докладу.

THE WORLD-BUILDING PROCESS FROM GRANULAR* TO MODULAR

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

Granular - можно переводить как "гранулы", или "детали", "зерно" - из которых состоит тот или иной элемент. В данном случае имеются ввиду сборка Префаба модуля из более мелких элементов. Это стандартная практика, так все профессионалы работающие с окружением делали с начала 2000х, так делают до сих пор. Правда не всем это рассказывают...
Так что многие новички в 3д и ИИ генераторы пытаются создать сразу весь Ассет целиком, а не из запчастей... и это на самом деле очень плохо. Сегодня век ССД и движки не испытывают сложности загрузки на уровень множества лего-подоьных деталей из которых мир и будет состоять. Хотя конечно тут не нужно уходить в другую крайность... Когда каждый модуль состоит из сплощь уникальных деталей.

Так что : "гранула" - это буквально минимальный "строительный атом" внутри движка неделимый элемент меша, на который наложена простая текстура. Можно перевести это как "микромодуль", "деталь", "элементарный элемент" и все в таком духе...

Условный кусок деревянной детали, кирпич, кусок черепицы, деревянная доска - в рамках этого доклада - это все "микромодуль" или "гранула".

Требование к нему : оно должно быть максимально простым: и иметь в случае необходимости удобный Pivot Point.

В зависимости от типа - точка поворота меша может быть в центре, основании, на краю, или на угле модели:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

В прочем нужно отметить что у Modo (в котором дома и создавались для Индианы) специфичная работа с точками соединения - что делает эту вставку корректной лишь для других 3д редакторов.

Вот пара простых рекомендаций от меня:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
  • Если что то цилиндрическое и вытянутое(колонна/ статуя) - пивот ставьте в центре у основания, или в центре если деталь может сводно заглубляться в пол /потолок
  • Если что Плоское но вертикальное как Плита или стена - ставьте на углу или снизу
  • Если что то плоское и лежит(элемент модуля пола) - то точка поворота лучше поставить на углу в центре основания или по центру геометрии

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

А еще нужно следить за шагом модуля, котоый будет собираться из гранул.

Шаг модуля - это расстояние на которое модуль можно/нужно сместить что бы он состыковался с собой же бесшовно. 
Шаг модуля - это расстояние на которое модуль можно/нужно сместить что бы он состыковался с собой же бесшовно. 

Выбор зависит от "дизайна" элементов - но выбрав правила и следуя им - вы сильно облегчите себе да и левел-дизайнерам жизнь. Главное согласуйте внутри студии "стандартный" выбранный "шаг" смешения модуля.

Для вашего удобства - я рекомендую округлять . Даже если в реальности деталь по чертежам будет иметь условные 17-22см - лучше сделать ее в 20. Точней размер деталей важен только в одном случае : Если эта деталь будет лежать в руке персонажа.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Обычно это красивое число удобное для левел дизайна: 100-200-400см (Раньше во многих старых играх размер делали кратным 2ке - 32/64/128/256 - это единицы называли юнитами)

В скайриме например стандартный мужик в 128 юнитов равен 180 см.  А значит модуль 256х256 - это модуль 360х360см.
В скайриме например стандартный мужик в 128 юнитов равен 180 см.  А значит модуль 256х256 - это модуль 360х360см.

Но современные движки: Юнити, Годот, Анрил - предпочитают сегодня работать в Сантиметрах, и давать в редакторе правила смешения кратные им: 1, 10, 25,50, 100, 500 см по умолчанию. Впрочем точные цифры сдвига можно настроить в настройках проекта.

В случае необходимости у "гранулы" должна быть простая и удобная коллизия которая позволит быстро создавать уровни по которым можно ходить без необходимости добавления дополнительных коллизий

После чего из таких "элементарных частиц"/гранул - можно собрать "модуль" для сборки уровня, которому главное условие: это удобство работы левелдизайнера.
Поэтому он так же должен иметь правило выставления общий Root Pivot Point - Точки поворота:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Вот пример из Fallout 4:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

А вот как гранулы собираются в модуль, оттуда же:

 
 

И напомню, не забываем про нейминг!

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Нейминг запчастей очень важен.
Подробнее про нейминг можно почитать в моем конспекте про модульный дизайна Скайрима.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Художникам нужно потрудиться и составить "соглашение об именовании" где будет дана инструкция как "расшифровывать" имя детали. Это может показаться избыточным - но окажется ОЧЕНЬ ВАЖНЫМ если вы планируете работать не в одиночку.

Но если кратко - то имя как гранулы так и модуля префаба - должно в себе содержать удобно читаемый идентификатор:

  • Название типа комплекта(пещеры, универсальный строительный комплект, деревянные дома, металлические заводы и т д)
  • Используемый материал поверхности(камень/дерево и т д)
  • Тип модуля (поворот, развилка, прямой коридор, тупик и т д)
  • модификаторы(поворот на лево/направо и т д)
  • Номер варианта
  • и т д.

Это вам решать. Но опять же ... это может облегчить жизнь и ускорить создание миров. Так как вы сможете выбирать нужные детальки в браузере редактора движка ориентируясь на название.

Итак отдаем шляпу Индианы Джонса -Витаусу и дальше рассказывать буду от его лица. И сегодня вас опять будет ждать рассказ о создании мира игры из модулей:

Шляпа Инди

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

В данном случае внутри студии Машин Геймз данный процесс был назван созданием модулей окружения из мелких деталей.

Основное внимание доклада будет уделено создания сложных сцен из маленьких простых 3д моделей которые под силу замоделить любому джуну. Это тема которую Витаутас долго развивал в течение своей карьеры начиная с учебного проекта представленного в журнале на 80Level .

Я бы сказал что я до сих пор еще разбираюсь в этом. Но сейчас это стало гораздо привычней и понятней и доступнее для меня как где что надо делать. А в начале моей карьеры я буквально не понимал как подойти к дизайну ассета от мелких деталей. И надеюсь мой опыт позволит об этом рассказать новым подрастающим поколениям 3д художников...

Витаутас
GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Давайте посмотрим на скриншоты из игры Индиана Джуонс. Почти все ассеты которые использовались для создания окружения - это готовые модули собранные из Гранул-деталей. За счет этого создавались базовые здания и вариации разрушения оных. Это не было заранее продумано по концепт арту.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Все локации состоят из крупных модулей собранных в ручную, а не процедурно.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Вот примерно так:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Все состоит из старых добрых тайловых текстур и декораций. И весь уровень состоит из довольно крупных модулей. (с бесшовным сдвигом в 6-8+ метров судя по дальнейшим скринам)

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

И сейчас будет объяснение как Машин Геймз работало над ними:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Для этого перейдем в МОДО : Где были выложены ВСЕ делали уровня Battle of Shanghai: вот так это выглядит целиком:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

На этой сцене - находятся в нашем зоопарке большинство собранных модулей для уровня:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

*Такие наборы где есть все детали с текущего уровня подряд часто называются Библиотека(Library) или просто Зоопарк(Zoo)

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

На этой сцене выложены почти ВСЕ архитектурные сетки в рамках этого сеттинга уровня: Это крыши, стены, двери и тому подобное...

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Небольшая вставка*

*Важно учесть что в случае фоторефа - размеры особенно по вертикали можно смело увеличивать раза в 1.5, хотя тут много зависит от типа игры:
В VR можно преувеличить на 15-30% от первого лица на 1.5-2, от 3го лица - на 2-3...поверьте мне, на плоском 2д мониторе это будет смотреться по другому не так как в реальности. Хотя и концепт художник может неправильно оценить финальные пропорции, так что в случае чего - готовьтесь их увеличить.

Этот этап который нужно пройти в самом начале любой разработки:

Блокаут

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

На этом этапе создается грубая детализация и примерное разделение мешей по повторяемым тайловым текстурам.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Это этап исследования - на котором автор моделей в 3д пространстве вообще пытается понять сколько вообще текстур для атласа и в каком количестве вообще нужно сделать материалов и трим листов:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Это должно позволить понять какой по размерам тексель (*Разрешение пикселей на кв метр) будет нужен для игры. Что бы можно было спланировать создание универсального текстурного атласа так, что позводит не перегружать игровой движок вызовами рендера если везде будет небольшой набор повторяющихся

наборов материалов.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Интересно что изначально по концепту получилось слишком много и на этапе оптимизации не все изначально в первом проходе запланированные трим-текстуры попали в игру.

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

Это все пока еще чистые заглушки и итерации 3д. В игре в финальной версии - эти мелкие меши :

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

могут выглядеть совершенно по другому. Когда их смоделим по нормально.

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Это все еще черновик и главное тут: МАТЕРИАЛ и ГАБАРИТЫ. Но на нем можно запланировать как будут дорабатываться эти детали на следующем этапе. Поэтому лучше сразу спланировать - из какой тайловой текстуры можно вытянуть "материал" для детали, придется ли поработать над шейдером, добавив грязь/шум/декали, или придется сделать HERO* -ассет. Чего лучше не допускать.

*Hero - ассет/ Геоически ассет - это термин который означает 3д модель который будет использоваться всего один раз за уровень. Это обычно статуи, картины, надписи вывесок в магазины, ... и все такое оригинальное что не должно повторяться. На этапе создания модульного окружения и блокаута - уникальные ассеты лучше всего не делать. Их лучше всего отложить на последок. И делать когда все остальное уже готово. Хотя это индивидуально, возможно весь уровень будет строится вокруг гиганского дерева или статуи? Тогда они будут задачать тон уровню и их имеет смысл сделать первым.

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

Этот этап работы над уровнем через базовый блок аут должен быть быстрым, даже можно сказать - очень быстрым.*

*Я встречал упоминание, что для профессионального 3дшника Грубый Блокаут , для единственного реалистичного здания должен занимать около 2-3х рабочих дней, если у него на руках точные чертежи здания.
День первый - спланировать работу. Второй быстро создать габаритные меши. Тут не важно UV, и качество соединений - чисто пропорции. А например Vincent Dérozier - художник из Убисофт говорит что на создание куска локации(как на примере слева), нужно неделя работы:

А на создание всей локации 2.5 месяца
А на создание всей локации 2.5 месяца

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

А дальше начинается кропотливая работа над деталями где увеличивается их детализация и создается покрас материалом в Modo и/или Пейнтере.

Собственно перейдем к "гранулам", они же микромодули:

Вот так выглядят уже готовые "гранулы" в Индиан джонс что должны собираться в крупные модули:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

*Сорян за качество - но на презентации был такой рендер. Дальше будут образцы получше - я приложил готовое с артстанции художника

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

Тут есть детальки. 
Тут есть детальки. 

*Для ускорения создания моделей в ААА часто используется для окружение комбинация из повторяемой не уникальной тайловой текстуры. Которая на ассете окружения стыкуется с уникальной запеченной картой нормалей запеченной с хайполи - это позволяет уточнить контуры и добавить детализацию - не сильно раздувая и увеличивая общий пак текстур. В некоторых играх как Doom Dark Ages или GOW - используют еще RGBA маски для модификации цвета или смешивания разных материалов на ассета. Так можно создать второй набор UV2 для более точной развертки под нужды дельной Карты нормалей у нужных ассетов - дав им больше текстурного пространства. Но об этом раскажу позже.

При создании крупного модуля соотвественно берем эту "гранулу "- прикрепляем к столбу и получаем основание - это же просто не правда?

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Затем сверху к столбу крепим другую деталь,

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Затем начинаем наращивать детализацию соединяя детали одну за другой: Одна деревеная доска за другой....

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

И по итогу, мы как будто получаем конструкцию модуля - которую не стыдно отдать левел дизайнеру:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

шучу конечно - впереди еще много работы: но принцип надеюсь понятен... мелкие детали соединяются в единый крупный меш.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Детали крепятся одна за другой. И Да - возможно на каждой грануле будет своя текстура: Сделайте несколько вариаций.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

(!) За этим действительно важно следить - для реализма переходы между текстурами должны быть довольно "мягкими" - окружение не должно бросаться в глаза своим контрастом тона. Тон должен контрастировать только на стыках разных материалов: Металл-Дерево-Камень и т д. Возможно вам придется сделать несколько смежных "переходных текстур", что бы создать градиент перехода.

Так что дальше достаточно скопировать уже готовые части - повернуть и поставить на место. Это не сложно

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Дальше пересчитываем нормали:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

(!) В Модо - можно быстро пересчитать нормали у вектексов у соединенных мешей - так что бы не было жестких врезок - это позволит сделать меш более удобным для рендера света на движке с РТ.
*Если кто знает как это можно делать в других 3д редакторах - майя, блендер дайте знать, это кажется важным для этой техники, иначе придется долго возится с soft и hard edge, ну или забить болт - на несколько странное поведение света на границах соединения "гранул")

Например у этих деталей в этом наборе используется всего 3 разных типа тайловых деревянных текстур материалов и наборов дополнений для разных частей, разного назначения.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

А вот эти детали оказались очень важны для крыши и соединения крыши с полом:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Вот так они крепятся на уже готовом модуле:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

(!) И не забывайте ставить габаритную модель персонажа рядом с модулями окружения!

Если бы этих деталей декораций не было - то переход от крыши к стене был бы ОЧЕНЬ СКУЧНЫМ - просто угол в 90 градусов.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что эти детали - очень важны для узнаваемости и визуальной идентичности китайской архитектуры 19го-начала 20го века. И при этом выглядят достаточно круто для игрока.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Эти детали можно создать ОЧЕНЬ быстро: Потому что сроки создания ассетов в Машин Геймз всегда очень жесткие даже для опытных художников. Так что моделирование хайполи и покрас в пейнтере за пару часов и добавление ассета в общий набор

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

В разных вариациях:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что потом вам останется только поместить модуль в игровой движок - загрузить текстуры - и вулая готово:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что все эти детали можно просто перетащить в игровой движок соединив в единый Префаб:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что в игре нет зданий созданных в виде единого целого и неделимого гига-меша. Все создается модульно из модулекй которые создаются из достаточно мелких деталей. В случае необходимости Префаб в движке ID/motor можно модифицировать, разобрать поменять.
* (Как и в Фоллауте 4м, - в Анрил используйте БП)

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что проектируйте наборы, что бы детали дополняли друг друга - Например вот тут есть вертикальный столб и горизонтальная балка - и они дополняют друг друга

*подчеркнул стрелкой
*подчеркнул стрелкой

Кому-то из начинающих 3д шников это может показаться это странным - но по сути мы собираем зданияя так же как их собирают в реальности. Одна деталь вставляется в другую в нужные ей пазы!
*можете изучить для вдохновения схемы сборки мебили из Икеи

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

(Я уже говорил про нейминг ассетов? - это нужно в том числе и для такой магии)

Это удобно когда имена ассетам даны верно и есть модульный рабочий процесс и весь уровень создан из больших сборных конструкций из маленьких модулей :

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так что - просто следуйте такому подходу. И увидете насколько упростится ваша жизнь:

Вот скриншот на котором слева показан модуль - а справа трим набор и как что с чем соединяется:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Ассет модуля по сути может состоять из:

  • Безшовной текстуры для плоских стен/пола/потолка (удобно менять материал целиком)
  • Запеченных трим листов для уникальных деталей с детализацией
  • И уникальных текстру для отдельных ассетов(часто они лежат на той же текстуры с тайлящими ассетами)

*(В общем сам процесс максимально близок к пайпалйну: The Ultimate Trim. Где у каждого материала есть два варианта: бесшовная плоская текстура и трим вариант для ассетов )

На этих скриншотах надеюсь достаточно понятное объяснение что происходит?

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Если нет - то все начинается с базового набора:

  • Запеченные кусочки с повреждениями - это тоже важная часть набора китбашей для левелдизайнера.
  • Повторно используйте детали для создания множества вариаций на основе базового образца. Не создавайте их с нуля.

Все начинается с базового набора из которого создаем вариаюцию с повреждениями:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

Все элементы "гранул" для создания модулей - это почти всегда очень и очень простые формы. Не нужно пере усложнять себе жизнь. Делайте все из элементарных деталей, хотя конечно иногда понадобится что то более обосое:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

По сути самое сложное тут - это сделать черепицу запеченную на вот такую форму:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

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

Для придания большей вариативности: можно добавить на меш гранулы больше вертексов и в движке добавить больше смешения за счет vertex paint или иной аналогичной техники прямо на уровне или в шейдере по маске.

Геодекали

Так же используется набор для декалей - который позволит накладывать на модели "дополнительные" украшения для придания уникальности: Будь то имитация кирпичей поверх штукатурки.

Но иногда можно добавить Геодекали еще на этапе модуля в 3д:

*Геодекали - это техника добавления мешаей с материалом декали еще на стадии разработки 3д модели в 3д редакторе. А не индивидуально в движке игры. Это позволяет накладывать на материал грязи, швов, трещин, граффити или дорожной разметки без нужды запекать в уникальную текстуру - что в общем случае способствует удешевлению производства.

Вот они - видите рисунок из прямоугольников? Это не часть текстурного набора. 
Вот они - видите рисунок из прямоугольников? Это не часть текстурного набора. 

Или рисунки на жителей на стене: фрески/граффити. Это называется "геодекали".

Рисунок в виде геодекали
Рисунок в виде геодекали

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

Например, что бы получить такой сгиб у края крыши:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Нам сначала все равно нужен прямой модуль из черепицы:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

А затем в 3д редакторе - сгибаем форму с помощью модификаторов мягкого ручного выделения и выделения для смещения вертексов.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Модули модули модули. Везде в игре все состоит из повторяемыемых модулей:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Так работа шла со всеми ассетами в течение всей разработки и весь пайплайн был +- одинаков.
Отличался только процесс создания Техники, и этим занимался коллега художник. Андрей Михайлов и у него следующий доклад.
*" Insights into the challenges of creating vehicles with current-gen texel density, featuring techniques like texture blend shaders, trim sheets, and decals."
*Эта тема мне не особа интересна - но возможно сделаю и ее конспект.

Это все позволяет выдерживать очень высокую скорость работы и наполнять мир игры УЖАСАЮЩЕ быстро силами всего пары человек.

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

...но у нас уходили считанные часы на сборку модулей из деталей-гранул. И дни на сборку новых готовых зданий из уже готовых модулей:

Но используя модульный подход и оптимизировав скорость создания деталий для для строительства в рамках логики одного набора - Создание моделей для уровня может занять месяц и еще пару на создание вариаций.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

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

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Потом из тех же модулей создаются и украшения в виде мусора :

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

И вовремя попросить нас доделывать недостающие модули.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

В основе всей игры лежат простые по своей сути сетки - с одними и теми же атласами текстур которые потом объединяются в гораздо более сложные модульные ассеты: И все что вам нужно для создания такого города...

это вот этот набор сеток(выделено желтым, не бойтесь дальше подробнее)

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Без шуток - это все что нам оказалось нужно для создания зданий в китайском городе:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

*Не нужно пере-усложнять себе жизнь! Иногда меньше простых деталей позволяет создавать БОЛЬШЕ сложных. Ведь сложные вещи часто состоят из простых деталей.

Так вот примерный список что нам понадобились:

  • Простые деревянные доски
  • Деревянные балки с элементами отделки
  • Разные наборы текстур одного дерева. для создания разных вариаций оттенков

Вот и все!

* Вот часть этих ассетов в боле хорошем качестве с артстанции автора:

там же можно почитать о том в какие сроки создавались ассеты:

(*)У меня есть пара знакомых 3д художников которым чисто физически стало от некоторых высказываний о сроках работы:
"я бы делал это две недели... что значит сделали за 2 дня?"

Все текстуры были сделаны в Substance Painter, многие из них начинались с создания быстрого хаполи скульптур в зебраше.

Vytautas Katarzis

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

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

Vytautas Katarzis

Краткое содержание:

Итак вкратце начнем закрепим что мы узнали за сегодня:

*Повторение мать учения!

1. Изучите реф!

Не кидайтесь сразу в бой. Изучите концепт арт/Фотореф. Разбейте и определите самые повторяющиеся и интересные детали и элементы конструкции. Можете зарисовать детали на листе или в закрасить в фотошопе.

Попытайтесь определить для себя примерный текстурный аталас для Трим Текстур и плотность/количество распределения материалов по нему.

2. Изучите блокаут архитектуры на раннем этапе.

Сделайте модульный конструктор! выделите самые частые и крупные и явные детали - сделайте их самыми первыми и потом добавляйте более редкие и малые! Тут нужно уменьшить гордость и не начинать лепить детализацию от самых вкусных и и интересных деталей бросающих вызов вашему скилу.

3. Загрузите это сразу в движок!

Выполняйте итерации прототипирования как можно быстрее - что бы как можно раньше закинуть в движок блокаут и дать левел дизайнеру с ним работать и который можно проверить в геймплее . Это сразу покажет вам если вы что то упустили. Начните с самых простых деталей и лишь потом переходите к сложным. А не наоборот.

Вот так выглядел уровень на раннем этапе разрабаотке: тут еще нет материалов, только цвет, форма и размер.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Вот так выглядел уровень в самом самом начале - это черновик Левелдизайнера которому дали чистый блокаут

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

И по мере готовности - грубый блокаут менялся на модули-блокаута:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Очень важно перейти к такому как можно быстрее - прежде чем заняться текстурированием.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

4.Думайте о модульности элементов!

Соединяйте базовые элементы, меняйте текстуры на разные, но близкие для увеличения вариций .

(!)Дополните украшение вертекс пейнтом, декалями, но не полагайтесь на них целиком. Это приправа, а не основное блюдо. Если базовые ассеты модулей должны быть интересны и работать в общем и без них.

6. Начинайте с малого и простого!

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

7. Сложность растет по мере роста деталей!

*Главная сложность для 3д джуна - это то что вам нужно забыть то чему учат в художественных школах и курсах по созданию хайполи с последующем переходом в лоуполи!

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

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

Всякие недостатки потом легко скрыть дополнительными декорациями: обломками наклейкми, и VFX огнем и дымом:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Собственно данная лекция все.

Думаю стоит дополнить ее ссылкой на артстанцию с артом: Vytautas Katarzis:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Там есть кое какие советы котырые имхо так же важны. Но не упомянуты в лекции. Но которые бы отлично дополнили бы ее !

Так что продолжу уже сам:

Совет номер 1: СЛОМАЙТЕ ГОТОВЫЙ МОДУЛЬ!

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Довольно легко создать поворотные конструкции сломав модуль и добавив поворот на угол модуля. Это позволит создавать завороты формы. Так что из одного модуля легко получить другой, Из другого третий - чем больше делалей и комбинаций - то тем больше они начинают работать сами на себя.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Совет 2: Не создавайте новых элементов если вы можете скопировать и вставить.

Не увлекайтесь, вариаций должно быть ровно столько сколько нужно.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Но не больше. Но уж точно больше одной.

Набор деталей для модулей разрушения:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Мозг человека обычно перегружается если за раз в кадре будет 7+ вариаций.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

С "гранулами" для разрушения можно работать как с любыми другими деталями... для создания модулей.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Совет номер 3: Универсальность и многоразовость:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Добавьте наборы с кирпичами - вы можете использовать их в цельной кладке или по отдельности.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

Совет номер 4: Не парьтесь

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

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

Совет номер 5 : Используйте Тримы только там где это реально нужно.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Остальное делайте геометрией на основе повторяемой текстуры материала

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Совет номер 6: Создайте красивый силуэт на повороте:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Чем больше углов с разными выступами тем ьольше у вас инструментов для создания силуэта.

Совет номер 7: Иногда нужно добавить и HERO ассет на уровень

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Что бы заткнуть дырку в карте.

Такой ассет будет создаваться для уникального места и не будет повторятся в других местах. Он будет создается под конкретные запросы левел дизайнеров. Такой ассет должен иметь визуальные отличия от обычных модульных элементов. Но все равно можно "сэкономить" и создаеть его из стандартных текстрных карт для этого уровня.

Вот еще специфичный ассет для головоломки .

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Совет номер 8: Экономьте текстурное пространство:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Если ассет зеркален относительно осей - можно сильно сэкономить...

Совет номер 9: Используйте Градиенты в шейдере!

Разный окрас от глобальных координат в движке сбивает восприятие и затрудняет визуальную усталость игрока от визуальных повторов:

Это очень дешевый - но все еще работающий метод повысить разнообразие на уровне:

При этом текстурный набор у них будет один и тот же!
Что приведет к сильной экономии ресурсов GPU и VRAM!
Это можно сделать визуальное разнообразие за счет градиента который будет работать в мировом пространстве.
Это должно работать при
мерно так:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Естественно цвет нужно накладывать не на все поверхности.

Совет номер 10: Сдвиги модулей

Можно сделать выступ кирпичей:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

А можно повторить форму с двух сторон идеально.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

И на финал Забавный факт:

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

Эти блоки стен повторяют декорации из Фильмов Спилберга про Индиану 1 в 1. Это мало кто заметит, но это должно добавить игре аутентичности.

Есть ли у этого подхода минусы?

1. Игровой движок (Юнити/Ue4) может не очень хорошо переваривать такое количество модулей собранных из довольно мелких деталей.

Так что возможно будет смысл все же слить мелкие детали в единый меш перед экспортом соединить грани настроить soft и hard edge -, как это делали в том же ТЕС Морровинде в 200х, что бы уменьшить количество вызовов отрисовки рендера и Z-файт.

2. Будет довольно сложно избавиться от привычки делать все от хайполи.

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

Сначала Грубый блокаут -> Затем бесшовные и тайловые материалы -> Затем набор конструктора из гранул -> Из гранул собирайте модули.

Деконструируйте ваш концепт арт или фото референс и сконструируйте свой собственный модульный набор деталей для конструктора!

Это гораздо проще быстрого создания для игровых миров.

Список локаций в Индиане.
Список локаций в Индиане.

Этот подход позволит создать и наполнять множество различных локаций минимальными силами без нужды читерить с ИИ генерацией которую ныне продвигают в том же UE6. Это очень "умный пайплайн" в плане сбережения сил художников, используя его мы сможете собрать себе крутой портфолио. Или сделать игру - что все будут удивляться как "инди" смогли какое то такое сделать. В конечном счете в Машин Геймз над уровнями тоже работало небольшое количество человек. Основная масса сотрудников- обеспечивала работу с движком, и захватом движения, а так же анимациями.

Но об этом вы можете посмотреть дополнительно в документалке от noclip:

Сэкономленное время и ресурсы при использвоания способа "Грануляр в модуляр" можете пустить на что угодно. Можете попробовать его для создания собственной игры. Увеличения продуктивности на работе, или создания портфолио...

В целом мне самому понравился подход Машин Геймз.
(буду кидать ссылку всем 3дшникам с которые буду работать со мной над окружениями)
Это очень "экономичный" пайплайн с точки зрения человеческих ресурсов. А так же обеспечивающий высокое вовлечение художника, который работает на целой архитектурной секцией, что уменьшает вероятность выгорания.

Думаю как передохну можно будет сделать еще конспект с их лекции по теме:

• A breakdown of the photogrammetry data and how it’s used to enhance environment assets.

GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."

В которой рассказывалось как создавали с ассетов мегасканов и Фотограмметрии кисточки что бы лепить гигантские каменные структуры в Зебраше.

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

74
9
5
4
2
1