Туториал по unreal engine. часть 1: знакомство с движком

Содержание:

Про Blueprints

BlueprintsИспользуйте BlueprintИспользуйте BlueprintsBlueprintsПримечание:

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

Создание Blueprint

Add NewBlueprint Class
Примечание:PawnCharacterActorsActorActorBanana_Blueprint
Дважды нажмитеBanana_BlueprintOpen Full Blueprint Editor

Blueprint Editor

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

New: Optimizations for Shipping on Mobile Platforms

The mobile development process gets even better thanks to all of the mobile optimizations that were developed for Fortnite’s initial release on Android, in addition to all of the iOS improvements from our ongoing updates!

Improved Vulkan Support on Android

With the help of Samsung, Unreal Engine 4.21 includes all of the Vulkan engineering and optimization work that was done to help ship Fortnite on the Samsung Galaxy Note 9 and is 100% feature compatible with OpenGL ES 3.1. Projects that utilize Vulkan can run up to 20% faster than the same project that uses OpenGL ES.

Config Rules System for Android

The Android Config Rules system can now be used to help catch issues very early in a project start up process. This tool allows for quickly checking for device support and providing either a warning or error dialog to the user if there are issues discovered, such as an out of date driver or unsupported GPU. Any variables set may be queried later in C++ with FAndroidMisc::GetConfigRulesVariable(TEXT(«variablename»)).

To use this system, a configrules.txt rules file is optionally placed in your project’s Build/Android directory and UPL is used to add a Gradle task to use the ConfigRulesTool to compress and optionally encrypt it during packaging the APK. More details can be found in the engine documentation.

Program Binary Cache for Android

The Program Binary cache can be used to help improve Shader loading performance and also reduce hitching due to Shader loading on Android devices. The Program Binary cache works by generating optimized binary representations of Shader programs on the device which are used when loading shaders during subsequent runs. Loading Shader programs from optimized binaries can also dramatically decrease Shader loading times. The Program Binary cache must be used in conjunction with the Shader Pipeline cache tool as it will populate the Program Binary cache during the initial run of your application. To enable the Program Binary cache in your project, you will need to add the following command to your AndroidEngine.ini or Device Profile.

r.ProgramBinaryCache.Enable=1

Note: Some devices do not support the required program binary extension, such devices will fallback to the previous behavior.

Emulated Uniform Buffers on Android

You can now use Emulated Uniform Buffers for projects that target the OpenGL ES3.1 feature level, significantly reducing memory usage and improving rendering performance depending on your application complexity. Emulated Uniform Buffers have also been optimized to help reduce the size of the data that needs to be transferred to the GPU when your project is being packaged. To enable Emulated Uniform Buffers when using the OpenGL ES3.1 feature level, add the following line to your project’s under :

CPU Thread Affinity Control on Android

The ConfigRules system can register whether or not to use a supplied little core affinity mask. If enabled, the following threads will use little cores which improves battery life and evens out performance since they won’t switch between big and little cores causing possible hitches: render, pool, taskgraph, stats, taskgraph background, async loading. For details on how to set this up, see the Config Rules documentation.

Improved GPU Particle Simulation Performance on Mobile

Mobile particle effects that utilize the GPU for particle simulation have been significantly improved. You now have the option of reducing the memory usage for GPU particle simulation by limiting the maximum number of simulated particles that can be used. By default the maximum number of GPU particles that can be simultaneously simulated is set to around one million particles which will use around 32 MB of memory. You can adjust the maximum number of particles to use by adding the following code to your project’s under :

  • Setting the value from 512 to 256 will reduce the memory footprint to around 8 MB.
  • The SimulationTextureSize size has to be a power of 2.
  • These improvements are especially apparent on devices that use the ARM Mali GPU.

Dithered LOD Transitions

Dithered LOD transitions are now supported on mobile platforms. When enabled, objects with Materials that have Dithered LOD transitions option enabled will now fade from one Level Of Detail (LOD) to another in an almost seamless manner. By default support for Dithered LOD transitions is disabled for mobile platforms. To enable it, go to Project Settings > Rendering > Mobile and then check the Allow Dithered LOD Transitions option.

Note: Materials that have Dithered LOD transitions enabled will be rendered as Masked Materials. This could have a negative performance impact on mobile platforms. We recommend enabling this effect only on Masked Materials.

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

