Здравствуйте. Вы находитесь на сайте Unreal Level. Данный ресурс посвящен редакторам карт игр серии Unreal, UT и Gears of War. Основная цель сайта , помочь всем желающим освоить любой из редакторов вышеперечисленных серий. Наибольшим приоритетом на этом сайте, обладает редактор UnrealED for Unreal Engine 3 и редактор движка Unreal Engine 3.5, входящий в комплект разработки UDK, поскольку это наиболее актуальная на сегодняшний день технология.
Height Maps from 3DsMax
автор: FACH | 6 Июля 2010 | Просмотров: 6410

Автор:  RCM_Mafiozy

 

Введение

 

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

А ТАКЖЕ! Прочтите сперва урок: спользование созданных карт высот для ландшафтов".

 

Насколько Вы знаете, на форуме вопрос о переносе ландшафта из 3ds Max в UDK далеко не редкость. Кому-то не нравятся стандартные средства, кому-то нужно перенести старые наработки или, как в случае одной из тем - перенести террейн из другой популярной игры. Кто-то без лишних премудростей импортирует ландшафт как static mesh, с удивлением проваливаясь сквозь него в игре из-за проблем с коллизией... Неприемлемо. :-)
Итак, что же такое height map? По большому счету, увидев ее вживую, можно сразу заметить, что она представляет собой не что иное, как черно-белое изображение. Действительно, все просто: высоту точки плоскости определяет градация серого - чем ниже точка, тем темнее она на карте, соответственно наивысшая точка будет белее всех остальных.

Урок логически можно разделить на 2 части, первая - моделирование ландшафта (сомнительное удовольствие, но прошу заметить, что под Макс существуют вменяемые плагины для моделирования ландшафта), вторая - снятие карты высоты, поэтому, если нужно перенести уже готовый ландшафт в UDK, то читайте вторую часть, если первая окажется знакомой. Приступим!

Часть первая. Моделирование ландшафта.


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

МОДЕЛИРОВАТЬ МОЖНО ТОЛЬКО ВДОЛЬ ОСИ Z.

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

Первое, что мы создадим - плоскость. Размер я выставил в 2048*2048, количество сегментов 100*100.

 

 

Height Maps from 3DsMax

 


Важно учесть, что размеры этой плоскости к размерам карты высоты, которая будет снята потом, не имеет, тут главное  удобство для  моделлера. Большое количество сегментов позволяет добиться большей детализации.
Моделирование ландшафта производится после преобразования плоскости в Editable Poly, т.к. этот инструмент обладает функцией Smooth Selection.

 

 

Height Maps from 3DsMax

 

Рассмотрим параметры Smooth Selection.

Height Maps from 3DsMax


Falloff - "
спад". Чем больше величина, тем выше спад и размер в области выделения (три примера, спад везде одинаков);
Pinch - крутизна, чем выше значение, тем круче будет кривая выделения (он отображается под этими тремя параметрами, всегда можно видеть "сечение" выделения);
Bubble - "куполообразность", сложно перевести. Короче говоря - чем выше, тем более округлой становится кривая, при значении больше единицы получаем нечто вроде купола с углублением в центре.

Height Maps from 3DsMax


В общем, тут проще попробовать самому, чем понять со слов... двигаем полигоны, меняем значения выделения, не забываем про Shring и Grow вкладки Selection... Стараемся избавиться от повторения и однородности (если только это не входит в задумку, конечно).
Я сильно утруждаться не стал, можно сделать лучше, если потратить немного времени. Создание пародии на ландшафт заняло где-то 3-4 минуты. Чтобы избавиться от прилизанности и плавности - местами использовал модификатор Noise, для резкости граней добавил разбиение (кнопка "tessellate" в Editable Poly).

 

Кстати, осторожнее с Noise - по Z - спокойно можно добавлять, а по другим осям можно получить перекрытие (помните начало?).

Если Noise был применен, то после Collapse All (можно повторно конвертнуть в Editable Poly) крайние грани ландшафта сравняйте между собой (выделяем грань, жмем Loop, масштабируем по нужной оси). В результате получаем ландшафт с идеально ровными краями.
ВАЖНО! Присвоить модификатор UVWMapping ко всему объекту (выделите все полигоны).Без него ничего не выйдет. Тут все просто, присваиваем Planar Mapping по оси Z. Жмем Fit. Практически уже Profit, осталось два шага.

 

Height Maps from 3DsMax


Часть вторая. Снятие карты высоты.

