Назад
Re:Imagine London в Fortnite — настоящий Лондон, создаваемый в UEFN
Разработчики Fortnite
Re:Imagine London (код острова: 1442-4257-4418) — это результат сотрудничества знаменитой студии Zaha Hadid Architects (ZHA) и Epic Games, которые в точности воспроизвели один из легендарных районов Лондона. Игрокам Fortnite предлагается внести свой вклад, создавая свои уникальные постройки на острове.
У этого проекта было несколько ключевых целей:
Студия ZHA, уже набившая руку в Unreal Engine, сыграла в этом проекте решающую роль. Они не только спроектировали здания, но и создали уникальный геймплей, воплотив в нём реальные архитектурные и строительные концепции. ZHA и Epic также сотрудничали с Accucities — ещё одними опытными разработчиками на Unreal Engine, которые внедрили в UEFN высокоточные модели Лондона, создав основу для игровой среды.
Об истории создания Re:Imagine London рассказывается в этом видео на YouTube-канале The B1M.

На территории, предоставленной в распоряжение игрокам, имеется ряд легендарных достопримечательностей, таких как Собор Св. Павла, галерея современного искусства Тейт и театр Шекспира «Глобус». В пределах игровой территории Лондона имеются четыре строительных участка.

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



Когда игрок нажимает на кнопку выстрела, мы сначала проверяем, находится ли он в «зоне строительства», и затем запускаем процедуру рейкастинга, чтобы определить, на какую грань вокселя он смотрит. Затем, если это допустимо, в таком месте добавляется новый воксель.
Для обоих этих методов разработчики создали большой набор модульных строительных объектов — их более 330, — которые Verse, в свою очередь, создаёт в среде выполнения. В самом коде обеспечивается принцип детерминизма: происходит только удаление и создание необходимых объектов окружения.

Рассмотрим краткое описание принципа действия этих методов.

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

Каждое правило определено как отдельный класс Verse, который собирается в коде в «дерево». Такой подход позволяет упростить создание новых правил, экспериментировать с различными идеями и назначать определённые стили каждому типу постройки. Как показано на изображении ниже, применение различных правил к одному и тому же набору вокселей даёт самые разные результаты.

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


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


Эта функция реализована путём создания кубоидов, которые в обычном состоянии не видны, а также с использованием устройства «Внутриигровое видео» для настройки набора параметров материала. Набор параметров материала, в свою очередь, позволяет регулировать непрозрачность материала. Параметр «Только инициатор» позволяет игрокам регулировать этот вид в независимом режиме, то есть, он действует только для использующего его игрока, а не для всех игроков.
Кроме того, остров сохраняет такую информацию, как внутриигровой уровень игрока, пройденные задания и разблокированные детали. И это всё благодаря Verse Persistence!

Для «оживления» города применяются три метода:

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

Надеемся, вам понравится исследовать территорию Re:Imagine London и создавать там что-то своё, черпая вдохновение для будущих островов!



У этого проекта было несколько ключевых целей:
- продемонстрировать новый тип игрового процесса в Unreal Editor для Fortnite (UEFN);
- расширить возможности Verse и других функций UEFN, протестировав и доработав их до максимума;
- показать, как Fortnite в увлекательном формате доносит инновационные идеи до широкой аудитории;
- узнать, как опытные пользователи Unreal Engine могут применить свои знания в UEFN;
- и, что особенно важно, вдохновить игроков на создание образа городов будущего с удобными пешеходными зонами, яркой жизнью, обилием зелени и акцентом на экологичность.
Студия ZHA, уже набившая руку в Unreal Engine, сыграла в этом проекте решающую роль. Они не только спроектировали здания, но и создали уникальный геймплей, воплотив в нём реальные архитектурные и строительные концепции. ZHA и Epic также сотрудничали с Accucities — ещё одними опытными разработчиками на Unreal Engine, которые внедрили в UEFN высокоточные модели Лондона, создав основу для игровой среды.
Об истории создания Re:Imagine London рассказывается в этом видео на YouTube-канале The B1M.
Новая система строительства
В Re:Imagine London демонстрируется совершенно новая система строительства, написанная на Verse. Игрокам предлагается шесть различных типов сооружений (тротуар, сооружение, парк, коммерческая постройка, офис и жилое здание), которые можно спроектировать, размещая соответствующие воксели на участке для строительства.
На территории, предоставленной в распоряжение игрокам, имеется ряд легендарных достопримечательностей, таких как Собор Св. Павла, галерея современного искусства Тейт и театр Шекспира «Глобус». В пределах игровой территории Лондона имеются четыре строительных участка.

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


Решётка из вокселей и рейкастинг
В основе Re:Imagine London лежит трёхмерная решётка, состоящая из «ячеек» каждая из которых хранит информацию о типе строительного вокселя (если таковой имеется). Реализовать это в Verse довольно просто, если использовать массив ссылок типа option. Кроме того, простая процедура рейкастинга позволяет начать с определённой точки и направления, перемещаясь по сетке до тех пор, пока не будет найдена занятая ячейка.
Обработка ввода
На острове используется ряд устройств «Активация при нажатии» для реагирования на такие элементы управления, как выстрел (добавление вокселя), прицеливание (удаление вокселя), следующий/предыдущий предмет (изменение категории) и кирка (открытие пользовательского меню).Когда игрок нажимает на кнопку выстрела, мы сначала проверяем, находится ли он в «зоне строительства», и затем запускаем процедуру рейкастинга, чтобы определить, на какую грань вокселя он смотрит. Затем, если это допустимо, в таком месте добавляется новый воксель.
Процедурная генерация в Verse
В Re:Imagine London реализовано два типа процедурной генерации на Verse — Грамматика формы и Редукция волновой функции. Грамматика формы применяется к трёхмерным постройкам (сооружениям, коммерческим зданиям, офисам, жилым зданиям), а редукция волновой функции используется для двухмерных, «плоских» областей (тротуаров, парков).Для обоих этих методов разработчики создали большой набор модульных строительных объектов — их более 330, — которые Verse, в свою очередь, создаёт в среде выполнения. В самом коде обеспечивается принцип детерминизма: происходит только удаление и создание необходимых объектов окружения.

Рассмотрим краткое описание принципа действия этих методов.
Грамматика формы
Во-первых, все воксели каждой категории «разбираются» на более крупные кубоиды сложной формы, чтобы можно было применить грамматику формы.
Грамматика формы включает в себя простые правила, каждое из которых позволяет сгенерировать из кубоида один или несколько составных кубоидов для применения последующих правил. Например, согласно одному правилу высокий кубоид может разрезаться на ярус высотой в один воксель, в то время как другое правило назначает углы и стенки по отдельным правилам. Ещё одно правило создаёт объект окружения размером с такой кубоид и в месте его расположения.

Каждое правило определено как отдельный класс Verse, который собирается в коде в «дерево». Такой подход позволяет упростить создание новых правил, экспериментировать с различными идеями и назначать определённые стили каждому типу постройки. Как показано на изображении ниже, применение различных правил к одному и тому же набору вокселей даёт самые разные результаты.

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

Редукция волновой функции
Редукция волновой функции (WFC) — это метод генерирования области в случайном порядке на основе правил, которые определяют подгонку деталей друг к другу. Он обсуждался в рамках мероприятия State of Unreal 2022, The Matrix Awakens: Generating a World.
В данной реализации используется набор плиток, после чего команда решает, какие из плиток могут прилегать друг к другу. К каждому ребру прикрепляется «ярлык», и плитки можно складывать, только если такие ярлыки совпадают. Алгоритм выбирает местоположение на сетке, случайно выбирает (или «редуцирует») один из возможных вариантов и затем распространяет результат такого выбора по возможным вариантам в других местах.
Этот процесс продолжается до тех пор, пока не сгенерируется вся область.

Режим просмотра
Чтобы игрокам было видно, какие воксели они разместили, они могут переключаться в режим просмотра, в котором на строительный участок накладываются цветные кубоиды.
Эта функция реализована путём создания кубоидов, которые в обычном состоянии не видны, а также с использованием устройства «Внутриигровое видео» для настройки набора параметров материала. Набор параметров материала, в свою очередь, позволяет регулировать непрозрачность материала. Параметр «Только инициатор» позволяет игрокам регулировать этот вид в независимом режиме, то есть, он действует только для использующего его игрока, а не для всех игроков.
Сохранения зданий
Игроки могут заниматься своими зданиями на протяжении нескольких сеансов и делиться своими творениями с друзьями благодаря функции Verse Persistence. Строительные воксели преобразуются в текстовую строку, сохраняются в виде массива и могут впоследствии загружаться заново.Кроме того, остров сохраняет такую информацию, как внутриигровой уровень игрока, пройденные задания и разблокированные детали. И это всё благодаря Verse Persistence!
Пешеходы

Для «оживления» города применяются три метода:
- Sequencer
- Используется для анимации пешеходов, автомобилей, велосипедов, лодок и поездов в городе.
- Статичные сетки
- Для неподвижно стоящих или следующих заданным путём пешеходов вместо анимации скелетной сетки используются статичные сетки с материалами, которые поддерживают анимацию вершин. Такой подход эффективнее, поскольку задействует только ресурсы видеокарты. Подробнее об этом методе читайте в нашем обзоре «Анимация вершин».
- Устройство «Генератор NPC»
- Для пешеходов в пределах строительных участков используется устройство «Генератор NPC» с пользовательским поведением, прописанным в Verse. Такие неигровые персонажи передвигаются по парку и тротуарам и динамически создаются по ходу обустройства участка. Неигровые персонажи используют набор скелетов и анимацию движения MetaHuman.

Процедурно генерируемая музыка
Для реализации процедурной генерации музыки, которая развивается по мере строительства, используется система Patchwork. В ходе строительства на участке музыка постепенно становится более динамичной. Три созданных уровня музыки импортированы в патчи смешивания, которые, в свою очередь, загружены в «Инструменты» Patchwork и активируются midi-дорожкой в синхронизаторе песен. Звук из динамиков нарастает и затихает в зависимости от плотности застройки.Ночь и день
Пользовательский цикл смены дня и ночи реализован для того, чтобы воссоздать в городе дневной свет и ночное освещение. Для постепенной подстройки параметров освещения использовался Sequencer, при этом активация изменений выполняется с помощью Verse.Слои данных позволяют легко включать и выключать уличное освещение. Кроме того, коллекция параметров материала используется для подстройки яркости определённых материалов (например, окон) ночью.

Надеемся, вам понравится исследовать территорию Re:Imagine London и создавать там что-то своё, черпая вдохновение для будущих островов!
Дополнительные изображения