Для создания проигрывателя вам понадобятся две вещи: основа и дисплей. Вы можете создать их оба при помощи компонентов.

Что такое компонент?

Компоненты являются своего рода строительными блоками для создания различных объектов. Например, для создания движения какого-либо предмета необходимо использовать компоненты движения.

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

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

Меню также содержит два компонента:

  • Цилиндр: обычный белый цилиндр. Это будет основой, на которой как бы «сидит» банан.
  • Статическая сетка: этот компонент будет отображать объект в виде сетки.

Теперь вам необходимо перейти на панель «Components» ⇒ «Add Component» и выбрать «Цилиндр».

Попробуйте при помощи мыши и используя клавишу «R» настроить размер объекта:

Вернитесь к панели «Components» и щелкните левой кнопкой мыши в любом месте рабочей области, отменить выбор компонента «Цилиндр». Это нужно для того, чтобы следующий добавленный компонент не был привязан к компоненту Cylinder.

Важно: Если не провести отмену, то следующий компонент будет прикреплен к компоненту Cylinder. Это значит, что все параметры, применяемые к объекту Cylinder, также будут применены к новому компоненту

Теперь вам нужно нажать Add Component и выбрать из появившегося списка Static Mesh.

Для того чтобы ваш банан корректно отобразился в рабочей области, вам нужно выбрать компонент “Static Mesh” и перейдите на вкладку “Details”. Теперь необходимо перейти к появившемуся справа меню от Static Mesh и в нем выбрать Banana_Model.

Посмотрите, все ли вас устраивает в расположении объекта в пространстве. При необходимости вы можете переместить банан при помощи клавиши клавиатуры «W» и компьютерной мыши.

Подробнее об узлах Blueprint

Узлы имеют Blueprint есть специальные контакты, о которых мы говорили ранее. Вывод слева – это вход, а вывод справа – выход. Все узлы обязательно имеют хотя бы один из них. Если у узла есть входной контакт, у него должно быть специальное соединение благодаря которому он сможет выполнить заданную команду. Если это соединение отсутствует, то все последующие узлы не будут выполняться.

Вот пример:

Узлы A и B будут выполнять свою функцию корректно, потому что их входные контакты имеют соединение

Обратите внимание на то, что узел C и узел D не будут работать, потому что входной вывод узла C не имеет соединения

Вращающаяся платформа

Обратите внимание на панель «Components» – Cylinder и Static Mesh имеют небольшой отступ, а DefaultSceneRoot – нет. Это потому, что они прикреплены к DefaultSceneRoot

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

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

Сейчас вам нужно вернуться к меню «Event Graph» и создать всего на всего один узел. Для этого щелкните правой кнопкой мыши пустое место на графике, чтобы вызвать меню доступных узлов и найдите в списке AddLocalRotation.

Для того чтобы установить нужные значения вращения, перейдите к Delta Rotation и измените значение Z=1,0. Чем выше это значение, тем выше скорость поворота платформы.

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

Для того чтобы обновить Blueprint и сохранить изменения вам нужно нажать «Compile», после чего вы можете закрыть редактор.

Добавление Blueprint в рабочую область

Перед тем как добавить Blueprint, вернитесь в Viewport в главном редакторе и удалите модель банана. Для этого выберите объект «Правка ⇒ Удалить».

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

Batch Builder

Create and run custom sets of build jobs with UnrealVS Batch Builder. It is more versatile than the Build > Batch Build… option in Visual Studio.

To open the Batch Builder window:

  1. Press the Batch Builder button on the UnrealVS toolbar or use a keyboard shortcut that you have assigned to the command UnrealVS.BatchBuilder (see Build Startup Project above for instructions on setting up keyboard shortcuts with UnrealVS commands).

  2. The UnrealVS Batch Builder window appears.

    • Create a Build Job by selecting from the Project, Config, Platform, and then clicking the radio button for the job type.

    • Add/remove jobs with the > and < buttons.

    • In the Build Jobs list, move selected jobs up or down the list with the arrow buttons on the right.

    • Select the Job Set you want to edit in the dropdown under the Build Jobs list.

    • To create a new Job Set, type a new name into the field.

    • The Delete button deletes the selected Job Set from the list.

    • Start or Stop the batch build task on the current Job Set with the Start button.

    • Job Sets are stored for next time in the .suo file for the loaded solution.

  3. When you click Start, the Output tab displays, showing the progress of the batch build.

    The Build Jobs in the running set are shown in the output list. The current executing build job is shown in bold.

    • = Queued job

    • = Job complete, succeeded

    • = Failed job

    • = Cancelled job

    A busy animation, and the Stop button, are shown when a batch build is running.

  4. You can view the output from individual Build Jobs by double-clicking an item in the Output tab, or by right-clicking and selecting Show Output from the context menu.

    Batch Builder output for individual items is shown in the Visual Studio Output window, in a pane named UnrealVS — BatchBuild. This is not to be confused with the Build pane that shows the output of the current/last build job.

