Unreal engine 4 обучение с нуля. Добавление тумана к вашей сцене

Инструмент 21.05.2019
Инструмент
  • Перевод
  • Tutorial

Unreal Engine 4 - это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved , Tekken 7 и Kingdom Hearts III .

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Мы изучим все эти возможности на примере поворотного столика, на котором лежит банан.

Примечание: туториал будет состоять из восьми частей:

  • Часть 1: Знакомство с движком

Установка Unreal Engine 4

Для установки Unreal Engine 4 используется Epic Games Launcher . Перейдите на сайт Unreal Engine и нажмите на кнопку Get Unreal в правом верхнем углу.

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

После скачивания и установки программы запуска откройте её. Появится следующее окно:

Введите адрес электронной почты и пароль, использованный для скачивания программы загрузки и нажмите на Sign In . После выполнения входа откроется такое окно:

Нажмите на Install Engine в левом верхнем углу. Программа запуска перейдёт к экрану, на котором можно будет выбрать устанавливаемые компоненты.

Примечание: Epic Games постоянно обновляет Unreal Engine, поэтому ваша версия движка может слегка отличаться от представленной на скриншотах. Например, после написания первого черновика этого туториала версия уже обновилась до 4.14.3! Туториал подойдёт вам, если у вас есть версия не ниже 4.14.

По умолчанию выбраны Starter Content , Templates and Feature Packs и Engine Source . Лучше так всё и оставить. Они будут полезны по следующим причинам:

  • Starter Content: это коллекция ассетов (ресурсов), которые можно бесплатно использовать в собственных проектах. В том числе это модели и материалы. Их можно использовать как временные ресурсы или в уже готовой игре.
  • Templates and Feature Packs: шаблоны (Templates) задают базовые возможности выбранного жанра игры. Например, при выборе шаблона Side Scroller будет создан проект с персонажем, простыми движениями и камерой на фиксированной плоскости.
  • Engine Source: Unreal - это движок с открытым исходным кодом, то есть вносить в него изменения может кто угодно. Если вам понадобится добавить к редактору дополнительные кнопки, то это можно сделать, изменив исходный код.
Под списком есть список возможных платформ. Если не планируете разрабатывать игру под конкретную платформу, то можете спокойно снять все флажки.

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

Создание проекта

Нажмите на одну из кнопок Launch , чтобы открыть браузер проектов (Project Browser). После его открытия нажмите на вкладку New Project .

Нажмите на вкладку Blueprint . Здесь можно выбрать один из шаблонов. Однако, поскольку мы начинаем с нуля, то выберем шаблон Blank .

Ниже будут перечисленные дополнительные параметры.

Вот, за что отвечает каждая опция:

  • Target Hardware: при выборе Mobile/Tablet будут отключены некоторые эффекты постобработки. Также можно будет использовать мышь для сенсорного ввода. Выберите здесь опцию Desktop/Console .
  • Graphical Target: при выборе Scalable 3D or 2D будут отключены некоторые эффекты постобработки. Выберите здесь Maximum Quality .
  • Starter Content: можно включить эту опцию, чтобы добавить базовый контент (Starter Content). Чтобы нам было проще, выберем No Starter Content .
Кроме того, здесь есть раздел для выбора местоположения папки проекта и имени проекта.

Сменить папку хранения проекта можно, нажав на многоточие в конце поля Folder .

Имя проекта не является названием игры, так что не волнуйтесь, если хотите название позже. Выберите текст в поле Name и введите BananaTurntable .

И наконец нажмите на Create Project .

Навигация по интерфейсу

После создания проекта откроется редактор. Он разделён на несколько панелей:

  1. Content Browser: в этой панели отображаются все файлы проекта. Её можно использовать для создания папок и упорядочивания файлов. Здесь также можно выполнять поиск по файлам с помощью поисковой строки или фильтров.
  2. Modes: в этой панели можно переключаться между инструментами, например Landscape Tool и Foliage Tool . Инструментом по умолчанию является Place Tool . Он позволяет располагать на уровне различные типы объектов, такие как источники освещения и камеры.
  3. World Outliner: отображает все объекты на текущем уровне. Можно упорядочить список, распределив связанные объекты по папкам, а также искать и фильтровать их по типам.
  4. Details: здесь отображаются все свойства выбранного объекта. Эта панель используется для изменения параметров объекта. Внесённые изменения повлияют только на выбранный экземпляр объекта. Например, если в сцене есть две сферы, то при изменении размера одной изменения коснутся только неё.
  5. Toolbar: содержит множество различных функций. Чаще всего мы будем пользоваться Play .
  6. Viewport: это обзор уровня. Осматриваться по сторонам можно, удерживая правую клавишу мыши и перемещая её . Для перемещения по уровню нужно зажать right-click and use the WASD keys.

Импорт ассетов

Какой смысл в поворотном столе, если на нём нечего показывать? Скачайте эту модель банана . Внутри находятся два файла: Banana_Model.fbx и Banana_Texture.jpg . Можете также использовать собственную модель, но зачем, если есть такой потрясающий банан?

Чтобы Unreal мог использовать файлы, их нужно импортировать. Перейдите в Content Browser и нажмите на Import .

