Вы находитесь на странице: 1из 47

Практическое задание 2

Создание уровня
Для практики создания уровня, давайте создадим новый проект. В качестве шаблона,
выберем ​First Person​.

Создадим новый пустой уровень. Выберем тип ​Default


В окне ​Modes ​во вкладке ​Geometry​, находятся все примитивы, которые мы можем
создавать в самом движке.

Давайте сделаем небольшое здание с помощью этих примитивов. Перетащим геометрию


Box на сцену.
Появится куб на сцене. В ​World Outliner​вы можете увидеть, что ему задался тип ​Brush​
.
Это специальный тип, который можно создавать в самом движке.

Но просто куб нам не интересен. Давайте сделаем из него новый пол. Удалим для начала
старый, выделив объект ​Floor ​в ​World Outliner​и нажав кнопку ​Delete​.
Для редактирования объектов с типом ​Brush​, перейдем на вкладку ​Geometry Editing​
.

Выберите наш куб. Выставьте ему позицию по всем 3-ем осям в 0. Для более удобного
редактирования перейдем на вид сверху.
Зажимаем клавишу Ctrl и выбираем точки, которые будем двигать.

Передвигаем немного вправо их.

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

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


раньше. Вытягиваем новую ​Box​на уровень.
Переходим в вид слева и выставляем ​Box​так как на скриншоте.

Переходим в вид ​Front ​и корректируем размер стены.

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

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

Чтобы наша комната не была похожа на мини-тюрьму, давайте добавим несколько


проходов. Для этого создадим новый куб. И выставим ему ​Brush Type​в ​Subtractive​.
Куб пропадет со сцены. Теперь выставим его в позицию прохода. Вы можете заметить,
что начала обрезатся геометрия в месте, где установлен куб.

Давайте добавим дверной проем из стандартных ассетов. Мне пришлось немного


увеличить скейл этой модели, чтобы игрок мог пройти через нее.

Подкорректируйте размер Subtractive Brush, чтобы стена прилягала к дверному проему.


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

Теперь добавим передний вход. Для этого воспользуемся сочетанием двух кистей.
Для начала воспользуетесь уже привычной ​Box​кистью и выставьте ее примерно как на
рисунке ниже.
Входную дверь сделаем в виде арки. Вытянем на сцену еще кисть ​Cylinder​.

Повернем ее на ​90 ​градусов. Выставим параметр ​Outer Radius​, таким образом, чтобы
рамка была наш ​Cylinder ​идеально состыковывался с кубом. Если вы не меняли размер
куба, то поставьте ​Outer Radius = 100​. А также увеличим параметр Sides.
Вы должны получить что-то похожее на:

Добавим еще площадку спереди. И переместите на нее сразу ​PlayerStart​. Сделайте


площадку чуть ниже, чем наш основной пол.
Теперь добавим лестницу. Во вкладке ​Modes ​из группы ​Geometry ​перетяните на уровень
кисть ​Linear Stair​.

В окне ​Details ​с помощью параметров ​Step Height​и ​Num Steps​измените вид лестницы,
чтобы она подходила под ваш уровень.
Добавим несколько колонн на сцену и на этом закончим построения уровня. Перейдите в
любой угол сцены и добавьте кисть ​Cylinder​.

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


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

Во вкладке ​Geometry Editing​нажмите на галочку ​Extrude​.


Появится предупреждение, что этот инструмент работает в локальной системе координат.
Нажмите ​Close​, чтобы продолжить.
Выберите ось ​X​и немного передвиньте ее внутрь колонны.

Можете скопировать колонну и в другие углы. Попробуйте побегать по собственному


уровню.

Materials
Теперь давайте назначим материалы на нашу сцену. Все готовые материалы лежат по
пути ​Content -> StarterContent -> Materials​. Выберите, к примеру, материал
M_Concrete_Tiles ​и перекиньте его на входную площадку.
Для стен давайте создадим свой, собственный материал. В папке ​Contents ​создайте
новую папку. Для этого нажмите правую кнопку мышки в пустом месте окна ​Content
Browser​и в выпадающем списке выберите ​New Folder​.

Введите имя папки, к примеру, ​MyMaterials​. Переходим в папку. Снова нажимаем правую
кнопку мыши и в выпадающем списке выбираем ​Material​.
Введите имя материала ​WallMaterial​. Теперь кликните 2 раза по ассету. Откроется окно
редактора материалов.

Сейчас мы с вами создадим простенький материал. Для начала найдем текстуру для
базового цвета. В окне ​Content Browser​перейдите по пути ​Content -> StarterContent ->
Textures​. Там вы увидите текстуру с именем ​T_Brick_Clay_New_D​. Просто перетяните ее
в окно редактора материалов.

Теперь добавим текстуру ​Normal Map​, но уже другим способом.


В окне ​Content Browser​выберите текстуру ​T_Brick_Clay_New_N​.
Затем перейдите в окно редактора материалов, зажмите английскую клавишу ​Т​и
кликните левой кнопкой мыши в любом пустом месте. Появится выбранная нами текстура.