Проблема вложенных Prefab’ов

Большая проблема в Unity — вложенные prefab’ы. На случай, если проблема вам не знакома, рассмотрим пример.

Предположим, объект «стол с ноутбуком» сохранили в prefab table1, а затем понадобился второй подобный объект, но уже с зелёным цветом экрана ноутбука. Создаём новый prefab — table2, перетаскиваем в него старый ноутбук, меняем цвет экрана на зелёный, сохраняем. В результате table2, второй prefab, становится совершенно новым объектом, у него нет никаких ссылок на оригинал. Если мы поменяем исходный префаб, это никак не отразится на втором префабе. Простейший случай, но даже он не поддерживается движком.

В Unreal, благодаря наследованию Blueprint’ов, такой проблемы нет: изменение исходного объекта отразится на всех дочерних объектах. Это пригодится не только для игровых объектов, персонажей, какой-то логики или даже статических объектов на сцене, но и для системы интерфейсов.

С другой стороны, можно попытаться победить эту проблему в Unity, используя ассеты в Asset Store. В Unity есть плагины, расширения движка, которые так и называются — . Существует несколько подобных систем, но они немного костыльные, сделаны поверх движка, поддержки нет. Они пытаются сохранить в себе внутреннее состояние объекта. Когда запускается игровая сцена, они пробуют восстановить внутренние структуры, их поля, свойства и т. д., удаляют устаревшие объекты в сцене и заменяют их экземплярами из префабов. В результате мы получаем не только удобство вложенных префабов, но и ненужные тормоза, лишнее копирование данных и создание объектов. А если что-то в движке поменяется, то эти системы могут и вовсе отвалиться по неизвестным причинам.

Система компонентов (Unity)

Когда мы запускаем проект на Unreal, то видим, что персонаж в сцене — лишь один объект. В окне World Outliner нет привычных нодов модели (вложенных объектов, мешей), костей скелета и т. д. Это следствие различий систем компонентов Unity и Unreal.

В Unity сцена состоит из объектов типа Game Object. Это пустой универсальный объект, к которому добавляются компоненты, реализованные скриптами поведения (MonoBehaviour) и встроенными компонентами движка. Иногда их оставляют пустыми, в качестве объекта-маркера, на месте которого будет создан, например, игровой персонаж или эффект.

Все эти объекты мы видим в окне Hierarchy в редакторе движка. Они имеют встроенный компонент , с помощью которого мы можем управлять положением объекта в пространстве 3D-сцены. Например, скрипт движения объекта меняет координаты в функции , и объект двигается. Для добавления подобного скрипта на Game Object достаточно двух кликов. Создав объект — персонажа или предмет, — мы его настраиваем, добавляем скрипты и сохраняем в prefab (файл, хранящий Game Object и его дочерние объекты). Впоследствии мы можем менять сам prefab, и эти изменения отразятся на всех подобных объектах.

Вот как выглядит класс , представляющий собой ракету в проекте UShooter.

Мы задаём параметры снаряда в редакторе, при желании меняем скорость перемещения (свойство ) и урон (). Обработка столкновений происходит в функции . Unity сам её вызывает, так как на объекте есть компонент Rigid Body.

Система анимации (UE4)

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

Тут мы видим уже знакомые нам состояния Idle/Run, Jump, Dead. Но один узел совмещает в себе Idle и Run. Внутри него находится так называемый Blend Space 1D, он используется для плавного перехода анимации в зависимости от значения одной или нескольких переменных. С помощью Blend Space можно привязать скорость персонажа к переходу между анимацией Idle и Run. Кроме того, получится настроить несколько точек перехода. Например, от нуля до метра в секунду персонаж идёт медленно — это будет движение, интерполированное между анимацией Idle и Walk. А после некоторого порогового значения включается бег (Run). И всё это будет в одном узле Animation Blueprint’а, который обращается к Blend State.

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

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

Тут представлено совмещение машины состояний движения с анимацией атаки, которую мы проигрываем через инструмент Montage.

В нижней части рисунка — фрагмент схемы Animation Blueprint, который отвечает за реакцию на выстрел из оружия. Команда Montage Play включает анимацию выстрела, затем Delay ждёт, пока она закончится, и анимация выключается командой Montage Stop. Так сделано, потому что в машине состояний анимации мы не можем задать однократное проигрывание анимационного клипа. Если анимация зациклена и соответствует какому-то состоянию персонажа, мы можем управлять анимацией через машину состояний. А если требуется проиграть один клип анимации по событию, то можем сделать через Montage.

5 — Setting up and Testing Functionality

By now, you’ve done everything you need to do to have a fully functional vehicle by creating the Wheel, Animation, and Vehicle Blueprints in Unreal Engine 4, except to be able to control it in your game! In this step, we’ll show you how to set up the necessary axis mappings and bindings so that you can drive the vehicle around and fully test its capabilities.

Because there are a few ways to go about setting up the vehicle for testing, and assuming that you started with a blank project template, all of the inputs will need to be added to control the vehicle. If you started with an existing template, some (or all) of these axis mappings and bindings may already be available for you in your project.

Setting Up The Controls

  1. Go to the Main Menu and select Edit > Project Settings to open the Project Settings window. Then, under the Engine section in the side panel, select Input.

  2. In the Bindings menu, set up the following controls (if you do not currently have them listed). If you do have them listed, it would be wise to double-check that they are set up like the ones listed here, so that you know your vehicle will work correctly.

    1. First, we’ll setup an Action Mappings by clicking the + sign next to the Action Mappings property.

    2. Rename the Action Mapping from «NewActionMapping_0» to Handbrake. Then, expand this property to use the selection box to change the key value from «None» to Space Bar.

    3. Next, we’ll setup the Axis Mappings by clicking the + sign next to the Axis Mappings property. Repeat this so that you have two Axis Mappings, like this:

    4. Rename the first Axis Mapping from «NewAxisMapping_0» to Forward. Then do the same for the second and rename it from «NewAxisMapping_1» to Right.

    5. Expand the Forward Axis Mapping and then click the + sign once so that you have two Axis Mappings listed under «Forward». Then set the first «None» to use the W key for input. Set the second «None» to use the S key.

    6. Next to the S key input under the Forward Axis Mapping, change the Scale value to be -1.

    7. Expand the Right Axis Mapping and then click the + sign once so that you have two Axis Mappings listed under «Right». Then set the first «None» to use the D key for input. Set the second «None» to use the A key.

    8. Next to the A key input under the Right Axis Mapping, change the Scale value to be -1.

    Once you’re done setting the Action and Axis Mappings, your Bindings should look like this:

  3. Now that you’ve got the controls set up, you’ll need to actually do something with them. So, open up the Vehicle Blueprint that you created and locate the Event Graph, where you’ll be able to call these Axis and Action events that you created in the Project Settings Input section.

  4. In the Event Graph, for the throttle setup create the following:

  5. In the Event Graph, for steering setup the following:

  6. In the Event Graph, for the handbrake setup the following:

End Result

Now with these Input Events added you have a fully functional vehicle that can take input movement! In the next and final step, you’ll set up a new Game Mode that uses your Vehicle pawn as the default pawn when you launch a game.

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

  • Для удобного отказа от вычислений у портала есть состояние «активен-не активен». Это состояние обновляется Portal Manager.
  • Портал имеет переднюю и заднюю стороны, определяемые его позицией и направлением (вектором forward).
  • Чтобы узнать, пересекает ли игрок портал, он хранит предыдущее положение игрока и сравнивает его с текущим. Если в предыдущем такте игрок находился перед порталом, а в текущем — за ним, то мы считаем, что игрок его пересёк. Обратное поведение игнорируется.
  • У портала есть ограничивающий объём, чтобы не выполнять вычислений и проверок, пока игрок не находится в этом объёме. Пример: игнорировать пересечение, если игрок на самом деле не касается портала.
  • Местоположение игрока вычисляется из местоположения камеры, чтобы обеспечить правильное поведение в случае, когда точка обзора пересекает портал, но не тело игрока.
  • Портал получает Render Target, который отображает в каждом такте другую точку обзора на случай, если текстура в следующий раз будет неверной и потребует замены.
  • Портал хранит ссылку на другой актор, имеющий название Target, чтобы знать, где находится другое пространство, с которым нужно связаться.

Курс разработки 3D игр от Game Developer. Pro level

Длительность 3 месяца с учетом двух каникул
Уровень Начальный
Кому подходит Специалистам, которые хотят прокачать свои навыки или сменить направление
Формат Видеолекции + поддержка ментора
Гарантии Готовое резюме
Итоги Сертификат + проекты в портфолио
Цена ● Полная – 44 840 рублей;
● УСПЕЙ НА СКИДКУ! – 39 187 рублей!
Ссылка на курс
  • UE4.Coding;
  • Software architecture;
  • Видеоуроки Physics & Maths.

Преподаватели:

Макс Носатов —  специалист в сфере разработки от мобильных симуляторов до VR проектов и презентаций, UE4 Developer.

Алексей Мартыненко — занимает позицию VFX Technical Director в крупной студии. Создал ряд VR-проектов, работал в игровой, кино и телеиндустрии.

После окончания курса вы сможете:

  • работать с Unreal Motion Graphics UI Designer;
  • разбираться в особенностях кодинга на С++, изучив базовые элементы геймплея;
  • разрабатывать дополнительные плагины;
  • писать собственные контроллеры.

Мои впечатления:

Курс рассчитан на тех, кто уже немного разбирается в разработке игр или программирует в смежных отраслях. Для поступления необходимы следующие знания (базовые):

  • C++ или Similar OOP language (знания STL и Classes);
  • школьной математики и физики;
  • работы с матрицами;
  • UE4, Blueprints.

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

Отладка сети

Плейтесты

Играйте. Тестируйте. Проверяйте. Не в редакторе и тепличных условиях, а в реальных — с собранным клиентом и развёрнутым в боевых условиях сервером. Локальный сервак на девелорской машине — плохая идея, особенно если потом вы планируете использовать виртуалки, где обычно ~4000 flops производительности.

И да, каким бы удобным ни было тестирование сети в редакторе, реальная сборка, особенно если речь идет о консолях или мобильных устройствах, это всё равно отдельная вселенная. Поведение клиента в неидеальных условиях будет иным.

Network Profiler

В комплекте с движком идёт прекрасная утилитка: NetworkProfiler

Буквально недавно вот так мы искали причину дисконнекта на одном конкретном танке:

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

Наиболее полезен он для выявления подозрительно «жирных» данных и сетевых спайков. Использовать обязательно.

Симуляция плохой сети

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

UE4 «из коробки» умеет симулировать различные условия сети, такие как задержку пинга, потерю пакетов или их неправильный порядок. Подробнее об этом написано здесь: Finding Network-based Exploits

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

Делается это так: в папке UE4/Engine/Binaries/ вы создаете файл, например, network_bad.txt, такого содержания

Теперь вы можете прямо в консоли редактора вызвать exec network_bad.txt и применить описанные настройки. Как вы уже поняли, это просто набор консольных команд, «упакованных» в файл.

Мониторинг траффика

Поднимаете дедикейтед. Устраиваете на нём плейтест. Смотрите траффик на отдельно взятом порту. Оцениваете, сколько в среднем траффика на вход и на выход.

Этот пункт весьма очевиден, но почему-то многие им пренебрегают.

Интенсивный курс по разработке игр на Unreal Engine 4 от Level Up

Длительность 3 месяца
Уровень для тех, у кого есть есть опыт в программировании на языке С++
Для кого подходит ● новички;
● программисты;
● разработчики игр.
Формат Видеолекции + практические занятия
Гарантии ● бесплатные тренинги по составлению резюме;
● поддержка коуча;
● лучших студентов пригласят в Pingle studio на стажировку.
Итоги Диплом + проекты в портфолио
Цена 19 300 рублей за курс
Ссылка на курс

Программа курса включает в себя следующие блоки:

Преподаватели:

  • Олег Федоренко — Game Designer в Pingle с опытом работы в IT более 11 лет;
  • Андрей Голуб — Programmer в Pingle, в компании с 2016 года, более 10 выпущенных проектов.