С помощью диспетчера файлов найдите папку, в которой находятся Banana_Model.fbx и Banana_Texture.jpg are. Выделите оба файла и нажмите Open .

Unreal предложит несколько вариантов импорта файла.fbx. Снимите флажок Import Materials , потому что мы будем создавать собственный материал. Остальные параметры можно не менять.

Нажмите на Import . Два файла появятся в Content Browser.

При импорте файла на самом деле он не сохраняется в проект, если не указать этого явным образом. Сохранять файлы можно, нажав на файл правой клавишей мыши и выбрав Save . Также можно сохранить все файлы за раз, выбрав File\Save All . Старайтесь сохраняться почаще!

Учтите, что в Unreal модели называются «мешами» (meshes ). Теперь у нас есть меш банана, настало время добавить его на уровень.

Добавление мешей на уровень

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

Чтобы добавить на уровень меш, нажмите правой клавишу мыши и перетащите Banana_Model из Content Browser во Viewport. Отпустите левую клавишу мыши и меш добавится на уровень.

Объекты на уровне можно перемещать , поворачивать и масштабировать . Горячие клавиши для этих действий - W , E и R . После нажатия на них можно использовать манипулятор:

О материалах

Если внимательно посмотреть на банан, то можно увидеть, что он не жёлтый! На самом деле. он выглядит почти полностью серым.

Чтобы придать банану цвет и детали, необходимо создать материал .

Что такое «материал»?

Материал задаёт внешний вид поверхности. На базовом уровне материал определяет четыре аспекта:
  • Base Color: цвет или текстуру поверхности. Используется для добавления детализации и вариаций цвета.
  • Metallic: насколько металлическим выглядит материал. В общем случае, чисто металлический объект имеет максимальное значение Metallic, а ткань - значение 0.
  • Specular: управляет блеском неметаллических поверхностей. Например, керамика будет обладать высоким значением Specular, в отличие от глины.
  • Roughness: поверхность с максимальной roughness (шероховатостью) не будет иметь никакого блеска. Используется для таких поверхностей, как камень и дерево.
Ниже представлен пример трёх различных материалов. Они имеют одинаковый цвет, но разные атрибуты. Каждый материал имеет высокое значение соответствующего атрибута. Значение остальных атрибутов равно нулю.

Создание материала

Для создания материала нужно перейти в Content Browser и нажать на зелёную кнопку Add New . Появится меню со списком ассетов, которые можно создать. Выберите Material .

Назовите материал Banana_Material , а затем дважды нажмите левой клавишей мыши на файле, чтобы открыть его в редакторе материалов.

Редактор материалов (Material Editor)

Редактор материалов состоит из пяти основных панелей:

  1. Graph: в этой панели содержатся все ноды (узлы) и нод Result . Перемещаться по панели можно, удерживая правую клавишу мыши и двигая мышью. Масштабирование выполняется прокруткой колёсика мыши .
  2. Details: здесь отображаются свойства выбранного нода. Если нод не выбран, то здесь отображаются свойства материала.
  3. Viewport: содержит меш предварительного просмотра, представляющий материал. Поворачивать камеру можно, удерживая левую клавишу и двигая прокруткой колёсика мыши .
  4. Palette: список всех нодов, доступных для вашего материала.

Что такое нод (узел)?

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

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

У нодов есть входы и выходы, представленные кругом со стрелкой. Входы расположены слева, а выходы - справа.

Вот пример с использованием нодов Multiply и Constant3Vector , добавляющих текстуре жёлтого цвета:

У материалов есть особый нод, называемый нодом Result , который в нашем случае уже создан как Banana_Material . Здесь заканчиваются со временем все ноды. То, что подключено к этому ноду, определяет внешний вид конечного материала.

Добавление текстур

Для добавления модели цвета и деталей нам необходима текстура . Текстура - это просто двухмерное изображение. Обычно они проецируются на трёхмерные модели, придавая им цвет и детали.

Для текстурирования банана мы используем Banana_Texture.jpg . Применить в материале текстуру позволяет нод TextureSample .

Перейдите к панели Palette и найдите TextureSample . Добавьте нод, удерживая левую клавишу мыши и перетащив его на схему.

Для выбора текстуры необходимо сначала выделить нод TextureSample . Перейдите в панель Details и нажмите на раскрывающийся список , расположенный справа от Texture .

Откроется меню, в котором перечислены все текстуры проекта. Выберите Banana_Texture .

Чтобы увидеть текстуру на меше предварительного просмотра, нужно подключить её к ноду Result . Удерживайте левую клавишу мыши на белом контакте выхода нода TextureSample . Перетащите его на входной контакт Base Color нода Result .

Вернитесь во Viewport, чтобы увидеть текстуру на меше предварительного просмотра. Можно поворачивать его (удерживая левую клавишу мыши и перемещая мышь), чтобы рассмотреть другие детали.

Нажмите на Apply в Toolbar, чтобы обновить материал, и закройте редактор материалов после завершения.

Использование материалов

Чтобы применить материал на банан, нужно его назначить. Вернитесь к Content Browser и дважды нажмите на Banana_Model , чтобы открыть его. Появится следующее окно редактора:

Перейдите в панель Details и найдите раздел Materials . Нажмите на раскрывающееся меню , расположенное справа от Element 0 , и выберите Banana_Material .

