Как сделать окружение в unreal engine 4

Обновлено: 07.07.2024

Использование игрового AI в Online CO-OP и Competitive играх.

Боевая система Final Fantasy в 2D на JavaScript с нуля.

Создание API на PHP и JavaScript для трансляции игры Lines в браузере - видеокурсы ITVDN

Создание Action RPG на Unity 3D под Android. Часть 3.

Создание Action RPG на Unity 3D под Android. Часть 2.

Создание Action RPG на Unity 3D под Android. Часть 1.

На данном уроке, рассматривается тема - "Unreal Engine 4. Создание и редактирование ландшафта. Сплайны (spline)". Парктическая работа по созданию ландшафта и его редактирование. Дополнительно рассматриваются -"Сплайны (spline)". Еще больше полезной информации на ITVDN.

Изучение Unreal Engine, документация на русском языке

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

Технические детали

Валидные размеры полей высот ландшафтов не всегда очевидны в самом начале. Чтоб иметь возможность определить размеры для полей высот, которые валидны и оптимальны, нужно понимать внутреннюю архитектуру Ландшафтов. Чтоб создать систему, позволяющую использовать большие ландшафты, которые эффективны с точки зрения используемой памяти и производительности, архитектура ограничивает размеры полей высот, а это означает, что есть определенные размеры, которые валидны, и прочие, не подходящие. В прежних системах ландшафтов в Unreal Engine либо вообще не было никаких ограничений (любые размеры были валидны и могли работать), либо ограничения были не строгие. Ограничения для полей высот ландшафтов гораздо более сложные и строгие.

Landscape Actor закодирован цветом, так что легко сказать, что именно делает каждая секция. Границы Landscape окрашены желтым, края каждого компонента подсвечены светло-зеленым, края секции (если секция размерами 2×2) окрашены зеленым, а отдельные Landscape-квадраты окрашены в темно-зеленый.

Color: Landscape Component
Yellow: Landscape Actor Edge
Light Green: Landscape Component Edge
Medium Green: Landscape Section Edge
Dark Green: Landscape Individual Quad


Landscape-компоненты

Ландшафты разделены на множество компонентов, которые представляют собой базовый юнит Unreal в плане рендеринга, расчетов видимости и столкновения. Components в Landscape все одинакового размера и всегда квадратные. Размер Landscape component определяется при создании Landscape, и выбор зависит от размера и деталей Landscape, который вы хотите создать

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

Ниже представлен очень простой Landscape (подсвечен зеленым), содержащий 4 компонента. Каждый компонент состоит из простого квадрата. Один компонент отделен, чтоб показать, как дублируются те вершины, где встречаются компоненты.


Секции компонента

Компоненты можно опционально разделить на 1 или 4 (2×2) подсекции. Эти секции служат базовым юнитом расчетов Landscape LOD.

Использование подсекции 4 (2×2) дает вам тот же размер поля высот, как если бы вы использовали в четыре раза больше компонентов всего лишь с одной подсекцией каждый, но использование нескольких компонентов обычно приводит к большей производительности.

Размер каждой секции (количество вершин) должен быть в квадрате (максимально 256×256). Таким образом разные уровни LOD могут хранится в мипмапе текстуры. Так мы получим число квадратов в компоненте, также это число в квадрате минус 1. (если 1 секция на компонент) или числов квадрате минус 2 (если 4 секции на компонент).

Отдельный компонент, который проиллюстрирован ниже, содержит 4 секции. Каждая секция состоит из 9 (3×3) квадратов. И опять, вы можете заметить, что вершины, где секции встречаются, дублируются.


Расчет размеров поля высот

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

Вот несколько примерных сценариев:

Пример 1

Если мы начинаем с компонента с одной единственной секцией, которая содержит 64×64 вершин, то размер такого компонента составляет 63×63 квадратов . Скажем у нас есть Landscape размером 10×10 этих компонентов, то есть у нас 630×630 квадратов в общем в нашем Landscape. Теперь, если мы хотим импортировать высоты для такого Landscape, то у нас появится поле высот размером 631×631 вершин, потому что вершин всегда на один ряд больше, чем квадратов. Так что 631×631 — это валидный размер Landscape.

Пример 2

Если у нас есть компонент, поделенный на 4 подсекции, каждая из которых собрана из 64×64 вершин, то это ведет к 63×63 квадратам на секцию, и 126×126 квадрат на компонент. Если у нас 32×32 этих компонентов, то мы получаем 126 * 32 = 4032 квадратов в общем в каждом направлении. Так что общий Landscape будет содержать 4033×4033 вершин.

Эти примеры фокусируются на квадратных ландшафтах. Но, как бы то ни было, Landscape не обязательно должен быть квадратным. Например, в первом примере 10×10 не обязательные размеры. Предлагая 63 квадрата на компонент, вы можете иметь любой Landscape из компонентов AxB с конечным размером в вершинах (A*63+1 , B*63+1).

Вопросы производительности

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

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

Рекомендованные размеры ландшафтов

Чтоб облегчить дело, вот вам размеры, которые максимизируют область, но минимизируют количество компонентов Landscape.

Overall size (vertices) Quads / section Sections / component Component size Total Components
8129×8129 127 4 (2×2) 254×254 1024 (32×32)
4033×4033 63 4 (2×2) 126×126 1024 (32×32)
2017×2017 63 4 (2×2) 126×126 256 (16×16)
1009×1009 63 4 (2×2) 126×126 64 (8×8)
1009×1009 63 1 63×63 256 (16×16)
505×505 63 4 (2×2) 126×126 16 (4×4)
505×505 63 1 63×63 64 (8×8)
253×253 63 4 (2×2) 126×126 4 (2×2)
253×253 63 1 63×63 16 (4×4)
127×127 63 4 (2×2) 126×126 1
127×127 63 1 63×63 4 (2×2)

Режим Layer Debug

Режим Layer Debug визуализирует влияние определенных уровней на Landscape в Viewport. Вы можете включить режим Layer Debug в меню View, который находится в Viewport, в Landscape Visualizers.

При включенном режиме Layer Debug кнопки-пульки, позволяют выбрать отдельные цветовые каналы, которые перечислены в списке целевого уровня.


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

Создатель объектов для Unreal Engine 4 Джонатон Фредерик (Jonathon Frederick) рассказал о своей работе и источниках вдохновения для создания научно-фантастических модульных окружений.


Почему именно 3D

Самая главная причина того, что я работаю в 3D — серия Unreal Tournament. Я всегда хотел создавать трёхмерные игры, и программы от Epic оказались подходящим инструментом для изучения этой деятельности. Я много лет изучал всё, что мог, читал туториалы, учился на ошибках и всё в этом духе, пока не приобрёл уверенность в своих навыках.


Источники моего вдохновения самые разные. Это может быть что-то, что я увидел в фильме, сериале или в жизни. Или в игре: некоторые мои ранние работы были вдохновлены Halo и Mass Effect. Такие вещи, как, к примеру, современные принтеры, могут обладать интересной формой. В последних работах я ориентировался на внутреннее пространство подводных лодок и недавние Call of Duty. Ещё один источник — рисунки и фотографии с атмосферным освещением. Они сподвигают меня на создание определённой сцены или вида для объектов.

Maya или 3DS Max

В начале карьеры я больше склонялся к Maya, потому что она казалась проще. Я начал заниматься этим в 2004 году. В то время многие разработчики и моддеры испльзовали 3DS Max, но меня отпугивал её интерфейс и усложнённый подход к моделированию. Ещё мне сказали, что в Max не было эквивалента кнопке G в Maya (команда повтора), а мне эта функция очень нравилась.


Функциональность освещения

Мне нравится освещение, оно добавляет атмосферы. И слабое, и полное освещение очень помогает передать ощущение от сцены. Когда я работаю над набором окружения, мне всегда сложно остановиться на какой-то одной комбинации освещения и пост-обработки, поэтому я всегда стараюсь включить как можно больше разных. Хороший пример этого — набор Hallways. Там, кажется, пять карт, каждая со своим освещением.

Моя любимая карта из набора — та, на которой свет выключен, и в помещение пробивается солнце. С недавним добавлением объёмного тумана возникли новые возможности. Я поэкспериментировал с ним, когда работал над промо-снимками Engineer Hallways и Props.


Двери

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

Частицы дыма и объёмный туман

Объёмный туман отсутствует в Engineer Hallways, потому что его не было в UE4 версии 4.15, для которой набор создавался. Я собрал сцену с объектами из обоих наборов Engineer в 4.16 и выложил скриншоты на ArtStation. Когда дверь открывается, и в помещение попадает свет, он влияет на объёмный туман внутри. Помимо этого, при открытии двери появляется небольшой эффект дыма.


Вдохновение для Custom Ice Shader

Я играл в проекты вроде Mass Effect: Andromeda, Dragon Age: Inquisition и Call of Duty: Infinite Warfare и заметил в них красивые ледяные шейдеры. Зимние окружения будут использоваться в одном из моих проектов, так что я решил включить в них такой же впечатляющий шейдер. Я не смог найти ничего похожего в магазине, так что создал свой. Я хотел добиться стилизованного вида льда — чтобы он выглядел хаотично, но красиво.

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


Любимые игры на Unreal Engine 4

Hellblade: Senua’s Sacrifice — пожалуй, одна из лучших демонстраций возможностей UE4. Injustice 2 — тоже хороший пример отличной графики, анимации и геймплея, на которые способен Unreal Engine 4. Ещё проект самой Epic — Paragon. У меня не было времени, чтобы ознакомиться со всеми играми на движке, но уверен, что можно было бы назвать гораздо больше.

Совет новичкам

Будьте упорными. Я заметил, что люди часто думают, что у них будут получаться высококачественные окружения с самого начала. Чтобы до этого дойти, нужно время, терпение и умения. И даже когда вы обзаведётесь нужными навыками, не забывайте — первые стадии моделирования выглядят не очень красиво. Нужно работать, пока все кусочки не сложатся в цельную картину.

создание и настройка ландшафта в unreal engine 4 урок основы unreal engine 4

Zivert - CRY | Премьера клипа

04:24

LOBODA - Americano (Премьера сингла, 2021)

03:31

Баста – Любовь и страх (feat. Дворецкая)

05:41

Ozoda - Esla Meni (Offıcıal Clıp 2021)

05:02

Султан Лагучев - Cкучает осень (премьера 2021)

02:29

Oliver Tree & Little Big - The Internet [Music Video]

03:36

Coldplay X BTS - My Universe (Official Video)

04:43

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