Статья изначально была опубликована в облике интервью на форуме MapCore, потом переработана на сайте Тьяго Клафке (Thiago Klafke). В этот момент автор работает над Overwatch.

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

Планирование

Первым делом я всегда делаю план всей подмостки в 3ds Max. Я не хотел тратить на это слишком много времени, поэтому попросту сосредоточился на создании интересных форм. Затем я импортировал все в одинешенек файл на Unreal Engine, что позволило понять, как это будет глядеть в игре.

picture01

Поскольку художники окружения склонны уделять чересчур много внимания техническим деталям, закладка – это отличное упражнение для развития созидательной жилки, т.к. на этом этапе нужно полностью сосредоточиться на создании всевозможных красивостей и выстроить их в угоду геймплею. Кроме того, на стадии закладки задается верный масштаб, что очень важно при работе с городским окружением, и в качестве «примерки» я использую полномасштабную модель игрового персонажа. Это позволяет скоро определить, на какой высоте должна быть, к примеру, дверная ручка или перила. Стадия закладки потребовала у меня итого 3 дня, но идеи, внедренные на этом этапе, пробили себе линия и к финальной версии сцены (включая начальную геометрию объектов).

picture02

Моделлинг

Первая фаза моделлинга была, по сути, самой сложной. Я начинов с того, что честно спросил себя, получится ли у меня замоделлить всю закладку в введённый срок. Изучение того, как работают PBR-материалы, потребовало чуть вяще времени, чем я ожидал.

Сначала я хотел сделать каждое дом по-настоящему уникальным. Но в итоге получилось так, что я потратил несколько дней на моделлинг одного один-единственного здания, и сам собой напросился вывод: использовать уникальную геометрию совместно с модульными «кирпичиками Lego». Я старался делать так, чтобы все уникальные объекты могли быть встроены в ту же сетку, что и модульные, чтобы я мог комбинировать их товарищ с другом, быстро получая большую вариативность.

picture03

Настроение

Мне хотелось, чтобы порой суток для сцены был ранний вечер, поэтому я решил использовать не острые тени, а непрямое освещение и объемный свет. Некоторые обожают делать это в конце, но я решил заняться этим с самого основы. Полагаю, так работа идет несколько медленнее (поскольку требуется вяще времени, чтобы обмозговать все и вся), но это позволило мне изучить, как в Unreal трудится система постобработки, и в итоге у меня получилось как раз то настроение, что я желал.

Здесь показано, как в процессе работы менялось освещение

Здесь показано, как в процессе работы менялось освещение

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

Материалы и текстуры

В этой сцене изобильно используются плиточные текстуры, большая «каемочная» текстура (это карта вышин, совмещающая в себе множество разных кромок, каемок и обрамлений; в английском стиле используются варианты «trim sheet» или «trim texture») и несколько уникальных текстур. В начине работы я, как и ожидалось, немного застрял на изучении PBR-материалов, но в итоге разобрался с ними. Да, сознаюсь, мои материалы не выглядят фантастически, но со своей работой, на мой взгляд, справляются…

Несколько примеров материалов

Несколько образцов материалов

Кроме того, для каждого ассета я создал карты нормалей. Отдельный из них запекались в 3ds Max из высопополигональных моделей, некоторые лепились в Zbrush, а отдельный полностью делались в nDo. Карты нормалей сейчас куда значительнее, чем раньше, потому что PBS для освещения нужны как раз именно они. Прошли те дни, когда детали имитировались на диффузной карте и карте отражений.

Создание тротуара

Создание панели

На каком-то этапе я понял, что моим материалам не хватает резкости и детализации, потому начал экспериментировать с инструментами набора Quixel Suite. Я утилитарны мгновенно влюбился в dDo, поскольку он дал как раз то, что мне было нужно: отличные базисные материалы. Мне оставалось лишь добавить поверх этого базиса собственные «специи».