Жмем «М», открываем редактор материалов, выбираем материал, в канал Dif
fuse кидаем Gradient. Вот и применение этой бесполезной карте нашлось. :-) Смотрим... 3 цвета, нам нужно 2 (с центрального снимаем галочку). Сейчас для удобства ставим красный и зеленый, например... Включаем отображение материала во вьюпорте. Видим, что сейчас градиент идет не по той оси, по которой нам надо, а нам нужно по вертикали (Z). Это печальное обстоятельство исправляем в настройках градиента: сверху видим возможность выбора между осью UV, VW, WU. Смотрим, как ведет себя градиент. VW подходит, значит, тот цвет, который сверху меняем на белый, нижний - на черный:

 

Height Maps from 3DsMax

 


Кислотная расцветка веселее, но алгоритм она не устроит. После замены цветов остается только сделать на основе модели карту. Делается это с помощью Render To Texture. Render>Render To Texture или просто «0» (нуль) на клавиатуре.

Открываем RtT.
Сначала настроим рендер. Начну с того, что для корректного снятия карты нам нужно выбрать стандартный Scanline рендер (выбран по умолчанию). Заходим в настройки рендера, нажав Setup на вкладке Render Settings.

 

alt
 


Далее, нужно включить Суперсэмплинг и выбрать алгоритм Max 2.5 Star.
Должно быть так:

 

Height Maps from 3DsMax

 


Закрываем настройки рендера.
Далее установим Padding на 3, на всякий случай. Padding повторяет крайние пиксели карты на фиксированную длину, то есть на 3 пикселя.

alt
 

настроим выходные файлы. Внизу жмем Add -> Difuse Map. Выбираем

Кстати, 2048*2048 – не максимальный. Просто большее значение вводится от руки и все. Но в данном случае для нас это не играет никакой роли, т.к. в UDK размеры карты высоты невелики, но об этом ниже.

Вводим путь сохранения, выбираем формат выходного файла. Жмем Render.

То, что отображается в окне рендера - не карта. Просто не обращайте внимания на это:

 

Height Maps from 3DsMax

 


Для того, чтобы показать пред-финальный результат я создал плоскость 100*100 сегментов и накинул модификатор Displace.

 

Height Maps from 3DsMax

 

Вопрос о размере карты высоты

Важно понимать, что Displace в Максе это совершенно другой алгоритм, нежели тот, который используется в UnrealEd при построении террейна. Если модификатор смещения в 3Ds Max смещает уже имеющиеся точки объекта, то в редакторе ландшафта UDK дело обстоит другим образом. Согласно документации

UDN:

«Карта высот должна быть создана с разрешением (размером) равным - желаемому количеству клеток (patch) ландшафта + 1. Другими словами, 128x128 ландшафт требует карту высот 129x129; 256x256, ландшафт требует карту высот 257x257. Число клеток ландшафта определено в свойствах actor-а ландшафта Terrain.NumPatchesX и Terrain.NumPatchesY, оно будет выставленно автоматически после импорта ландшафта».

Поэтому при выборе размера карты высоты для редактора террейна необходимо исходить из этой формулы.
Формат карты высот для импорта в UnrealEd должен быть 16-битным "*.bmp".

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

 

Height Maps from 3DsMax

 

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

 

Height Maps from 3DsMax


Заключение

Конечно, метод идеально результата не дает, именно из-за алгоритма построения ландшафта «нереальным» редактором. Если бы мы имели дело с дисплейсментом, то вариант был бы идеален – накинул карту, добавил поверхности разбиений и получил желаемый результат, но такого счастья нет.

Фактически, эта статья  более полезна тем, что она затрагивает тему запекания в текстуру, а это важнейший пласт, без которого становится невозможным создание вменяемого пользовательского контента для UDK, так как normal карты, карты ambient occlusion получают тоже запеканием в текстуру. Естественно процесс получения таких карт сложнее на порядок, но это уже, как говорится, тема другой статьи.

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

Спасибо FACH за помощь с последней частью статьи в построении ландшафта и доведении его до приемлемого вида.

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

#1 написал: FACH
6 Июля 2010 23:40 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Наконец, б***ь!


--------------------
Публикаций: 134 | Комментариев: 778      
#2 написал: Hypnoticat
6 Июля 2010 23:43 | ICQ: 407814872 |


Группа: Активист
Регистрация: 15.01.2010
Не совсем! :-)
Публикаций: 0 | Комментариев: 16      
#3 написал: FACH
7 Июля 2010 00:01 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
ВСЕ! терь...


