Дом случайного размера в UDK

Небоскрёб

Статья будет полезна тем, кто работает с процедурной генерацией. Тем, кто создаёт окружение исключительно в редакторе, данная статья особенно не поможет.

С помощью таких зданий можно создать неплохой городской пейзаж.

UPD: Статья актуальна для пользователей UDK, в UE4 чаще используются другие способы для работы с процедурным контентом.

Создаём заготовку под дом

LOD

Создаём для этого коробку в 3Ds Max, удаляем нижнюю грань и назначаем модели три материала (одинаковые материалы противоположным стенам). Размеры могут быть любыми, но ширина и длина должны быть равны друг другу.

После того, как убедились, что текстуры растянуты на полную грань, отправляем модель в UDK.

Готовим текстуру для здания

На этом этапе нам нужно создать или найти подходящую текстуру для стены здания. Текстура должна хорошо тайлиться. Идеально подойдёт участок стены с окном.

Создаём тайлящийся материал

Material Editor

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

Создаём два Material Instance Constant для наших материалов, включаем наши TileU и TileV. Применяем Instance Constant материала стен боковым граням нашей модели, Instance Constant материала крыши – верхней грани.

Пишем код

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

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

Функция SetScale позволяет растянуть здание на любую длину, ширину и высоту.

Подберите параметры под свою модель.

Поделиться

Leave a Reply