Как в unreal engine 4 сделать невидимую стену

Обновлено: 06.07.2024

Привет, меня зовут Алексей, я работаю в компании Pingle Game Studio на должности Head of Division харьковского департамента. Свою деятельность я начал в 1996 году, и она всегда была связана с видеоиграми. Помимо этого, я создавал видеоролики и всевозможные шоу для телевидения, кино и для научных разработок.

В этой статье я расскажу вам, какие новые потрясающие инструменты предоставляет Unreal Engine 4, позволяющие сделать клип или визуальную сцену настолько быстро и просто, как никогда раньше.

Моя статья про Unreal будет интересна как профессионалам, так и новичкам, которые хотят заниматься синематиками на этом движке.

Инструменты Unreal Engine 4

У Unreal Engine 4 появились свои особенности, благодаря которым работать с этим движком стало хоть и по-другому, но значительно проще.

И если человек раньше работал на телевидении или в постпродакшне и познакомился с Unreal, то он может превратиться либо в Cinematic Artist, либо в Technical Artist — обе позиции очень востребованы в ІТ-компаниях.

Landscape

Unreal Engine 4

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

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

Unreal Engine 4


У инструмента от Unreal есть своя особенность, которая делает LOD Level of Detail (уровень детализации) или Level of Development (уровень проработки модели) автоматически на разных дистанциях. Благодаря этому Landscape предоставляет огромный выигрыш по скорости обработки сцены.

Unreal превосходно справляется с рендером как небольших локаций (до 4 х 4 км), так больших (28 х 28 км и даже больше) — все объекты на нем подгружаются очень быстро.

Foliage

Unreal Engine 4

В Foliage можно даже анимировать объекты на уровне шейдеров. При этом такая высокая скорость реакции, как в Unreal, не встречается больше нигде.

Приоритетность LOD

Unreal Engine 4

Unreal Engine 4

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

В 2015 году мы тратили около трех дней на рендер лишь одного кадра с 15-тысячной толпой — это делала связка из 16-ти мощных компьютеров. В 2021 году возможности Unreal позволяют обработать всю сцену всего за пять минут на одном компьютере.

Quixel Bridge


Я крайне рекомендую использовать библиотеку Quixel Bridge. Правда, она доступна только для пользователей Epic Games Store, но регистрация там бесплатная. Пользователю будет доступны 15 тысяч ассетов Объектов, материалов, текстур, деталей — полностью бесплатно и все высочайшего качества.

Unreal Engine 4

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

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

При этом интеграция Quixel Bridge достаточно гибкая — экспорт в Unreal Engine происходит в один клик.

Mixer

Unreal Engine 4

Стоит отметить еще один инструмент на базе Quixel Bridge — Mixer. Он работает в связке с Bridge. Если вы скачали что-то в Bridge, объект автоматически появится в Mixer. Он позволяет в два-три клика быстро изменить объект библиотеки с сохранением геометрии, но с новым шейдингом. При этом полученный результат можно сохранить как смарт-материал и использовать в последующих объектах.

Volume

Unreal Engine 4

Volume — страшная штука для любого рендера из-за обилия эффектов света и тени, а также огромного количества плашек с текстурами. Если раньше на обработку сцены уходили дни, а то и недели, то в Unreal подобные эффекты просчитываются в реальном времени с сохранением высокого качества картинки. Причем неважно, какие это эффекты в сцене: туман, дым, облака, свет. Те, кто занимается синематикой, будут в восторге.

Sequencer

Unreal Engine 4

Unreal Engine 4

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

CameraShake

Unreal Engine 4

В Sequencer есть еще интересный эффект под названием CameraShake — очень рекомендую его использовать, чтобы придать реалистичности поведения камеры, например, при взрыве.

Practicle FX

После того, как мы создали локацию, разместили персонажей и анимацию, получили картинку, осталось наложить разнообразные эффекты.

Unreal Engine 4


Раньше работа с эффектами в Unreal через Cascade была достаточно сложной и громоздкой. Благо, в четвертой версии движка был добавлен плагин Niagara. Он представляет собой автоматический конвертер. Достоинства плагина в том, что он дает большую производительность, высокое качество, а также предоставляет множество партиклов С помощью систем частиц создаются эффекты огня, дыма, искр и т.д. для насыщения сцены эффектами. Этот плагин наделен возможностью взаимодействия модулей между собой для придания более красивого визуала сцене.