Закройте редактор мешей, вернитесь к основному редактору и посмотрите на Viewport. Вы увидите, что теперь на банане есть текстура. Поздравляю, вы теперь знаете всё необходимео, чтобы стать дизайнером уровней!

Примечание: если освещение слишком тёмное, можно изменить его, зайдя в World Outliner и нажав на Light Source . В панели Details найдите параметр Intensity и увеличьте его значение.

Про Blueprints

Даже несмотря на то, что банан выглядит отлично, будет ещё лучше, если он начнёт вращаться на поворотном столе. Проще всего создать его с помощью «чертежей» Blueprints .

В простейшем случае Blueprint представляет собой «вещь». Blueprints позволяют создавать свои поведения для объектов. Объект может быть чем-то физическим (типа поворотного стола) или чем-то абстрактным, например, системой здоровья.

Хотите создать движущийся автомобиль? Используйте Blueprint . А как насчёт летающей свинки? Используйте Blueprints . А если нужен взрывающийся при касании котик? Blueprints .

Как и в материалах, в Blueprints используется система на основе нодов. Это значит, что достаточно создать ноды и соединить их - никакого кода не требуется!

Примечание: если вы предпочитаете писать код, то используйте вместо этого C++.

Blueprints просты в использовании, однако не так быстры, как код на C++. То есть если вам нужно создать что-то «тяжёлое» с точки зрения вычислений, например, сложный алгоритм, то лучше воспользоваться C++.

Но даже если вы предпочитаете C++, то бывают случаи, когда оптимальнее использовать Blueprints. Вот некоторые из преимуществ Blueprints:

  • Обычно разработка на Blueprints быстрее, чем на C++.
  • Простота упорядочивания. Можно разделять ноды на разные области, например, на функции и графы.
  • Если вы работаете с людьми, не знающими программирование, то изменение Blueprint проще благодаря их наглядности и интуитивной понятности.
Хорошим подходом будет создание объектов с помощью Blueprints. А когда требуются дополнительные возможности, преобразование их в C++.

Создание Blueprint

Перейдите в Content Browser и нажмите на Add New . Выберите в списке Blueprint Class .

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

Примечание: поскольку мы можем расположить классы Pawn и Character , они также являются акторами (Actors ).

Поворотный стол будет находиться на месте, поэтому самым подходящим будет класс Actor . Выберите Actor и назовите новый файл Banana_Blueprint .

Дважды нажмите на Banana_Blueprint , чтобы открыть его. Нажмите на Open Full Blueprint Editor , если появится подобное окно:

Blueprint Editor

Во-первых, выберите в редакторе Blueprint editor вкладку Event Graph.

Blueprint editor состоит из четырёх основных панелей:

  1. Components: содержит список текущих компонентов.
  2. My Blueprint: этот раздел обычно используется для управления графами, функциями и переменными.
  3. Details: здесь отображаются свойства текущего выбранного элемента.
  4. Graph: именно здесь происходит магия. Все ноды и логика находятся здесь. Перемещаться по панели можно, зажав правую клавишу мыши и перемещая мышь. Масштабирование выполняется прокруткой колёсика мыши .
  5. Viewport: здесь отображаются все компоненты, имеющие визуальные элементы. Перемещение и обзор выполняются так же, как и во Viewport основного редактора.

Создание поворотного стола

Для создания стола нам нужно две вещи - основание и подставка. Их можно создать с помощью компонентов .

Что такое «компоненты»?

Если Blueprint - это автомобиль, то компоненты - это строительные элементы, из которых он состоит. Примерами компонентов могут быть двери, колёса и двигатель.

Однако компоненты могут быть не только физическими объектами.

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

Добавление компонентов

Чтобы увидеть компоненты, необходимо переключиться в режим Viewport. Нажмите на вкладку Viewport , чтобы переключиться на неё. Вот как это выглядит:

Примечание: компонент DefaultSceneRoot при запуске приложения не отображается, он виден только в редакторе.

Поворотный стол будет использовать два компонента:

  • Cylinder: простой белый цилиндр. Это будет основанием, на котором лежит банан.
  • Static Mesh: - это компонент будет отображать меш банана.
Чтобы добавить основание, перейдите в панель Components. Нажмите на Add Component и выберите Cylinder .

Неплохо было бы сделать основание чуть короче. Активируйте манипулятор масштаба , нажав R , а затем уменьшите масштаб (точный размер неважен, можно будет изменить его позже).

Для отображения банана выберите компонент Static Mesh , а затем нажмите на вкладку Details . Нажмите на раскрывающий списков в правой части Static Mesh и выберите Banana_Model .

Переместите банан, если он находится в неправильном положении. Для этого активируйте манипулятор перемещения , нажав W , а затем переместите его вверх.

Про ноды Blueprint

Теперь нужно сделать так, чтобы поворотный стол вращался. И здесь нам потребуются ноды Blueprint .

В отличие от своих близких родственников - нодов материалов - ноды Blueprint имеют особые контакты, называемые контактами Execution . Контакт слева - это вход, контакт справа - выход. У всех нодов есть хотя бы по одному входу и выходу.

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

Вот пример:

Node A и Node B будут выполняться, потому что у их входных контактов есть подключение. Node C и Node D никогда не выполняются, потому что входной контакт Node C не имеет подключения.