Добавьте еще одну текстуру ​T_Brick_Clay_New_M​, любым для вас удобным способом.

Управление в ​MaterialEditor ​очень простое правой кнопкой мыши мы можем


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

С помощью кнопок, расположенных внизу превьювера, вы можете менять тип геометрии,


на которой отображается ваш материал. Выберите куб.

Вы также можете изменять положение камеры в этом окне. Управление такое же как и в
редакторе. Теперь давайте применим наши текстуры в материале. Зажмите левую кнопку
мыши над белым кругом текстуры основного цвета и ведите узел к входу ​Base Color​.
Соедините остальные текстуры как на рисунке ниже.

Теперь нажмите кнопки ​Apply и


​ ​Save​.

Закройте окно ​MaterialEditor ​и примените ваш материал к любой из стен. Посмотрите на


результат)
Можете применить уже готовые материалы к остальным частям здания. Для более
быстрой работы можете выбирать несколько полигонов ​BSP Geometry​с помощью
зажатой клавиши ​Ctrl​, а затем применить нужный материал, назначив его в стол ​Surface
Materials​.

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

Примените любым удобным для вас способом материалы для оставшихся зон.

И давайте сделаем небольшой ​Blueprint ​для практики. Создайте новый ​Blueprint ​с типом
Actor​. Нажмите клавишу ​Add Component​и добавьте компонент ​RadialForce​.
Добавьте ноду ​Delay ​и свяжите ее с нодой ​Event Tick

Вытяните компонент ​RadialForce ​в окно редактора

Из ноды ​Radial Force​вытяните линию и выберите функцию ​Fire Impulse


Соедините ноду ​Delay ​с нодой ​Fire Impulse​.

Выделите компонент ​RadialForce

И поменяйте ему настройки как на скриншоте


Нажмите ​Save ​и ​Compile​.
Добавьте объект в сцену и добавьте рядом с ним несколько объектов с симуляцией
физики. Посмотрите на результат)
Static Meshes

Давайте импортируем какую нибудь модель. Скачайте модель по ​этой ссылке​. После
загрузки, разархивируйте все в какую-нибудь папку. Все готово для импорта модели.
Начнем!
Создадим папку, в которой, будут хранится ассеты нашей модели. Назовем эту папку
Suitcase​. Из проводника ​Windows ​перетяните файл ​suitcase.obj​в окно ​Content Browser​
.
Появится окно настроек импорта.
Разверните вкладку в меню Mesh и выберите “Combine Meshes”. Это нужно для того, если
в модели есть несколько составляющих её деталей, то Unreal Engine соберёт их в один
меш. Если же вам нужны все детали отдельно друг от друга, то не выбирайте эту
функцию. После нажимаем ​Import All​.
Открываем файл ​suitcase​.

В окне ​Static Mesh Editor​на верхней панели, вы можете увидеть переключатели,


которые покажут вам ту или иную информацию о мэше.

Нажмите кнопку ​Wireframe​, чтобы увидеть сетку модели.

Справа от нее сразу же находится кнопка ​Vert Colors​, она покажет вам цвета вершин,
если они имеются.
Нажмите кнопку Collision, чтобы увидеть коллайдер модели.

Вы также можете добавить коллайдер вручную, в самом редакторе. Для этого нажмите
Collision -> Add Box Simplified Collision​. Нажмите ​Ctrl+Z​и попробуйте добавить другой
тип коллизий.

Кликнув на объект коллизий вы можете поменять ему месторасположение, угол поворота,


а также размер или вовсе удалить его.
С помощью этих кнопок, вы можете увидеть информацию о вершинах модели.

Чтобы увидеть ​UV-развертку ​нашей модели, нажмите кнопку ​UV​.

И напоследок, давайте создадим ​Socket​. Это специальные точки к которым можно


аттачить другие объекты. Нажмите кнопку ​Create Socket​. Введите любое имя. Появится
новый объект на модели. Вы также можете изменить его позицию и другие
трансформации.
Static Mesh FBX Pipeline
Теперь попробуем сделать экспорт и импорт своей модели. Будем использовать ​3ds Max
и ​Maya​для этого. Проходите инструкцию по тому софту, которым пользуетесь вы. В
конце темы, я прикреплю ссылку на готовый ​FBX​.
Пройдемся по самым важным моментам для экспорта ​Static Mesh​в ​Unreal Editor​. Чтобы
много не моделировать, создадим обычный примитив в ​3ds Max​или стандартный чайник.

В ​Maya ​создадим примитив ​Polygon Pipe​.

Модель есть. Теперь по пунктам рассмотрим, что нам нужно перед экспортом.
Pivot
Это точка вокруг которой будут происходить все трансформации объекта. Так это все
дело выглядит в ​3ds Max​.

Сейчас наш ​Pivot ​находится у основания чайника. При желании можно поменять его
позицию и направление. Но нас текущие положение устраивает, оставляем все как есть,
меняем только позицию объекта. Сбросим ее по трем осям в ​0​.