После окончания курса вы:

  • научитесь разрабатывать игры на платформе Unreal Engine 4;
  • изучите особенности работы платформы Unreal Engine 4;
  • будете создавать игровых персонажей, инвентарь и оружие, программировать игровую логику;
  • познакомитесь с особенностями интерфейса игры и создадите стартовое меню;
  • изучите особенности программирования на языке C++ под Unreal Engine 4;
  • узнаете об этапах разработки игр и сможете планировать свою работу;
  • получите навыки командной работы, которые ценятся в игровой индустрии;
  • научитесь составлять CV и подготовитесь к собеседованию на вакансию Junior Game Developer.

Мои впечатления:

Курс рассчитан на тех, у кого есть опыт в программировании на языке C++. Специалист прокачает свои навыки и станет профессиональным разработчиком игр.

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

Выводы о профессии

Разработчик игр на Unreal Engine 4 занимается созданием компьютерных игр под разные платформы, работая в крупных игровых компаниях, небольших студиях или же на фрилансе. Это одна из самых интересных и привлекательных профессий в IT-индустрии. Услуги программистов востребованы на рынке, и на них ежедневно растет спрос. Эта специальность входит в зарплата разработчика игр начинается от 600$ и не имеет ограничений.

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

New: Pipeline State Object (PSO) Caching

We now support Pipeline State Object (PSO) Caching on Metal (iOS/Mac), DX12 and Vulkan platforms. PSO caching helps reduce any hitches your project might encounter when a Material requires a new Shader to be compiled. PSO Caching creates a list of all the needed Shaders that are required by the Materials which is then used to help speed up the compiling process of these Shaders when they are first encountered by your project. PSO Caching can be enabled in the Project Settings > Packaging section.

To find out more information about how to setup and use PSO caching in your UE4 project, make sure to check out the PSO Caching documents.

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

После того, как вы создали новый проект, откроется редактор. Он разделен на несколько рабочих панелей:

  1. Content Browser: эта панель отображает все файлы вашего проекта и используется для создания новых папок и хранения файлов. Для удобства существует специальная поисковая панель и фильтры.
  2. Modes (Режимы): эта панель позволяет выбирать для работы специальные инструменты, такие как «Landscape Tool» и «Foliage Tool». Так же тут находится инструмент «Place Tool», который настроен по умолчанию. Он позволяет располагать множество объектов в рабочей области.
  3. World Outliner: отображает все объекты на текущем уровне. Вы можете создать список, поместив связанные элементы в папки. Также тут можно использовать строку поиска и применять для этого фильтры.
  4. Details (Детали): все свойства выбранных вами объектов отображаются именно здесь. Эта панель используется для редактирования настроек объекта. Внесенные изменения касаются только этого объекта. Например, если у вас есть две сферы, и вы измените размер одной из них, то вторая останется неизменной.
  5. Toolbar (Панель инструментов): содержит множество различных функций, из которых вам сейчас понадобится чаще всего кнопка «Play».
  6. Viewport (Просмотр событий): тут отображается внешний вид вашей игры. Удерживая правую кнопку мыши и двигая ей, вы можете осмотреться в созданном вами игровом пространстве. Для перемещения по уровню также удерживайте правую кнопку мыши и используйте клавиши «WASD» на клавиатуре.

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

прекращенияEnemyBlackboardBT_Muffinнажмите правой клавишей мышиSequenceAdd Decorator\Blackboard
BlackboardBlackboard KeyEnemy
EnemySequenceObserver Aborts

Использование Observer Aborts

  1. Self: этот параметр позволяет поддереву атаки прекратить собственное выполнение, когда Enemy становится недействительным. Это может случиться, когда Enemy умирает до завершения поддерева атаки.
  2. Lower Priority: этот параметр позволяет прекращать выполнение деревьев с более низким приоритетом при задании Enemy. Поскольку поддерево случайного движения расположено после атаки, оно имеет меньший приоритет.

Observer AbortsBoth

  1. Selector запускает поддерево атаки, если задан Enemy
  2. Если он задан, то Pawn будет двигаться и поворачиваться в сторону врага
  3. Затем он выполнит атаку
  4. Наконец, Pawn будет ждать две секунды
  1. Selector запускает поддерево случайного движения, если поддерево атаки завершается неудачно. В нашем случае оно завершается неудачно, если не задан Enemy.
  2. BTService_SetRandomLocation генерирует случайную точку
  3. Pawn движется в сгенерированную точку
  4. Затем он ждёт пять секунд