Вращение поворотного стола

Прежде чем начать, давайте посмотрим на панель Components. Можно заметить, что у Cylinder и Static Mesh есть отступ, а у DefaultSceneRoot - нет, потому что они подключены к DefaultSceneRoot .

Если переместить, повернуть или отмасштабировать корневой компонент, то тоже самое произойдёт и с прикреплёнными к нему компонентами. Благодаря этому поведению можно поворачивать Cylinder и Static Mesh одновременно, а не по отдельности.

Создание нода

Чтобы приступить к созданию скриптов, переключитесь назад на вкладку Event Graph .

Реализация вращения объекта настолько проста, что требует всего одного нода. Нажмите правой клавишей на пустое пространство в графе, чтобы открыть меню доступных нодов. Найдите AddLocalRotation . Нам нужно поворачивать основание и банан, поэтому мы просто будем вращать корневой компонент. Выберите AddLocalRotation (DefaultSceneRoot) .

Примечание: если нода нет в списке, снимите флажок Context Sensitive в правом верхней части меню.

В вашем графе теперь появится новый нод AddLocalRotation . Вход Target автоматически подключится к выбранному компоненту.

Чтобы задать значение вращения, перейдите к входу Delta Rotation и измените значение Z на 1.0 . Благодаря этому Blueprint сможет выполнять вращение относительно оси Z. Чем выше значения, тем быстрее будет вращаться стол.

Чтобы поворотный стол вращался постоянно, нужно вызывать AddLocalRotation в каждом кадре. Для выполнения нода в каждом кадре воспользуемся нодом Event Tick . Он уже находится в графе. Если его нет, то создайте его тем же способом, что и ранее.

Перетащите выходной контакт нода Event Tick ко входному контакту нода AddLocalRotation .

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

Наконец, перейдите в Toolbar и нажмите на Compile , чтобы обновить Blueprint, а затем закройте Blueprint editor.

Добавление Blueprints на уровень

Прежде чем добавлять Blueprint, вернитесь ко Viewport в основном редакторе и удалите модель банана. Для этого выберите модель, а затем выберите Edit\Delete или нажмите клавишу Delete .

Добавление Blueprint - это тот же процесс, что и добавление меша. Удерживайте левую клавишу мыши на файле и перетащите его во Viewport.

Перейдите к Toolbar и нажмите Play , чтобы увидеть результаты своих трудов!

Примечание: если вы не удалите исходную модель банана, то можете получить предупреждение о необходимости перестройки освещения. Если удалить модель, то ошибка больше не будет проявляться.

Что делать дальше?

Готовый проект можно скачать отсюда .

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

Теги: Добавить метки

Приветствую, Хабр! Хотел бы познакомить вас с относительно небольшим проектом, который я сделал c нуля примерно за 150 часов (50 заходов ~3 часа каждый) на Unreal Engine 4. Проект я делал в прямом эфире только на стримах раз в неделю (в общей сложности ушел год), попутно отвечая на вопросы пользователей.

Сам проект не предназначался как коммерческий. Целью я ставил на практике показать всю сложность разработки игр, а именно такие проблемы, как:

  • Планирование и прототипирование проекта
  • Продумывание и реализация архитектуры проекта и отдельных его компонентов
  • Реализация интерфейса пользователя
  • Отладка и исправление ошибок
  • Работа с ассетами и графикой

В конце всей серии стримов у нас получился играбельный прототип “Сурвайвл” шутера. Те, у кого стакан наполовину полон, смогут даже назвать это пре-альфой без сюжета.

Если вам интересны подробности проекта, записи стримов, исходники и прочее, читайте далее.

Весь проект был реализован на визуальной системе программирования, под названием “Блупринты”. И конечно многие спецы могут назвать её ребяческой, разработать на ней можно спокойно даже относительно крупный проект. Более того, это можно сделать относительно быстро, как мы уже смогли доказать.

Сразу хочу ответить на вопрос: "Почему Блупринты, а не С++? ". Ну во первых, когда я начинал серию, плюсы я почти не знал. Хотя я и сейчас подобный сингл делал бы на БП. Во вторых, БП почти не уступают плюсам в нашем случае, но при этом дают ряд возможностей: Не позволяют наделать множество ошибок, возможных с плюсами, не приходится отвлекаться между БП и С++, понятнее новичкам. Да и они в нашем случае не намного медленнее, учитывая тот факт, что почти вся логика построена на событиях.

Мы так же успели немного поработать над графикой. К сожалению, ассеты делать времени у нас не было, поэтому мы часть оставили пустышками, часть сделали прямо в редакторе из примитивов, а некоторый контент позаимствовали из бесплатных демок Epic Games. Тем не менее, что-то успели сделать и сами, например систему дня и ночи, постобработку для воды и некоторые материалы объектов сцены.

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

Естественно, полноценной игрой это вряд ли можно назвать, так как нету ни сюжета, ни цели в игре - только чистая механика. Тем не менее, я считаю, что результатом можно гордится и он вполне отражает то, для чего задумывался весь проект.

Список всего, что мы успели реализовать в нашей игре

