30/04/2019

Воссоздание стиля Warhammer 40K

Привет, меня зовут Скотт Пирс. Я художник окружения из Мельбурна, Австралия. Вот уже больше десяти лет работаю в игровой индустрии. Карьеру начал в студии Transmission Games, занимающейся созданием авиасимуляторов и спортивных игр. Я достаточно стар, чтобы помнить Wolfenstein 3D, Prince of Persia и то, как появился самый первый Unreal. Все они произвели на меня огромное впечатление!

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

  

  

Cities of Death: Стиль

Warhammer 40K отличается очень узнаваемым стилем. Чтобы моя сцена максимально походила на 40К, я широко использовал референсы с впечатляющими миниатюрами из настольной игры, а также множество эскизов от энтузиастов и профессионалов, посвященных этой вселенной. Кроме того, по 40К существует множество отмененных игр: скриншоты из Dark Millennium оказались неоценимым подспорьем.

  

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

Мой проект Cities of Death вырос из идеи преобразовать одну из модульных миниатюр — Basilica Administratum — в игровую модель. Я старался делать все максимально близко к видению Games Workshop. Я решил, что использование столь узнаваемого здания из 40К в качестве ключевого элемента, поможет четко дать понять, к какой вселенной относится все окружение. При разработке любых уникальных черт для сцены я всегда оглядывался на общую эстетику.

Моделирование

Большинство моделей этого проекта были созданы в комбинации моделирования сабдивами для архитектурных объектов и основных поверхностей и использования ZBrush для скульптурных элементов. Все это запекалось в игровые меши. Я выбрал такой подход, потому что миниатюры всегда рельефные; их поверхности редко бывают плоскими и снабжены множеством деталей. Я хотел подсветить грани и детализацию поверхности, а для этого как раз и используется запекание карты нормалей!  Установив такую цель, я попытался разбить каждый меш на более мелкие модульные компоненты, которые мог бы затем использовать повторно. Таким образом, у меня получилась определенная библиотека деталей для китбашинга, которая позволила сохранить визуальную консистентность в рамках всего проекта.

Все медные черепа, которые во множестве используются в этой сцене, на самом деле — вариации единственного оригинального меша медного черепа. Я экспортировал многополигональный сабдив-меш черепа (или черепов) и перенес его в ZBrush. С этой моделью в ZBrush я превратил оригинальный череп в сабтул и определил на место. Затем с помощью DynaMesh изменил череп с помощью разных кистей: trim brushes, clay build up brush и move brush. Не лишним было убедиться, что разрешение DynaMesh достаточно велико, чтобы сохранить большую и среднюю формы. При необходимости я отключал DynaMesh и добавлял сабдивы к мешу, создавая новые детали.

  

Кроме того, я использовал и другую технику: создание базового меша в 3ds Max с последующим экспортом его в ZBrush. Предварительно я тщательно проверял, что как у этого меша, так и у всех необходимых сабдивов, которые должны стать общим элементом, правильная форма и пропорции. И вновь я использовал DynaMesh с высокими настройками, чтобы точно сохранить форму базового меша и обеспечить себе достаточно геометрии, чтобы добиться того уровня детализации, к которому стремился.

Затем я возвращал элементы обратно в 3ds Max, при необходимости используя децимацию, если число вершин оказывалось слишком высоким. И уже в 3ds Max "рисовал" низкополигональный меш с помощью выдавливания ребер. Тут мне помогла вкладка Freeform панели Ribbon в 3ds Max. В этом режиме выбранная поверхность совпадает с топологией сетки — это очень полезно. Что касается мешей сабдивов и создания их низкополигональных мешей, я просто дублировал многополигональный меш и удалял необязательные грани, предварительно установив подходящий показатель сглаживания Turbosmooth. Таким образом, каждый низкополигональный меш получал два ассоциированных комплекта развертки: один для низкополигонального запекания, другой — для просчета освещения в UE4.

Для запекания низкополигональных мешей я ближе к концу проекта часто использовал Marmoset Toolbag 3. Главное его преимущество — впечатляющая скорость запекания, особенно когда речь идет о фоновом затенении. Кроме того, он позволяет избавиться от волн и перекосов в тенях. Тоже самое можно сделать и в Substance Designer, однако чуть более сложно и медленно. Создаваемая в Toolbag клетка чаще всего подходила, и только в редких случаях, когда не удавалось добиться желаемого результата, я обманывал сам себя и прибегал к помощи Substance Painter для запекания.

  

  

Блюпринты UE4

Я хотел добиться большего контроля над процессом запекания многополигональной модели и просчета освещения, так что решил, что проще всего раздробить мои игровые меши на управляемые фрагменты, а потом собрать их снова, используя блюпринт UE4. Сам способ, который Games Workshop использует для создания своих миниатюр, навел меня на мысль о таком подходе. В итоге я получил ряд игровых мешей с большим числом вершин и относительно большими текстурными таблицами, однако с ними стало проще разбираться. Упорядочив все таким образом, я буквально побаловал себя, ведь такую роскошь редко можно себе позволить в рамках разработки!