Unreal Engine 4

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

При этом нарисовать подобную сцену в Niagara крайне просто, а рендер будет происходить в реальном времени.

Постпроцессинг и рендеринг

После постпроцессинга все объекты определенным образом окрашивают нашу сцену. Дополнительно ей придают окрас glow-эффекты, motion blur. В итоге картинка получается перенасыщенной с высоким контрастом. Поэтому необходима дополнительная цветокоррекция. Но перекрасить такую сцену бывает очень сложно из-за «пережаренных« цветов.

Unreal Engine 4

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

Еще один великолепный эффект — DOF (Depth of Field). Вы все знаете об эффекте боке, когда на фотографии задний фон размывается, создавая глубину, акцентируя больше внимания на объекте на переднем плане. Но стандартные рендеры не выдерживают этот эффект — появляются шумы и артефакты, а сам процесс создает дикую нагрузку на компьютеры. В Unreal Engine 4 DOF работает невероятно быстро, практически в реальном времени.

Хочу отметить всевозможные типы Render Pass. Иногда мы используем специфические слои, в которых объявляются разнообразные свойства. Например, добавить сцене объемности, наполнить ее воздухом, сделать десатурацию, прибавить освещения с правильным отражением. Можно даже добавить свои шейдеры с уникальными свойствами. В Unreal Engine 4 появилась даже поддержка новомодных эффектов трассировки лучей, благодаря видеокартам NVIDIA RTX 20-й и 30-й серии.

Unreal Engine 4

Напоследок, в Unreal Engine есть возможность использовать разнообразные консольные команды. Это необходимо для добавления тонких настроек эффектам, вроде прописывания приоритета для LOD. Бояться их не стоит, они простые в использовании и все описаны в документации — достаточно скопировать и вставить их в консоль.

Работая над проектом, архитекторы и дизайнеры прибегают к такому способу подачи, как 3D визуализация. Чаще всего это статичное изображение, полученное с помощью визуализаторов vRay, MentalRay, Corona и других.
В данной статье речь пойдет о визуализации архитектурных проектов на движке Unreal Engine. Рассмотрим все плюсы и минусы, а также поделюсь своими впечатлениями и опытом на примере готового проекта:

Моделирование

UE4 принимает 3D модели в формате .obj и .fbx.

Моделировать и экспортировать объекты можно в любом 3D редакторе (3ds Max, Blender, Maya и пр.) Желательно, чтобы модель имела хорошую топологию и полигонаж в разумных пределах (если говорить об интерьерах, то основные объекты, такие как диван, кровать и др. не должны превышать 100 тысяч треугольников, т.к. это сильно сказывается на производительности). Лучше, конечно, делать ретопологию каждой модели вручную, но для достижения приемлемого результата можно обойтись и автоматическими средствами, программами или плагинами.
Все модели должны иметь развёртку, чем ровнее она будет, тем качественнее на неё ляжет текстура и, забегая вперёд, свет с тенями, которые предварительно считаются в Unreal Engine.

Материалы

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

Так-как для создания рельефных поверхностей движок требует только normal карту, то есть возможность процедурно создать эту карту из чёрно-белого изображения c помощью нода NormalFromHeightmap

В данном примере была использована чёрно-белая карта, смешанная с числовыми значениями и применена в свойства Metallic и Roughness

На прозрачность материала влияет свойство Opacity, которое регулируется float нодом (значение от 0 до 1)

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

Base Color Metallic Specular Roughness

Освещение

В сцене используется три типа освещения:

  1. Directional Lights — Обеспечивает солнечный свет для всей сцены, является основой для просчёта Global Illumination (Глобального Освещения)
  2. Point Lights — Точечные источники света, имитирующие свет от электрических лампочек. Излучают свет во всех направлениях, есть возможность использовать IES-текстуру
  3. Spot Lights — Размещаются в непосредственной близости от оконных проёмах, моделируя окружающий свет из окон

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

Интерактив

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

1. Открывание и закрывание двери
Рассмотрим простой вариант, когда дверь открывается автоматически, если приближается игрок и закрывается, если игрок отдаляется:

Сама дверь состоит из двух элементов: статичная модель дверного проёма и интерактивное дверное полотно, логика которого описана в Blueprint.
В компоненты чертежа входит статичная 3D модель дверного полотна и фигура Box, которая играет роль триггера:

Нодовая структура выглядит следующим образом:


Ноды OnComponentBeginOverlap и OnComponentEndOverlap отвечают за коллизию с триггером.
Timeline_0 — это анимация с функцией Float Track (New Track 0).
Make Rot создаёт вращение по любой оси, в данном случае по оси Z (Yaw).

Функция Float Track (New Track 0):


Значение от 0 до -90 градусов изменяется в течение 1 секунды

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

2. Звуковые эффекты
Вы можете оживить ваш проект, добавив в сцену Ambient Sound. Например, пустить ненавязчивую музыку на задний план или добавить звуковой эффект при открывании/закрывании дверей.

3. Постобработка
В широком смысле, постобработка — это все то, что происходит после основных действий по построению изображения.
Выполнить постобработку вы можете либо в камере, либо блоком Post Process Volume, добавив его в проект и корректируя габариты. Войдя в этот блок, начнётся процесс постобработки.
К примеру, блок Post Process Volume с увеличенной яркостью рекомендуется ставить в плохо-освещённые помещения:

Так Post Process Volume выглядит в Unreal Engine 4 поддерживает множество эффектов для постобработки, далеко не все они могут вам пригодиться, но некоторые из них я перечислю:

  • Vignette (Виньетка) — затемнение или осветление краёв кадраDepth of Field (Глубина резкости) — всё, что находится ближе или дальше дистанции фокусировки, постепенно теряет резкость и размывается
  • Bloom (Свечение) — засвет, получаемый от ярких источников освещения
  • Lens Flare (Блик) — воспроизводит эффект преломления солнечных лучей в объектив камеры
  • Film (Шум) — даёт анимированный шум, имитируя плёночную кинокамеру

Подведём итоги

Несмотря на кажущуюся сложность работы, редактор Unreal Editor 4 выглядит приветливым. А с ростом производительности компьютерного оборудования GPU рендер может изменить традиционный подход к работе визуализаторов, дизайнеров и архитекторов.
Из минусов хочу отметить пару моментов. На данный момент добиться фотореалистичной картинки не просто, но если уйти в проект с головой и потратить больше времени, то можно. Размер готового билда может превышать 1GB, что может затруднить обмен среди коллег и заказчиков. На текущее время далеко не каждый компьютер способен выдать стабильные 25-30 FPS в заполненном 100 м² интерьере.

Alexander Dracott поделился некоторыми своими личными советами и фишками, которые сам довольно часто использует.

Импорт текстур в Unreal 4


Сохранение памяти: текстуры Channel-pack


Одна из особенностей Unreal — это большой объем контроля, который вы получаете, создавая свои собственные материалы. Когда вы создаете несколько черно-белых масок для текстур, таких как roughness или transmission, вы можете сэкономить память, спрятав каждую маску в отдельный канал R,G или B, а затем получив доступ к каждому каналу этой текстуры отдельно.

Физически корректный рендеринг


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

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

Повторное использование текстуры


Еще одним удивительным элементом Unreal 4’s Material Editor является то, что он позволяет повторное использование текстуры. Это поможет вам не только сохранить память, но и сэкономить время. Иногда red channel из rock albedo texture можно использовать как черно белую маску для roughness. Текстуру черепицы из Photoshop можно легко наложить на кирпич, а также смешать с другой текстурой для наложения на другие элементы.

Не накладывайте ненужных текстур


Иногда определенные текстуры не нужны. Для 100% неметаллических материалов, таких как древесина или грязь, текстура металла может быть заменена в Material Editor простой константой с плавающей точкой и значением 0. Этот же принцип можно применить для нескольких версий одного и того же материала. Вам не нужны отдельные normal maps, например, для трех разновидностей кирпича, отличающихся по цвету. Можно использовать одну normal map для всех.

Создание набора основных материалов


Повторное использование материала


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

Комментарии и организация материалов

Для сложных материалов Unreal 4 предлагает очень полезные организационные инструменты. Выбор группы нод и нажатие C помещает эти ноды в комментарий, который затем можно перемещать как группу и кодировку цвета. Комментарии (и отдельные ноды) могут содержать базовые текстовые пояснения.

Функции материалов


Функции материалов можно вызвать несколько раз для выполнения определенного набора инструкций. Они создаются вне материала в Content Browser, но затем могут быть вызваны, чтобы упростить их. Они могут содержать свой собственный inputs и могут стать отличным способом сэкономить время, когда нужно вызвать несколько повторяющихся операций.

Материалы листьев


Листва может быть одной из самых сложных вещей, т.к. совсем не просто обеспечить ее правильное отображение в любом игровом движке. В UE4 версии 4.18 существует Foliage Shading Model, которая упрощает эту задачу. Я настоятельно вам ее рекомендую, поскольку она поддерживает передачу подповерхностного слоя, что в большинстве случаев дает преимущества. Кроме того, советую добавить sky light к вашей сцене, чтобы помочь сбалансировать некоторые более темные области сетки листвы, которые могут быть в тени.

Vertex colour


Доступ к цветам Vertex в материалах — одна из моих любимых функций в Unreal 4. Они могут быть невероятно мощными при творческом подходе. От ambient occlusion до masking out wind и world offset для листвы — их универсальность колоссальна. Они особенно полезны при смешивании текстур. Vertex colors можно импортировать из внешнего программного обеспечения 3D или импортировать и нарисовать в редакторе.

Детализированные diffuse и normal


Так как вы можете настроить параметры текстурирования ультрафиолетового излучения, вы можете увеличить детали материала путем смешивания в дополнительном наборе текстур. Обычно это diffuse или normal maps, которые затем поочередно накладываются поверх базовых. Вы можете использовать любой удобный для вас метод, например, такой как Overlay Blend Function, в то время как подробные normal maps могут быть применены путем добавления красного и зеленого каналов к основанию.

Смешивание текстур в материалах


Хотите объединить текстуры в material editor, но знакомы только с режимами смешивания Photoshop? Epic превзошел все ваши ожидания. Наряду со многими полезными функциями материалов он включает в себя большинство режимов смешивания, с которыми знакомы все пользователи Photoshop. От Overlay до Linear Dodge их можно найти в окне палитры внутри Material Editor. Они могут быть особенно полезными для добавления деталей к вашим материалам.

Знание типов источников освещения


Unreal предлагает четыре различных типа света для использования в окружающей среде: Directional, Point, Spot, и Sky light. Свет Directional отлично подходит для наружных зон или любого необычного источника света. Свет Point является всенаправленным, а Spot похож на него, но имеет ограничения, определенные конусом. Sky light может использоваться для добавления света в окружающую среду, захватывая отдаленные части вашей карты. Поддерживаются также пользовательские Cubemaps.

Добавление тумана к вашей сцене


Существует стандартный способ создания всем нам известного обычного плотного тумана. Unreal 4 же предлагает два других способа добавить туман к вашей сцене. Atmospheric Fog реагирует на направленный угол освещения и интенсивность. Он может создать туман, основанный на реальном рассеянном атмосферном свете. Height Fog дает немного больше контроля цвета и позволяет добавить более простой эффект тумана, который становится менее плотным в верхних частях карты и более плотным в нижних частях.

Создание умных световых валов


Съемки с высоким разрешением


Хотя пользовательские видео разрешения могут быть выведены из Matinee, есть быстрый и простой способ сделать кадры в высоком разрешении прямо из редактора. Нажав на маленькую нисходящую стрелку в левом верхнем углу вашего Viewport, вы можете открыть небольшое раскрывающееся меню. Внизу можно открыть окно High Resolution Screenshot window. Оттуда снимки в высоком разрешении могут быть захвачены и отправлены в папку вашего проекта: project/saved/Screenshots folder.

Корректировка цвета и таблицы поиска

Финальные цвета рендеринга можно настроить на основе художественных предпочтений. Хотя существуют опции для базовых настроек, таких как контраст и оттенок, пользовательская коррекция цвета может быть выполнена с использованием таблиц цветового поиска. Эти таблицы допускают сложное преобразование цвета и могут быть сделаны при помощи базового файла, доступного на сайте Epic Unreal 4 и в Photoshop, или в других программах для настройки изображений.

Редактирование световых переходов и бликов


В играх и 3D стало популярным отображать световые переходы и блики, их можно включить и настроить в UE4, используя специальные зоны постобработки — post-process volumes. Световой поток настраивается практически по всем характеристикам. Размер, цвет, интенсивность и порог можно изменить и даже использовать их для маскировки текстур грязи и имитации грязных линз. Аналогично, вспышки также могут быть включены, а их форма и интенсивность регулируются.

Создание глубины резкости


Unreal 4 поддерживает как резкость по Гауссу, так и настраиваемую. Оба эти параметра существуют в настройках Post Process Volumes. Следует также отметить, что инструменты, которые помогают с размытием тонких объектов перед удаленными, иногда могут создавать проблемы. Нужно проявлять осторожность в применении глубины резкости, например, к листве или другим подобным элементам.

Автоэкспозиция и адаптация глаз


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

Световые функции


Одна интересная особенность в Unreal 4 — поддержка материалов с функцией освещения. Эти материалы действуют как маски для света и могут использоваться, чтобы сделать что-либо: от пользовательских цветовых вариаций в свете до облачных теней на земле. Они создаются путем установки функции Material Domain to Light в Material Editor, их можно использовать при spot, point и directional lights.

Сэкономьте время, скопировав и вставив


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

А самое крутое — это то, что все, что скопировано из Unreal, можно вставить в текстовый документ. Затем этот текст можно скопировать и повторно вставить на другой уровень Unreal 4.

Режим просмотра и визуализация рендер пасов


Знание того, что составляет ваш образ, является неотъемлемой частью работы в любом 3D-движке и работает в отложенном рендерере, например, UE4 позволяет использовать некоторые полезные режимы просмотра. Нажатие Alt и 1-8 переключается между различными режимами просмотра, такими как Unlit или lighting only, но если вы нажмете кнопку View Mode в окне Viewport, вы можете просмотреть отдельные рендер пасы. Это может быть полезно для просмотра широких диапазонов материалов, таких как roughness.

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


Всем привет! Мне очень интересно как средствами движка сделать генерацию мира как в майнкрафте и самое главное что меня здесь интересует это как генерировать мир если на карте будет нескольео игроков. Все что я нашел на Ютубе это как генерироуется мир в игроке(в нем находится вся логика) а как быть с несколькоми клиентами? мир будет накладываться друг на друга чтоли??


Не могу оптимизировать воксельную генерацию мира
У меня есть генератор воксельных миров. Он успешно создаёт мир, но при размере мира 100х100 и.

Как сделать генерацию слов?
for (int i = 0; i < Convert.ToInt32(Slovo.Length); i++) < r =.

Как сделать генерацию панелей?
Собственно есть анкеты в которых есть определенная информация.. В соответствии от количества анкет.

Как сделать генерацию рандомных объектов
Как сделать так чтобы объекты созданные мной появлялись в разных координатах и в разной.

Надо знать архитектуру оригинальной игры. Оригинальная игра построена на клиент серверной модели даже в сингле. Причем в игре 2 пары клиент-сервер. Одна пара реальная, вторая виртуальная. То есть играя в сингл ты играешь на сервере даже не зная об этом (от этого иногда сетевые ошибки в сингле). Виртуальная пара вроде относится к графике и логике игры (разделение на фронт и бэк по сути). Причем игра работает в несколько потоков.
Генерация мира в игре довольно сложная и включает сложные алгоритмы


как сделать такую генерацию в массиве
for (int i = 0; i <= 100; i++) < if (i % 9 == 0) mySet.insert(i); >.

Как сделать генерацию ошибки 404 серваком?
Как известно Joomla создаёт свою страницу ошибки 404. Мне надо отключить эту функцию и сделать так.

Как сделать генерацию платформ по оси х в 2д игре?
Не могу сделать генерацию платформ по оси х, то есть платформы генерируются по у но всегда на одном.

Как сделать генерацию карт более рандомной?
Делаю генератор карт для 2D игры, но проблема в том, что функция rand() даже с использованием.

Как сделать генерацию кода из диаграммы классов??
Подскажите, пожалуйста, как построить диаграмму классов в Microsoft Visual Studio?? Мне нужно.


Есть ли смысл делать бесконечную рандомную генерацию мира из тайлов?
Есть ли смысл делать бесконечную рандомную генерацию мира из тайлов? не будет ли в дальнейшим.

Читайте также: