Как сделать лес unreal engine 4

Обновлено: 03.07.2024

Как сделать рубку дерев в UE4, как в игре the forest? Какая технология использования? Или это скрипт?

gagurato, при нажатии левой кнопки мыши уничтожай/отправляй "лесоруба" и давай ресурсы через переменные. Это элементарно

какой смысл вообще что то советовать?
Видно же по самой формулировке вопроса "Как сделать . как в . ". Человек не хочет ничего знать, ему нужно что то готовое, что он сразу запихнет в проект.
Если вы все равно советуете в надежде что он настолько глуп, ты вы упускаете огромнейшую кучу деталей (без которых ваш совет бесполезен);

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

Настройка системы папок

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

Мы создали следующие папки для данного урока.

  1. Landscape
  2. Materials
  3. Resources
  4. Textures

Должно получится что-то типа этого.


Перенос текстур

Теперь, когда наши папки на месте, давайте перенесем некоторые текстуры из проекта Landscape Content Example, чтоб у нас было, с чем работать.

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

Вы можете найти текстуры в следующей папке, которая находится внутри проекта Landscapes Content example.

/Game/ExampleContent/Landscapes/Textures/

Из проекта Landscape Content Example мы будем переносить следующие текстуры.

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

Создание материалов ландшафта

  1. Откройте папку Materials.
  2. Выполните правый клик в ContentBrowser и выберете Material из списка BasicAssets.
  3. Назовите как-нибудь созданный Материал, чтоб его было легко найти, например, Landscape_Material.

Теперь у вас должно получиться нечто такое:


Теперь, когда у нас создан новый Landscape Material, откроем Материал, дважды кликнув по нему внутри Content Browser. Теперь вы должны увидеть нечто такое:


Теперь, прежде чем мы начнем наслаивать узлы в Material Editor, мы должны убедиться в том, что установили этот материал для его дальнейшего использования в Ландшафте. Чтоб сделать это, открываем секцию Usage в панели Details и ставим галочку напротив Used with Landscape . Таким образом мы сможем использовать Материал в Ландшафте.


Теперь самое время начать наслаивать узлы внутри Material Editor. Первый узел – это узел LandscapeLayerCoords UV. Этот узел — помощник в генерации UV-связей, которые можно использовать для того, чтоб связать Сеть Материалов с Landscape Terrain.


Самый простой способ найти узлы, специфичные для Ландшафта – это использовать поиск узлов в боксе Materials Palette, вбив слово Landscape, как ключевое


Следующие Material-узлы, которые мы собираемся наслоить, это узлы текстур для Base Color настила и карт Normal. Для снега мы будем использовать Vector Parameter (V + левый клик), который использует белый цвет. Чтоб убедиться в том, что не используется Metallicinformation,используйте Constant (1 + левый клик) в значении 0 с подключением к Metallicinput. И наконец, для Roughness, мы установили Scalar Parameter (S + левый клик), и это значение мы сможем твикнуть с помощью Material Instance позже. Наконец, давайте убедимся, что мы прицепили каждый LandscapeCoord к UV каждого Texture Sample. У вас должно получиться нечто такое:


Чтоб добавить узлы Texture Sample для различных текстур, сначала выберете нужную текстуру в Content Browser, затем нажмите T + левый клик в графе Material Editor, чтоб создать узел.

Чтоб узнать больше об этих привязанных клавишах, откройте окно Edit > Editor Preferences > Keyboard Shortcuts и выберете Material Editor – секция Spawn Nodes.

Номер Название текстуры
1 T_ForestGround_D
2 T_Ground_Grass_D
3 T_ForestGround_N
4 T_Ground_Grass_N
5 T_Noise_N

После того, как мы наслоили Material-узлы, а LandscapeCoords были связаны с текстурами UV, самое время добавить узел Landscape Layer Blend. Этот узел используется, чтоб смешать все текстуры, которые используются для ландшафта, таким образом, что их можно будет раскрасить на ландшафте по отдельности, используя инструменты Landscape Painting. Таблица ниже показывает, какие текстуры связаны с названием уровня и, какие режимы смешивания они используют.

Когда вы первый раз закладываете узел Landscape Layer Blend, он будет пустым, как показано на картинке с номером один. Чтоб добавить к нему Layers, вам сначала нужно выбрать узел в Material Graph, а затем в панели Details, кликните на иконку Plus, которая находится между словом Elements и иконкой Урна. Эта иконка отмечена желтым на картинка с номером 2.



Режим смешивания уровня Base Color

Текстура Название уровня Тип смешивания Вес привью
T_ForestGround_D Soil LB Weight Blend 1.0
T_Ground_Grass_D Grass LB Height Blend 0.0
Snow as a Vector 3 Snow LB Height Blend 0.0


Режим смешивания уровня Normal

Текстура Название уровня Режим смешивания Вес привью
T_ForestGround_N Soil LB Weight Blend 1.0
T_Ground_Grass_N Grass LB Height Blend 0.0
T_Noise_N Snow LB Weight Blend 0.0


После закладки узлов Layer Blend, самое время связать их с Texture-картами. После чего у вас должно получиться нечто такое:


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


На графическом движке Unreal Engine 5 создали сцену с фотореалистичным лесом и опубликовали видео в разрешении 8K. Чтобы все работало более-менее нормально, для этого пришлось использовать видеокарту NVIDIA RTX 3090.

В сцене используются передовые графические технологии Nanite и Lumen.


А вот другой ролик с этой же сценой.


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

Как создавать материалы, растительность и настраивать освещение.

Я не пытался воспроизвести настоящее место, но оно должно было выглядеть естественно. Так что я создал карту высот в WM и экспортировал несколько масок, чтобы обозначить участки со снегом, скалами и землёй.

После этого я загрузил карту высот в Landscape Editor в Unreal Engine 4 и создал материал ландшафта. Он довольно простой — всего три разных материала, соединённых с помощью масок. Кое-где я вручную добавил снег.

После того, как я закончил ландшафт, я подумал, что стоит добавить ещё что-нибудь. Например, небольшой домик в низине. Работа над такой сценой всегда начинается с поиска референсов и создания заготовки.

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

Я выбрал плотность текселей в 1024 на 100 сантиметров, чтобы текстуры вблизи выглядели хорошо. После этого я использовал плагин TexTools для 3ds Max. Он быстрый, качественный и бесплатный. И в нём есть много классных фич вроде копирования коэффициента текселей с других объектов, автоматической установки групп сглаживания с UV-оболочек и так далее.

Материал для крыши я сделал в Substance Designer, затем добавил на неё рёбра. Я создал четыре разных деформированных участка, импортировал их в UE4 и распределил по крыше для лучшей производительности.

Детали

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

На окнах используются два материала — цельное дерево и запечённое стекло (излучение и карта шероховатости/металлического отлива).

Растения

В этой сцене было важно создать реалистичную растительность. Для этого я воспользовался Quixel Megascans.

Вот процесс создания травы.

Создайте плоскость и поместите на неё непрозрачную текстуру травы. Я использовал плоскость 200×200 сантиметров с сегментами 10×10.

Затем отделите каждую часть атласа.

Нужно держаться как можно ближе к границе травы, иначе она будет негативно сказываться на производительности. Чтобы двигать вершины, я использовал опцию Preserve UVs.

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

Вот основной материал для растений.

Так что не забывайте разрабатывать уровни детализации. Для травы я сделал два уровня детализации, уменьшил их в Simplygon на 15%. Для распределения травы я пользовался инструментом Foliage. Он довольно простой.

Материалы

Материалы я сделал в Substance Designer. Люблю эту программу.

Вот схема материала скалы.

На землю я нанёс цельную текстуру мёртвой травы от Megascans.

Карта высот штукатурки была сделана в ZBrush. Потом я смешал карты высот в Substance Designer и получил разные текстуры для использования в UE4.

Освещение

Освещение очень важно: хороший моделлинг можно испортить плохим светом, но хороший свет может вытянуть плохой моделлинг.

В этой сцене я использовал полностью динамический свет и тени, и он работает в Full HD при 60 кадрах в секунду на моей GTX 970.

Свет из окон — точечный. Для естественного света я использовал Exponential height fog и карту HDRi. Это позволило создать желаемую атмосферу. Вот как это влияет на сцену.

Также я добавил направленный свет на небесную сферу с помощью Blueprint. Это позволяет мне создать солнечный свет.

Вот несколько полезных настроек света.

И не стоит забывать о постобработке.

Вот как она влияет на сцену.

Камера

Я делаю скриншоты в UE4 с помощью CineCamera, потому что у неё есть много настроек вроде фокусного расстояния, глубины резкости и апертуры — прямо как у настоящей камеры.

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

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

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

Работайте увлечённо и не останавливайтесь. Становитесь лучше с каждым новым проектом. Закончив одну работу, принимайтесь за другую, потому что нет предела совершенству. И не забывайте об освещении.

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