Персонаж

  • Управление персонажем
  • Система жизненных показателей (Жизни, броня, стамина, голод, жажда)
  • Переключение вида (от первого лица и от третьего)
  • Моделька (сделали во Fuse, анимации взяли с Mixamo)
  • Настроенные анимации передвижения и использования оружия
  • Универсальное взаимодействие с предметами

Объектная система инвентаря

  • Компонент инвентаря (встраивай в любой объект, куда хочешь)
  • Клеточная система с поддержкой различного размера предметов
  • Размер инвентаря по клеткам на страницу и по весу.
  • Класс предметов, которые можно положить в инвентарь. Предметы хранятся в качестве объектов.
    • Вес, размер, информация, состояние предмета
    • Функционал для стака (когда в одной ячейке много одного предмета)
    • Возможность добавить логику использования предмета
    • Выбрасывание из инвентаря
  • Интерфейс для взаимодействия с инвентарем
  • Интерфейс для обмена между другим компонентом и своим.
  • Drag&Drop манипуляция объектами между инвентарями и внутри одного.
  • Контекстное менюу предметов
  • Подсказки при наведении на предметы в инвентаре и в мире.
  • Список генерируемых предметов при создании объекта с компонентом / начале игры.
  • Список начальных предметов при создании объекта с компонентом / начале игры.
  • Система торговли между другим инвентарем
    • Интерфейс торговли
    • Компонент менеджмента денег (необходим для работы торговли)

Система экипировки

  • Экипировка нескольких типов предметов: Шляпы, Топ, Брюки, Ботинки, Оружие
  • Скелетная синхронизация у Топа, брюк и ботинок. (Шляпы и оружие по сокетам)
  • Удобное окошко для экипировки с поддержкой Drag&Drop
  • Поддержка логики-модификаторов при одевании
Оружие
  • Дальнобойное оружие
    • Перезарядка
    • Использование предметов-патронов из инвентаря
    • Поддержка классов снарядов/пуль
    • Автоогонь/одиночный огонь
    • Отдача с разбросом (свой + от факторов, н.п. бег или приседание)
  • Холодное оружие (с несколькими видами проверок на урон на выбор)
  • Состояние оружия ухудшается при использовании
Система крафта
  • Крафт по рецепту (выбрал рецепт, он скрафтил, аля фоллаут)
  • Крафт по предметам (закинул нужные предметы, он скрафтил, аля майнкрафт)
  • Интерфейс пользователя только для второго типа крафта.
Агрессивные мобы
  • Мобы ближнего боя (если увидят, побегут и начнут бить)
  • Мобы смешанного типа (стреляют, но если достаточно близко, побегут что бы ударить)
  • Дальники оббегают препятствия, если не могут выстрелить.
  • Есть встроенный инвентарь для лута после убийства.
  • Зона спауна
  • Список классов
  • Шанс спауна
NPC
  • Городские NPC, патрулирующие свою зону спауна
  • Уникальные NPC
  • Базовый контроллер расписания для уникальных НПЦ
  • Реакция на урон (убегают или используют имеющееся оружие)
  • Встроенный инвентарь для лута после убийства.
  • Объектная диалоговая система
    • Дерево диалогов
    • Каждый ответ - объект
    • Для каждого ответа можно докинуть любую логику или условие доступности.
    • Интерфейс диалога
    • Несколько готовых классов ответа (запускает торговлю, забирает ресурсы, если есть, выходит из диалога)
Строительство
  • Класс конструкций, которые поддерживают размещение
  • Использование предметов-ресурсов из инвентаря при размещении.
  • Снаппинг на некоторых типах конструкций (н.п. Стены, фундамент, окна)
  • Менюшка с конструкциями
  • Подсвечивание конструкций, на которые хватает ресурсов
Дополнительно
  • Небольшая карта с городом, лесом, водоемами (можно плавать).
  • Система смены дня/ночи
  • Автомобили
    • Вид от первого или третьего. Общее с персом
    • Включение/выключение фар.
    • Встроенный компонент инвентаря (нужно взаимодействовать у багажника)
  • Кое как работающие лестницы вертикального типа.
  • Главное меню
  • Меню паузы
  • Меню с настройками графики

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

Содержание по частям

  1. Начинаем и планируем проект. Создаем управление и поведение персонажа.
  2. Начинаем делать систему инвентаря.
  3. Продолжаем делать базу системы инвентаря.
  4. Готовим базу для экипировки и вооружения.
  5. Работа над оружием и использовании патронов.
  6. Делаем автострельбу и прицеливание.
  7. Создаем базовую систему крафта.
  8. Бег, переработка предметов и их износ.
  9. Реализовываем перезарядку для оружия.
  10. Делаем оружие ближнего боя.
  11. Доделываем ближний бой и делаем лестницу по которой можно взбираться.
  12. Делаем интерактивные предметы: Дерево, камень, кусты.
  13. Делаем HUD и начинаем делать интерфейс для инвентаря.
  14. Продолжаем работать над интерфейсом инвентаря. Делаем генерацию ячеек с предметами.
  15. Продолжаем делать генерацию ячеек и поиск места для предмета. Добавляем страницы инвентаря.
  16. Делаем небольшое взаимодействие с предметами в инвентаре и окно подробной информации.
  17. Сделали Drag&Drop перетаскивание предметов по инвентарю и в другой инвентарь.
  18. В этой части речь идет о визуализации крафта.
  19. Создаем окно с выбором количества предметов из стака для переброса в другой инвентарь.
  20. Делаем поддержку разных рецептов крафта, а так же фиксим разные баги у инвентаря.
  21. Создаем систему смены дня и ночи, а так же делаем новую сцену для нашего проекта.
  22. Начинаем создавать AI для агрессивных ботов.
  23. Делаем атаку мобов, а так же реакцию на атаку. Плюс реализуем сбор лута с мертвых мобов.
  24. Делаем зону спауна для нпц. Так же добавляем генерацию случайных предметов в инвентаре.
  25. Обновляемся до 4.13, а так же делаем дальних агрессивных нпц.
  26. Добавляем разные элементы на HUD. Добавляем ручную перезарядку оружия.
  27. Доделываем поддержку скелетной одежды и шапок. Добавляем анимацию для оружия от первого лица.
  28. Делаем интерфейс для работы с нашей системой экипировки.
  29. Начинаем делать торговую систему и компонент менеджмента денег.
  30. Продолжаем делать торговлю, создавая и настраивая компонент торговли.
  31. Делаем отмену торговли, а так же настраиваем анимацию перезарядки.
  32. Создаем транспорт со своим инвентарем, фарами и переключением вида. Создаем фонарик.
  33. Создаем строительство (а точнее систему размещения объектов перед собой).
  34. Делаем интерфейс для строительства, делаем привязку для стен.
  35. Создаем ещё несколько видов конструкций: Палатка, кровать, стул, стол, лампа, дверь. сундук, костер.
  36. Добавляем крышу, окна. Доделываем выравнивание относительно других конструкций.
  37. Делаем небольшое поселение, а так же населяем его NPC, которые так же создаем в этом уроке.
  38. Начинаем делать систему диалогов для наших жителей.
  39. Настраиваем туман и постобработку. Импортируем модель зомби и настраиваем ему анимации.
  40. Доделываем систему диалогов.
  41. Делаем взаимодействие с предметами от третьего лица, а так же модификаторы для брони.
  42. Создаем главное меню, меню паузы и настройки графики. А так же собираем первую сборку игры.
  43. Реализуем расписание для уникальных жителей.А так же что бы городские NPC убегали от атаки.
  44. Добавляем контекстное меню в инвентарь, а так же фиксим некоторые баги нашего инвентаря.
  45. Добавляем отдачу, разброс, анимацию выстрела и возможность ударить для огнестрельного оружия.
  46. Доделаем агрессивных и городских NPC, фиксим разные баги, связанные с ними.
  47. Настраиваем анимации для главного персонажа. Добавляем различную одежду.
  48. Исправляем различные ошибки в нашей игре.
  49. Исправляем различные ошибки крафта, NPC и экипировки в нашей игре.
  50. Немного дорабатываем карту и собираем последний билд.

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

Уилл Райт учит гейм-дизайну и теории

Познакомьтесь с искусством и наукой геймдизайна с Уиллом Райтом, который спроектировал один из самых популярных симуляторов всех времен - SimCity и The Sims.

Искусство экстремальной фотографии с Джимми Чин

Джимми Чин построил свою карьеру, делая фотографии на немыслимых вершинах мира, которые обеспечили ему обложку в National Geographic и множество наград.

Создание боевой механики для RPG с помощью C#

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

Hard Surface моделирование в Cinema 4D

В этом воркшопе вы узнаете основы создания 3D-моделей с помощью полигональных техник моделирования. Из видео-лекций вы изучите основные производственные техники для создания как сложных так и простых форм.

Светотень и текстурирование с Крисом Легаспи

В этой серии уроков Крис Легаспи продемонстрирует варианты обработки ваших рисунков при помощи различных инструментов. Благодаря доступному и простому объяснению, доработка рисунка станет понятной для всех художников с любым уровнем художественного мастерства.

Учимся программировать на С#, разрабатывая 3D игры

Это долгожданное продолжение курса Complete Unity Developer (Learn to Code by making games in Unity) - одного из самых популярных курсов в интернете! Полностью переработано с нуля с совершенно новыми проектами и нашими новейшими методами обучения (5 частей).

Цифровая живопись. Том 3

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

Разработка зомби-шутера от первого лица

Если вы хотите создать свой собственный шутер от первого лица, адвенчуру от третьего лица или даже ролевую игру, эта серия курсов Udemy - для вас! Начиная с пустого проекта, мы построим все системы вместе, шаг за шагом, для игры под названием Dead Earth. (5 частей)

  1. Всем привет, подскажите начинаю изучать Unreal Engine 4 с нуля, другие движки не изучал, в какой лучше последовательности изучать unreal engine 4, т.е взять переводы книг или же смотреть видео?
    нашел очень много переводов и теперь запутался что купить, а что будет пока лишнем.

    Не могу еще определится что лучше система блупринтов или же с++.

    Пока прошел курс Introduction to Unreal Engine 4 RUS (все понял, все ясно)
    хочу научиться создавать MMORPG Fantasy игру, для начала хочу создать RPG fantasy

  2. так же еще есть сомнения какой движок выбрать unreal или же unity
  3. Тут все просто, Unreal Engine 4 отличный движок, но чтобы раскрыть весь его потенциал нужно знание С++ обязательно!! Только так вы сможете создать всю ту красоту, что так вам нравится в Unreal Engine 4. Для примера, представьте, что вы увидели гонки F1 и вам так понравился гоночный болит (за его скорость и тд.), что вы его купили, и начали ездить на нем по городским дорогам со скоростью 30 км/ч, вы скоро возненавидите его и обвините всех, что вас обманули, но на самом деле подход к делу был неправильный. Так и с Unreal Engine 4, на Blueprint вы далеко не уедите, хотя и сможете ездить. По этому постановка вопроса С++ или Blueprint неправильная. Вам нужно и то и то. Просто Blueprint понимают не совсем правильно (в большинстве своем из за нежелания изучать С++), да на них можно создать игру, но они не для этого, они больше вспомогательные возможности движка. Как итог выше на писаного, если не собираетесь изучать С++ или создавать в будущем игры на Unreal Engine 4 класса ААА (чтобы раскрыть весь потенциал движка), то возникает вопрос стоит ли тратить годы своей жизни на изучение движка класса ААА чтобы никогда так и не раскрыть его потенциал и не создать все ту красоту за которую вам так понравился Unreal Engine 4, может стоит начать изучать что то попроще, но тут уже решать вам.

    Чтобы все получилось вам нужно хорошо изучить сам движок (полностью), тут можно использовать и Blueprint (на этом этапе), но со временем нужно перейти на С++ полностью при на писании игр на Unreal Engine 4. Вам следует начать учить С++ и желательно с уклоном в: применительно к созданию игр и для использования с Unreal Engine 4. Вообще курсов о С++ и Unreal Engine 4, очень мало. Рекомендую . Но начните не с него, а с курсов обучающих работать с самим движком.
    Не стоит бояться С++ или что нечего не получится, главное правильный подход и не сдаваться, и все получится. Не получается только у тех кто ничего не делает!
    Удачи!

    Это только мое мнение, и оно может не совпадать сомнением всех остальных.

  4. Вообще то эпики давно уже позиционируют блюпринты как замену плюсам. В рамках своего движка, разумеется. Именно поэтому при создании нового проекта юзера просят выбрать - блюпринты или плюсы. И блюпринты кстати, созданы авторами именно для того, что бы на них полностью создавали игры. Что собственно многие уже и успешно делают.
  5. Вообще то эпики давно уже позиционируют блюпринты как замену плюсам. В рамках своего движка, разумеется. Именно поэтому при создании нового проекта юзера просят выбрать - блюпринты или плюсы. И блюпринты кстати, созданы авторами именно для того, что бы на них полностью создавали игры. Что собственно многие уже и успешно делают.

    Нажмите, чтобы раскрыть...

    Вам же человек сверху всё развёрнуто написал. Он же не отрицает что можно и на блюпринтах делать, он лишь говорит, что для более продвинутого уровня (для оптимизации самого кода в конце концов желательно кодить самим).
    Блюпринты по большей части сделаны на мой взгляд для людей которые не знакомы с кодом, но им очень нравится графическая составляющая движка и они могут с помощью блюпринтов накидать быстренько логику и заниматься тем чем они умеют, дизайном к примеру.
    Оптимизировать код не видя кода вы ну никак не сможете.
    Это всё равно, что зачем люди платят 100500 у.е. за написание сайтов, если есть готовые конструкторы которые за 10 минут сделают сайт который на первый взгляд ничем не будет отличаться от того который будет делать человек с нуля, да ещё и за круглую сумму...но разница заключается в деталях.
    Эпики сделав блюпринты уменьшили планку на вход в их движок, если раньше дизайнер которому надо замоделить интерьер для заказчика ахал и охал от того, что ему надо разбираться в языке программирования, то сейчас он может зайти на ютуб посмотреть как из блюпринтов собирают схемы и уже что то пытаться делать, но для оптимальной работы всё равно надо учить С++, так как блюпринты не заменят полноценный код в котором каждая строчка проверенна временем.

Проект — набор ресурсов, контента и кода, которые работают сообща и выдают финальный результат для конечного пользователя. Все эти ресурсы хранятся на жестком диске в той же самой системе, что и внутри вашего запущенного проекта и в Content Browser’е.

На жестком диске ваш проект представляет папка со всеми ресурсами проекта, так же файлом.uproject, который определяет, какие ресурсы с ним связаны и какие загружать в редактор для последующей работы с ними. Простым языком, это как.exe файл, который загружает ресурсы программы, только специально для редактора UE4.

Вы можете создавать неограниченное количество проектов, и даже работать в нескольких параллельно.

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

Подготовка проекта состоит из нескольких шагов. Для начала это компиляция кода для корректного запуска, после чего проходит запаковка контента, из которого и состояит игра. Этот контент запаковывается, в основном, под конкретную платформу на которой будет запущен проект. После всего этого останется останется подготовить проект для удобного использования и запуска, например установщик Windows.

В File меню вы сможете найти подменю под названием Package Project. Этот раздел отвечает за подготовку и запаковку вашего проекта для тестирования и распространения. Так же в этом разделе имеются дополнительные настройки запаковки.

После выбора нужной платформы, редактор Unreal Engine 4 начнет компиляцию кода, запаковку контента и подготовку проекта для дистрибутации или тестирования. Процесс может занимать очень долгое время, если в вашем проекте содержится большое количество контента(модели, звуки, карты и т.п.).

