Unreal engine 4 векторы

Vector

Для лучшего понимания рекомендую ознакомиться с базовым курсом линейной алгебры.

Содержание
  1. Break Vector
  2. Clamp Vector Size
  3. Create Vector from Yaw Pitch
  4. Cross Product
  5. Cross Product (2D)
  6. Dot Product
  7. Dot Product (2D)
  8. Equal (vector)
  9. Find Closest Point on Line
  10. Find Closest Point on Segment
  11. Find Nearest Points on Line Segments
  12. Get Direction Vector
  13. Get Forward Vector
  14. Get Max Element
  15. Get Min Element
  16. Get Point Distance to Line
  17. Get Point Distance to Segment
  18. Get Right Vector
  19. Get Up Vector
  20. Get Vector Array Average
  21. Lerp (vector)
  22. Make Vector
  23. Mirror Vector by Normal
  24. Negate Vector
  25. Normalize
  26. Not Equal (vector)
  27. Project Point on to Plane
  28. Project Vector on to Plane
  29. Project Vector on to Vector
  30. RotateVector
  31. RotateVectorAroundAxis
  32. Select Vector
  33. UnrotateVector
  34. vector — float
  35. vector — int
  36. vector — vector
  37. vector * float
  38. vector * int
  39. vector * vector
  40. vector / float
  41. vector / int
  42. vector / vector
  43. vector + float
  44. vector + int
  45. Туториал по Unreal Engine. Часть 1: знакомство с движком
  46. Установка Unreal Engine 4
  47. Создание проекта
  48. Навигация по интерфейсу
  49. Импорт ассетов
  50. Добавление мешей на уровень
  51. О материалах
  52. Что такое «материал»?
  53. Создание материала
  54. Редактор материалов (Material Editor)
  55. Что такое нод (узел)?
  56. Добавление текстур
  57. Использование материалов
  58. Про Blueprints
  59. Создание Blueprint
  60. Blueprint Editor
  61. Создание поворотного стола
  62. Что такое «компоненты»?
  63. Добавление компонентов
  64. Про ноды Blueprint
  65. Вращение поворотного стола
  66. Создание нода
  67. Добавление Blueprints на уровень
  68. Что делать дальше?
  69. Пространственные преобразования в Unreal Engine

Видео:Урок 6 | Unreal Engine 4 Blueprint - Условные операторы и Контроль последовательностиСкачать

Урок 6 | Unreal Engine 4 Blueprint  - Условные операторы и Контроль последовательности

Break Vector

Раскладывает вектор на составляющие компоненты Х, Y, Z

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Видео:Урок 17 | Unreal Engine 4 Blueprint - Line Trace Линейная трассировка (подробно)Скачать

Урок 17 | Unreal Engine 4 Blueprint - Line Trace   Линейная трассировка (подробно)

Clamp Vector Size

Ограничивает длину вектора минимальным и максимальным значениями

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Видео:13. Основы материалов в Unreal Engine 4, объяснение UV, немного нод, параметров материала и вектораСкачать

13. Основы материалов в Unreal Engine 4, объяснение UV, немного нод, параметров материала и вектора

Create Vector from Yaw Pitch

Создает направленный вектор заданной длины по значению вращения в градусах

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Yaw – float – угол рыскания (относительно локальной OZ)

Pitch – float – угол тангажа (относительно локальной OY)

Length– float – длина вектора

Выход:

Return Value– vector

Видео:05 Unreal Engine 5 | Blueprint для новичков | Переменная vectorСкачать

05 Unreal Engine 5 | Blueprint для новичков | Переменная vector

Cross Product

Возвращает вектор, перпендикулярный обоим исходным трёхмерным векторам (векторное произведение)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Видео:Урок 9 | Unreal Engine 4 Blueprint - Трансформация объектовСкачать

Урок 9 | Unreal Engine 4 Blueprint - Трансформация объектов

Cross Product (2D)

Возвращает результат векторного произведения двух двумерных векторов (как частный случай трёхмерного с нулевыми Z, т.е. если A=(x;y) и B=(X;Y), то АхВ=(0, 0, x*Y-y*X))

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

А – vector 2D Structure

B – vector 2D Structure

Выход:

Return Value– float

Видео:Урок 18 | Unreal Engine 4 Blueprint - Spline Сплайн (подробно)Скачать

Урок 18 | Unreal Engine 4 Blueprint - Spline   Сплайн (подробно)

Dot Product

Возвращает скалярное произведение двух трёхмерных векторов

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– float

Видео:Урок 5 | Unreal Engine 4 Blueprint - Математические операции и выраженияСкачать

Урок 5 | Unreal Engine 4 Blueprint - Математические операции и выражения

Dot Product (2D)

Возвращает скалярное произведение двух двумерных векторов

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

А – vector 2D Structure

B – vector 2D Structure

Выход:

Return Value– float

Видео:5. Blueprint Unreal Engine 4 - ПеременныеСкачать

5. Blueprint Unreal Engine 4 - Переменные

Equal (vector)

Возвращает true, если вектор А равен вектору В (А==В) с задаваемой точностью

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Error Tolerance – float – задаваемая точность

Выход:

Return Value– boolean

Видео:Урок 2 | Unreal Engine 4 Blueprint - МассивыСкачать

Урок 2 | Unreal Engine 4 Blueprint - Массивы

Find Closest Point on Line

Для заданной точки ищет ближайшую точку на прямой (опускает перпендикуляр и возвращает положение точки на прямой)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Point – vector- точка из которой опускается перпендикуляр на прямую

Line Origin – vector- точка, по которой задается прямая

Line Direction- vector – направление прямой (не обязательно нормировать этот вектор)

Выход:

Return Value– vector – ближайшая точка на прямой относительно заданной точки

Видео:22. Blueprints Unreal Engine 4 - СтруктурыСкачать

22. Blueprints Unreal Engine 4 - Структуры

Find Closest Point on Segment

Для заданной точки ищет ближайшую точку на отрезке (опускает тот же перпендикуляр, только к отрезку и возвращает положение точки на нем)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Point – vector- точка из которой опускается перпендикуляр на отрезок

Segment Start – vector- начало отрезка

Segment End- vector – конец отрезка

Выход:

Return Value– vector – ближайшая точка на отрезке для заданной точки

Видео:Физика Unreal Engine 4 - Настройка физики у объектаСкачать

Физика Unreal Engine 4 - Настройка физики у объекта

Find Nearest Points on Line Segments

Ищет две ближайшие точки на двух отрезках

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Segment 1 Start – vector — начало отрезка 1

Segment 1 End — vector – конец отрезка 1

Segment 2 Start – vector — начало отрезка 2

Segment 2 End — vector – конец отрезка 2

Выход:

Segment 1 Start – vector — ближайшая точка на отрезке 1 к отрезку 2

Segment 1 End — vector – ближайшая точка на отрезке 2 к отрезку 1

Видео:Blueprint Unreal Engine 4 - Настройка персонажаСкачать

Blueprint Unreal Engine 4 - Настройка персонажа

Get Direction Vector

Ищет единичный вектор направления из точки From в точку To

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

From – vector – начальная точка

To — vector – конечная точка

Выход:

Return Value – vector

Видео:СИЛА (Магия) в Unreal Engine. Воздействие на других персонажей игроком. Подбрасывание и отталкиваниеСкачать

СИЛА (Магия) в Unreal Engine. Воздействие на других персонажей игроком. Подбрасывание и отталкивание

Get Forward Vector

В глобальных координатах возвращает вектор «вперёд», построенный по ротатору.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

In Rot – rotator

Выход:

Return Value– vector

Видео:[Урок 4.5.2] Редактирование BSP Инструменты Модификаторы - Modes Geometry Editing | @UnrealEngineСкачать

[Урок 4.5.2] Редактирование BSP Инструменты Модификаторы - Modes Geometry Editing | @UnrealEngine

Get Max Element

Ищет максимальный элемент вектора (X, Y или Z)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– float

Видео:Урок 19 | Unreal Engine 4 Blueprint Interface - Обмен данными между блупринтамиСкачать

Урок 19 | Unreal Engine 4 Blueprint Interface - Обмен данными между блупринтами

Get Min Element

Ищет минимальный элемент вектора (X, Y или Z)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– float

Видео:Переменная Vector |Уроки Blueprint | Уроки Unreal Engine | Blueprint | Создание игрСкачать

Переменная Vector |Уроки Blueprint | Уроки Unreal Engine | Blueprint | Создание игр

Get Point Distance to Line

Ищет расстояние от точки до ближайшей точки на прямой (длина перпендикуляра)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Point– vector- точка от которой опускается перпендикуляр

Line Origin – vector – точка, по которой задается прямая

Line Direction- vector – направление прямой (не обязательно нормировать этот вектор)

Выход:

Return Value– float –длина перпендикуляра, опущенного из заданной точки к прямой

Get Point Distance to Segment

Ищет расстояние от точки до ближайшей точки на отрезке (длина перпендикуляра)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Point – vector- точка из которой опускается перпендикуляр на отрезок

Segment Start – vector- начало отрезка

Segment End- vector – конец отрезка

Выход:

Return Value– float – длина перпендикуляра, опущенного из заданной точки к отрезку

Get Right Vector

В глобальных координатах возвращает вектор «вправо», построенный по ротатору.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

In Rot – rotator

Выход:

Return Value– vector

Get Up Vector

В глобальных координатах возвращает вектор «вверх», построенный по ротатору.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

In Rot – rotator

Выход:

Return Value– vector

Get Vector Array Average

Ищет среднее арифметическое из массива векторов

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Vectors – Array of Vectors

Выход:

Return Value– vector – результирующий вектор

Lerp (vector)

Линейная интерполяция между А и B, основанная на Альфе (100% от А при Alpha=0 и 100% от B при Alpha=1)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Make Vector

Создает вектор по

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Mirror Vector by Normal

Отражает вектор по нормали

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

In Vect – vector – отражаемый вектор

In Normal – vector – прямая, относительно которой происходит отражение

Выход:

Return Value– vector

Negate Vector

Создает противоположно направленный вектор

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Normalize

Приводит заданный вектор к единичному вектору (направление сохраняется)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

Not Equal (vector)

Возвращает true, если вектор А не равен вектору В (А != В) с задаваемой точностью

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Error Tolerance – float – задаваемая точность

Выход:

Return Value– boolean

Project Point on to Plane

Проекция точки на плоскость (из заданной точки опускается перпендикуляр на плоскость, образованную точкой и нормалью)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Point – vector – проецируемая точка

Plane Base – vector –точка на плоскости

Plane Normal – vector – нормаль к плоскости

Выход:

Return Value– vector – проекция точки на плоскости

Project Vector on to Plane

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

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

V – vector – проецируемый вектор

Plane Normal – vector – нормаль плоскости

Выход:

Return Value– vector – проекция вектора на плоскость

Project Vector on to Vector

Проецирует вектор V на вектор Target и возвращает его проекцию. Если длина вектора Target близка к нулю, то вернется нулевой вектор.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

V – vector – проецируемый вектор

Target – vector – вектор, на который проецируется вектор V

Выход:

Return Value– vector – проекция вектора V на Target

RotateVector

Возвращает вектор А, повернутый на ротатор В.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

RotateVectorAroundAxis

Возвращает вектор А, повернутый на угол Angle Deg вокруг произвольной оси

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

In Vect – vector

Angle Deg – float

Выход:

Return Value– vector

Select Vector

Если PickA — true,то возвращается A, иначе — возвращается В.

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

UnrotateVector

Возвращает вектор А, повернутый в другую сторону по ротатору В (как RotateVector, но в обратном направлении)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector — float

Вычитает значение В (float) из каждой компоненты вектора А

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector — int

Вычитает значение В (integer) из каждой компоненты вектора А

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector — vector

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector * float

Умножение вектора А на число В (float)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector * int

Умножение вектора А на число В (integer)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector * vector

Поэлементное перемножение векторов (Результат= )

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector / float

Делит вектор на число (float)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector / int

Делит вектор на число (integer)

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector / vector

Делит вектор на вектор

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector + float

Добавляет значение В (float) к каждой компоненте вектора А

Target is Kismet Math Library

Unreal engine 4 векторы

Вход:

Выход:

Return Value– vector

vector + int

Добавляет значение В (integer) к каждой компоненте вектора А