Блюпринты UE4 — просто удивительные и очень гибкие. Я буквально царапнул по поверхности этой системы, но надеюсь, что в будущем смогу лучше с ней разобраться. Если говорить вкратце, сокеты — это своего рода наборы координат позиции/поворота/масштаба. Их можно устанавливать в редакторе статических мешей UE4 и экспортировать в игровой меш как локатор (Maya) или объект Dummy (3ds Max) с префиксом SOCKET_socketnamehere. Создание блюпринта в качестве актера и расположение статического меша с сокетом сверху или снизу позволило мне построить иерархию статических мешей. Можно даже использовать сокет одного блюпринта в другом блюпринте. Это просто отлично, потому что не каждый меш, который я создал, предназначался для привязки к сетке. Это позволило мне использовать варианты ассетов в разных конфигурациях.

Текстурирование

Для создания всех текстур в сцене использовался Substance Painter, а также несколько материалов, которые я сделал в Designer. У меня было несколько основных материалов в UE4. Один из них — простой и бесхитростный со стандартными параметрами Base Colour/Metallic/Roughness/Normal/Ambient Occlusion. Впрочем, я начал создавать и несколько особых основных материалов, держа в уме освещение и некоторые излучающие поверхности, которые используются в интерфейсе управления. Я объединил функции материалов в основной многоуровневый материал для создания витража — одна функция для стекла, другая для рамы, еще одна для грязи и пыли.

  

Я не волшебник, когда дело касается материалов в UE4, но с помощью интернета и метода проб и ошибок я смог создать материалы, которые удовлетворяли моим нуждам. Комбинируя маски и параметры (будь то скалярные или векторные), а при необходимости и функции материалов, я смог быстро настроить характеристики инстансов в UE4.  Что же касается витража — он был настроен таким образом, чтобы я мог манипулировать его цветом, прозрачностью, текстурой и интенсивностью зеркальной подсветки, а также количеством и непрозрачностью грязи. Возможность сделать все это в UE4 сэкономила мне кучу времени.

Сборка города

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

Так как я по объективным причинам не мог смоделировать целый город в стиле 40K (хотя, на мой взгляд, Эрасмус Бросдау проделал отличную работу!), мне оставалось создать иллюзию масштаба, правильно расположив объекты. Такой эффект достигается благодаря башне и громоздким вертикальным трубам на переднем плане, а также лестничным пролетам, которые добавляют ощущение продолжения архитектурного ансамбля под балконом. Дымоходы и длинные гигантские трубы символизируют промышленные комплексы за зданием Администратума.

Эффект линз

Эффект линз — это простой эмиттер частиц, созданный в Cascade. Я лишь сделал материал с наложенной маской, имитирующей эффект линз, и параметр, контролирующий степень рассеивания и цвет эффекта линз. В нужных местах я их разместил вручную и задал рассеивание и цвет в зависимости от источника света.

В процессе освещения сцены на первое место вышло использование блюпринтов в качестве актеров. Помимо направленного света луны (я использовал интенсивность 0,3) и нескольких световых точек, окрашенных в оранжевый для отдаленных объектов, сцена освещается уличными и настенными фонарями, а также свечами. Прикрепление блюпринта к каждому типу источников света позволило изменять вариации одного светового блюпринта в редакторе и затем применять их ко всем блюпринтам-актерам этого типа. Таким образом, настроить освещение оказалось несложным делом. Чтобы настроить каждый источник света в сцене такого масштаба, потребовалась бы бездна времени. К тому же, это был бы невероятно утомительный процесс, учитывая их количество.

  

Блюпринты содержали как статичные меши, так и свет — и точечный, и прожекторный. Функция Construstion Script позволила задать параметры, которые контролировали не только цвет статичного меша и рассеивающие компоненты, но и цвет источника света с помощью одного инструмента. Среди других добавленных инструментов стоит выделить умножение рассеивания материала (крайне полезное для настройки резкости вокруг светового пятна), а также специальные инструменты для регулирования световых параметров интенсивности/затухания/внутреннего и внешнего конуса.

Освещение

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

Я часто использовал область расчета отражений, возможно, даже немного переборщил. Это очень сильно повлияло на внешний вид сцены, так как на ней много гладких и металлических поверхностей. Кроме того, я широко использовал инструменты постобработки UE4, чтобы композиция смотрелась более холодной и синей, поскольку освещение выглядело слишком теплым. Я сделал сильные корректировки выдержки в соответствии с ночным типом сцены. Я также использовал Post Processor, но результат этого практически незаметен. Финальным штрихом стало добавление объемного тумана вместе с дымом и паром от Epic.

Цели и результаты проекта

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

Оригинальный материал на 80.lv

Recent Posts

Терпение, труд и Backbone

07/11/2019
О Backbone не слышал только ленивый. Детективная игра с элементами стелса в сеттинге антиутопичного Ванкувера. Рассказываем, как пиксельная игра в оболочке Unreal Engine шагает к успеху.

Кому принадлежит ваша игра?

05/11/2019
Специалисты компании Social Quantum помогают нам разобраться, какие шаги необходимо предпринять и какие документы оформить, чтобы избежать споров о правах на игру.

Разработка мультиплеера на Blueprints. Часть 2

28/10/2019
Продолжаем разговор — типы серверов, game mode, инструменты, классы, разработка фич, репликация виджетов, сетевая оптимизация.