BT_MuffinPlay

2 — Creating a TireConfig Data Asset and Wheel Blueprint

In this first step to creating our own vehicle, we have two parts that go together to make up the wheels for the vehicle; the TireConfig Data Asset and the Wheel Blueprint class. We’ll start by first creating the TireConfig Data Asset and then move on to create the Wheel Blueprint that houses properties for our wheels, including where the TireConfig data is assigned to.

Follow along with the steps below to get started creating your TireConfig data and then using that with a Wheel Blueprint.

Tire Config Data Asset

The TireConfig Data Asset is used to control Friction Scale. This value not only affects the raw friction of the wheel but also scales the values for how difficult (or easy) it is for the wheel to slide while in a hard turn. There is also the additional option of Tire Friction Scales, which enables you to specify a specific Friction Scale to different Physical Material types.

Create your TireConfig Data Asset

  1. In the Content Browser, click the Add New Button, then hover over Miscellaneous and then select Data Asset from the Context Menu.

  2. In the Pick Data Asset Class window, select TireConfg to create this type of Data Asset.

  3. The new asset will be created in your Content Browser. Make sure to give it a recognizable name so you can easily locate it later.

In the Pick Data Asset Class window, you may notice that there is also a TireType Data Asset class. This is a deprecated function and is only used when upgrading older projects to Unreal Engine, version 4.15 (or a later version). You should not have any reason to use this data asset type if using Unreal Engine, version 4.15 (or later).

Wheel Blueprints

In most cases, you will have at least two wheel types; a wheel that is affected by steering and one that is not. Also, this may be the case for having differently sized wheels for the front or the back, in which case, you have full control over setting the differing radii, mass, width, handbrake effect, suspension, and many other properties to give your vehicle the handling you desire.

Click the image for full size view.

Create your Wheel Blueprint

  1. In the Content Browser, click the Add New button, then select Blueprint Class from the menu.

  2. In the Pick Parent Class window, under All Classes, search for «wheel» and then select VehicleWheel.

  3. The new asset will be created in your Content Browser. Make sure to give it a recognizable name so that you can easily locate it later.

  4. Optional — Repeat these steps again so that you have a front and rear wheel type.

Editing the Wheel Blueprint

Now that you’ve got your Wheel Blueprint(s), open them in the Blueprint Editor, where you’ll see all the available options to edit your wheels!

There are five properties that we need to initially change for each wheel, as the rest of them will change how the vehicle performs (and should be tweaked later) as you start to test out the vehicle in your own game.

  • Shape Radius

  • Shape Width

  • Affected by Handbrake (usually restricted to the rear wheels)

  • Steer Angle (usually only the front wheels)

The properties here are set to match the Buggy from Vehicle Game. If you’re using your own Skeletal Mesh, you may need to use different values for the Shape Radius and Shape Width.

Now, under the Tire section, you can assign the Tire Config Data Asset that you initially created using the Tire Config selection box.

End Result

At this point, you’ve set up your Tire Config Data Asset, which is used to control how much the tires slide on any surface, having set up the Wheel Blueprint that can be used to specify all of the different properties for your wheel. In the next step, you’ll continue creating the assets you need, which make up our vehicle ,by creating the Animation Blueprint that handles all of the necessary animation information for our vehicle (such as spinning tires, steering, suspension, etc).

Создание нескольких туннелей

BP_TunnelSpawnerSpawnInitialTunnelsForLoopForLoopEntry
ForLoopnLast Indexn – 1триLast Index2
Примечание:First IndexLast Index

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

NewestTunnelNewestTunnelпосле IsValidForLoopNewestTunnelInput ObjectIsValid
NewestTunnelIs Not ValidIs Not ValidIsValid

Создание следующих туннелей

SpawnTunnelAtAttachPointIs ValidIsValid

  1. Нод ForLoop выполняется три раза
  2. В первом цикле он спаунит туннель в точке расположения игрока
  3. В последующих циклах он спаунит туннель в точке SpawnPoint самого нового туннеля

SpawnTunnelSpawnInitialTunnelsEvent BeginPlay
CompilePlay

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector