Забыли пароль?
Регистрация
Перенос рельефа и карты высот в Unreal
17.10.2024 07:23:06
Но Terrain уже есть на сцене Unity, а значит, первое, что я попытался сделать - перенести его как есть в Unreal.

Да, Utu не справился с этой задачей, но у меня также есть все исходники - карта высот (Height Map), основная текстура ландшафта, карта нормалей и несколько текстур для отрисовки различных слоев (песок, трещины, вершины в виде камней и т.п.). Все это - ассеты в универсальных форматах, а значит, их можно использовать в любом движке и в теории задача сводится к воссозданию геометрии ландшафта через карту высот, применению к ней материала из основной текстуры + карты нормалей и дополнительной отрисовке слоев с использованием остальных текстур.

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

Первое, что не пошло - Unreal'у не понравился формат изображения в .raw файле. В карте высот монохромное изображение контролирует высоту геометрии ландшафта (чем темнее пиксель - тем ниже, чем светлее - тем выше). Отличный же способ передачи информации без заморочек с различными 3D-форматами! Но что-то пошло не так. Я попробовал открыть этот файл в Photoshop - ему тоже не очень понравилось, но он задал несколько вопросов и в итоге открыл изображение. Изображение оказалось отрисованным процентов на 75, остальное - белые пиксели. Странно.

Я пошел к ChatGPT и спросил, что может быть не так с форматом. Тот посоветовал пересохранить изображение из Photoshop с разными настройками битности и прочим... ничего не помогло, Unreal'у файл по-прежнему не нравится. После этого я попросил ИИ сконвертировать файл в формат, который Unreal точно поймет, и... он сделал это. Сгенерированный файл я скормил движку, и тот все понял! Ландшафт появился, но... слишком маленький + там, где пиксели были белыми - плоская возвышенность. Стало очевидно, что в Unity эта карта высот используется не полностью и с какими-то дополнительными настройками, которые в редакторе Unity не отображаются.

Следующее, что я попробовал сделать - экспортировать актуальную карту высот из Unity. Тут ChatGPT посоветовал юзнуть специально созданный для этого плагин и угадайте что? В старой версии Unity плагин просто не запустился, сказав, что он был создан в более новой версии движка, а в последней версии Unity он тоже не запустился, потому что его перестали поддерживать после версии 2023 года. Хорошо, я уже принял решение уйти на Unreal...

В процессе борьбы с плагином нашел стандартную функцию экспорта карты высот глубоко в настройках Terrain. Не знаю, почему ИИ о ней ничего не сказал, но она отработала отлично. Новоиспеченную карту высот я снова скормил ChatGPT и попросил конвертнуть в формат для Unreal - он покорно выполнил задачу, я импортнул результат в Unreal и... опять фигня. Теперь изображение без артефактов, но слишком маленькое, и Unreal его дублирует на все секции Terrain'а...

Поигравшись с настройками Terrain, я пришел к выводу, что проще увеличить изображение под нужный размер, тогда движок сразу создаст и ландшафт достаточного размера. Конечно, не просто растянуть в Фотошопе, я пошел к онлайн-сервисам, которые делают AI upscaling, и увеличил изображение без потери качества в 5 раз. И вроде бы все отлично, геометрия ландшафта создана, но после импорта этого в Unreal стало понятно, что ландшафт в Unity создан из какой-то малой части этой карты высот и потом сильно растянут.

Тут мои нервы уже сдали, и я пошел и просто создал ландшафт в Unreal с нуля по туториалу. Получилось в итоге существенно лучше, чем в оригинале.



15.11.2026 Qwuack продал mik 10.00 золотых кредитов на аукционе за 163.00 обычных.
15.11.2026 Виконт заработал 326991 опыта за последние сутки.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 325.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 323.00 обычных.
14.11.2026 Remos продал Baunatal_2.0 20.00 золотых кредитов на аукционе за 325.00 обычных.
14.11.2026 Remos продал Теся 20.00 золотых кредитов на аукционе за 325.01 обычных.
14.11.2026 Skystorm заработал 307282 опыта за последние сутки.
13.11.2026 Skystorm заработал 109108 опыта за последние сутки.
12.11.2026 База киборгов 1 уровня пала под натиском наших бойцов.
12.11.2026 База киборгов 1 уровня пала под натиском наших бойцов.
12.11.2026 Skystorm заработал 319447 опыта за последние сутки.
11.11.2026 Qwuack продал DeN 10.00 золотых кредитов на аукционе за 158.01 обычных.
11.11.2026 Skystorm заработал 222309 опыта за последние сутки.
10.11.2026 Skystorm заработал 999245 опыта за последние сутки.
Начать игру
Рейтинг игроков
Ноябрь 2026


Укуренный Ёжик 18
Militaris* 15
!Лис! 12
Виконт 15
Африканец 14
Серго 14
Мартосик 12
mouse* 12
roma 11
Одеяло 14
Рейтинг кланов
Ноябрь 2026


60 PHOENIX 6.9
54 Гринпис 1.0
46 Полиция 3.0
38 ANGELS 2.1
37 Волчья Стая 2.0
35 Immortals 2.0
22 Эволюция 0.0
20 T.R.I.A.D.A. 0.1
Все кланы
Чемпионат
Сентябрь - Ноябрь


PHOENIX 25 (13, 12)
Полиция 18 (16, 2)
Гринпис 9 (9, 0)
Волчья Стая 6 (6, 0)
Сектор 13 2 (0, 2)
ANGELS 2 (0, 2)
Мафия 0 (0, 0)
Legion 0 (0, 0)
Alkatraz 0 (0, 0)
Resident Evil 0 (0, 0)
Все кланы
Союзы


Titanium
Nuntios Caeli
Bang!
Социальные сети


Группа ВКонтакте
Дневник разработчика