Следующая новость
Предыдущая новость

Среди камней и виноградников: как создавалась столица Туссента в "Ведьмаке 3"

Среди камней и виноградников: как создавалась столица Туссента в Ведьмаке 3

Художник по окружению из CD Projekt Red о дизайне Боклера — центральной локации дополнения «Кровь и вино».

В мае 2017 года на GDC выступил художник по окружению Кацпер Непокульчицкий (Kacper Niepokólczycki), который подробно рассказал о процессе создания города Боклер: от раннего моделирования до работы с материалами.

Мы перевели выступление.

Основные вызовы

Как считает Кацпер, главная сложность при создании «Крови и вина» была в том, что DLC к игре оказалось сравнимо по объёму с иными ААА-блокбастерами. За короткое время нужно было создать столько контента, на сколько обычно у разработчиков уходит около года.

Сеттинг «Крови и вина» значительно отличается от основной игры: мир «Ведьмака 3» — это, как выразился Непокульчицкий, «место, где вы точно не захотите провести отпуск». И его оформление это подчёркивает. А графство Туссент и его столица Боклер — красочная, живая местность, где живут счастливые и вечно хмельные люди.

Создавая графство, разработчики вдохновлялись живописными уголками Франции и Италии, но в то же время им надо было сохранить дух «Ведьмака» в дополнении. В конце концов, Геральт — охотник на монстров, так что они должны водиться даже в таких живописных местах.

Также CD Projekt Red нужно было создать новый полноценный город — как атмосферой, так и контентом отличающийся от Новиграда, центрального города базовой игры.

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

Препродакшн

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

  • ​ создать город, в котором игроку будет легко ориентироваться;
  • использовать важные локации из книг.

Из литературной основы взяли сам город, гору Горгону и княжеский дворец. Последние два заметны практически из любой точки Туссента и служат игроку ориентирами.

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

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

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

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

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

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

Блокаут

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

Приём применяли несколько раз — всё для того, чтобы скрыть процесс отрисовки мешей. Самой сложной локацией города стала главная площадь, что немудрено: это большое открытое пространство со множеством деталей.

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

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

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

Одними зданиями дело не ограничилось. Поскольку Боклер — город с частыми перепадами высот, разработчики использовали лестницы и подъёмы, чтобы скрыть от игрока генерацию.

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

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

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

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

Меши

Затем настало время наполнить город деталями и создать красивый экстерьер.

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

Таков был технический бюджет на город для художников:

Пункт «текстуры» разделён на две части потому, что 200 мегабайт отданы под удалённые объекты: горы, леса, деревни и так далее. Ведь «Ведьмак 3» — игра с открытым миром, и они всегда видимы для игрока.

Первым делом команда Непокульчицкого решила разобраться с наиболее сложными частями Боклера и, в зависимости от того, сколько они займут, оптимизировать остальные. Первые трудности вызвала гавань — из-за рынка со множеством мелких декораций и NPC. Вторым по трудоёмкости работы шёл нижний город, третьей — верхний, затем — главная площадь, храм и «Мандрагора» — место, где по сюжету проходит вечеринка богачей.

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

Разработчики решили не изобретать велосипед и использовать то, что уже работало в «Ведьмаке 3», немного поменяв технологии. Решение было простое: стриминг данных плюс LOD’ы и пара трюков.

Если игрок в 50 метрах от условного дома, в память загружается только прокси. Когда он приближается на расстояние между 50 и 20 метрами, загружается LOD 1. А вблизи дома загружается ещё и LOD 0. Это базовая схема, она немного менялась в зависимости от длины улиц, но в целом всё работало так.

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

Чтобы ускорить рендеринг видов, разработчики использовали Umbra. Её работу тоже можно разобрать на примере того же дома.

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

Текстуры

Разработчики хотели, чтобы плотность текселей была в два раза выше, чем в оригинальном «Ведьмаке 3», а дома выглядели бы особенно. К тому же, нужно было покрыть текстурами большие поверхности вроде стен.

В движке «Ведьмака» одна текстура занимает 0,6 мегабайта. В итоге все четыре стены дома занимали бы 72 мегабайта, а это опять почти четверть от всего бюджета.

Поэтому разработчики отказались от кастомных текстур и стали искать новые методы для создания оригинального облика объектов

Сначала объекты «красились» в 3DS Max, а затем переносились в движок. Именно этот жёлтый дом Непокульчицкий выбрал для примера потому, что в нём используется множество разных вариантов текстур. К тому же, он выглядит уникальным: потрёпанный, но всё равно богато украшенный.

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

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

Живой мир

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

Базовым решением стала система сущностей (entities), встроенная в движок. Сущность — это по сути группа ассетов, которую очень легко настраивать.

Выводы из опыта

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

Вопросы и ответы

Расскажите поподробнее о том, как вы создавали LOD’ы.

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

В конце разработки всегда приходится идти на жертвы. Как вы поддерживали мораль команды на высоком уровне?

Времени на то, чтобы сделать всё, что тебе хочется, всегда не хватает. Нужно уметь говорить себе и коллегам «Хватит. Всё уже достаточно хорошо». Что касается морали: основную игру приняли очень хорошо, так что нам нужно было держать планку качества. Мне кажется, большинство из нас постоянно думали: «Нужно оправдать ожидания фанатов». Так что да, работа была тяжёлая, но мы знали, что в итоге она окупится.

Дизайном уровней занимались художники или дизайнеры?

Мы работали совместно — городом занималась так называемая Location Team, которая состоит как из художников, так и из дизайнеров.

Источник


Источник
ТОП НОВОСТЕЙ ИГРОВОЙ ИНДУСТРИИ

Последние новости