Открытый мир Unreal Engine: За кулисами.

В этом году, на GDC 2015, Epic Games представила реал тайм сцену, под названием: “Мальчик и его воздушный змей”. Ориентиром команды Epic были короткометражки от Pixar – смелое заявление, демонстрирующее, насколько стал силён их Unreal Engine и как он может использоваться за пределами игровой индустрии.

Тим Суини, основатель и генеральный директор Epic Games, описывает компании, занимающиеся игровыми движками, отдалёнными на два шага от настоящих геймеров, так как они создают только “кисти для рисования”. Epic Games привлекла к себе не мало ярких талантов индустрии, и за последний год акции компании выросли в 25 раз.
Вне традиционного рынка игровых движков, Epic так же нашли применение Unreal Engine среди режиссёров и специалистов по визуализации. Это распространение за пределы традиционных игр к использованию в архитектуре, рассказам различных истории и другим формам общения, является переломным моментом. На данный момент движок настолько силён – физически корректное освещение, трассировка лучей, подповерхностное рассеивание и комплексная работа над окружением – использование данных возможностей будет только расширяться.
Чтобы подчеркнуть новое направление своего продукта, команда Epic совместила открытый мир и стиль повествования “Pixar ” - очень кинематографичный и натуральный. Роботы и окружение шутеров от первого лица, ушли в прошлое. Их локация – красивый шотландский пейзаж. Наиболее примечательным является тот факт, что всё было сделано всего за 9 недель до GDC 2015.

Режиссёром короткометражки “Мальчик и его воздушный змей” выступил Гэвин Моран, который начал свою карьеру с традиционной 2Д анимации, перед тем, как заняться компьютерной графикой в Disney, DreamWorks и Sony Pictures Imageworks. С момента присоединения к Epic, около пяти лет назад, он работал над всеми демо сценами, такими как Samaritan Demo (2011, UE3), Elemental (2012, UE4) и Infiltrator (2013, UE4). В своё время эти демки очень впечатляли, в целом они обладали мрачной атмосферой, которой нет в демке “Мальчик и его змей”. Сделать данную работу отличающейся от остальных, было осознанным шагом для команды Epic.
Даниил Фогель, технический директор Epic Games, в начале работы заявил, что локация для “Мальчика и его воздушного змея” должна быть не менее ста миль по площади. Финальный открытый мир оказался действительно большим, с горами, населёнными птицами, оленями и впоследствии добавленным в него мальчиком с воздушным змеем. Когда на GDC все было представлено, зрители могли передвигаться по сцене в режиме дрона или же в режиме ходьбы, на стенде Unreal и после - загрузить демо версию. Описание говорило о том, что для демо сцены и для короткометражки использовались одни и те же материалы.

“Когда Ким Либрери (исполнительный продюсер проекта и VFX супервайзер) обратился к нам, - говорит Фогель, - он хотел добиться того чтобы, данная локация была показана на столько хорошо, на сколько только возможно. Таким образом, мы хотели сделать историю с воздушным змеем, которая нашла бы отклик у большого количества людей”. Либрери шутил, что нет ничего страшного в том, что стол Тима Суидни, в главном офисе окружён воздушными змеями. Красочные, сделанные из парусной ткани, воздушные змеи использовались как жалюзи в офисе Epic Games.
Подходом, который Epic Games выбрала для данного проекта, была адаптация наиболее эффективного процесса разработки. Подход к работе, который выбрал Либрери, включал в себя ежедневные обновления, он который был интересен и сложен. Одним аспектом игр является то, что там нет традиционных эффектов, например, художники используют один ресурс, не похожий на базу данных, в которой необходимо искать и подгружать сцену под нужным номером. Например, если один художник думает, что эта гора будет выглядеть лучше, если сделать её выше – он меняет её и это отображается у каждого в команде. Тут нет строгого контроля, если что-то есть в проекте, что уже включено в демо сцену – всегда есть возможность вернуться на несколько шагов назад.

Создание ассетов.

Для создания ассетов, было запланировано полететь в Шотландию, на остров Скай, но когда команда пообщалась с британскими коллегами, то стало известно, что данное место достаточно мрачное и холодное в начале года – совсем не то, что представлял себе директор. Конечно же, благодаря Google Earth, они увидели, что остров Скай будет великолепным место, если это не ехать туда в середине зимы. “У нас есть офис в Сандерленде (ранее офис Pitbull Studios) в Великобритании, недалеко от Шотландии, там нам сказали: “Эй! Американцы! Здесь холодно, серо и грязно, а на деревьях нет листьев!” вспоимнает Либрери.



Целевые объекты: горы, камни, мох, деревья и поля.

К счастью, в то время, пока проект разрабатывался, команда Epic так же работала над виртуальным Смаугом, совместно с Weta Digital, которые привлекли их внимание к Новой Зеландии, как возможное место проведения съёмок. В отличие от пяти часового дневного света в Шотландии, в Новой Зеландии был двенадцатичасовой и намного меньше дождя. Так что основные съёмки были выполнены командой из двух человек, в Новой Зеландии, с дополнительными съёмками, от офиса на севере Великобритании в хорошую погоду. Таким образом, история бумажного змея берёт начало на земле, которую команда назвала “Scozeland”. Антуан Франсуа, который взял на себя роль руководителя по материалам проекта, возглавил не только разведку местоположения и логистику, но так же весь процесс разработки материалов.

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



фотограмметрическая реконструкция

Процесс был разделён между референсами и работой с фотограмметрией. Позже всё было сфотографировано через круговой поляризатор, с максимальной глубиной резкости и съёмкой с проверкой цвета, а так же с калибровкой по 18% - процентному уровню серого и хромированными шарами. Когда предоставлялась возможность - съёмки проходили в пасмурную погоду, чтобы снизить диапазон между светлыми и тёмными участками и минимизировать блики. Референсы так же делались через проверку цвета, но в этот раз материал был снят через синий фильтр. Синий фильтр помогал с изоляцией и коррекцией цвета, что позволило нормализовать картинку, после включения всех элементов, сделанных на неделю ранее. Для всех кадров была проделана съёмка 360o HDR карт освещения, для последующего использования. Съёмки в Новой Зеландии проводились на три камеры Canon 5D Mk III с линзами Sigma 8mm, 24-70mm и RounShot VR Drive с панорамной головкой.

Это привело к большому количеству фотографий и к большому количеству ассетов. В итоге, в Новой Зеландии, команда из двух человек сделала 28 517 снимков и 248 ассетов. Объём всех данных составлял один терабайт. Только 50 ассетов из данных материалов были обработаны и использованы в создании окружения. Команда намерена продолжить работу и по остальным материалам в будущем. В фотограмметрической реконструкции принимало участие 10 художников из трёх офисов Epic Games по всему миру – США, Великобритании и Польши.
Так как формат RAW в Canon эффективно сжимается, как только вы конвертируете RAW, скажем в TIFF – объём данных моментально увеличивается, так что наши используемые данные увеличились с 7Гб до 50Гб данных. Работа над этим по всему миру и перенос таких больших объёмов данных, необходимый команде, привёл к тому, что был написан инструмент, который назвали “GDC Photo Ripper” (фото потрошитель GDC) – очень быстрая многопоточная система сетевого копирования файлов, а также линейная конфертация CR2 в 16 битный TIFF, с запеканием sRGB тонального отображения (гаммы), чтобы создать для художников наиболее “дружелюбные” изображения.

Команда использовала Agisoft для реконструкции фотосканирования. Высокополигональные объекты имели около 10-20 миллионов полигонов с 16К текстурами (5700 пикселей по ширине). Но конечно, имелись некоторые запечённые материалы, такие как освещение (модели затенения и натуральные тени). Чтобы удалить информацию освещения из материалов, Антуан создал полуавтоматический процесс, который воссоздавал условия освещения во время съёмки каждого кадра, используя полученные HDR карты и используя эту информацию, чтобы создать пассы без освещения. В результате были получены диффузные альбедо текстуры.

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



от 7 до 20 млн. полигонов, 16К текстура

Затем команда создала карту неровностей и карту отражений, которые были необходимы для Unreal Engine 4, основанном на физически правильном рендеринге освещения. Команда имела высокополигональные ассеты, но они были слишком сложны, для использования. В итоге было использованы три уровня детализации (LOD). В будущем команда планирует автоматизировать и эффектно скрывать этот шаг, чтобы художник мог просто загрузить высокополигональные ассеты и использовать их с игровым движком, выбирая между необходимым уровнем детализации. Но на данный момент это по-прежнему подразумевает ручную работу.



цифровая модель

Поскольку Unreal Engine 4 имеет 4 базовых потока выполнения сценариев, команда создала систему, с помощью которой можно было просмотреть любой ассет в любом формате и освещении окружения, с применением всех возможных пассов / видов (нормалей, теней и т.д.). Всего 11 человек в команде по ассетам “работали как сумасшедшие в течение полутора месяцев”.

Освещение.

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

  1. Освещение непосредственно от солнца.
  2. Освещение от неба.
  3. Отражённый свет (т.е. глобальное освещение).

Каскадные карты теней (CSM) обычно используются для вычисления солнечных теней в играх, они точны лишь для объектов вблизи камеры и очень ресурсоёмки в сценах с большим количеством полигонов и большими масштабами. Трассировка лучей для более мягких и реалистичных теней (RTDFS) – это новая функция, разработанная для Unreal Engine 4, обеспечивающая детальные тени на расстоянии и использующие примерно одну треть ресурсов, по сравнению с CSM.



CSM отмечает деревья на главном холме в центре кадра


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

Расстояние поля – система, для хранения расстояния до ближайшей поверхности в каждой точке – информация хранится в каждой вершине сетки, так луч проходит через пустое пространство, основанное на расстоянии до поверхности. Если же луч пересекается, то свет затеняется. Этот подход к освещению был введён в Unreal Engine v4.5 и оказался чрезвычайно полезным на статических формах и листве. Этот подход так же работает для конического сечения площадных теней. (area shadows).



Освещение только от неба


Применение глобального освещения

Для освещения от неба, использовался тот же подход, вместе с моделью затенения, дополненный преграждением окружающего света в экранном пространстве (SSAO). Этот подход дистанционной трассировки даёт очень эффективную модель затенения для объектов, таких как скалы или крупномасштабный ландшафт.
Со стороны шейдеров, на листьях и воздушном змее использовалась двухсторонняя модель затенения, которая является ресурсосберегающей и имитирует проникновение света через тонкие поверхности. Результаты оказались более точными, нежели при попытке повторного использования модели подповерхностного рассеивания.



Без применения SSS (subsurface scattering)


Версия с SSS (subsurface scattering)

Подповерхностное рассеивание теперь использует диффузионные профили (профили рассеивания), которые по своим свойствам не являются имитацией кожи. Мартин Миттринг, ведущий графический инженер работает над прямым рассеянием, но пока не известно, когда всё будет готово. Но на данный момент уши мальчика сделаны не с помощью прямого рассеяния (пропускающий SSS, работает так же, как листья пропускают свет, в отличие от прямого рассеяния, которое отличается от двойного затенения, используемого для листвы). В итоге команда все же нашла решение, но времени было не достаточно, чтобы успеть как раз к GDC.
Алгоритм SSS, использующийся сегодня в Epic основан на изменении SSS текстуры, который разрабатывался ещё JP Lewis (сейчас Weta) и командой универсальной системы захвата (UCAP) с Matrix, в которой Ким Либрери был центром всего.

Работа камеры.

Новая система размытия движения в Unreal Engine, которая будет реализована в версии 4.8, работает в полном разрешении и имеет сглаженные края, команда надеется выпустить его как можно скорее. Глубина резкости теперь позволяет объектам, находящимся близко и тем, которые расположены далеко от камеры, быть не в фокусе, с новым эффектом боке. В новой камере используется диафрагма, фокусная длина и фокусное расстояние. Это новая глубина резкости даёт наиболее точную картинку, что является значимым улучшением. Так же новая глубина резкости и новое размытие в движении не имеют пост обработки резких краёв или артефактов, поскольку исключаются всякие трюки и упор делается на физически корректный результат.

Окружение.

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



Простое разделение типа ландшафта


Разделение, которое применялось в сцене

Вся листва была смесью процедурного размещения, совместно с ручным размещением. Для листвы использовался HISM (Hierarchical Instanced Static Meshes – иерархические дубли статической полигональной сетки), это позволило широко использовать геометрические дубликаты. (Instance)
Интересно, что даже самый низкий уровень детализации на деревьях, который эффективно использовался как рекламный щит или же стойка с вырезами, вместо плотной сетки, имел материал, который был специально изменён и не использовался как один большой элемент, так что они имели карту или маску информации глубины, которая помогала отображать материалы наиболее реалистичным образом.



Традиционный подход


Новый подход

Движок использует симуляцию для процедурной кластеризации и прореживания деревьев с листвой, но так же скал и скалистых выступов. Симуляция или “экосистема” включает в себя несколько видов зелени, которые растут, учитывая силу, высоту, наклон, относительный размер и т.д. Как и в любой реальной экосистеме, некоторые растения растут только в лесных районах или только в тени, таким образом, один вид влияет на другие. Это было настолько эффективно и использовалось почти на всех ста квадратных милях игрового окружения, но со временем команда приняла решение дать дизайнерам возможность поэкспериментировать в определённых областях. И если симуляция не справлялась должным образом, дизайнер всегда мог провести настройку вручную, для тех мест, которые будут продемонстрированы в презентации.
В финальной системе размещено более 190 000 скал, 255 000 деревьев, более миллиона кустов и шесть миллионов цветов, вмести с восьми миллионами элементами травы, это элементы, находившиеся поверх всей системы травы. В основной системе травы не использовались карты высот, там использовался материал от Unreal Engine, для определения плотности травы.
В это окружение команда добавила живности. В сцене имееются животные с искусственным интеллектом, олени, птицы (вороны) и другие создания. Олени были созданы, используя стандартный пайплайн игровых персонажей. Олени были запрограммированы на симуляцию толпы, чтобы при виде камеры – убегать от неё (то есть от зрителей), обегая скалы, препятствия, деревья и т.д., и конечно друг друга.



Были необходимы навигационные данные, с ними перемещения могут проходить с подробным обнаружением мест столкновения, чтобы просто “кататься” по маске той или иной области, учитывая навигационные данные карты, что оказалось намного эффективнее в случае, когда стадо убегает от камеры.
Система искусственного интеллекта управляет мотивацией, но как только И.И. добавили оленей, добавилась мотивация направления – это анимация суб системы, которая состоит из смешанной анимации, составляющей основной механизм, отвечающий за тип и скорость движения через доступ к анимационным файлам персонажей. Все анимации были многопоточными и в то время, когда команда делала начальный билд окружающей среды, использовалось большее количество оленей (300+) - это могло быть неизменным, но по определённым причинам их количество было уменьшено, потому что в итоге выглядело лучше и естественно.

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

У открытого мира был также полный контроль освещения, чтобы скорректировать освещение под нужное время суток, для демонстрационной части.
Материалы, в открытом мире сцены, можно свободно использовать по лицензии Royalty free, для всего линейного контента и истории, которую пользователь хотел бы изучить.
В финальной версии синематика, зритель видит мальчика и его воздушного змея. Крис Эванс был главным техническим директором по персонажу, в данном проекте. Эван знал из раскадровки (сториборда) ранней анимации, что мальчик будет показан в кадрах с большим углом обзора, так же будут кадры, где мальчик будет показан крупным планом, так что работа над его лицом началась на ранней стадии производственного цикла. Команда работала над данным проектом с партнёрами по дизайну и ригу 3Lateral, которые разработали и сделали риг мальчика. Целью было, сделать персонажа кинематографичным и чтоб в нём присутствовала та деталь, которую Эванс описывает как “кинематографичная точность”, но в режиме реального времени. Сотрудник 3Lateral’s Владимир Мастилович возглавил свою команду, а Epic Games, в итоге, была невероятно впечатлена их работой. Финальный вид был доведён командой Epic и позже анимирован.
Лицевой риг был сделан при помощи FACS (Система кодирования лицевых движений) с более чем 550 блендшейпами, смешанными с восьмью различными сетками лица. Эван работал над высокой точностью персонажа, чтобы сделать качественную анимацию, которая будет необходима для повествования истории. “Мы хотели предоставить новую возможность для рассказчиков, используя реалтайм технологии и охватить их целиком”, - говорит он.
Ким Либрери прокомментировал: “3Lateral - потрясающая команда, мы обязательно будем сотрудничать с ними в дальнейшем”.

Создание мальчика.

Создание мальчика разделялось на фазы

Фаза первая: Грубые скетчи с фокусом на голову.
Получив начальное направление от команды Epic, 3Lateral начала работу с лица мальчика, поскольку для проекта было необходимо разработать качественную передачу эмоций, изложенными на стадии концепта.



На GIF представлен пример работы над анимацией головы и волос

Фаза вторая: Совершенствование эскизов и моделирование головы.
После того, как были сделаны первоначальные эскизы, у команды появилась очень хорошая идея в том направлении, в котором Epic как раз хотели проявить креативность.



Ключевой дизайн головы

Затем 3Lateral сделали несколько вариантов одежды, и после этого был сделан скульпт мальчика, а также цвет для головы. Такие элементы, как волосы были сделаны относительно длинными, чтобы передать необходимые ощущения зрителям.

Фаза третья: Моделирование тела и одежды мальчика.
Закончив работу над лицом, команда Мастиловича принялась за работу над второстепенными деталями, такими как складки на одежде и динамика волос во время анимации.

Фаза четвёртая: лицевой риг.
Команда Epic знала, что выражения лица мальчика будут так же важны, как сам дизайн персонажа и его анимация, которые будут разрабатывать 3Lateral. “Мы призвали разработчиков использовать блендшейпы, на столько, насколько это было возможно. Хорошие результаты могут быть получены путём совместных деформаций, но блендшейпы полностью заменить достаточно сложно, даже если вы используете сотни суставов”, - комментирует 3Lateral.



Лицевой риг от 3Lateral

Фаза пятая: Подготовка ассетов Unreal Engine.
После завершения работы над мальчиком в Maya от был импортирован в Unreal Engine.

“это был замечательный проект, во время работы над которым, мне не приходилось сильно переживать. Все из членов команды знали, что им делать, поэтому проблем мы избежали и сделали всё максимально быстро. Всегда чувствуешь себя хорошо, когда работаешь с командой, в которой ты просто нажимаешь кнопку и происходит то, что должно произойти”, - объясняет основатель 3Lateral Владимир Мастилович.
Окончательная доработка была выполнена командой Unreal, опираясь на материалы и замечательную работу от 3Lateral.

Полный пайплайн был похож скорее на производство фильма, нежели на создание игрового контента. Конечно, это было сделано преднамеренно Кимом Либрери по двум основным причинам:

  • показать сообществу разнообразие стилей и гибкость движка Unreal Engine
  • на личном примере продемонстрировать, как команда Epic может обеспечить лучшую работу, основанную на кинематографическом пайплайне, таким образом, улучшив инструменты Epic, которые может предложить разработчикам игр.

Особенности, описанные выше, не были включены в релиз 4.7. – множество обновлений GI и листвы будут доступны в версии 4.8. Либрери твёрдо уверен в том, что данное демо демонстрирует следующее: “в течение нескольких лет не только Unreal Engine будет замечательным игровым движком, но он будет так же развиваться в направлении кинематографического контента в реальном времени”.


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

708 0 850 16
6
2015-06-11
спасибо за статью, интересно было читать.
2015-06-11
Спасибо! Очень интересно! 
2015-06-11
Спасибо за статью! У меня идея. Кто из Екатеринбурга может проведем что то вроде семинара или конференции на тему анрила? Пообщаемся, найдем так сказать единомышленников и соратников.
2015-06-14
Кстати Epic Games выложили техно-демку в открытый доступ. Весит около 6Гб.  Минимальная конфигурация для запуска должна иметь 4-х ядерный процессор не менее 2.8Ghz, 8 Гб оперативной памяти и видеокарту уровня GTX 680.  Для запуска демки, с максимальной графикой, понадобится 6-ти ядерный процессор, 24 Гб оперативной памяти и GTX 980 (А лучше Titan X или 980Ti).
2015-06-18
отлично!
2015-06-21
статья отличная. за видео с лицевым ригом отдельное большое спасибо...
RENDER.RU