Создание виртуальной локации осуществляется в игровом движке Unreal Engine 5.4.4.
Создание проекта: plugins, post process
Проект создается через Film, так как здесь уже автоматически включены некоторые нужные плагины. Далее надо проверить и подключить остальные: live link (система передачи данных из внешних устройств на площадке в Unreal Engine), nDisplay (система синхронизированного вывода изображения на все части экрана), camera calibration (калибровка между реальной и виртуальной камерой), ICVFX (набор инструментов для интеграции виртуального фона на площадке), Multi-User Editing (для корректного редактирования контента на съемочной площадке), DMX (если используется), OpenColorIO (корректная цветопередача между физической камерой, LED-экраном и локацией в Unreal Engine).

Unreal Engine: Plugins

Unreal Engine: Plugins
В сцену добавляется Post Process Volume, в Details с правой стороны необходимо прожать галочку infinite Extent Unbound (чтобы настройки пост процесса распространялись на всю сцену). Экспозиция в сцене будет настраиваться вручную: для этого нужно отключить галочку «Physical Camera», чтобы контент не имитировал экспозицию, как на стандартной виртуальной камере. Сама экспозиция устанавливается на 0, что даёт нейтральную точку отсчёта.
При использовании файла конфигурации OpenColorIO диафрагма камеры перестаёт влиять на общую экспозицию и начинает контролировать только глубину резкости. После этих настроек можно вручную регулировать экспозицию, чтобы добиться идеального соответствия виртуального изображения и реального освещения на съёмочной площадке.
Unreal Engine: Details Post Process Volume
В разделе Color Grading необходимо сбросить первые три параметра в категории Misc на 0. Tone Curve Amount, Blue Correction, Expand Gamut, они управляют гамма-кривыми, которые обычно используются для художественной тональной коррекции внутри движка. Для виртуального продакшена это важно, так как контент, предназначенный для LED-экранов, должен выводиться в линейной гамме. Использование встроенных гамма-кривых в дополнение к гамме, присущей самой камере, приведёт к двойной гамма-коррекции, что исказит освещение и цветопередачу.
Unreal Engine: Details Post Process Volume
Система LUT для цветокоррекции также не используется, так как может привести к браку. Если наложить этот цветовой фильтр внутри Unreal Engine, а затем наложить еще один LUT на финальный съёмочный материал, это приведёт к искажению цветового пространства, неправильному контрасту и гамме.
Screen Space Effect (экранные эффекты), такие как Bloom, Grain, Vignette, Chromatic Aberration, Depth of Field, Motion Blur, Ambient Occlusion не включают.
Причины, по которым отключают экранные эффекты:
Создание стыков между нодами. В системе nDisplay каждая нода рендерит свою часть изображения. Экранные эффекты (screen space effects) могут создавать видимые стыки на LED-экране между этими частями. Расчёты эффекта не выходят за пределы каждой ноды, поэтому на стыках могут возникать визуальные швы, полосы или несовпадение освещения.
Некорректная имитация оптики. Эффекты вроде Bloom имитируют реальные оптические явления, но в виртуальной среде они создают некорректное освещение. В виртуальном продакшене такой способ не будет воссоздан правильно и не перекроет актера с декорациями, что приведет к браку.
Нестабильность и артефакты. Эффекты, использующие временные данные могут вызывать мерцание и артефакты на границах нод, особенно при быстром движении камеры.
В Project Settings также стоит установить следующие галочки:
- В Working Color Space выбирается линейное цветовое пространство (ACEScg) или другое, подходящее под LED-экран.
- В разделе Rendering, Anti-Aliasing сейчас часто используют либо Temporal Super Resolution, либо Deep Learning Super Sampling от NVIDIA.
Unreal Engine: Project Settings
Temporal Super Resolution — метод сглаживания и масштабирования изображения, который использует данные из нескольких последних кадров для создания высококачественного финального изображения с разрешением, значительно превышающим фактическое разрешение, в котором изначально был отрендерен кадр. В виртуальном продакшене при быстром движении объектов перед контрастным фоном эти методы могут вызывать эффект «двоения».
Еще один метод, который используют чаще — Deep Learning Super Sampling. Это технология нейронного рендеринга от NVIDIA, которая работает на видеокарте NVIDIA RTX. Как правило, обеспечивает лучшее качество изображения, особенно при прорисовке тонких линий, листвы и мелких деталей на расстоянии и обеспечивает большую производительность. Для ее включения требуется установка с официального сайта и включение плагина в настройках Unreal Engine.
Локация 1. Ландшафт, растительность
Так как для подготовки сцен в виртуальном продакшене часто сжатые сроки, нередко берутся готовые ассеты и перерабатываются под референсы художника-постановщика и технических требований виртуального продакшена. Основные ресурсы: «Fab», «Sketchfab», «Turbosquid», «CGTrager».
Сначала идет создание Landscape (ландшафта) и настраивается Foliage (растительность), отталкиваясь от референсов. Из ресурса Quixel Bridge в Unreal Engine и из Fab скачиваются нужные материалы для ландшафта и ассеты деревьев. Для данной локации использовался готовый пак «Forest — Environment Set» из «Fab».
Создается Landscape. В Details Landscape в качестве Material указывается MI_Terrain_Shader, он включает в себя логику, позволяющую рисовать всеми материалами земли, которые включены в пак. Около каждого материала нажимается +, создается Layer Info. Пятым слоем, а именно материалом с листьями на земле, с помощью кисти Paint красится весь лендскейп.
Unreal Engine: Landscape
Unreal Engine: Landscape
Landscape и Foliage могут применяться в виртуальном продакшене, однако они являются ресурсозатратными компонентами, поэтому для поддержания оптимальной производительности необходимо применять ряд оптимизационных техник. Плотность растительности обычно регулируется: ее оставляют плотной только в близости к камере и значительно снижают на удалении. Также стандартной практикой является ограничение количества крупных ландшафтов до одного на сцену.
Для оптимизации растительности в Unreal Engine почти всегда применяется функция Nanite, которая эффективно управляет уровнем детализации.
Однако на ландшафтах эта функция не используется в рабочем процессе виртуального продакшена. Основная причина заключается в том, что любые изменения ландшафта или его материала требуют длительного перестроения данных Nanite, что непригодно для быстрых корректировок прямо на съемочной площадке в реальном времени. Кроме того, на данный момент качество реализации Nanite на ландшафтах под сомнением, так как он не очень хорошо работает, если слоев на рельефе слишком много. Могут появляться различные артефакты с ракурса камеры на высоте птичьего полета. Также возникают проблемы с производительностью.
Тем не менее, для обычных статических ассетов Nanite — это стандартный и рекомендуемый подход: меши работают корректно, обеспечивая высокую детализацию при сохранении приятной производительности.
Nanite
Простыми словами Nanite — это система виртуализированной геометрии, позволяющая совмещать производительность, необходимую для виртуального продакшена, с качеством, требуемым для кино. Такая технология адаптирует количество отображаемых треугольников вплоть до уровня отдельного пикселя на экране.
Например, если дерево находится близко к камере и занимает большую часть экрана, Nanite отрисовывает максимальное количество полигонов, обеспечивая высочайшую детализацию. А если камера отъезжает назад и дерево становится меньше, Nanite динамически и плавно отсекает ненужные треугольники.
«Nanite: Everything You Should Know Unreal Engine 5» за авторством «William Faucher»
В локацию также как в техвизе добавляется камера с нужными настройками. Создается Sequencer, в него перетаскивается камера и на нее ставится ключ. Создается блокинг: добавляется куб относительно кадра для будущего дома вдали. Для данной локации также нужна дорога, drag and drop’ом из Content Browser перетаскивается в сцену.
Unreal Engine: Blocking
Чтобы просмотреть детальные настройки меша, необходимо дважды кликнуть по нему в Content Browser.
Unreal Engine: Nanite
Этот статический меш уже включает в себя поддержку системы Nanite. Чтобы ее активировать, надо прожать галочку «Enable Nanite Support». Настройка «Preserve Area» включается только для объектов с альфа-маской, например, для листвы, иначе они могут некорректно отображаться на большом расстоянии. У дороги простая плоская поверхность, эта галочка не нужна. Опция «Keep Triangle Present» работает аналогично инструменту «Decimate» (упрощение геометрии), позволяя уменьшить количество треугольников в модели. Иногда она дает хороший результат, но может и повредить геометрию меша, поэтому ее используют с осторожностью.
Nanite не работает со следующим:
Прозрачные материалы (Translucent Blend Mode): Nanite не поддерживает материалы с режимом наложения «Translucent».
Двусторонние меши (Two-sided faces) / Двусторонние материалы: Хотя Nanite может работать с двусторонней геометрией, он изначально не поддерживает свойство материала «Two Sided» напрямую так же эффективно, как сплошные меши.
Скелетные меши (Skeletal Meshes): Изначально Nanite не поддерживал скелетные меши, но в последних версиях (UE 5.5+) была добавлена экспериментальная поддержка для них, данная функция все еще развивается.
Активная деформация через WPO (World Position Offset): Деформация геометрии в реальном времени с помощью смещения мировых вершин (WPO) имеет ограниченную поддержку.
Агрегатная геометрия: сложные структуры типа меха или волос, как правило, требуют специализированных методов рендеринга, которые несовместимы с текущей реализацией Nanite.
В виртуальном продакшене система уровней детализации (LOD) не используется, так как может приводить к видимому браку съемочного материала. LOD — это набор версий одной 3D-модели с разным количеством полигонов: от LOD 0 (максимальная детализация для вида вблизи) до LOD 1, 2, 3 и далее (уменьшенное количество полигонов для дальних планов). Использование этой системы в процессе съемки приводит к тому, что при перемещении камеры высокополигональный объект может резко смениться низкополигональным прямо в кадре. Такая оптимизация подходит для игр, но не для задач виртуального продакшена, требующих стабильного и высокого качества изображения.
Unreal Engine: LOD Settings
В данном случае нужно поставить следующие настройки: В графе Lod Picker = LOD 0. В графе LOD Settings LOD Groupe = None, LOD Import = LOD 0, это первая самая детализированная версия и она не должна меняться. Галочка на Auto Complute LOD Distance выключена, она отвечает за то, чтобы движок сам решал, на каком расстоянии переключать уровни. Number of LODS = 1. После внесенных изменений кнопка Apply Changes станет активной, необходимо ее прожать и сохранить настройки ассета.
От конкретных настроек ассета зависит, что именно нужно менять, а что оставлять, настройки индивидуальны. Но в целом важно следить, чтобы количество загруженных LOD было не более одного.
Unreal Engine: LOD Settings
В настройках Lit — Landscape — LOD можно отметить фиксированный уровень детализации, в данном случае LOD — Fixed at 0. В details Landscape также сделать ограничение LOD-ов: Max LOD Level = 0.
С помощью Visualizers проверяется, действительно ли выключена система LOD-ов: если ландшафт при нажатии целиком превращается в серый, значит, все правильно.
Unreal Engine: LOD Settings
После перехода из Selection Mode обратно в Landscape Mode в режиме Sculpt делается скульптинг земли под нужную форму: вдалеке от камеры дорога снижается, вокруг нее надо сделать небольшие реалистичные горки листьев, чтобы ее немного «утопить».
Основные инструменты для создания ландшафта: Brush Size — размер кисти, сила воздействия — Tool strength, форма кисти — Brush Falloff, Smooth (сглаживание), Flatten (выравнивание). Если на ландшафте возникают острые углы, то стоит на таких местах уменьшить размер кисти и с помощью Blush Falloff и Smooth надавливать на угол и смягчать.
Unreal Engine: Landscape sculpting
Добавляются ассеты забора, камня, бревен с точно такой же логикой оптимизации, как с дорогой. У ассетов бревен и камней добавляется галочка Preserve Area в системе Nanite, так как это не плоская геометрия.
Unreal Engine: Nanite Settings
Землю с листьями нужно сделать ярче и светлее под референс. Landscape — Material instance — layer 5 (используемый материал), двойной клик. В Material Instance прожать 2 параметра тинта, отрегулировать цвета на оттенок желтого и красного на свой вкус.
Unreal Engine: Landscape Material
Для растительности у деревьев в Details Static Mesh предварительно надо убрать систему LOD и добавить Nanite. Для производительности деревья, что ближе к камере лучше ставить как Static Mesh, 2-3 штуки двух видов, чтобы можно было менять их местоположение для кадра, а для фона оставить Folliage из деревьев двух других видов. В Details каждого дерева в Nanite надо прожать галочку Preserve Area, чтобы на большом расстоянии они работали корректно и также Keep Triangle Present для деревьев на фоне, которые добавятся через Folliage, так как это улучшит производительность.
Unreal Engine: Foliage
Добавляются несколько Static Mesh деревьев на передний план. Далее для размещения растительности в режиме Foliage Mode необходимо добавить нужные Static Mesh деревьев с помощью «+ Folliage». После добавления напротив нужных мешей нужно установить галочку, чтобы кисть использовала только их для рассадки.
Brush Size определяет область, в которой будет размещаться растительность. Density контролирует количество объектов, которые размещаются в данной области кисти. Scale X рандомизирует размер рассаживаемых объектов. Рядом с режимом Paint также есть множество других режимов, например, Fill, с помощью которого можно заполнить сразу весь ландшафт или Erase, стирающий объекты с определенной области.
Unreal Engine: High Resolution Screenshot
Далее упрощается процесс регулировки материалов деревьев для работы на площадке. У каждого дерева есть свой Material instance, с помощью которого можно регулировать его настройки. Но если это система деревьев из одного пака, то вероятнее всего настройки Material Instance у них не отличаются, поэтому можно вложить один и тот же Material Instance в два вида деревьев в режиме Folliage.
Чтобы это реализовать, необходимо перейти в режим Foliage Mode и выбрать один из видов деревьев в списке мешей. В панели его свойств нужно найти раздел Nanite Override Materials и нажать кнопку с плюсиком (+) три раза, так как именно эти модели деревьев используют три слота материалов. Далее необходимо взять Material Instance (экземпляры материалов) из второго вида дерева, который также используется в Foliage Mode, и перетащить их из Content Browser в созданные слоты ([0], [1], [2]) первого дерева. В результате оба меша (оба вида деревьев) будут ссылаться на один и тот же набор ассетов материалов.
Unreal Engine: Folliage
Теперь, если зайти в любой из этих общих Material Instance (открыв его двойным кликом в Content Browser или в панели Nanite Override Materials), можно отрегулировать любой параметр в панели Details, и он будет применен сразу к обоим видам деревьев, используемым в Foliage. Например, можно легко изменить базовый цвет (Base Color) листочков или скорость и интенсивность анимации ветра и изменения коснутся всей синхронизированной растительности на уровне.
Unreal Engine: Folliage
Экстерьерное освещение, атмосфера
Далее идет работа с освещением и уже после дополнительная детализация. Удаляется свет который был до этого в сцене, для порядка создается папка Light. Справа сверху из Lights добавляется в сцену Directional Light, Sky Light, Exponental Fog, Sky Atmosphere.
Unreal Engine: Light
Directional Light — солнечный / лунный свет. В Details интенсивность (intensity) дефолтно выставляется на 3.14 (число Пи). Это значение, основанное на физических принципах, которое помогает достичь предсказуемого и реалистичного результата в системе PBR, как точка отсчета, которую можно впоследствии корректировать. Обычно в сцене используют 1-2 Directional Light, не больше. Если первый является основным источником света, то второй может помогать имитировать нюансы естественного освещения, реального мира.
Также в виртуальном продакшене рекомендуется использовать Lumen вместо Path Tracing в качестве системы динамического освещения. Lumen предлагает высокую производительность и отличное качество в реальном времени, в то время как PathTracing имеет меньшую дальность прорисовки и требует высокую производительность. В Project Settings устанавливаются следующие настройки: Dynamic Global Illumination = Lumen, Reflection Metod = Lumen, Path Tracing выключен.
Но галочки напротив Support Hard Ray Tracing и Use Hardware Ray Tracing должны стоять, это позволит Lumen задействовать аппаратное ускорение для более качественных отражений и глобального освещения. В то же время Ray Traced Shadows должно быть отключено, так как эта настройка требует высокой производительности.
Unreal Engine: Project Settings
Для достижения качественного и физически корректного освещения в виртуальном продакшене обычно используют сочетание Lumen и Virtual Shadow Maps (VSMs). VSMs обеспечивают высококачественные тени с хорошей производительностью, также подключается Enable Virtual Textures, это обеспечивает базовую инфраструктуру, которая позволяет как Nanite, так и VSMs эффективно работать с высокодетализированными данными в виртуальном продакшене.
Unreal Engine: Project Settings
С помощью сочетаний клавиш Ctrl + L движением мыши меняется угол освещения от солнца. Осенью солнце находится значительно ниже над горизонтом, чем летом. Из-за низкого угла освещения тени становятся очень длинными и вытянутыми, это создает драматичный, графичный эффект в ландшафте. C помощью rotation детальнее можно отрегулировать направление теней.
Unreal Engine: Directional Light
Light Color у Directional Light стоит сделать желтоватого или оранжевого отенка, также можно добавить температуру цвета чтобы оттенок был теплее. Параметр Source Angle задает общую мягкость тени, а Soft Source Angle регулирует, насколько сильно тени будут размываться на больших расстояниях. Так как в сцене облачная, туманная погода тени должны быть мягкими.
Unreal Engine: Directional Light
Далее добавляются облака (Visual effects — Volumetric Cloud) для усиления реалистичности и легкого оранжевого света от солнца. Для правильного внедрения этого эффекта в Directional Light надо проверить галочку напротив Atmosphere Sun Light, и добавить Cast Cloud Shadow, чтобы облака отбрасывали тени на среду и отрегулировать их интенсивность примерно на половину, что подчеркивает поддержание читаемости и глубины сцены.
Unreal Engine: Directional Light
В Cloud Scattered Luminance Scale можно добавить желтый оттенок для облаков, имитируя закат. Start Distance регулирует его обильность в зависимости от дистанции от камеры.
Unreal Engine: Directional Light
Туман
В виртуальном продакшене Volumetric Fog обычно не используется, предпочтение отдается Exponential Height Fog. Волюметрический туман плохо синхронизируется между несколькими рендер-нодами, что приводит к артефактам сшивки и «гостингу» на экране. При быстрых движениях камеры или объектов Volumetric Fog не успевает корректно пересчитываться, оставляя за предметом чёрные полосы. Эта проблема частично решается с помощью добавления фруструма (то есть используются границы видимости камеры для расчета сложного визуального эффекта), однако в виртуальном продакшене у многих, даже крупных студий фруструм не используется. При этом, теоретически, Volumetric Fog использовать возможно, но при тщательном контроле и понимании его ограничений.
Unreal Engine: Exponental Height Fog
Для регулировки силы тумана у Exponential Height Fog крутится Fog Density по собственным ощущениям. Fog Height Falloff устанавливается для того, чтобы у тумана был виден переход, ближе к земле — плотнее, выше — более рассеянный. И Fog Inscattering Color также стоит поменять на голубо-серо-зеленый для придания красивого контраста с облаками и листьями.
Unreal Engine: High Resolution Screenshot
Easy Fog представляет собой хорошую альтернативу полноценному Volumetric Fog, особенно когда требуется баланс между качеством изображения и производительностью. Этот инструмент реализован как Blueprint Actor, позволяющий наложить одну из восьми встроенных текстур облаков или тумана. Несмотря на то, что это по сути 2D-эффект, он грамотно использует данные о глубине сцены для создания убедительной иллюзии трехмерного тумана. Хоть он и не обеспечивает стопроцентной физической корректности, свойственной настоящему волюметрическому рендерингу, но гарантирует отличное визуальное качество на заднем плане.
Unreal Engine: Easy Fog
Чтобы добиться реалистичного эффекта настройки Easy Fog позволяют точно регулировать плотность и цвет тумана, а также интегрировать его в общее окружение через правильные параметры в Details. Для качественного «вписывания» тумана в пространство рекомендуется использовать пипетку в Base Color Tint, чтобы взять оттенок уже существующего Exponent Height Fog из сцены. Управление густотой тумана осуществляется параметром Fog Density. Имитацию глубины и объема можно создать с помощью Geometry Fading Distance. В данном случае он хорошо обогатит цветовую палитру облаков с оранжевым и желтым тоном, придавая им визуальный объем.
Unreal Engine: Easy Fog
Саму форму тумана можно менять drug-and-drop’ом из контента, добавляя в Blueprint, не забывая также кроме Opacity Map перетащить Normal Map.
Для детализации сцены используются камни, бревна, которые размещаются по той же логике, что и деревья: объекты на переднем плане представлены как Static Mesh, а на заднем плане — как Folliage с наибольшей производительностью, для них также рекомендуется применять Nanite Override Material для интеграции единого Material Instance. Например, один общий Material Instance для всех камней и другой — для всех бревен.
Unreal Engine: High Resolution Screenshot
Niagara
Эффекты Niagara используют в виртуальном продакшене, но необходимо указывать в их настройках детерминированный режим, задавая фиксированный сид. Это гарантирует идентичность каждого последующего отрендеренного изображения и все случайные элементы в Niagara будут одинаковыми. Благодаря этому при работе на LED-экране не будет стыков и одинаковый сид позволит синхронизировать эффекты и избежать визуальных расхождений.
Для общей картины можно добавить эффект дождя и падающих листьев. Для начала надо открыть двумя кликами Niagara System, которая находится в папке с эффектом в Content Browser. В System Overview находятся ноды системы, у каждой из них справа в Details есть параметр Determinism.
Unreal Engine: Niagara Settings
Галочку нужно прожать на каждой ноде, нажимая на нее и переходя в Details. Вместе с этим каждый раз задается определенное фиксированное число (random seed) допустим, 1. Нажимается Compile для обновления настроек. Можно интегрировать эффект в сцену, перетащив Blueprint во Viewport.
Unreal Engine: Niagara Settings
Под Determinism есть еще одна важная настройка: Slim Target. Она должна стоять на GPU, а не на CPU, так как в виртуальном продакшене все синхронизируется через видеокарты. И чтобы не было стыков между нодами, настройка переключается на GPU.
Однако, есть системы, у которых в логике включена работа CPU. Такие Niagara стараются не использовать.
Unreal Engine: Niagara Settings
Если бы данная локация использовалась для определенной сцены отдельно, потребовалось бы создание техвиза, как с локацией с баром и расширение виртуального пространства за пределы видимого камерой. Это необходимо для обеспечения гибкости на съемочной площадке и возможности свободно поворачивать камеру, выбирая нужный ракурс. Однако здесь лес создан в качестве вида из окон бара. В связи с этим нет необходимости в ее глубокой и полной проработке, достаточно лишь минимально отредактировать и адаптировать фон таким образом, чтобы он выгодно смотрелся в конкретных кадрах, снятых внутри бара.
Ассеты, моделинг
Для финального штриха в сцене нужен ассет собора. Высокий polycount (количество полигонов в 3D-моделях), и просто большое количество отдельных моделей в сцене являются основными факторами, напрямую влияющими на скорость рендера и, как следствие, на частоту кадров (FPS).
На моделях в локациях для виртуального продакшена в основном квадратная сетка, главная причина — расчет нормалей (направления поверхности) для освещения. Квадраты обеспечивают более равномерный и предсказуемый расчет нормалей, что приводит к плавному и чистому шейдингу (тому, как свет ложится на поверхность) на изогнутых и сглаженных площадях. Треугольная геометрия в виртуальном продакшене допустима на плоских поверхностях (например, для альфа текстур) и на заднем плане.
Unreal Engine автоматически триангулирует всю импортированную геометрию, так как видеокарты рендерят только треугольники. При этом любые артефакты шейдинга становятся заметными в реальном времени. N-гоны особенно проблематичны: движок триангулирует их непредсказуемо, что может привести к некорректному шейдингу и визуальным ошибкам на неровных поверхностях.
Assets, Modelng: Maya
В качестве модели был найден данный ассет. Он включал в себя 43000 треугольников или 21000 фейсов, что слишком много для дома, который будет не на переднем плане. Подходящий polycount для той или иной модели может зависеть от многих факторов, но, например, сделать достаточного качества детализированный дом можно имея на модели 5000 фейсов.
Поэтому, если использовать данный ассет его надо почистить от многих деталей: скульптуры, решетки на окнах, знаков и тд, так как этого все равно не будет видно в кадре. После удаления ненужных элементов и чистки сетки от N-гонов и неправильных нормалей сетка вышла на 9000 треугольников и 4000 фейсов.
Assets, Modelng: Maya
Всю развертку ассета обычно стараются поместить в один UDIM (то есть в стандартное пространство 0-1), поскольку использование нескольких UDIM-ов может потреблять слишком много ресурсов для real-time рендера в Unreal Engine. Если же детализации одного UDIM-а не хватает и текстуры получаются слишком маленькими, то модель делят на части, назначают им разные материалы и загружают в Unreal Engine через несколько слотов материалов, чтобы обеспечить нужную плотность текселей.
После создания сетки модель проверяется с помощью чекер-карты: если квадраты на ней лежат ровно, можно переходить к текстурам в Substance Painter. При необходимости стоит еще подправить полигоны и перерезать сетку.
Текстуры, управление материалами
Cathedral: 3d model. Texturing: Substance Painter
В данном случае все UV уложились в один UDIM, но модель была поделена на 3 слота материалов: камень, крыша и метал на ней, чтобы было проще их красить в Substance Painter. C использованием комплексного подхода применялись Smart Masks, Generator’ы, различные текстуры, материалы и Smart Materials, что позволило добиться желаемых темных реалистичных оттенков. Для корректного переноса текстур из Substance Painter в Unreal Engine 5 при экспорте необходимо выбрать пресет настроек Unreal Engine 4 (Packed) и убрать каналы, которые не использовались, например, Emissive.
При импорте ассета надо прожать галочку Build Nanite и Create New Materials: так ассет импортируется с необходимым количеством слотов материалов. Импортировать текстуры можно также как и ассет: нажав на ПКМ по пустому пространству в Content Browser и выбрав import to из выпадающего меню.
Unreal Engine: import settings
Чтобы подключить текстуры в материалы нужно перетащить Base Color, Normal Map и ORM каждый в свой слот, предварительно его открыв. Но перед этим, нажав на текстуру ORM, отключить у нее галочку sRGB в Details: в этой текстуре данные цвета не нужны, они неправильно влияют на получившийся материал. Далее канал каждой текстуры подключается в главный узел материала должным образом, после чего текстуры переводятся в Parameter.
К примеру, в данном случае ассет имеет три слота материала: крыша, метал и камень. По названию определяется, какая текстура принадлежит какому материалу и drug-and-drop’ом перекидывается в пространство Material Graph.
Unreal Engine: Materials
Unreal Engine: правильное присоединение каналов текстур к узлу материала
Unreal Engine: отключение sRGB у текстуры ORM
Перевести текстуры в параметры можно нажав на них ПКМ и на Convert to Parameter в выпадающем окне. Текстуры нужно переназвать должным образом: основной цвет — Base Color, карта нормалей — Normal, карта с каналами отвечающими за рафнесс, амбиент оклюжон и металлик — ORM.
Unreal Engine: перевод текстуры в Parameter
Теперь, если нажать на каждый слот материала правой кнопкой мыши в Content Browser и сделать от него Material Instance, далее открыть Material Instance и прожать галочки напротив каждой текстуры, то можно переложить слоты Material Instance в Materials собора: это даст возможность управлять материалом. Для детального управления материалом на съемке прописывается специальная логика в каждом материале, которой можно потом управлять с помощью Material Instance.
Unreal Engine: Create Material Instance
Unreal Engine: Material Instance
В материалы в виртуальном продакшене добавляют обычно базовые текстуры: Base color, Normal, ORM. Иногда добавляется еще одна RGB-текстура с масками в каналах для блендинга материалов или добавления эффектов. Например, красный канал может контролировать появление грязи, зеленый — царапин, синий — мокрых следов. Основные параметры, которые редактируются в Material Instance на площадке: Color Correction, Metallic, Roughness, Saturation.
Логику можно прописывать разную, в зависимости от нужд на площадке, следующий туториал предназначен для достаточно детализированной настройки.
Material Instance Video-Tutorial
Есть еще один хороший способ увеличить производительность: симулировать пространство в окне с помощью эффекта параллакса, а не добавлять реальные 3D-ассеты внутрь помещения. В качестве помещения используется плоскость со специальной куб-картой (Cubemap), которая имитирует пространство в зависимости от угла обзора камеры.
CubeMap: Fake Interior Video-Tutorial
Кроме функции Material Instance управлять материалами на площадке можно еще с помощью Material Parameter Correction. MPC чаще всего используется для управления глобальными эффектами и параметрами окружающей среды, которые должны быть синхронизированы по всей сцене, например, время суток, количество снега, воды. В том числе эта функция связывает множество объектов, (например, несколько блюпринтов или статик мэшей), так как на площадке часто есть нужда управлять одним параметром, но так, чтобы он влиял на множество нужных ассетов: на их отражаемость, цвет и яркость.
Демонстрация MPC показана на примере изменения настроек интенсивности и цвета свечения нескольких ламп.
Material Parameter Collection Video-Tutorial
Локация 2. Ассеты
Так как для бара нужна была выдержанная стилистика, некоторые ассеты создавались с нуля, некоторые ассеты частично были взяты из готовых библиотек, но впоследствии подверглись переработке полигональной сетке и добавлении какой-то дополнительной геометрии.
Балкон: 10000 фейсов, 20000 треугольников. Дверь: 1500 фейсов, 3000 треугольников Стена: 2900 фейсов, 5900 треугольников. Лестница: 6500 фейсов, 13000 треугольников Стул: 440 фейсов, 480 треугольников Скатерть: 3000 фейсов, 6000 треугольников Стол: 2918 треугольников
Maya: Asset wireframe
Были сделаны также и текстуры c нуля. Хендпеинт в виртуальном продакшене почти используется, так как проекты в большинстве случаев создаются под фотореализм: в основном это сборка процедурных текстур в Substance Painter, различная комбинация масок, шумов, генераторов и так далее.
Substance Painter: textures
Substance Painter: textures
Substance Painter: textures
Также в виртуальном продакшене часто пользуются нейросетями, например Tripo3D, Luma Ai и другими. Кроме моделей с помощью нейросетей создают также и оптимизированные текстуры (Gemini Nano Banana, DeepSeek, Midjorny). Например, по фотографии здания она может сформировать две отдельные текстуры — одну с информацией о цвете и внешнем виде поверхности (слой цвета), а вторую с маской и альфа-каналом, который определяет прозрачность (например, где дощечка окна, а где его стекло). Такой способ нужен, если, например, в локации требуется определенное здание, существующее в реальном мире. В итоге получается набор текстур, готовых для использования в 3D-движке, где один слой задает цвет, а второй — прозрачность и форму маски.
Такой метод был использован для создания окон: исходная фотография окна была загружена в ИИ, который сгенерировал две отдельные текстуры — одну с базовым цветом, а другую — с маской, определяющей прозрачность.
Unreal Engine: High Resolution Screenshot
В сцену перетаскивается Plane, создается материал для окна c таким подключением текстур: в Details Blend Mode — Translucent, текстура с Base Color подключается в Base Color, у текстуры с маской канал R в подключается Opacity. Далее этот материал перемещается в Material Slot окна.
Unreal Engine: Material
Еще одна причина, почему стоит создавать ассеты с мелкими деталями таким способом, это то, что обычная геометрия может «алясить» (мерцать и иметь ступенчатые края), из-за того что мелкие объекты находятся близко друг к другу. А данный способ помогает и убрать баг, и оптимизировать сцену.
Некоторые готовые модели из библиотек, которые также использовались для создания бара:
Колонна: 1200 треугольников Софа: 880 треугольников Картина: 92 треугольника Комод: 2700 треугольников Вешалка: 1900 треугольников Книга: 400 треугольников Виниловые диски: 1300 треугольников Свечи на стол: 2800 треугольников Тарелка: 1700 треугольников Бутылка: 500 треугольников
Некоторые готовые модели для локации
Материал стекла с динамическим освещением Lumen. Видео-туториал
High Resolution Screenshot
Интерьерное освещение
Для настройки света внутри здания есть 3 источника: Spot Light, Point Light и Rect Light.
Point Light используется для точечного, локального освещения и излучает свет во всех направлениях подобно лампочке или свечи. Самый главный источник освещения в баре — свеча, поэтому в первую очередь надо использовать его. Все источники света надо переводить в movable: источник света должен иметь возможность менять параметры во время работы камеры для имитации натурального физического освещения.
Для начала надо активировать огонь на свечах: можно его добавить с помощью динамической ниагары, но если свечей слишком много, то это может повлиять на производительность. Поэтому второй вариант — наложить огонь с помощью маски Base Color и Opacity на Plane, подобранный под размер огня свечи, (так же, как делалось с окном, только дополнительно канал от Base Color подключается к Emissive для того, чтобы огонь был подсвечен).
Unreal Engine: Material
Unreal Engine: Point Light
Далее в сцену добавляется Spot Light чтобы имитировать естественный свет, идущий из окна, но из-за того, что окно было реализовано не как полноценный геометрический объект, а в виде текстуры с маской прозрачности, прямой источник света будет проходить сквозь него без создания теней и просто подсветит текстуру. Можно данный источник света разместить справа, где оконный проем — геометрия. С помощью Attenuation Radius и Outer Cone Angle можно отрегулировать ширину пучка света и расстояние лучей. С помощью Light Color сделать источник света слегка желтым и отрегулировать интенсивность в Intensity. Так как погода облачная, немного добавляется Soft Source Angle для смягчения теней, источник света — Movable.
Unreal Engine: Spot Light
Rect Light имитирует свет от прямоугольного источника, подходит для общего освещения комнат и поверхностей, таких как стена или пол. В сцене с помощью них можно создать естественное фейковое освещение, повысив яркость внутри помещения. Здесь они размещены на потолке и на полу, можно также пробовать разную интенсивность и цвет: добавлять холодный оттенок, чтобы контрастировал с теплым от свечей и ламп и соединялся с туманом на улице. C помощью Source Width и Height можно сделать им форму, чтобы не подсвечивали лишние ассеты в сцене.
Unreal Engine: Rect Light
В конце можно добавить в темные углы легкий Point Light, чтобы чуть уменьшить тени и сделать картинку глубже, также Easy Fog и доработать локацию.
В Unreal Engine есть функция света, Light Function. Данная функция помогает создать реалистичных узоры теней от листвы деревьев или жалюзи, имитацию работы проекторов (проецирование логотипов или изображений), а также добавление динамики и атмосферы с помощью анимированных материалов. Данную функцию можно применить к источнику освещения, отвечающему за свечи и сделать его мигающим, более реалистичным.
Light Function Video-Tutorial
Чтобы виртуальные локации выглядели настоящими, в них добавляют фоновых 3D-персонажей. Эти герои, похожие на основных актеров, создают массовку и оживляют картинку. Салун в этом плане — не исключение.
«Жора в огне» кадры со съемок
Вместо 3д персонажа можно добавить птиц. Для этого нужно перетащить Skeletal Mesh птицы в сцену, добавить ее из Outliner в Sequenser, нажать на «+» для добавления анимации. Далее с помощью ключей (клавиша S) зафиксировать ее начальное и конечное положение в Sequenser.
Unreal Engine: animation in Sequenser
Unreal Engine: animation in Sequenser
Unreal Engine: animation in Sequenser
Niagara Falling Leaves Video-Tutorial
На финальном этапе создания локации в настройках Post Process Volume часто применяются Saturation, Contrast и Gamma для коррекции изображения.
Unreal Engine: PostProcessVolume
Location: Render
Локация 1
Локация 2

