Туториал по Unreal Engine. Часть 1: знакомство с движком

Unreal engine 4 векторы

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

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

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

Мы изучим все эти возможности на примере поворотного столика, на котором лежит банан.

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

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

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

Unreal engine 4 векторы

  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.

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

О материалах

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

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

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

Материал задаёт внешний вид поверхности. На базовом уровне материал определяет четыре аспекта:

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

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

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Про Blueprints

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

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

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

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

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

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

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

Хорошим подходом будет создание объектов с помощью Blueprints. А когда требуются дополнительные возможности, преобразование их в C++.

Создание Blueprint

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

Blueprint Editor

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

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

Unreal engine 4 векторы

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

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

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

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

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

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

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

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

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

Unreal engine 4 векторы

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

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

Чтобы добавить основание, перейдите в панель Components. Нажмите на Add Component и выберите Cylinder.

Unreal engine 4 векторы

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

Unreal engine 4 векторы

Теперь пора добавить меш. Вернитесь в панель компонентов Components и нажмите левой клавишей на пустой области, чтобы снять выделение с компонента Cylinder. Благодаря этому следующий добавляемый компонент не будет прикреплён к компонентуCylinder.

Unreal engine 4 векторы

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

Unreal engine 4 векторы

Затем нажмите на Add Component и выберите из списка Static Mesh.

Unreal engine 4 векторы

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

Unreal engine 4 векторы

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

Unreal engine 4 векторы

Про ноды Blueprint

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

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

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

Unreal engine 4 векторы

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

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

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

Unreal engine 4 векторы

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

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

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

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

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

Unreal engine 4 векторы

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

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

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

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

Unreal engine 4 векторы

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

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

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

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

Пространственные преобразования в Unreal Engine

Для самых маленьких

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

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

В UE4 положение объекта в пространстве задается структурой Transform ( FTransform ), в основе которой лежит матрица трансформации, представляющая собой перемноженные матрицы масштабирования/ориентации/трансляции.

Для работы с ориентацией используется структура Rotator ( FRotator ), а в C++ есть и кватернион ( FQuat ). Rotator строит матрицу ориентации по эйлеровым координатам Roll, Pitch, Yaw (aka вращение, тангаж, рысканье). Если углубляться в детали, то стоит отметить, что при вычислении ориентации в UE4 сначала применяется вращение вокруг оси Z (Yaw), затем Y (Pitch) и в конце X (Roll). При изменении порядка вы получите другую ориентацию. Это стоит иметь в виду при копировании координат объектов в движок или из движка в другое ПО.

Vector ( FVector ) – не матрица, а структура для хранения координат в трехмерном пространстве. На основе вектора могут строиться как матрицы трансляции, так и матрицы масштабирования.

Самые-самые начинающие не всегда могут понять, задает ли вектор координаты в пространстве или направление. На самом деле, это зависит от того, как вы его используете и какой смысл вкладываете. Так, вектор (3, 0, 5) может означать координаты объекта, который сдвинут на 3 см вперед и на пять вверх от центра координат, а может – направление вперед-вверх (т. е. направление из центра координат).

Векторы можно умножать и делить, а еще их можно нормализовать, т. е. свести к единичной длине. Последняя операция имеет смысл, только когда мы говорим о направлениях. После нормализации вектор (5, 0, 0) – направление «вперед» – превратится в (1, 0, 0) – все еще «вперед», но длина вектора теперь равна единице.

Помимо сложения и умножения, для векторов можно находить векторное произведение (Cross Product – по моему опыту, оно используется редко) и скалярное произведение (Dot Product). Если вы заглянете в определение, то увидите, что это скалярное произведение – это произведение длин векторов на косинус угла между ними. На практике это означает, что скалярное произведение двух векторов будет больше нуля, когда векторы хотя бы чуть-чуть направлены в одну сторону, и меньше нуля, когда они направлены в противоположные стороны.

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

Как понять, с какой стороны стены находится кубик?

Надо найти скалярное произведение направления стена->кубик и нормали стены.