Мой процесс труды в dDo выглядел следующим образом: я создавал ID-карту, чтобы задать все материалы, какие будут находиться в текстуре. Затем я выбирал несколько базовых пресетов (что подавало идеальные значения для неровностей, металличности и альбедо) и, добившись необходимого результата, добавлял то, что нарисовал сам. В итоге получилась ситуация «вин-вин»: мои материалы сделались выглядеть гораздо правдоподобнее, и я мог заново использовать слои, какие вручную рисовал для старых текстур.

[Тут потеряна картинка; Подпись: «Сравнение обыкновенного тротуара (нарисованного вручную) и сделанного в dDo»]

Совет: Текстуру в Unreal можно сделать немало четкой, указав Sharpen в ниспадающем списке Mip Gen Settings, какой находится в меню Level of Detail (чтобы открыть эту настройку, двукратно кликните по текстурной карте).

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

Образцы материалов

Одна из лучших функций Unreal Engine – это то, что образчики материалов (Material Instance) можно очень легко основывать из обычных материалов. Работать с этими образцами гораздо несложнее, поскольку они сэкономят вам кучу времени – вам уже не надо создавать сеть нодов любой раз, когда вы захотите новый материал. Кроме того, доработка материалов выполняется гораздо скорее, поскольку изменение параметров образца не приводит к перезагрузке шейдера, в отличие от сохранения обыкновенного материала.

picture08

Простой материал с картой альбедо. Поддержка карты нормалей, а также карты неровностей, карты металличности и карты объемного света. Оригинальный материал – слева, образчик материала – справа.

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

Ниже несколько созданных мной базисных материалов.

Architecture_Parallax_3Layers – это материал с поддержкой «parallax mapping» (это техника, симулирующая рельеф на плоской поверхности). Используется, как правило, для окон.

picture09

Собственно, сеть нодов для эффекта «parallax mapping» будет проста.

picture10

Asphalt – специальный материал, использующий карту с всемирными координатами (т.е. «world space map») и «пятнистую» текстуру, которая изобильно используется поверх крупномасштабных деталей. Этот материал запоздалее был заново использован в «мокрой» версии (см. ниже) – для путей.

Architecture_Wet_Dirty – этот материал использует «цвета верхушек» (vertex colors), чтобы совместить базовый материал с двумя иными материалами: «грязную» версию карты альбедо и плоский материал со 100-процентным отражением (для симуляции луж). Чтобы разъяснить все эти ноды, потребуется отдельная статья, поэтому я просто покину здесь эту картинку, демонстрирующую шейдерную сеть:

picture12

«Мокрый» материал в поступке:

picture12b

Создание вариативности модификатором Symmetry

Если вам надо создать немало вариаций одного объекта, то один из самых простых способов – это симметрия. Комплект объектов на картинке ниже состоит из двух базовых моделей и нескольких вариаций, созданных при поддержки модификатора Symmetry в 3ds Max. То же самое можно сделать и в Maya при поддержки MirrorCut:

picture17

Я также использовал этот трюк, чтобы создать несколько вариаций витрины:

picture17b

Освещение и постобработка

Для своей подмостки я использовал стандартные карты освещения. Хотя в Unreal 4 есть возможность основывать динамическое освещение, я все же считаю, что сэкономить время – это лучше, чем  слегка повысить качество картинки, поэтому и воспользовался картами освещения.

Освещение было сделано попросту: с маленькими «золотыми» светильниками, контрастирующими с объемным синим светом. Вместо того чтобы освещать тяни уровень, я создал несколько «маленьких» сцен. Это сделало степень менее «театральным» и больше похожим на то, как должен выглядеть натуральный город. Я также специально разместил в некоторых местах ключи света, чтобы они показали«мокрость», наличие луж на некоторых участках. Полагаю, созданием луж в ближайшем будущем многие будут злоупотреблять (до тех пор, пока ее не будет ненавидеть любой уважающий себя художник окружения), но я, впрочем, старался сделать все как можно несложнее и добавлять эту «мокрость» лишь туда, где она имела смысл.

Лужи, специально расположенные рядом с источниками света

Лужи, специально размещённые рядом с источниками света

Что касается постобработки, то я старался свести всю труд за пределами движка к минимуму. Я специально отвел время на то, чтобы беспросветные участки не были слишком темными (из-за этого теряется детализация), а ясные – слишком светлыми. Это делается через изменение значений, отвечающих за освещение (exposure values), а также при поддержки настройки Tint/Contrast, которая находится под пунктом Global Post Process.

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

«Обертка»

Этот этап отнимает всего 10% поре, но делает все на 200% лучше. Я просто создал маленькие точки заинтересованности и начал добавлять к ним объекты, частицы и декали. Кроме того, я раздобыл несколько моделей из незаконченных подмостков и даже из начальной закладки. Например, геометрия этого газетного киоска, была «отполирована» и обеспечена материалами:

picture14

Опять же, никогда не выкидывайте идеи/объекты. Они вечно могут пригодиться в будущем.

Свечение – это просто два эмиттера крупиц: обычный «круглый» и горизонтальный (для имитации анаморфных бликов).

picture15

Образец использования декалей:

picture16

Некоторые объекты, использованные в сцене:

picture18

Итак, этот проект научил меня следующему:

  • Никогда не недооценивай того, сколько поре может понадобиться на создание игрового окружения. Начальная закладка вышла слишком амбициозной по отношению ко времени и ресурсам, которые у меня бывальщины для создания этой сцены.
  • Никогда не выкидывайте идеи! Отдельный объекты, созданные еще на стадии закладки, впоследствии могут быть доработаны и добавлены в финальную версию.
  • Никогда не пытайтесь отыскать одно правило, которое подходило бы для создания абсолютно всех ассетов. Если держаться определенных размеров, вы можете без труда сочетать вместе уникальные и модульные объекты. То же самое прикасается плиточных и уникальных текстур – найдите золотую середину, чтобы их можно было использовать совместно, когда это имеет смысл.
  • Смело ставьте работу на паузу, если ощущаете, что зашли в тупик или если возитесь с чем-то слишком длинно. Лучше довериться инстинктам, чем пытаться не «тратить время впустую» и закончить труд как можно быстрее.
  • Не будьте динозавром и шагайте в ногу с прогрессом! Вначале я не хотел пользоваться dDo, потому что думал, что все мои текстуры в любом случае будут глядеть одинаково, но результат себя оправдал. Нужно лишь употреблять этой штукой с умом.
  • Чтобы создавать хорошие материалы, текстурный художник должен уметь употреблять разными инструментами. Не прилипайте к чему-то одному, исследуйте все варианты, чтобы отыскать тот, который лучше подойдет к каждой из возможных ситуаций.
  • Нет такого понятия, как утерянное время или сделанная впустую работа. Даже если итог почти незаметен, каждый раз, когда вы над чем-то работаете, вы исподволь становитесь более умелым и опытным художником. Как правило, это означает труд и над «провалившимися» проектами. Но если вдуматься, то их трудно назвать крахами, потому что мы учимся и на ошибках, и на вещах, что сделаны, как надо. У меня было несколько идей, над какими я упорно трудился по несколько часов, но так и не довел до воплощения, и это нормально. В итоге это дало мне немало широкое понимание того, как работать с игровым окружением, благодаря чему я принимал верные решения в финале этого проекта.
  • Забавный факт: Я пытался сделать эту сцену в течение года, исследуя несколько идей, придуманных ранее. По сути, это уже третья версия этой идеи, и штука в том, что в финале свое применение нашли (разумеется, не без доработки) масса ассетов, созданных для предыдущих версий.
  • Это немного клише, но отметить все же значительно: не бойтесь делать. Сделайте кучу барахла, а показывайте лишь, что стоит того, чтобы его показать (как правило, это лишь небольшой процент из созданного). Это один-единственный способ найти свой стиль и обрести уверенность в собственных навыках.

thiago-klafke-sampavr-2

thiago-klafke-sampavr-3

thiago-klafke-sampavr-car

thiago-klafke-sampavr-4

Еще одну труд Тьяго Клафке найдете по ссылке: «Храм Уту».