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

Создание уровня

Для практики создания уровня, давайте создадим новый проект. В качестве шаблона,
выберем 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 версии модели. Геометрия High-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.

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