Запаковка проекта

Что бы запаковать ваш проект под конкретную платформу, выберете File > Package Project > [Имя платформы] в редакторе UE4.

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

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

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

Для менее опытных пользователей, самые важные сообщения, такие как предупреждения или ошибки, можно посмотреть в отдельном окне Message Log.

Запуск проекта

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

Для каждой платформы, исполняемые файлы для запуска могут различаться. Таким образом для Windows будет файл.exe, а для Android — .apk

Распространение

Дополнительные настройки

Дополнительные настройки можно найти в File > Package Project > Packaging Settings в главном меню редактора UE4.

Build Configuration Конфигурация проекта. Для отладки режим Debug. Для тестирования больше подойдет режим Development. Для финального распространения — режим Shipping.
Staging Directory Директория, которая будет содержать запакованный проект. Будет автоматически обновлено при выборе другого пути перед запаковкой.
Full Rebuild Определяет, будет ли скомпилирован весь код, или же только измененная часть(Выкл). Это может ускорить время запаковки. При подготовки проекта к распространению(режим Shipping) убедитесь, что данная опция включена, что бы не пропустить ничего лишнего при запаковке.
Use Pak File Определяет, запаковывать ли весь контент в один файл(.pak) для более удобного распространения, или же хранить контент в индивидуальных файлах(Выкл).

Запаковка контента

При обновлении вашего контента, вам может не понадобится перекомпилировать весь проект для того, что бы запустить его и проверить. Вместо этого, в UE4 существует возможность запаковать только сам контент на нужную платформу. Сделать это можно через File > Cook Content > [Платформа].

При первом запуске у вас отобразится «Project Browser».

Project Browser является основным хранилищем ваших проектов. В нем вы можете создать новый проект, так и открыть уже существующий проект с вашего компьютера. Так же имеется поддержка проектов «Примеров», в которых можно оценить возможности и работу Unreal Engine 4.

Открытие проектов

Здесь будет показан весь список ваших проектов, когда хоть один будет создан. Изначально, тут будет приведен список всех проектов в папке установки.

Двойной клик по иконке открывает проект.

Иконка проекта состоит из.png картинки размером 192х192 пикселей, которая находится в папке с проектом. Есть возможность назначить горячую клавишу на обновление иконки, что бы быстро снять скриншот и поставить его на место иконки. Если же вы вручную не предоставите иконку, то она будет автоматически снята со скриншота, который создается каждый раз, когда вы выходите из редактора или из проекта.

Что бы найти проект, вы можете ввести текст в поле Filter Projects. Будут показаны все проекты, содержащие введенное имя.

Так же вы можете нажать Browse и выбрать проект на вашем компьютере. Вам нужно выбрать.uproject файл.

В Project Tab вы так же можете поставить галочку на Always load last project on startup, что позволит пропусить окно Project Browser’а и запускать сразу выбранный вами проект.

Что бы вручную задать эту настройку, войдите в настройки редактоа, найдите вкладку «General» > «Load & Saving» и установите настройку «Load the Most Recently Loaded Project at Startup».

Создание новых проектов

Вкладка New Project позволяет вам создать новый проект из существующих заготовок. Blank создает полностью пустой проект.

Всего имеется два типа заготовок: C++ и Blueprint. C++ означают, что логику вашего проекта вы будете писать на C++. Другой типо означает, что для логики вам будет предоставлен визуальный скриптовый язык — Blueprint. В процессе разработки можно совмещать два типа.

  • Blank — чистый проект без какой-либо логики
  • FirstPerson — заготовка под шутеры от первого лица
  • Flying — Заготовка под простые «леталки»
  • Puzzle — Заготовка для логической игры
  • Rolling — Заготовка с катающимся мячиком
  • (2D)Side Scroller — Платформер. 2D создает заготовку для 2х-мерного платформера.
  • Third Person — Заготовка с видом от третьего лица
  • Top Down — Вид сверху и управлением мышью
  • Twin Stick — Заготовка с аркадой видом сверху
  • Vehicle — Заготовка для создания авто-симуляторов. Заготовка Vehicle Advanced создает автомобиль с улучшенной системой подвески

Что бы создать новый проект:

  1. Выберете заготовку из списка
  2. Установите настройки проекта.
  3. Введите название вашего проекта и путь к нему.
  4. Нажмите Create

После создания, откроется редактор и запустится стандартный уровень.

Так же проект можно создать через выпадающеее меню во вкладке File > New Project…

Настройки проекта

При создании проекта, у вас имеется возможность установить его начальные настройки графики и контента. После создания проекта, эти настройки можно изменить в настройках проекта.

Проект будет оптимизирован для ПК или консолей
Оптимизирует проект для запуска на Мобильных платформах
Данная опция позволяет создать проект с высокими настройками графики. Используйте, если создаете проект для ПК или консолей
Данная опция позволяет создать проект с низкими настройками графики. Используйте, если создаете проект для мобильных платформ
Включает в ваш проект стартовый контент. Не рекомендуется включать, если вы создаете мобильную игру, так как данный контент очень сильно влияет на размер.
Не включает в проект стартовый контент.


Рекомендуем почитать

Наверх