GNOMON: Индиана Джонс: "Процесс Создание мира от Гранул к Модулям уровня."
Как вы знаете - я люблю всякие доклады по 3D, ворлдбилдингу и всему такому. Все то что однажды поможет сделать мне игру-мечты. И "сегодня" мне в руки попался доклад Витауза Катарзиса, старшего 3д художника по окружению из Machine Games, по тому как они создают большие миры минимальными средствами.
Доклад называется:
"Процесс Создание мира от Гранул к Модулям."
Предисловие
В определенной степени этот доклад близок к тому о чем рассказывалось в таких конспектах (которые я так же записал!) как:
Данный материал посвящен тому, как ускорить создание игровых миров - за счет пайплана при котором даже небольшая студия сможет создавать огромные и проработанные миры.
А Машингейм по современным меркам довольно небольшая студия (Больше 160, но меньше 200 человек) по меркам 2020х и как они сами себя в шутку называют :
"Мы инди - студия, и сейчас имеем право так зваться больше, чем кто либо другой на планете"
Надеюсь шутку про Инди как Индиану Джонса мне объяснять не надо...ох.
Ну да ладно, вот размер арт команды которая сделала ВСЕ локации и окружение для игры:
Очень небольшой.
Аутсорс был сведен к минимуму - по причинам нестандартного пайплайна - а именно движка ID TECH и пайплайна через MODO - что делает разработку их ресурсов текстур и материалов более похожей на кино-пайплайн чем на геймдев.
По сути каждый человек отвечал за свое направление и создал в одиночку 60-80% в рамках своего направления для игры про Индиану Джонса. Так Витаутас отвечал за архитектуру и города, и пещеры.
Окружение старого города Шанхая - я занимался этим пространством от начала его создания и до финализации, затронув практически все его аспекты. Поскольку наша команда разработчиков была очень и очень маленькой, и мне часто приходилось работать над декорациями для уровней полностью в одиночку, то создание эффективной и продуманной модульной структуры было для меня главным приоритетом.
При этом они в Машинз Геймз делают игры которые могут потянуть на пару полноценных CGI мультфильма ибо содержат в себе 3-4 часа катсцен, а сама детализация мира игры достаточно плотная - что бы игрок ощущал себя не в "игре", а в фильме.
При этом многие проблемы пайплайна были решены раньше и их вариация движка ID Tech - Motor Engine уже поддерживал кучу технологий о которых команде не нужно было думать:
- GI через рэйтрейсинг RTGI (Ray Traced Global Illumination) и Path- Tracing для ПК
- Систему работы с лепкой ланшафта
- Систему процедурной генерации растительности
- Участки открытого мира и разбиения мира на ячейки
- Инструменты для создания сплайнов(кривых) дорог
А теперь переходим к самому докладу.
THE WORLD-BUILDING PROCESS FROM GRANULAR* TO MODULAR
(*)Но прежде чем начну выдавать конспект, давайте немного разберемся с терминологией.
Granular - можно переводить как "гранулы", или "детали", "зерно" - из которых состоит тот или иной элемент. В данном случае имеются ввиду сборка Префаба модуля из более мелких элементов. Это стандартная практика, так все профессионалы работающие с окружением делали с начала 2000х, так делают до сих пор. Правда не всем это рассказывают...
Так что многие новички в 3д и ИИ генераторы пытаются создать сразу весь Ассет целиком, а не из запчастей... и это на самом деле очень плохо. Сегодня век ССД и движки не испытывают сложности загрузки на уровень множества лего-подоьных деталей из которых мир и будет состоять. Хотя конечно тут не нужно уходить в другую крайность... Когда каждый модуль состоит из сплощь уникальных деталей.
Так что : "гранула" - это буквально минимальный "строительный атом" внутри движка неделимый элемент меша, на который наложена простая текстура. Можно перевести это как "микромодуль", "деталь", "элементарный элемент" и все в таком духе...
Условный кусок деревянной детали, кирпич, кусок черепицы, деревянная доска - в рамках этого доклада - это все "микромодуль" или "гранула".
Требование к нему : оно должно быть максимально простым: и иметь в случае необходимости удобный Pivot Point.
В зависимости от типа - точка поворота меша может быть в центре, основании, на краю, или на угле модели:
В прочем нужно отметить что у Modo (в котором дома и создавались для Индианы) специфичная работа с точками соединения - что делает эту вставку корректной лишь для других 3д редакторов.
Вот пара простых рекомендаций от меня:
- Если что то цилиндрическое и вытянутое(колонна/ статуя) - пивот ставьте в центре у основания, или в центре если деталь может сводно заглубляться в пол /потолок
- Если что Плоское но вертикальное как Плита или стена - ставьте на углу или снизу
- Если что то плоское и лежит(элемент модуля пола) - то точка поворота лучше поставить на углу в центре основания или по центру геометрии
Это собственно моя рекомендации, а не жесткое требование: где дле зеленый для меня более приоритное место для точки поворота, жетое - среднее, а красное допустимое, но не удобное .
А еще нужно следить за шагом модуля, котоый будет собираться из гранул.
Выбор зависит от "дизайна" элементов - но выбрав правила и следуя им - вы сильно облегчите себе да и левел-дизайнерам жизнь. Главное согласуйте внутри студии "стандартный" выбранный "шаг" смешения модуля.
Для вашего удобства - я рекомендую округлять . Даже если в реальности деталь по чертежам будет иметь условные 17-22см - лучше сделать ее в 20. Точней размер деталей важен только в одном случае : Если эта деталь будет лежать в руке персонажа.
Обычно это красивое число удобное для левел дизайна: 100-200-400см (Раньше во многих старых играх размер делали кратным 2ке - 32/64/128/256 - это единицы называли юнитами)
Но современные движки: Юнити, Годот, Анрил - предпочитают сегодня работать в Сантиметрах, и давать в редакторе правила смешения кратные им: 1, 10, 25,50, 100, 500 см по умолчанию. Впрочем точные цифры сдвига можно настроить в настройках проекта.
В случае необходимости у "гранулы" должна быть простая и удобная коллизия которая позволит быстро создавать уровни по которым можно ходить без необходимости добавления дополнительных коллизий
После чего из таких "элементарных частиц"/гранул - можно собрать "модуль" для сборки уровня, которому главное условие: это удобство работы левелдизайнера.
Поэтому он так же должен иметь правило выставления общий Root Pivot Point - Точки поворота:
Вот пример из Fallout 4:
А вот как гранулы собираются в модуль, оттуда же:
И напомню, не забываем про нейминг!
Нейминг запчастей очень важен.
Подробнее про нейминг можно почитать в моем конспекте про модульный дизайна Скайрима.
Художникам нужно потрудиться и составить "соглашение об именовании" где будет дана инструкция как "расшифровывать" имя детали. Это может показаться избыточным - но окажется ОЧЕНЬ ВАЖНЫМ если вы планируете работать не в одиночку.
Но если кратко - то имя как гранулы так и модуля префаба - должно в себе содержать удобно читаемый идентификатор:
- Название типа комплекта(пещеры, универсальный строительный комплект, деревянные дома, металлические заводы и т д)
- Используемый материал поверхности(камень/дерево и т д)
- Тип модуля (поворот, развилка, прямой коридор, тупик и т д)
- модификаторы(поворот на лево/направо и т д)
- Номер варианта
- и т д.
Это вам решать. Но опять же ... это может облегчить жизнь и ускорить создание миров. Так как вы сможете выбирать нужные детальки в браузере редактора движка ориентируясь на название.
Итак отдаем шляпу Индианы Джонса -Витаусу и дальше рассказывать буду от его лица. И сегодня вас опять будет ждать рассказ о создании мира игры из модулей:
Шляпа Инди
В данном случае внутри студии Машин Геймз данный процесс был назван созданием модулей окружения из мелких деталей.
Основное внимание доклада будет уделено создания сложных сцен из маленьких простых 3д моделей которые под силу замоделить любому джуну. Это тема которую Витаутас долго развивал в течение своей карьеры начиная с учебного проекта представленного в журнале на 80Level .
Я бы сказал что я до сих пор еще разбираюсь в этом. Но сейчас это стало гораздо привычней и понятней и доступнее для меня как где что надо делать. А в начале моей карьеры я буквально не понимал как подойти к дизайну ассета от мелких деталей. И надеюсь мой опыт позволит об этом рассказать новым подрастающим поколениям 3д художников...
Давайте посмотрим на скриншоты из игры Индиана Джуонс. Почти все ассеты которые использовались для создания окружения - это готовые модули собранные из Гранул-деталей. За счет этого создавались базовые здания и вариации разрушения оных. Это не было заранее продумано по концепт арту.
Все локации состоят из крупных модулей собранных в ручную, а не процедурно.
Вот примерно так:
Все состоит из старых добрых тайловых текстур и декораций. И весь уровень состоит из довольно крупных модулей. (с бесшовным сдвигом в 6-8+ метров судя по дальнейшим скринам)
И сейчас будет объяснение как Машин Геймз работало над ними:
Для этого перейдем в МОДО : Где были выложены ВСЕ делали уровня Battle of Shanghai: вот так это выглядит целиком:
На этой сцене - находятся в нашем зоопарке большинство собранных модулей для уровня:
*Такие наборы где есть все детали с текущего уровня подряд часто называются Библиотека(Library) или просто Зоопарк(Zoo)
На этой сцене выложены почти ВСЕ архитектурные сетки в рамках этого сеттинга уровня: Это крыши, стены, двери и тому подобное...
Но стоит показать с чего вообще начинается создание модулей уровней. Все начинается с очень и очень грубого блокаута, по концепт арту или фото референсу* архитектуры:
Небольшая вставка*
*Важно учесть что в случае фоторефа - размеры особенно по вертикали можно смело увеличивать раза в 1.5, хотя тут много зависит от типа игры:
В VR можно преувеличить на 15-30% от первого лица на 1.5-2, от 3го лица - на 2-3...поверьте мне, на плоском 2д мониторе это будет смотреться по другому не так как в реальности. Хотя и концепт художник может неправильно оценить финальные пропорции, так что в случае чего - готовьтесь их увеличить.
Этот этап который нужно пройти в самом начале любой разработки:
Блокаут
На этом этапе создается грубая детализация и примерное разделение мешей по повторяемым тайловым текстурам.
Это этап исследования - на котором автор моделей в 3д пространстве вообще пытается понять сколько вообще текстур для атласа и в каком количестве вообще нужно сделать материалов и трим листов:
Это должно позволить понять какой по размерам тексель (*Разрешение пикселей на кв метр) будет нужен для игры. Что бы можно было спланировать создание универсального текстурного атласа так, что позводит не перегружать игровой движок вызовами рендера если везде будет небольшой набор повторяющихся
наборов материалов.
Интересно что изначально по концепту получилось слишком много и на этапе оптимизации не все изначально в первом проходе запланированные трим-текстуры попали в игру.
Потому что в процессе работы можно обнаружить что многие трим текстуры оказываются очень похожими дубликатами и их можно не использовать - заменив близким аналогом, без потери качество.
Это все пока еще чистые заглушки и итерации 3д. В игре в финальной версии - эти мелкие меши :
могут выглядеть совершенно по другому. Когда их смоделим по нормально.
Например их можно моделировать более точно или детально или вообще заменить кусок очищенной фотограмметрии. Так что на этом этапе Блокаута совершенно не нужно парится над детальной точностью к фоторефу/ концерту деталей. Тут вожны только силуэты и глобальные пропорции:
Это все еще черновик и главное тут: МАТЕРИАЛ и ГАБАРИТЫ. Но на нем можно запланировать как будут дорабатываться эти детали на следующем этапе. Поэтому лучше сразу спланировать - из какой тайловой текстуры можно вытянуть "материал" для детали, придется ли поработать над шейдером, добавив грязь/шум/декали, или придется сделать HERO* -ассет. Чего лучше не допускать.
*Hero - ассет/ Геоически ассет - это термин который означает 3д модель который будет использоваться всего один раз за уровень. Это обычно статуи, картины, надписи вывесок в магазины, ... и все такое оригинальное что не должно повторяться. На этапе создания модульного окружения и блокаута - уникальные ассеты лучше всего не делать. Их лучше всего отложить на последок. И делать когда все остальное уже готово. Хотя это индивидуально, возможно весь уровень будет строится вокруг гиганского дерева или статуи? Тогда они будут задачать тон уровню и их имеет смысл сделать первым.
Нужно будет решить будет ли материал на основе базовой безшовной текстуры или уникальной вставкой из специальной трим текстуры, Это лучше обсудить с техническими художниками . Иногда выгоднее сделать большую геометрию но сэкономит на текстурах.
Этот этап работы над уровнем через базовый блок аут должен быть быстрым, даже можно сказать - очень быстрым.*
*Я встречал упоминание, что для профессионального 3дшника Грубый Блокаут , для единственного реалистичного здания должен занимать около 2-3х рабочих дней, если у него на руках точные чертежи здания.
День первый - спланировать работу. Второй быстро создать габаритные меши. Тут не важно UV, и качество соединений - чисто пропорции. А например Vincent Dérozier - художник из Убисофт говорит что на создание куска локации(как на примере слева), нужно неделя работы:
* Мой же опыт как артлида, говорит о том что этап блокаута может растянуться на месяц . Хотя это наверное потому что я постоянно вмешиваюсь и вношу правки что бы результат на мой взгляд выглядело лучше...
А дальше начинается кропотливая работа над деталями где увеличивается их детализация и создается покрас материалом в Modo и/или Пейнтере.
Собственно перейдем к "гранулам", они же микромодули:
Вот так выглядят уже готовые "гранулы" в Индиан джонс что должны собираться в крупные модули:
*Сорян за качество - но на презентации был такой рендер. Дальше будут образцы получше - я приложил готовое с артстанции художника
Детали раскиданы довольно далеко друг от друга, исключительно для удобства запекания уникальной карты нормали и высот. Оставить некоторое пространство необходимо для того что бы избежать аномалий и артефактов при запекании деталей с хайполи.
Так что их даже не стоит переупаковывать в более плотный вид, разве что для удобства копирования готовой детали из набора перед сборкой модуля.
Вот так выглядит отдельная "гранула" с запеченной геометрией и тайловой текстурой:
*Для ускорения создания моделей в ААА часто используется для окружение комбинация из повторяемой не уникальной тайловой текстуры. Которая на ассете окружения стыкуется с уникальной запеченной картой нормалей запеченной с хайполи - это позволяет уточнить контуры и добавить детализацию - не сильно раздувая и увеличивая общий пак текстур. В некоторых играх как Doom Dark Ages или GOW - используют еще RGBA маски для модификации цвета или смешивания разных материалов на ассета. Так можно создать второй набор UV2 для более точной развертки под нужды дельной Карты нормалей у нужных ассетов - дав им больше текстурного пространства. Но об этом раскажу позже.
При создании крупного модуля соотвественно берем эту "гранулу "- прикрепляем к столбу и получаем основание - это же просто не правда?
Затем сверху к столбу крепим другую деталь,
Затем начинаем наращивать детализацию соединяя детали одну за другой: Одна деревеная доска за другой....
И по итогу, мы как будто получаем конструкцию модуля - которую не стыдно отдать левел дизайнеру:
шучу конечно - впереди еще много работы: но принцип надеюсь понятен... мелкие детали соединяются в единый крупный меш.
Детали крепятся одна за другой. И Да - возможно на каждой грануле будет своя текстура: Сделайте несколько вариаций.
(!) За этим действительно важно следить - для реализма переходы между текстурами должны быть довольно "мягкими" - окружение не должно бросаться в глаза своим контрастом тона. Тон должен контрастировать только на стыках разных материалов: Металл-Дерево-Камень и т д. Возможно вам придется сделать несколько смежных "переходных текстур", что бы создать градиент перехода.
Так что дальше достаточно скопировать уже готовые части - повернуть и поставить на место. Это не сложно
Дальше пересчитываем нормали:
(!) В Модо - можно быстро пересчитать нормали у вектексов у соединенных мешей - так что бы не было жестких врезок - это позволит сделать меш более удобным для рендера света на движке с РТ.
*Если кто знает как это можно делать в других 3д редакторах - майя, блендер дайте знать, это кажется важным для этой техники, иначе придется долго возится с soft и hard edge, ну или забить болт - на несколько странное поведение света на границах соединения "гранул")
Например у этих деталей в этом наборе используется всего 3 разных типа тайловых деревянных текстур материалов и наборов дополнений для разных частей, разного назначения.
А вот эти детали оказались очень важны для крыши и соединения крыши с полом:
Вот так они крепятся на уже готовом модуле:
(!) И не забывайте ставить габаритную модель персонажа рядом с модулями окружения!
Если бы этих деталей декораций не было - то переход от крыши к стене был бы ОЧЕНЬ СКУЧНЫМ - просто угол в 90 градусов.
Так что эти детали - очень важны для узнаваемости и визуальной идентичности китайской архитектуры 19го-начала 20го века. И при этом выглядят достаточно круто для игрока.
Эти детали можно создать ОЧЕНЬ быстро: Потому что сроки создания ассетов в Машин Геймз всегда очень жесткие даже для опытных художников. Так что моделирование хайполи и покрас в пейнтере за пару часов и добавление ассета в общий набор
В разных вариациях:
Так что потом вам останется только поместить модуль в игровой движок - загрузить текстуры - и вулая готово:
Так что все эти детали можно просто перетащить в игровой движок соединив в единый Префаб:
Так что в игре нет зданий созданных в виде единого целого и неделимого гига-меша. Все создается модульно из модулекй которые создаются из достаточно мелких деталей. В случае необходимости Префаб в движке ID/motor можно модифицировать, разобрать поменять.
* (Как и в Фоллауте 4м, - в Анрил используйте БП)
Так что проектируйте наборы, что бы детали дополняли друг друга - Например вот тут есть вертикальный столб и горизонтальная балка - и они дополняют друг друга
Кому-то из начинающих 3д шников это может показаться это странным - но по сути мы собираем зданияя так же как их собирают в реальности. Одна деталь вставляется в другую в нужные ей пазы!
*можете изучить для вдохновения схемы сборки мебили из Икеи
Так что это нормально постоянно думать о том как это должно было строится пока вы создаете игровые ресурсы. Используйте переходники, пазлы, декоративные вставки. Изучите этапы строительства и порядок установки тех или иных блоков если это возможно.
Высокая модульность из мелких деталей позволит моментально внести изменения в уровень если у вашего левел дизайнера с которым вы работаете появится острое желание что либо поменять на уровне. Используя горячие клавиши - можно быстро переключать один ассет на другой в браузере контента движка.
(Я уже говорил про нейминг ассетов? - это нужно в том числе и для такой магии)
Это удобно когда имена ассетам даны верно и есть модульный рабочий процесс и весь уровень создан из больших сборных конструкций из маленьких модулей :
Так что - просто следуйте такому подходу. И увидете насколько упростится ваша жизнь:
Вот скриншот на котором слева показан модуль - а справа трим набор и как что с чем соединяется:
Ассет модуля по сути может состоять из:
- Безшовной текстуры для плоских стен/пола/потолка (удобно менять материал целиком)
- Запеченных трим листов для уникальных деталей с детализацией
- И уникальных текстру для отдельных ассетов(часто они лежат на той же текстуры с тайлящими ассетами)
*(В общем сам процесс максимально близок к пайпалйну: The Ultimate Trim. Где у каждого материала есть два варианта: бесшовная плоская текстура и трим вариант для ассетов )
На этих скриншотах надеюсь достаточно понятное объяснение что происходит?
Если нет - то все начинается с базового набора:
- Запеченные кусочки с повреждениями - это тоже важная часть набора китбашей для левелдизайнера.
- Повторно используйте детали для создания множества вариаций на основе базового образца. Не создавайте их с нуля.
Все начинается с базового набора из которого создаем вариаюцию с повреждениями:
В общем это же кажется не сложным? Вы же справитесь с тем что запечь пару цилиндоров и прямоугольников и наложить на них пару текстурок? Не нужно извращаться с запеканием сложных по форме лоуполей.
Все элементы "гранул" для создания модулей - это почти всегда очень и очень простые формы. Не нужно пере усложнять себе жизнь. Делайте все из элементарных деталей, хотя конечно иногда понадобится что то более обосое:
По сути самое сложное тут - это сделать черепицу запеченную на вот такую форму:
Но так же можно создать и отдельную черепицу в виде отдельной детали, на случай если понадобится меш который нужно будет бросить на уровень, рядом с повреждениями.
Все элементы модулей и "гранул" должны состоять из простых форм и небольшого числа стандартных материалов выбранных для текущего уровня и которые будут работать вместе за счет цвета материала и силуэта. Детали одного "набора" должны дополнять друг друга смежными по тону и цвету значениями альбедо, что бы не давать сильного визуального контраста там где это нам не надо.
Для придания большей вариативности: можно добавить на меш гранулы больше вертексов и в движке добавить больше смешения за счет vertex paint или иной аналогичной техники прямо на уровне или в шейдере по маске.
Геодекали
Так же используется набор для декалей - который позволит накладывать на модели "дополнительные" украшения для придания уникальности: Будь то имитация кирпичей поверх штукатурки.
Но иногда можно добавить Геодекали еще на этапе модуля в 3д:
*Геодекали - это техника добавления мешаей с материалом декали еще на стадии разработки 3д модели в 3д редакторе. А не индивидуально в движке игры. Это позволяет накладывать на материал грязи, швов, трещин, граффити или дорожной разметки без нужды запекать в уникальную текстуру - что в общем случае способствует удешевлению производства.
Или рисунки на жителей на стене: фрески/граффити. Это называется "геодекали".
А еще весь этот модульный подход можно и нужно использовать и для создания крыш. Хотя с криволинейной формой может быть не сразу ясно что именно нужно сделать что бы ее. получить.
Например, что бы получить такой сгиб у края крыши:
Нам сначала все равно нужен прямой модуль из черепицы:
А затем в 3д редакторе - сгибаем форму с помощью модификаторов мягкого ручного выделения и выделения для смещения вертексов.
Модули модули модули. Везде в игре все состоит из повторяемыемых модулей:
Так работа шла со всеми ассетами в течение всей разработки и весь пайплайн был +- одинаков.
Отличался только процесс создания Техники, и этим занимался коллега художник. Андрей Михайлов и у него следующий доклад.
*" Insights into the challenges of creating vehicles with current-gen texel density, featuring techniques like texture blend shaders, trim sheets, and decals."
*Эта тема мне не особа интересна - но возможно сделаю и ее конспект.
Это все позволяет выдерживать очень высокую скорость работы и наполнять мир игры УЖАСАЮЩЕ быстро силами всего пары человек.
Каждое здание может выглядеть пугающе для новичка, который будет моделировть хайполи одного модуля в течение пары месяцев...
...но у нас уходили считанные часы на сборку модулей из деталей-гранул. И дни на сборку новых готовых зданий из уже готовых модулей:
Но используя модульный подход и оптимизировав скорость создания деталий для для строительства в рамках логики одного набора - Создание моделей для уровня может занять месяц и еще пару на создание вариаций.
Разбивайте строения на простые детали. Которые можно сделать за минуты. Не нужно пытаться сожрать слона целиком - ешьте его по частям.
В этом и заключается идея : Взять что сложное и разбить на логические повторяемые элементы каждое из которых особых трудностей не представляет. так что сначала создаются базовые модули и по мере нужды появляются новые вариации - например с разрушенными элементами:
Потом из тех же модулей создаются и украшения в виде мусора :
Которые должны сочетаться с разными материалами поверхностей.
Так что все что остается левел дизайнеру это медитативно расставлять модули и методично раскидывать украшения и декали по ассетам, что бы придать им фейковую уникальность.
И вовремя попросить нас доделывать недостающие модули.
В основе всей игры лежат простые по своей сути сетки - с одними и теми же атласами текстур которые потом объединяются в гораздо более сложные модульные ассеты: И все что вам нужно для создания такого города...
это вот этот набор сеток(выделено желтым, не бойтесь дальше подробнее)
Без шуток - это все что нам оказалось нужно для создания зданий в китайском городе:
*Не нужно пере-усложнять себе жизнь! Иногда меньше простых деталей позволяет создавать БОЛЬШЕ сложных. Ведь сложные вещи часто состоят из простых деталей.
Так вот примерный список что нам понадобились:
- Простые деревянные доски
- Деревянные балки с элементами отделки
- Разные наборы текстур одного дерева. для создания разных вариаций оттенков
Вот и все!
* Вот часть этих ассетов в боле хорошем качестве с артстанции автора:
там же можно почитать о том в какие сроки создавались ассеты:
(*)У меня есть пара знакомых 3д художников которым чисто физически стало от некоторых высказываний о сроках работы:
"я бы делал это две недели... что значит сделали за 2 дня?"
Все текстуры были сделаны в Substance Painter, многие из них начинались с создания быстрого хаполи скульптур в зебраше.
Как и во всем остальном, они часто выполнялись в очень сжатые сроки, что означало, что я редко мог потратить на их текстурирование больше дня, за редким исключением. На текстурирование каждого ассета обычно уходило несколько часов.
Дольше всего времени ушло бы на каменные стены, так как создание правдоподобных скульптур заняло бы не менее дня, поэтому их текстурирование от начала до конца заняло бы около 2х дней.
Краткое содержание:
Итак вкратце начнем закрепим что мы узнали за сегодня:
*Повторение мать учения!
1. Изучите реф!
Не кидайтесь сразу в бой. Изучите концепт арт/Фотореф. Разбейте и определите самые повторяющиеся и интересные детали и элементы конструкции. Можете зарисовать детали на листе или в закрасить в фотошопе.
Попытайтесь определить для себя примерный текстурный аталас для Трим Текстур и плотность/количество распределения материалов по нему.
2. Изучите блокаут архитектуры на раннем этапе.
Сделайте модульный конструктор! выделите самые частые и крупные и явные детали - сделайте их самыми первыми и потом добавляйте более редкие и малые! Тут нужно уменьшить гордость и не начинать лепить детализацию от самых вкусных и и интересных деталей бросающих вызов вашему скилу.
3. Загрузите это сразу в движок!
Выполняйте итерации прототипирования как можно быстрее - что бы как можно раньше закинуть в движок блокаут и дать левел дизайнеру с ним работать и который можно проверить в геймплее . Это сразу покажет вам если вы что то упустили. Начните с самых простых деталей и лишь потом переходите к сложным. А не наоборот.
Вот так выглядел уровень на раннем этапе разрабаотке: тут еще нет материалов, только цвет, форма и размер.
Вот так выглядел уровень в самом самом начале - это черновик Левелдизайнера которому дали чистый блокаут
И по мере готовности - грубый блокаут менялся на модули-блокаута:
Очень важно перейти к такому как можно быстрее - прежде чем заняться текстурированием.
4.Думайте о модульности элементов!
Соединяйте базовые элементы, меняйте текстуры на разные, но близкие для увеличения вариций .
(!)Дополните украшение вертекс пейнтом, декалями, но не полагайтесь на них целиком. Это приправа, а не основное блюдо. Если базовые ассеты модулей должны быть интересны и работать в общем и без них.
6. Начинайте с малого и простого!
Но временем ваш набор начнет разрастаться и начнет поддерживать сам себя. Создайте самые простые художетсвенные украшения для переходов между разными типами активов. И ваша мотивация и вера в себя будет расти, по мере роста числа возможных деталей.
7. Сложность растет по мере роста деталей!
*Главная сложность для 3д джуна - это то что вам нужно забыть то чему учат в художественных школах и курсах по созданию хайполи с последующем переходом в лоуполи!
Начните работать с окружением как с конструктором лего. Когда вы еще тоько проектируете для себя лего детали.
Объединяйте простые детали в крупные модули. Размножайте их. Копируйте, вставляйте, убирайте лишнее. Самые часто повтояющиеся комбинации для удобства копирования отложите целиком.
ак будет быстрее чем делать индивидуально каждый модуль уровня. В финале в качестве вишенки на торте добавляйте слои декорирования.
Не бойтесь начинать с простых деталей - даже если по началу* они плохо и дешево смотрятся по отдельности - то важную роль играет их итоговое сочетание. Меняйте тайловые текстуры - смотрите как все смотрится.
*Надеюсь у вас не будет проблем с продюсером что будет сразу требовать от вас "около- финального качества, а то ему дескать непонятно чего это вы возитесь
Всякие недостатки потом легко скрыть дополнительными декорациями: обломками наклейкми, и VFX огнем и дымом:
Собственно данная лекция все.
Думаю стоит дополнить ее ссылкой на артстанцию с артом: Vytautas Katarzis:
Там есть кое какие советы котырые имхо так же важны. Но не упомянуты в лекции. Но которые бы отлично дополнили бы ее !
Так что продолжу уже сам:
Совет номер 1: СЛОМАЙТЕ ГОТОВЫЙ МОДУЛЬ!
Довольно легко создать поворотные конструкции сломав модуль и добавив поворот на угол модуля. Это позволит создавать завороты формы. Так что из одного модуля легко получить другой, Из другого третий - чем больше делалей и комбинаций - то тем больше они начинают работать сами на себя.
Совет 2: Не создавайте новых элементов если вы можете скопировать и вставить.
Не увлекайтесь, вариаций должно быть ровно столько сколько нужно.
Но не больше. Но уж точно больше одной.
Набор деталей для модулей разрушения:
Мозг человека обычно перегружается если за раз в кадре будет 7+ вариаций.
С "гранулами" для разрушения можно работать как с любыми другими деталями... для создания модулей.
Совет номер 3: Универсальность и многоразовость:
Добавьте наборы с кирпичами - вы можете использовать их в цельной кладке или по отдельности.
Наполные модули изготовлены из своих материалов. Но поврежденные плитки так же используют тот же самый тайловый набор материала. Возможно где то может быть заметен шов, но игрок этого просто не заметит!
Совет номер 4: Не парьтесь
Эта и другие подобные стены были собраны очень и очень быстро - нужно было замять кирпичную кладку, слегка закрасить, использовать декали для дополнительной растушевки и добавления пятен и грязи.
Совет номер 5 : Используйте Тримы только там где это реально нужно.
Остальное делайте геометрией на основе повторяемой текстуры материала
Совет номер 6: Создайте красивый силуэт на повороте:
Чем больше углов с разными выступами тем ьольше у вас инструментов для создания силуэта.
Совет номер 7: Иногда нужно добавить и HERO ассет на уровень
Что бы заткнуть дырку в карте.
Такой ассет будет создаваться для уникального места и не будет повторятся в других местах. Он будет создается под конкретные запросы левел дизайнеров. Такой ассет должен иметь визуальные отличия от обычных модульных элементов. Но все равно можно "сэкономить" и создаеть его из стандартных текстрных карт для этого уровня.
Вот еще специфичный ассет для головоломки .
Совет номер 8: Экономьте текстурное пространство:
Если ассет зеркален относительно осей - можно сильно сэкономить...
Совет номер 9: Используйте Градиенты в шейдере!
Разный окрас от глобальных координат в движке сбивает восприятие и затрудняет визуальную усталость игрока от визуальных повторов:
Это очень дешевый - но все еще работающий метод повысить разнообразие на уровне:
При этом текстурный набор у них будет один и тот же!
Что приведет к сильной экономии ресурсов GPU и VRAM!
Это можно сделать визуальное разнообразие за счет градиента который будет работать в мировом пространстве.
Это должно работать примерно так:
Естественно цвет нужно накладывать не на все поверхности.
Совет номер 10: Сдвиги модулей
Можно сделать выступ кирпичей:
А можно повторить форму с двух сторон идеально.
И на финал Забавный факт:
Эти блоки стен повторяют декорации из Фильмов Спилберга про Индиану 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.
В которой рассказывалось как создавали с ассетов мегасканов и Фотограмметрии кисточки что бы лепить гигантские каменные структуры в Зебраше.
А так же сделать общий разбор процессов создания модульных ассетов тех или иных ассетов, на основе выложенных скринов с артстанции.