Вот так выглядит ​pivot ​в ​Maya​. Позиция создаваемого объекта по умолчанию и так в 0.
Так что здесь ничего не меняем
Triangulation
Все мэши перед экспортом должны быть триангулированны, чтобы видеокарта могла с
ними работать. Вы можете триангулировать модель автоматически при экспорте или же
можете сделать это вручную в 3D редакторе.

UV
В основном, требуется один ​UV ​канал для экспорта. Он требуется для наложения
текстуры на модель. Но формат ​FBX ​поддерживает экспорт нескольких ​UV ​каналов.
Слева скриншот ​UV-развертки ​с​3ds Max​, справа с ​Maya​.

Normal Maps
Вы можете создавать карты нормалей прямо в 3D редакторе. Для этого Вам нужно будет
создать ​Low-Poly​и ​High-Poly​версии модели. Геометрия H
​ igh-Poly​модели будет
использована для создания самой карты нормали.
3ds Max:

Maya:
Materials
Материалы, созданные в 3D редакторе, автоматически будут импортированы в ​Unreal
Editor​. Так же ​Unreal Editor​автоматически заимпортит текстуры, использованные в этом
материале. Вы также можете использовать несколько материалов на одной модели.

3ds Max:

Maya:
Collisions
Простая модель коллизий важна для оптимизации игровой физики. ​Static Mesh Editor
содержит основные инструменты для создания коллизий, но бывают случаи, когда
необходимо создать кастомную форму коллизий. Таким образом, вы можете создать их в
3D редакторе и импортировать в движок. Unreal Editor определяет мэши коллизий по
следующим именам:
Префикс и имя мэша Описание

UBX_[Имя мэша]_## Box ​в ​3ds max​или ​Polygonal Cube​в ​Maya​


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

USP_[Имя мэша]_## Объект типа ​Sphere​


. Вы также не можете изменять
положение вершин. И не обязательно выставлять большое
количество сегментов для сферы, потому что ​Unreal Editor ​
в
конечном итоге конвертирует все в настоящую сферу для
определения коллизий.

UCX_[Имя мэша]_## Объекты типа ​Convex м


​ огут образовывать любую форму.

3ds Max:

Maya:
Sockets
Объекты такого типа часто используются для того, чтобы приатачить один объект к
другому. Сокеты можно создавать как в ​Static Mesh Editor​, так и в 3D редакторе. Если вы
создаете сокет в 3D редакторе то вы должны дать ему определенное имя:

Префикс и имя мэша Описание

SOCKET_[Имя мэша]_## Dummy ​или ​Helper ​объект в пакете 3d


моделирования.
3ds Max:

Maya:
Vertex colors
Вы также можете экспортировать ​Vertex colors​в ​Unreal Editor​.

Static Mesh LODs


3ds Max:
Static mesh​может использовать ​LOD’ы​, чтобы уменьшить количество полигонов в кадре.
Создадим несколько еще пару версий нашей модели, только с меньшим количеством
полигонов. Для уменьшения количества полигонов можно использовать модификатор
ProOptimizer ​(доступен в​3ds Max​).
Выделите все мэши, включая основной и сгруппируйте их командой ​Group -> Group...

Введите имя группы и нажмите ​OK​


.

Перейдите во вкладку ​Utilities ​и нажмите клавишу ​More…

Из списка доступных утилит выберите ​Level of Details​. Нажмите клавишу ​Create New Set​
.
Из вашей группы будет создана новая ​LOD ​группа. Теперь можете выделить группу
заново, а также все мэши коллизий и экспортировать все.
Maya:
Выделяем по очереди объекты для ​LOD ​группы, начиная от первой группы, заканчивая
последней. Нажимаем ​LOD -> Create LOD Group​.
Export Mesh
3ds Max:
Все готово к экспорту модели. Выделяем все необходимое.

Нажимаем ​File ->Export -> Export Selected​.

Выбираем путь, куда сохранить нашу модель. Вводим имя и нажимаем ​Save​.
Появится окно настроек экспорта модели. Выставляем все, что нужно и нажимаем ​OK​
.
Для экспорта ​LOD’ов ​необходимо поставить галочку возле параметра ​Animation​.
Maya:
Выделяем нашу модель с ​LOD-ами​
, мэш для коллизий и нажимаем ​File -> Export
Selection...

Выбираем путь, куда сохранить файл, пишем имя файла и жмем ​Export Selection​.

Ссылка на ​FBX ​: ​Teapot​.


Import Mesh
Импортируем наш мэш в ​Unreal Editor​. Создадим какую-нибудь отдельную папку для
него, к примеру ​Teapot​. Перетягиваем в окно Content Browser наш файл.

В настройках импорта модели поставьте галочку ​Import Mesh LODs​, чтобы движок
автоматически подхватил ​LOD’ы ​из файла. Нажимаем Import.

Движок также автоматически импортирует наш материал, созданный в ​3Ds Max​.


Открываем наш чайник.
Видим, что все наши настройки импортировались в ​Unreal Editor

Удаляя камеру вы можете заметить, что меняется уровень ​LOD​.

Вам также может понравиться