Трансформации – это матрицы, а значит, их можно умножать, причем при умножении порядок множителей имеет значение. С точки зрения не-математической логики, в результате умножения трансформаций мы получаем то, что скорее напоминает их сумму. На первом месте (верхний пин) находится значение, которое мы прибавляем, а на втором (нижний пин) – то, к чему прибавляем.

Вернемся к кубикам.

Умножая локальную трансформацию объекта А относительно объекта Б на трансформацию Б относительно центра координат, мы получаем трансформацию А относительно центра координат. Ничего сложного.

Обратная операция несколько сложнее с точки зрения математики, но разработчики UE4 позаботились о том, чтобы вам не пришлось с ней возиться.

Функция Make Relative Transform находит локальную трансформацию объекта А относительно Б. В более ранних версиях движка вместо нее присутствовала функция Convert Transform to Relative, но у нее были перепутаны названия параметров, и разработчики Epic Games решили, что проще будет создать новую функцию, чтобы никого не шокировать переименованием.

Объекты Rotator можно умножать точно так же, как и трансформации, но соответствующая операция спрятана под функцией Combine Rotators.

Внутри этой функции происходит старое доброе умножение кватернионов:

Rotator имеет полезную функцию Rotate Vector (и противоположную по смыслу Unrotate Vector), которая делает ровно то, что описано в названии: поворачивает вектор в соответствии с той ориентацией, которая установлена в Rotator .

Если мы повернем относительные координаты объекта А относительно объекта Б в ротаторе объекта Б, мы получим смещение А относительно Б в мировых координатах.

А еще можно использовать операцию вычитания (Delta Rotator).

Если вам нужно найти смещение ориентации одного объекта относительно другого, не вычитайте напрямую координаты Эйлера (Yaw2 – Yaw1), поскольку они всегда находятся в диапазоне от -180 до 180. Если Yaw1 = -179, а Yaw2 = 179, то разница между ними составляет два градуса, а простое вычитание даст 358. Функция вычитания ротаторов нормализует координаты и выдаст корректные два градуса.

И последняя весьма полезная операция – вращение относительно локальных осей координат.

Предположим, стоит задача повернуть кубик относительно его собственной вертикальной оси Z. Сделать это очень легко, ведь в движке уже реализована функция Add Relative Rotation. Для экторов она называется Add Actor Relative Rotation. Тут имеет смысл напомнить, что эктор не обладает каким-то самостоятельным положением в пространстве. Его положение полностью определяется положением корневого компонента. Т.е. Root Component -> Set World Rotation – это то же самое, что и Set Actor Rotation.

Однако что делать, если возникла необходимость повернуть относительно локальных осей не объект, а трансформацию, которая хранится в простой переменной, и функции Add Relative Rotation у нее нет? Это очень легко. Вам всего лишь надо…

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

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

UE в России в 3,5 или в 4 раза менее популярен чем Unity, это можно посмотреть по активностям на тематических форумах, вакансиях hh или соц.сетях. Люди которые интересуются движком сами ищут новости на Euro порталах, следят за тенденциями и, при желании, могут для себя или своих знакомых что-то перевести.
Почти все youtube каналы находятся в состоянии «на грани развала», видео ролики с переводами не набирают много просмотров (пару тысяч за неделю это уже классно), каких-то ярких и потрясающих обучалок практически нет. Каналы интересных людей, например такого как Алексей Савченко (менеджер по лицензированию Epic Games) вообще имеют несколько сотен просмотров и чуть больше 1 000 подписчиков, хотя человек на регулярной основе выпускает интересные ролики, отвечает на стримах, пишут статьи и дает интервью.
*получается многие думают, зачем мне утруждать себя, создавать тему, оформлять ее, тратить время и получить за это 500-700 просмотров в неделю на DTF.
**возможно ситуация с донатной темой пользователями и сможет немного сдвинуть в лучшую сторону эту ситуацию.

Да, я наблюдаю туже картину.

Вероятно, это напрямую связанно с тем, что в ру-сегменте и игры, в основном, делают мобильные, где, очевидно, Unity и рулит. А жаль. (

Это напрямую связано с простотой и понятностью unity и документации к нему. Куче простых и хороших обучалок основам. С# более удобен чем C++

Писать логику плюсами в U4!? о_О
Фу, моветон!,)

Поделиться или сохранить к себе: