04/03/2020

Балийский храм: сторителлинг через UE4 энвайромент

Всем привет! Меня зовут Brian Lesiangi, я с Бали, Индонезия. Недавно я закончил проект — Балийский храм — для своей магистерской диссертации в Саванском колледже дизайна и искусств в Атланте, штат Джорджия. Несмотря на то, что это преимущественно мой индивидуальный проект, на протяжении всей работы мне помогали сокурсники Meghana Reddy, Kylie Gay и Sunny Chan. Надеюсь, что в этом посте я смогу научить вас парочке трюков.
 


Как начался этот проект

Балийский храм сфокусирован на создании кинематографического опыта в реальном времени с использованием игрового окружения в повествовании. На этот проект я был вдохновлен Gnomon talk в 2017 году. Идея заключается в том, что игровое окружение может быть использовано как мощный инструмент для рассказа историй без каких-либо персонажей. Чтобы сделать его более правдивым, истории чаще всего основываются на реальной культуре, к примеру, мифах и легендах.  

Такие франшизы как Lord of the Rings, Harry Potter,  Legend of Zelda, God of War и Assassin’s Creed показывают прямое влияние мифологии на поп культуру. Несмотря на то, что некоторые из этих культур (а именно японская, греческая, персидская и скандинавская мифология) более известны, чем остальные, это не означает, что только они являются единственными примерами для художника окружения.  

Недавние фильмы, такие как Moana (Полинезия) или Coco (Мексика) демонстрируют изменения тренда на использование не только мейнстримовых источников мифологии. Как кто-то, кто приходит из стран третьего мира, эта тенденция позволяет мне изучить использование недоэкспонированной культуры — Балийской — в моей работе. 

Художественное направление  

Перед началом проекта я знал, что хочу создать окружение, которое расскажет историю о моем родном городе. Я начал собирать образцы стиля для создания нарратива. Такие игры как Uncharted 4, Horizon Zero Dawn и Shadow of Tomb Rider — примеры, которые очень сильно схожи с моей идеей.  

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

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

Черновой план 

Первый черновик был очень простой, но он очень помог получить общее представление об окружении. Обычно я начинаю с грубого черновика, который делаю в Maya, чтобы определиться с основными формами, прежде чем перенесу в Unreal. Идея в том, чтобы создать модулярные ассеты, которые потом можно легко заменить на более детализированные версии.  

Я заметил, что гео основа, которую я создал для окружения, не полностью описывала мою скульптурную версию. Поэтому я экспортировал черновые ассеты из Unreal как основу, и затем скульптурировал окружение в Zbrush.  

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

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

Из-за количества деталей, которые нужны для создания балийских ассетов, фотограмметрия стала огромной частью моей работы. Впервые я использовал эту технологию во время моей стажировки в Turn 10 Studios. Я использовал RealityCapture для этого проекта.   

После того, как отсканированный ассет был сгенерирован, все что мне было нужно сделать, это очистить меш и создать низко полигональную версию с UV–разверткой, чтобы запечь текстуры. Для объектов переднего плана были созданы низко полигональные ассеты в Maya, а также произведена ретопология мешей для объектов заднего плана.  

В дополнение к ассетам, которые сканировал самостоятельно, я активно использовал Quixel Megascans для быстрого заполнение окружения. В результате было создано новое окружение, которое состояло из отсканированных объектов на основе ранее созданного черновика.  

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

Освещение 

Исходя из традиций фона CG, я склонен следовать более общим правилам трех точечного освещения. Этот принцип основан на установке трех источников освещения: основного света, заполняющего света и подсветки. Обычно я использую Directional Light как основной, Sky Light как заполняющий и любые огни для подсветки для начальной настройки.  

Совет: Начните с настройки серого материала. В Unreal вы можете сделать это довольно-таки легко, включив Lighting Only или режим Detailed Lighting.  

Освещение на основе изображения (Imaged Based Lighting (IBL)) — еще один распространенный метод, который я использую. Для этого переключается тип Sky Light Source на SLS Specified Cubemap и подключается HDRi, который можно получить от HDRI Haven.  

Совет: Установите уровень экспозиции в Post Process Volume (Unbound) на значение 1.0 для минимального и максимального значений. Таким образом, движок не будет пытаться автоматически настроить экспозицию, которая может довольно-таки сильно мешать при настройке освещения. Вы также можете отключить экспозицию в Project Settings. 

Я также использую комбинации из Exponential Height Fog и Volumetric Fog, который был представлен в Unreal Engine версии 4.16. Однако, я закончил тем, что создал несколько световых осей, используя полупрозрачный материал, примененный на простой цилиндр. Таким образом, у меня есть наилучший контроль для определения внешнего вида окружения, особенно с точки зрения общей формы, интенсивности и размещения каждого луча.  

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

Вот несколько примеров моего процесса настройки освещения. Обычно я начинаю с определения основного света, в основном это Directional Light, и Sky Light для заполнения. В отличие от более традиционного движка для рендера, я должен сам настроить отражения света в Unreal.  

Совет: Используйте цветовую температуру, когда создаете сценарий освещения. Это даст более естественный и точный результат.  

Анимация окружения и FX 

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

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

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

Постобработка 

Финальный шаг в производстве — композитинг или постобработка. Unreal Engine предоставляет Post Process Volume, который позволяет художникам настраивать общий вид сцены, например, добавление цветения, хроматическую аберрацию и цветокоррекцию. Самый частый эффект — возможность придать рендеру более кинематографичный вид.  

Совет: Я создал таблицу поиска (LUT) в Nuke для моей цветовой классификации, но вы также можете использовать Photoshop или другие редакторы фотографий.  

Проблемы 

Одной из самых больших проблем было создание цветовой гармонии для окружения. Пока я не увидел GDS talk от Dan Cox, где он говорил о правиле 60-30-10, которое очень помогло мне в проекте.

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

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

Совет: помимо получения прямой обратной связи от наставников, с которыми я встречался в реальной жизни, существует много онлайн сообществ, которые помогут помочь в получении критики. Я нашел ее в большом количестве, разместив пост на r/vfxr/unrealengineUnreal Engine Dev Community, 10KLevel Up и 80 Level

Мне помогали:

Концепт-художник — Meghana Reddy 
Художник по раскадровке — Kylie Gay 
Художник по предварительной визуализации — Sunny Wai Yan Chan 
Звукорежиссер — H. Albert Holguin 
Научный руководитель — Brett Rutland | Bridget Gaynor | Charles Shami 

Оригинальный материал в блоге unrealengine.com

Недавние статьи

Сценарий вертикального среза

16/09/2020
Алексей Савченко на конкретном примере показывает и рассказывает, как сделать очень важный для разработки игры документ. Образец документа — прилагается.

ON AIR: обратная сторона американских отелей

15/09/2020
Один из победителей гран-при всенародного конкурса разработчиков в прошлом году — хоррор от первого лица ON AIR — решил снова испытать удачу уже на UEDC-2020.

Dash? Dash… Dash!

14/09/2020
Программист многопользовательского экшена Flea Madness рассказывает о реализации одной из задуманных фич — даш-атаки. Эволюция подходов, варианты решения, примеры кода — все, как вы любите.