Душан Малькович — очень талантливый разработчик игр из Сербии. Он уже довольно давно работает над этим личным проектом. Мы начали дискуссию о построении визуализируемого пространства почти год назад, и теперь, по прошествии всего этого времени, 80.lv рады опубликовать подробную статью о создании дизайна окружения, выборе движка и инструментах, помогающих в визуализации.

Оригинал статьи

Перевод Наталья Третьякова.

Введение

Привет, меня зовут Душан Малькович я из Сербии. По профессии я математик, но создание видеоигр всегда было моей страстью. С самых ранних лет меня завораживал мир игр, и то, как все это работает, отсюда и мой интерес к данной специальности. Сейчас я возглавляю аналитический отдел и занимаюсь техническим дизайном в Eipix Entertainment, то есть отвечаю за математические расчеты работы игровых систем.

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

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

Выбор движка Unreal Engine

Честно говоря, начинал я с CryEngine. На тот момент это был единственный движок с поддержкой расчета глобального освещения в реальном времени (real time GI), и он был гораздо более продвинутый, чем все остальные, представленные на рынке. Дело в том, что он меня совсем разочаровал, в нем целая куча багов, да и сообщество разработчиков очень мало, так что я решил, что пора двигаться дальше.

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

UE4 напичкан опциями, которые, безусловно, облегчат вашу жизнь, если вы работаете в игровой или смежной индустрии. Однако хотелось бы остановиться на одной конкретной функции (как ни странно, это не Blueprints) — сложнейшем механизме визуализации. Почему именно на нем? Попробую объяснить на примере, чтобы не быть голословным. Представьте себе проектировщика, которому нужно создать высокополигональную модель какого-либо продукта, а затем продемонстрировать ее. Ему, конечно же, нужно ее отрендерить. Вот он отчитывается перед своим боссом или перед самим собой, и тут возникает вопрос: «А как это выглядит в светло-голубом цвете?» Тогда этот парень идет и делает еще один рендер, и еще один, и еще. Вот здесь использование UE4 может стать решающим фактором, на нем возможен рендер вашей супервысокополигональной модели в режиме реального времени: изменяйте цвета, добавляйте эффекты, пробуйте разные углы обзора, изменяйте модели освещения — и все это в режиме реального времени. Блестяще.

Архитектурная визуализация

Работа над этим проектом началась, когда я еще на полную ставку работал в Endtimes Studio. Мы работали над приключенческой игрой в жанре «look and click» с поддержкой виртуальной реальности под названием «Plugged», и для поддержания жизни проекта требовалось финансирование со стороны. Поэтому я занялся привлечением инвесторов, заинтересованных архитектурной визуализацией. Постепенно это стало моим основным занятием, ведь я влюбился в проект: мне пригодились мои навыки программирования, моделирования и текстурирования, чтобы добиться того, что мы имеем сейчас. Это было очень увлекательное занятие, да и сейчас остается таким, ведь я регулярно занимаюсь усовершенствованием этой работы.

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

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

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

Поиск ресурсов

Для UE4 недостаточно доступных ресурсов, но я думаю, что это просто здорово, и вот почему. Когда что-то становится доступным для всех (библиотеки ресурсов и материалов, програмные сценарии, и т.д.), исчезают фантазия и творчество, начинается гиперпроизводство и все разваливается — все вдруг становятся разработчиками игр.

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

Что же касается этого проекта, я использовал всего понемножку, ведь я — мастер на все руки. Большая часть того, что вы видите, сделана мной, кое-что взято из бесплатных библиотек и изменено на месте. Почти все материалы мои (я потратил много времени на их глубокое изучение в UE4), а текстуры — комбинация моей работы с Google Images.

Создание освещения

Работа с освещением в UE4 кажется сложной, пока вы не ознакомились с основами. Я использовал следующие настройки: направленный источник света (Directional light) связанный с небесной сферой, атмосферный свет (Skylight) с пользовательским скайбоксом и точечный свет (Point lights), чтобы выделить некоторые места.

Главный секрет заключается в «твиках». Я провел много времени, работая над постэффектами (Post Processing Volume) и определяя, какие настройки позволяют получить наилучшие результаты для каждой отдельной сцены. Это было на ранних этапах, ведь освещение нужно настроить единожды, поскольку почти все объекты визуализируемого пространства являются статическими. Я использовал статическое освещение, так как в то время подвижные источники света не могли с ним сравниться, хотя, увидев новый Unreal Kite Demo, я полностью изменил свое мнение.

Едва ли не самое главное, о чем нельзя забывать при использовании статического освещения — увеличить разрешение карт освещения (Light Maps), а также установить очень высокую величину непрямых отскоков (Indirect Bounces). Я использовал и другие эффекты, такие как «Световые шахты» (Light Shafts), «Блики объектива» (Lens Flares) и «Свечение» (Bloom), все они незаменимы при создании атмосферы.

Создание ландшафта

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

О чем нельзя забывать, создавая окружение с помощью UE4

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

Лично я, как правило, начинаю с того, что у меня получается не слишком хорошо, и в данном проекте это было моделирование. Я создал/собрал 80% моделей еще до начала работы с движком. Кроме того, всякий раз, когда что-то мне не поддается, я обращаюсь за помощью к моим друзьям и коллегам в Endtimes Studio и Eipix Entertainment, а также через интернет.

Другие инструменты

В процессе я использовал множество инструментов: 3ds Max для моделирования и управления UV разверткой, Photoshop для создания текстур и карт различных типов (шероховатости, отражения и т.д.) и Speed ​​Tree для моделирования более сложных растений (деревья, кусты и т.д.). Если хотите, чтобы ваши модели выглядели более «потрепанными», вы можете использовать такие программы как Substance Painter, Substance Designer или Quixel Suite. В данной сцене все должно выглядеть новым и свежим, так что я ими не пользовался. Главное что вам нужно — что-то для моделирования и что-то для работы с текстурами, все остальное — это просто дополнения.