--------------------
Публикаций: 134 | Комментариев: 778      
#4 написал: AntonioModer
8 Июля 2010 21:49 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Нет, не все biggrin
Чтобы импортировать свой 16-битный "*.bmp" в редактор, нужен конвектор "G16Ed":
http://wiki.beyondunreal.com/Legacy:G16ed?oldid=3458

Он переводит обычный 8-битный серый "*.bmp" в понятный для редактора.
Т.к. обычный "*.bmp" редактор отказывается читать.
Сам с этим полдня возился. В итоге у меня всё работает. smile

НАСЧЁТ СГЛАЖИВАНИЯ:
Я просто взял текстуру "height map" и применил к ней фильтр "сглаживание" ( 10 раз ) в редакторе изображений ( например: GIMP ).
После этого ландшавт стал гладким.
Вот только высота ландшавта немного изменилась.

В CryEngine Editor-е намного легче и быстрее работать с ландшавтом ( проверено на себе ! )
Публикаций: 0 | Комментариев: 0      
#5 написал: FACH
8 Июля 2010 21:57 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Че?
А что там не написано, что 16 бит надо ему? Аж Выделено!
Нахрен полдня 8 бит сувать?
Мы проверяли тутор - сразу все работало, только с размером мудрили...


--------------------
Публикаций: 134 | Комментариев: 778      
#6 написал: ScarsSoul
8 Июля 2010 22:07 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
Цитата: AntonioModer
Нет, не все ...

А это для кого писали?
Прочтите сперва урок: "Использование созданных карт высот для ландшафтов".

А это?

Формат карты высот для импорта в UnrealEd должен быть 16-битным "*.bmp".


--------------------
Публикаций: 0 | Комментариев: 17      
#7 написал: AntonioModer
8 Июля 2010 22:17 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Сори smile
В статье "Использование созданных карт высот для ландшафтов" нету ссылки на прогу "G16Ed".
Напишите.

ЕСЧЁ из статьи "Использование созданных карт высот для ландшафтов":

"... она должна быть конвертирована в TIF-16 и отредактирована в графическом редакторе, который поддерживает 16 битное черно-белое"

Я полдня возился с этим.
Делал в : GIMP, PHOTOSHOP, PAINT, PAINT.NET, xnview
Но всеравно редактор не смог прочитать "мою" текстуру.
Так что единственный выход - это "G16Ed" !

Не по теме:
Сайт не грузился, когда вы писали последние коменты тут.
Я перезапустил сеть ( ip изменился ), вот тогда сайт заработал.
Вы меня забанили что-ли ?
Публикаций: 0 | Комментариев: 0      
#8 написал: ScarsSoul
8 Июля 2010 22:30 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
1. Список конвертеров есть - этого достаточно - есть google - и если давать ссылку, то на сайт 'производителя'.

Цитата: AntonioModer

Я полдня возился с этим.
Делал в : GIMP, PHOTOSHOP, PAINT, PAINT.NET, xnview
Но всеравно редактор не смог прочитать "мою" текстуру.
Так что единственный выход - это "G16Ed" !

Возился с чем? Выход для чего? PHOTOSHOP, PAINT.NET, xnview отлично работают с TIF-16

А для конвертации в g16 кроме G16Ed, есть, как минимум, еще и HMCS - так что это не 'единственный выход' - из чего он не был бы.


--------------------
Публикаций: 0 | Комментариев: 17      
#9 написал: AntonioModer
8 Июля 2010 22:31 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Цитата: FACH
Нахрен полдня 8 бит сувать?
Мы проверяли тутор - сразу все работало, только с размером мудрили...

Может я нуб. Научите в обычном редакторе конвертировать в 16-битную текстуру. Я делал в фотошопе "текстуру 16 бит", но потом смотрел в просмоторщике текстуру, а там написано 8 бит.
Публикаций: 0 | Комментариев: 0      
#10 написал: ScarsSoul
8 Июля 2010 22:39 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
Где, кто писал что окончательная конвертация для UDK делается в GIMP, PHOTOSHOP, PAINT, PAINT.NET, xnview или еще где то?

...если программы создания карт высот не поддерживает G16. Есть несколько программ для конвертации в G16, к примеру, G16Ed и HMCS..


Читай внимательно!



--------------------
Публикаций: 0 | Комментариев: 17      
#11 написал: FACH
8 Июля 2010 22:52 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
AntonioModer Если был бы бан, под этим профиле бы ты не зашел.


--------------------
Публикаций: 134 | Комментариев: 778      
#12 написал: AntonioModer
8 Июля 2010 23:42 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Извените если что не так.
Я ничего против не имею. smile
Публикаций: 0 | Комментариев: 0      
#13 написал: Hypnoticat
9 Июля 2010 00:20 | ICQ: 407814872 |


Группа: Активист
Регистрация: 15.01.2010
Конвертировать в фотошопе - значит, нажать save as, а при сохранении выбрать .bmp - 16 bit. Всё. И незачем плодить конвертеры и т.п.

Я аж испугался, когда число коментов увидел...

А, кстати, размывая карту ты получишь усреднение, значит, высота усредниться, так можно до плоскости досмешиваться.
Публикаций: 0 | Комментариев: 16      
#14 написал: ScarsSoul
9 Июля 2010 00:33 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
Это не совсем то - мы получим RGB изображение где 16 бит на все 3 канала, а нам надо черно-белое - где 16-бит полностью отданы на 1 канал - в 1 случае мы получим ужасный ландшафт =S

-----------------

Вот скрин для сравнения - http://ib1.keep4u.ru/b/2010/07/09/39/39751c049f79469fddece32aa85d5ac0.jpg

Видно в этом туторе и итог не очень - не тот формат импортировали ;)

P.S. Кажись, AntonioModer был прав, что подметил это =)


--------------------
Публикаций: 0 | Комментариев: 17      
#15 написал: Hypnoticat
9 Июля 2010 00:47 | ICQ: 407814872 |


Группа: Активист
Регистрация: 15.01.2010
а кто мешает color mode - grayscale, м? biggrin
Публикаций: 0 | Комментариев: 16      
#16 написал: ScarsSoul
9 Июля 2010 00:51 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
Фотошоп тогда не даст сохранить в .bmp - он не поддерживает g16 (grayscale - 16)- надо в raw-16 сохранять и конвертить или G16Ed или HMCS..

P.S. Это правильно - изображение должно быть grayscale (черно-белое, градация серого) и 16 бит на канал и далее, как я сказал выше, а не так как было сказано выше:
Цитата: RCM_Mafiozy
Конвертировать в фотошопе - значит, нажать save as, а при сохранении выбрать .bmp - 16 bit. Всё. И незачем плодить конвертеры и т.п.


--------------------
Публикаций: 0 | Комментариев: 17      
#17 написал: AntonioModer
9 Июля 2010 01:18 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Спасибо за понимание smile
Публикаций: 0 | Комментариев: 0      
#18 написал: FACH
9 Июля 2010 01:37 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Пришел всех запутал, котов натравил друг на друга...


--------------------
Публикаций: 134 | Комментариев: 778      
#19 написал: Hypnoticat
9 Июля 2010 01:39 | ICQ: 407814872 |


Группа: Активист
Регистрация: 15.01.2010
Придется до завтра отложить. Сейчас духи разгневались на меня, и я не могу переснять карту высот\переконвертировать старую.
Если завтра получиться и результат будет отличаться - напишу.
Публикаций: 0 | Комментариев: 16      
#20 написал: ScarsSoul
9 Июля 2010 01:52 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
скинь ее (карту высот) - я попробую - а то скрин из тутара не катит - горы ужас получаются - но равнина лучше.


--------------------
Публикаций: 0 | Комментариев: 17      
#21 написал: AntonioModer
9 Июля 2010 14:12 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
Цитата: FACH
Пришел всех запутал, котов натравил друг на друга...

lol
Публикаций: 0 | Комментариев: 0      
#22 написал: ScarsSoul
10 Июля 2010 16:31 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
RCM_Mafiozy, ну, как удалось сконвертить в G16? Заметил разницу?


--------------------
Публикаций: 0 | Комментариев: 17      
#23 написал: FACH
10 Июля 2010 16:48 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Разницы не было)


--------------------
Публикаций: 134 | Комментариев: 778      
#24 написал: ScarsSoul
10 Июля 2010 17:04 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 31.03.2010
Не может такого быть, я из скрина в туторе получил более качественную равнину (горы не удобоваримы) - скинь нормальную, экспортированную карту,хочу посмотреть.


--------------------
Публикаций: 0 | Комментариев: 17      
#25 написал: FACH
10 Июля 2010 18:35 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
у меня не осталось ничего


--------------------
Публикаций: 134 | Комментариев: 778      
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...






При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна!
© 2008—2012, UNREAL-LEVEL.RU. Все права защищены.