SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
Luis Cataldi - Education Evangelist – Epic Games
Создаём с нуля VR
Project, VR Pawn и VR
Player Controller!
2
Создайте новый Блупринт и выберите Pawn Class
➔ На свободном месте в
content browser кликните
правой кнопкой мыши и
выберите Create Basic
Asset > Blueprint Class
➔ Теперь назовите его,
например “MyVR-Pawn”
3
Ознакомьтесь со множеством различных настроек Blueprint editor
➔ Components
➔ Menu Bar
➔ Details
➔ Viewport
➔ Construction Script
➔ Graph Editor
➔ My Blueprint: Variables,
Functions, Components
➔ Debug
➔ Compiler Results
4
Начинаем работать с VR-Pawn
➔ Добавьте Camera
Component
➔ Нажмите Compile и Save
5
Обновлённые камеры автоматически закрепляются к HMDs
(шлему виртуальной реальности)
➔ Обновлённые camera
components отныне
автоматически
закрепляются к
поддерживаемому HMDs
➔ В UE 4.13 управление
камерой в VR не требует
выполнения
дополнительных действий
6
Откройте World Settings из меню настроек (Settings menu)
➔ Выберите World Settings из
выпадающего списка в
настройках (Settings menu)
➔ Справа от вкладки Details
появится новая вкладка
World Settings. В ней будет
находиться несколько под-
меню, включая Game Mode
и Gamemode Overrides
7
Создайте новый GameMode Override
➔ Для создания нового
override кликните + справа
от GameMode Override
➔ Назовите GameMode
Override, например,
MyVRGameMode
➔ Теперь его можно
сохранить в папку Blueprints
8
Назначьте ваш MyVRPawn к Default Pawn Class
➔ Выберите Default Pawn
Class и назначьте в него
только что созданный
MyVRPawn Blueprint
9
Создайте PlayerController Class Blueprint в меню GameMode Override
➔ Для создания нового override
кликните + справа от Player
Controller Class
➔ Назовите PlayerController
Override, например,
MyVRPlayerController
➔ Теперь его также можно
сохранить в папку Blueprints
10
Перейдите во вкладку Event Graph в вашем новом MyVRPlayerController
➔ Как только новый
MyVRPlayerController
Blueprint будет создан, он
сразу откроется в новом
окне и будет доступен для
редактирования
➔ Выберите третью по счёту
вкладку, которая называется
Event Graph
11
Перейдите в Project Settings для создания новых инпутов (imputs)
➔ Здесь в разделе Input section,
мы можем добавить новые
Axis Mappings и Action
Mapping, которые и будут
нашими инпутами
12
Создайте 2 новых Action Mappings
➔ Создайте MyGlide Action
Mapping и назначьте для него
Middle Mouse Button (Средняя
кнопка мыши)
➔ Создайте MyInteraction Action
Mapping и назначьте для него
Right Mouse Button (правую
кнопку мыши)
Вернитесь к MyVRPlayerController и создайте MyGlide Linetrace Blueprint
➔ Во вкладке EventGraph в
MyVRPlayerController, кликните
правой кнопкой мыши и
добавьте InputAxis для Glide
➔ Добавьте (Get) Player Camera
Manager
➔ Вытяните GetActorLocation
➔ Вытяните GetActorFowardVector
➔ Умножьте (Multiply) Float x Float
из GetActorForwardVector и
поставьте значение, например,
10000 units в нижний float
➔ Создайте LineTraceByChannel
➔ Соедините его с ExecutionPin из
MyGlide InputAxis
➔ Соедините Start и
GetActorLocation
➔ Соедините End с суммой
(Addition) GetActorLocation и
умноженного значения (multiply
node)
14
Создайте 2 новые переменные (Variables) с типом Vector
➔ Создайте переменную
StartTrace Vector
➔ Создайте переменную
EndTrace Vector
15
Вытяните EndTrace чтобы его засетить (Set)
➔ Выберите и вытяните
переменную EndTrace в Event
Graph и выберите Create Setter
(Set)
16
Подключите EndTrace
➔ Соедините Execution Pin из
Line Trace с EndTrace
➔ Вытяните Trace End vector из
Break Hit Result в инпут
EndTrace для того, чтобы
установить его значение
17
Установите (Set) StartTrace
➔ Выберите и вытяните
переменную StartTrace в Event
Graph и выберите Create Setter
(Set)
18
Соедините Set StartTrace с Actor Location
➔ Кликните правой кнопкой
мыши чтобы вызвать функцию
GetPlayerPawn
➔ Протяните из Return Value для
создания функции
GetActorLocation node
➔ Соедините вновь созданную
функцию с инпутом (input)
вектора StartTrace Vector,
чтобы передать в него нужное
значение
19
Соедините BreakHitResult с EndTrace
➔ Соедините Set End Trace с Set
Start Trace
➔ Вызовите функцию
GetPlayerPawn, соедините её с
функцией GetActorLocation,
которую, в свою очередь, уже
подключите к StartTrace
20
Создайте Timeline и назовите его, к примеру, MyGlideCruve
➔ Создайте FloatCurve и назовите
её, к примеру, GlideFloat
➔ Добавьте 2 Ключа (Keys)
➔ Первый Ключ (Key) установите в
значения 0 и 0
➔ Второй Ключ (Key) установите в
значения, к примеру, .9 и .9
➔ Установите флажок в чекбокс Use
Last Keyframe
Используйте Timeline Component для получения функции SetPlayRate, с помощью
которой можно будет регулировать скорость передвижения
➔ Подключите функцию SetPlayRate
к StartTrace
➔ Разделите значение NewRate на 1
для нормализации значения
➔ Создайте новую Переменную
RateOfGlide и установите в неё,
для начала, значение 20
➔ Соедините output функции
SetPlayRate с инпутом Play from
Start в MyGlideCurve’s
Добавьте Lerp (Vector) для более плавного передвижения
➔ Протянув из GlideFloat в
MyGlideCurve’s вы сможете создать
Lerp (Vector). Соедините его с
инпутом Alpha
➔ Соедините output EndTrace с
инпутом B в Lerp (Vector)
➔ Соедините output StartTrace с
инпутом A в Lerp (Vector)
➔ Протянув из ReturnValue (Lerp
(Vector)) создайте функцию
SetActorLocation. Соедините его с
NewLocation, чтобы игрок мог понять
куда и как ему передвигаться
Используйте колёсико мыши для определения glide distance (расстояния скольжения)
➔ Создайте новый инпут Axis
Mapping и назовите его
MyTraceDistance
➔ Назначьте на него
MouseWheelAxis
Вернитесь в MyVRPlayerController
➔ Создайте новую переменную с
типом Float и назовите её
MouseWheelAxis
Вернитесь в SetPlayRate для работы с MyGlideCurve
➔ MouseWheelAxis разделите на 500
и умножьте (Multiply) RateOfGlide
➔ Это позволит вам управлять
дистанцией трейса с помощь
колёсика мыши
➔ ** Убедитесь в том, что вы вернули
значение RateOfGlide в 5 вместо
20
Используйте MouseWheelAxis, чтобы определить дистанцию трейса для line trace
➔ Вернитесь к функции
LineTraceByChannel и замените
установленной там по умолчанию
значение 10000 на переменную
флоат MouseWheelAxis, чтобы
регулировать дистанцию, на
которую игрок будет
перемещаться за каждый клик
Давайте создадим preview mesh, что бы можно было определить конец нашего line trace
Давайте создадим новый Actor Class Blueprint
➔ Создайте новый Actor Class
Blueprint в папке с блупринтами
(Blueprints folder)
➔ Назовите его, к примеру,
MyPreviewMesh-BP
Добавьте в него mesh component
➔ В выпадающем списке +Add
Component найдите и выберите
компонент Sphere (Basic Shape) и
добавьте его к MyPreviewMesh-BP
➔ Назовите его, к примеру,
PreviewMesh
Давайте создадим новый материал для нашего preview mesh
➔ В папке Blueprints folder кликните
правой кнопкой мыши и создайте
новый Basic Asset > Material
➔ Назовите его MyPreview-MAT
Установите базовый материал
➔ Измените Blend Mode на >
Translucent
➔ Измените Shading Model на >
Unlit
Создайте Emissive Color (излучающий цвет)
➔ Создайте Vector3
➔ Измените цвет на 1,1,1 белый
(white)
➔ Конвертируйте его в Параметр под
названием BaseColor
➔ Соедините его с инпутом А функции
умножения (Multiply)
➔ Добавьте Parameter Node и
назовите её GlowPower
➔ Соедините её с инпутом B функции
умножения (Multiply)
➔ Соедините функцию умножения с
каналом Emissive Color в материале
Настройка прозрачности (Opacity)
➔ Соедините Power node с каналом
Opacity в материале
➔ Подключите Fresnel Node в Base
(Power Node)
➔ Создайте функцию Scalar
Parameter с названием Fresnel
Power и присоедините её к
Exponent в Fresnel Node
➔ Сохраните и примените материал
(Save and apply the material)
Давайте создадим новый материал инстанс для нашего preview mesh
➔ Найдите в контент браузере
MyPreview-MAT. Кликните по нему
ПКМ и выберите Create Material
Instance
Давайте создадим новый материал инстанс для нашего preview mesh
➔ Выбрав MyPreview-Mat_Inst вы
можете изменить ряд параметров.
Назначьте новый Material Instance к вашему preview mesh
➔ Выберите Сферу (Sphere Mesh
component)
➔ Назначьте Material Instance к
материалу to the Material в слот
Element 0 кликнув на стрелочку
(assign arrow)
Теперь вернитесь в MyVRPlayerController, пришло время спавнить (spawn) вашу
preview sphere
➔ Для начала, мы можем
полностью скопировать
первую часть нашего MyGlide
linetrace Blueprint
Давайте подключим Tick event, чтобы запустить line trace
➔ Создайте Event Tick и
подключите его ко входу в
lineTrace
Теперь заспавним (Spawn) Preview Mesh Blueprint
➔ Кликните правой кнопкой
мыши и создайте Event
BeginPlay
➔ Протяните из него и создайте
SpawnActor of Class
➔ В выпадающем списке Класса
(Class dropdown), найдите ваш
MyPreviewMesh-BP
Добавьте к SpawnActor новый трансформ (New Transform)
➔ Соедините Trace End из Break
Hit Result с Spawn Transform в
функции SpawnActor
➔ Не переживайте если
создастся новая функция
(Сonvert) для того, чтобы
учесть преобразование Vector
в Transform
Преобразуйте (Promote) значение ReturnValue (SpawnActor)
➔ Преобразуйте (Promote)
значение RetunValue в
SpawnActor в Переменную и
назовите её MyPreviewSphere
➔ Это добавит ссылку на неё в
вашем списке переменных
(Variables List)
Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её
столкновении с поверхностью
➔ Кликните на + Function key для
создания новой функции
➔ Назовите её SphereColor-F
Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её
столкновении с поверхностью
➔ Добавьте ссылку
MyPreviewSphere
➔ Потяните из MyPreviewSphere
и начните набирать “dynamic”
для создания
DynamicMaterialInstance
Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её
столкновении с поверхностью
➔ Назначьте MyPreview-
MAT_Instance в Source Material
Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её
столкновении с поверхностью
➔ Потяните из ReturnValue и
создайте
SetVectorParameterValue
Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её
столкновении с поверхностью
➔ В Parameter Name впишите
BaseColor
➔ Создайте (Promote to Variable)
новую переменную NewColor
➔ Compile and Save
Теперь давайте закончим работу с Preview Graph
➔ Создайте Branch Node,
потянув из execution pin
LineTrace
➔ Соедините Blocking Hit из
BreakHitResult с Condition
➔ Из аутпута True вызовите
SphereColor-F Function и
установите цвет NewColor в
синий с помощью Set
NewColor Node
➔ Сделайте тоже самое для
False, установив жёлтый цвет
Теперь давайте закончим работу с Preview Graph
➔ Создайте Branch Node,
потянув из execution pin
LineTrace
➔ Соедините Blocking Hit из
BreakHitResult с Condition
➔ Из аутпута True вызовите
SphereColor-F Function и
установите цвет NewColor в
синий с помощью Set
NewColor Node
➔ Сделайте тоже самое для
False, установив жёлтый цвет
Теперь давайте закончим работу с Preview Graph
➔ Создайте новую переменную
SurfaceNormal из Location в
BreakHitResult при помощи
Promote to Variable
Теперь давайте закончим работу с Preview Graph
➔ Перетяните назначение (Set)
новой переменной в конец
выполнения True (после
назначения синего цвета)
Теперь давайте закончим работу с Preview Graph
➔ Создайте новую переменную
TraceEnd из Trace End в
BreakHitResult при помощи
Promote to Variable
➔ Как и в прошлый раз,
перетяните назначение (Set)
новой переменной в конец
выполнения False (после
назначения жёлтого цвета)
Теперь давайте закончим работу с Preview Graph
➔ Создайте SetActorLocation
потянув из MyPreviewSphere
➔ Соедините Set SurfaceNormal с
SetActorLocation и в значение
NewLocation передайте
SurfaceNormal
➔ Сделайте тоже самое ещё раз
для ноды Set TraceEnd
А теперь добавим интерактивности нашим механикам
Давайте построим interaction graph
➔ Еще раз скопируйте первую
часть из графа linetrace и
вставьте её ниже
Давайте построим interaction graph (всё ещё в MyVRPlayerController)
➔ Создайте InputAction для
MyInteraction, который мы
создали в разделе инпутов в
настройках проекта (Input
section of the Project Settings)
➔ Соедините Pressed c инпутом
скопированного LineTrace
Создаём новый Blueprint Interface
➔ В папке с блупринтами
кликните ПКМ и в разделе
Blueprints выберите Blueprint
Interface
➔ Назовите его MyInteract-BPI
Создаём новый Blueprint Interface
➔ Blueprint Interface позволит
вам создавать новые Функции
➔ Создайте новую функцию
LookingAt
➔ Вы можете добавлять инпуты
и аутпуты (Inputs and Outputs),
но пока обойдёмся без этого
➔ Compile and Save
Возвращаемся к MyVRPlayerController
➔ Для создания функции IsValid
со знаком ? Потяните из
BreakHitResult > HitActor
Возвращаемся к MyVRPlayerController
➔ Чтобы добавить LookingAt
потяните из HitActor снова и
наберите название вашего
Blueprint Interface - MyInteract-
BPI
➔ Соедините его с аутпутом ? Is
valid, который в свою очередь
соединён с LineTrace
➔ Compile and Save
Давайте создадим интерактивный элемент
Настроим Включение и Выключение вращения лопастей вентилятора с помощью sight
based interaction
➔ Если вы переместитесь к той
части локации, где находятся
вентиляторы, то увидите, что они
уже контролируются
Блупринтами
➔ Мы можем заменить
существующие Блупринты на
новые, которые добавят
взаимодействие с нашим line
trace
➔ Откройте существующий
Блупринт, чтобы найти ссылку на
тот меш, который используется в
данной сцене
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Создайте новый Actor Class
Blueprint в папке Blueprints
➔ Назовите его MyVRFan-BP
➔ Откройте его для
редактирования
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Добавьте Static Mesh
Component вентилятора в
Блупринт
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Добавьте Rotating Movement
Component в Блупринт
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Выбрав Rotating Movement
Component, установите новое
значение Rotation Rate X,
например 450
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Теперь отключите AutoActive
(снимите галочку) для того,
чтобы вентилятор не
включался автоматически, а
только после выполнения
определённых действий
игроком
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Кликните на кнопку Class
Settings в верхней панели для
того, чтобы перейти к его
настройкам (Class Settings)
➔ В Details Panel, в разделе
Interfaces, воспользуйтесь
кнопкой Add для назначения
MyInteract-BPI Blueprint как
вашего нового BP interface
➔ Обязательно Compile and Save
после этого, чтобы применить
ваш новый BP Interface
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Как только мы применили наш
новый BP Interface, мы можем
кликнуть в нём правой кнопкой
мыши и получить доступ к
Event LookAt-BPI
➔ Это создаст Событие (Event),
которое мы сможем соединить
с ToggleActive для активации
RotatingMovement нашего
вентилятора (Component of the
Fan Mesh)
➔ Compile and Save
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Убедитесь в том, что на
объектах, которые окружают
наш вентилятор нет коллизий,
чтобы дать возможность
взаимодействовать с ним
Настроим Включение и Выключение вращения лопастей вентилятора
➔ Для замены Блупринта, выберите
Actor в сцене, кликните по нему
ПКМ для вызова меню. В
появившемся меню выберите
Replace Selected Actors with
➔ Убедитесь в том, что в контент
браузере выделен необходимый
Блупринт
➔ Save All
➔ Теперь MyVRFan-BP размещён в
нужном месте и вы можете с ним
взаимодействовать. Для этого
направьте Preview Sphere на него
используя ПКМ
71
VR с помощью Unreal Engine это круто.
Ознакомьтесь с UE4 VR learning resouces
для получения более исчерпывающей
информации.
luis.cataldi@epicgames.com

Weitere ähnliche Inhalte

Andere mochten auch

Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Unreal Engine
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis CataldiUnreal Engine
 
White nights intro to vr with unreal engine - luis cataldi-Russian
White nights   intro to vr with unreal engine - luis cataldi-RussianWhite nights   intro to vr with unreal engine - luis cataldi-Russian
White nights intro to vr with unreal engine - luis cataldi-RussianUnreal Engine
 
Teaching UE4 With Quest Based Learning Dr Cynthia Marcello
Teaching UE4 With Quest Based Learning Dr Cynthia MarcelloTeaching UE4 With Quest Based Learning Dr Cynthia Marcello
Teaching UE4 With Quest Based Learning Dr Cynthia MarcelloUnreal Engine
 
Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine Unreal Engine
 
On Ramp to Unreal Engine
On Ramp to Unreal EngineOn Ramp to Unreal Engine
On Ramp to Unreal EngineUnreal Engine
 
Romero Blueprint Compendium
Romero Blueprint CompendiumRomero Blueprint Compendium
Romero Blueprint CompendiumUnreal Engine
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Huey Park
 
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016aCanelma
 
VRセミナー講演資料20161119
VRセミナー講演資料20161119VRセミナー講演資料20161119
VRセミナー講演資料20161119syamane
 
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...Gerke Max Preussner
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Ki Hyunwoo
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
 
EvolucióN De Los Motores GráFicos
EvolucióN De Los Motores GráFicosEvolucióN De Los Motores GráFicos
EvolucióN De Los Motores GráFicosnfmarchetti
 
Ferran calpe b4_lag
Ferran calpe b4_lagFerran calpe b4_lag
Ferran calpe b4_lagFerran5
 
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativa
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativaRealidad Virtual (VR) Inmersiva en los procesos de Formación corporativa
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativaAll VR Education
 

Andere mochten auch (17)

Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4Making VR Games and Experiences in UE4
Making VR Games and Experiences in UE4
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis Cataldi
 
White nights intro to vr with unreal engine - luis cataldi-Russian
White nights   intro to vr with unreal engine - luis cataldi-RussianWhite nights   intro to vr with unreal engine - luis cataldi-Russian
White nights intro to vr with unreal engine - luis cataldi-Russian
 
Teaching UE4 With Quest Based Learning Dr Cynthia Marcello
Teaching UE4 With Quest Based Learning Dr Cynthia MarcelloTeaching UE4 With Quest Based Learning Dr Cynthia Marcello
Teaching UE4 With Quest Based Learning Dr Cynthia Marcello
 
Intro to VR with Unreal Engine
Intro to VR with Unreal Engine   Intro to VR with Unreal Engine
Intro to VR with Unreal Engine
 
On Ramp to Unreal Engine
On Ramp to Unreal EngineOn Ramp to Unreal Engine
On Ramp to Unreal Engine
 
Romero Blueprint Compendium
Romero Blueprint CompendiumRomero Blueprint Compendium
Romero Blueprint Compendium
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4
 
Game Boy
Game BoyGame Boy
Game Boy
 
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016
"Potencialidades educativas de la Realidad Virtual (VR) inmersiva". CITIE 2016
 
VRセミナー講演資料20161119
VRセミナー講演資料20161119VRセミナー講演資料20161119
VRセミナー講演資料20161119
 
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
EvolucióN De Los Motores GráFicos
EvolucióN De Los Motores GráFicosEvolucióN De Los Motores GráFicos
EvolucióN De Los Motores GráFicos
 
Ferran calpe b4_lag
Ferran calpe b4_lagFerran calpe b4_lag
Ferran calpe b4_lag
 
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativa
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativaRealidad Virtual (VR) Inmersiva en los procesos de Formación corporativa
Realidad Virtual (VR) Inmersiva en los procesos de Formación corporativa
 

Ähnlich wie Build a VR Pawn with Unreal Engine Luis Cataldi Russian

Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Александр Шамрай
 
Краткое руководство FlyView
Краткое руководство FlyViewКраткое руководство FlyView
Краткое руководство FlyViewiPera-Moscow
 
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"STEP Computer Academy (Zaporozhye)
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
 
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюГлеб Тарасов
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложенийMichael Karpov
 
PowerShell Web Access Руководство по использованию
PowerShell Web Access Руководство по использованиюPowerShell Web Access Руководство по использованию
PowerShell Web Access Руководство по использованиюAndrey Markin
 
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012Александр Шамрай
 
10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shellAndrey Markin
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Sergiy Shychynov
 
Быть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyБыть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyEvgeny Kompaniyets
 
Решаем 9 задач управления Windows Server 2008 с помощью PowerShell
Решаем 9 задач управления Windows Server 2008 с помощью PowerShellРешаем 9 задач управления Windows Server 2008 с помощью PowerShell
Решаем 9 задач управления Windows Server 2008 с помощью PowerShellAndrey Markin
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelperDataArt
 
Руководство по управлению службами WIindows с помощью PowerShell
Руководство по управлению службами WIindows с помощью PowerShellРуководство по управлению службами WIindows с помощью PowerShell
Руководство по управлению службами WIindows с помощью PowerShellAndrey Markin
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersГлеб Тарасов
 
Разработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseРазработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseMarina Payvina
 
урок2 применение специальных эффектов и ссылок
урок2 применение специальных эффектов и ссылокурок2 применение специальных эффектов и ссылок
урок2 применение специальных эффектов и ссылокKatrinka89
 
обучение работе с программой Av editor
обучение работе с программой Av editorобучение работе с программой Av editor
обучение работе с программой Av editoranton-mgn
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексElena Voynova
 

Ähnlich wie Build a VR Pawn with Unreal Engine Luis Cataldi Russian (20)

Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
 
Краткое руководство FlyView
Краткое руководство FlyViewКраткое руководство FlyView
Краткое руководство FlyView
 
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)
 
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложений
 
PowerShell Web Access Руководство по использованию
PowerShell Web Access Руководство по использованиюPowerShell Web Access Руководство по использованию
PowerShell Web Access Руководство по использованию
 
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012
Отладка с использованием Intelli Trace в Visual Studio Ultimate 2012
 
10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell10 задач администрирования Active directory, решаемых с помощью power shell
10 задач администрирования Active directory, решаемых с помощью power shell
 
пр 14.docx
пр 14.docxпр 14.docx
пр 14.docx
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4
 
Быть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyБыть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря Groovy
 
Решаем 9 задач управления Windows Server 2008 с помощью PowerShell
Решаем 9 задач управления Windows Server 2008 с помощью PowerShellРешаем 9 задач управления Windows Server 2008 с помощью PowerShell
Решаем 9 задач управления Windows Server 2008 с помощью PowerShell
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelper
 
Руководство по управлению службами WIindows с помощью PowerShell
Руководство по управлению службами WIindows с помощью PowerShellРуководство по управлению службами WIindows с помощью PowerShell
Руководство по управлению службами WIindows с помощью PowerShell
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
 
Разработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseРазработай первое приложение Qlik Sense
Разработай первое приложение Qlik Sense
 
урок2 применение специальных эффектов и ссылок
урок2 применение специальных эффектов и ссылокурок2 применение специальных эффектов и ссылок
урок2 применение специальных эффектов и ссылок
 
обучение работе с программой Av editor
обучение работе с программой Av editorобучение работе с программой Av editor
обучение работе с программой Av editor
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, Яндекс
 

Build a VR Pawn with Unreal Engine Luis Cataldi Russian

  • 1. Luis Cataldi - Education Evangelist – Epic Games Создаём с нуля VR Project, VR Pawn и VR Player Controller!
  • 2. 2 Создайте новый Блупринт и выберите Pawn Class ➔ На свободном месте в content browser кликните правой кнопкой мыши и выберите Create Basic Asset > Blueprint Class ➔ Теперь назовите его, например “MyVR-Pawn”
  • 3. 3 Ознакомьтесь со множеством различных настроек Blueprint editor ➔ Components ➔ Menu Bar ➔ Details ➔ Viewport ➔ Construction Script ➔ Graph Editor ➔ My Blueprint: Variables, Functions, Components ➔ Debug ➔ Compiler Results
  • 4. 4 Начинаем работать с VR-Pawn ➔ Добавьте Camera Component ➔ Нажмите Compile и Save
  • 5. 5 Обновлённые камеры автоматически закрепляются к HMDs (шлему виртуальной реальности) ➔ Обновлённые camera components отныне автоматически закрепляются к поддерживаемому HMDs ➔ В UE 4.13 управление камерой в VR не требует выполнения дополнительных действий
  • 6. 6 Откройте World Settings из меню настроек (Settings menu) ➔ Выберите World Settings из выпадающего списка в настройках (Settings menu) ➔ Справа от вкладки Details появится новая вкладка World Settings. В ней будет находиться несколько под- меню, включая Game Mode и Gamemode Overrides
  • 7. 7 Создайте новый GameMode Override ➔ Для создания нового override кликните + справа от GameMode Override ➔ Назовите GameMode Override, например, MyVRGameMode ➔ Теперь его можно сохранить в папку Blueprints
  • 8. 8 Назначьте ваш MyVRPawn к Default Pawn Class ➔ Выберите Default Pawn Class и назначьте в него только что созданный MyVRPawn Blueprint
  • 9. 9 Создайте PlayerController Class Blueprint в меню GameMode Override ➔ Для создания нового override кликните + справа от Player Controller Class ➔ Назовите PlayerController Override, например, MyVRPlayerController ➔ Теперь его также можно сохранить в папку Blueprints
  • 10. 10 Перейдите во вкладку Event Graph в вашем новом MyVRPlayerController ➔ Как только новый MyVRPlayerController Blueprint будет создан, он сразу откроется в новом окне и будет доступен для редактирования ➔ Выберите третью по счёту вкладку, которая называется Event Graph
  • 11. 11 Перейдите в Project Settings для создания новых инпутов (imputs) ➔ Здесь в разделе Input section, мы можем добавить новые Axis Mappings и Action Mapping, которые и будут нашими инпутами
  • 12. 12 Создайте 2 новых Action Mappings ➔ Создайте MyGlide Action Mapping и назначьте для него Middle Mouse Button (Средняя кнопка мыши) ➔ Создайте MyInteraction Action Mapping и назначьте для него Right Mouse Button (правую кнопку мыши)
  • 13. Вернитесь к MyVRPlayerController и создайте MyGlide Linetrace Blueprint ➔ Во вкладке EventGraph в MyVRPlayerController, кликните правой кнопкой мыши и добавьте InputAxis для Glide ➔ Добавьте (Get) Player Camera Manager ➔ Вытяните GetActorLocation ➔ Вытяните GetActorFowardVector ➔ Умножьте (Multiply) Float x Float из GetActorForwardVector и поставьте значение, например, 10000 units в нижний float ➔ Создайте LineTraceByChannel ➔ Соедините его с ExecutionPin из MyGlide InputAxis ➔ Соедините Start и GetActorLocation ➔ Соедините End с суммой (Addition) GetActorLocation и умноженного значения (multiply node)
  • 14. 14 Создайте 2 новые переменные (Variables) с типом Vector ➔ Создайте переменную StartTrace Vector ➔ Создайте переменную EndTrace Vector
  • 15. 15 Вытяните EndTrace чтобы его засетить (Set) ➔ Выберите и вытяните переменную EndTrace в Event Graph и выберите Create Setter (Set)
  • 16. 16 Подключите EndTrace ➔ Соедините Execution Pin из Line Trace с EndTrace ➔ Вытяните Trace End vector из Break Hit Result в инпут EndTrace для того, чтобы установить его значение
  • 17. 17 Установите (Set) StartTrace ➔ Выберите и вытяните переменную StartTrace в Event Graph и выберите Create Setter (Set)
  • 18. 18 Соедините Set StartTrace с Actor Location ➔ Кликните правой кнопкой мыши чтобы вызвать функцию GetPlayerPawn ➔ Протяните из Return Value для создания функции GetActorLocation node ➔ Соедините вновь созданную функцию с инпутом (input) вектора StartTrace Vector, чтобы передать в него нужное значение
  • 19. 19 Соедините BreakHitResult с EndTrace ➔ Соедините Set End Trace с Set Start Trace ➔ Вызовите функцию GetPlayerPawn, соедините её с функцией GetActorLocation, которую, в свою очередь, уже подключите к StartTrace
  • 20. 20 Создайте Timeline и назовите его, к примеру, MyGlideCruve ➔ Создайте FloatCurve и назовите её, к примеру, GlideFloat ➔ Добавьте 2 Ключа (Keys) ➔ Первый Ключ (Key) установите в значения 0 и 0 ➔ Второй Ключ (Key) установите в значения, к примеру, .9 и .9 ➔ Установите флажок в чекбокс Use Last Keyframe
  • 21. Используйте Timeline Component для получения функции SetPlayRate, с помощью которой можно будет регулировать скорость передвижения ➔ Подключите функцию SetPlayRate к StartTrace ➔ Разделите значение NewRate на 1 для нормализации значения ➔ Создайте новую Переменную RateOfGlide и установите в неё, для начала, значение 20 ➔ Соедините output функции SetPlayRate с инпутом Play from Start в MyGlideCurve’s
  • 22. Добавьте Lerp (Vector) для более плавного передвижения ➔ Протянув из GlideFloat в MyGlideCurve’s вы сможете создать Lerp (Vector). Соедините его с инпутом Alpha ➔ Соедините output EndTrace с инпутом B в Lerp (Vector) ➔ Соедините output StartTrace с инпутом A в Lerp (Vector) ➔ Протянув из ReturnValue (Lerp (Vector)) создайте функцию SetActorLocation. Соедините его с NewLocation, чтобы игрок мог понять куда и как ему передвигаться
  • 23. Используйте колёсико мыши для определения glide distance (расстояния скольжения) ➔ Создайте новый инпут Axis Mapping и назовите его MyTraceDistance ➔ Назначьте на него MouseWheelAxis
  • 24. Вернитесь в MyVRPlayerController ➔ Создайте новую переменную с типом Float и назовите её MouseWheelAxis
  • 25. Вернитесь в SetPlayRate для работы с MyGlideCurve ➔ MouseWheelAxis разделите на 500 и умножьте (Multiply) RateOfGlide ➔ Это позволит вам управлять дистанцией трейса с помощь колёсика мыши ➔ ** Убедитесь в том, что вы вернули значение RateOfGlide в 5 вместо 20
  • 26. Используйте MouseWheelAxis, чтобы определить дистанцию трейса для line trace ➔ Вернитесь к функции LineTraceByChannel и замените установленной там по умолчанию значение 10000 на переменную флоат MouseWheelAxis, чтобы регулировать дистанцию, на которую игрок будет перемещаться за каждый клик
  • 27. Давайте создадим preview mesh, что бы можно было определить конец нашего line trace
  • 28. Давайте создадим новый Actor Class Blueprint ➔ Создайте новый Actor Class Blueprint в папке с блупринтами (Blueprints folder) ➔ Назовите его, к примеру, MyPreviewMesh-BP
  • 29. Добавьте в него mesh component ➔ В выпадающем списке +Add Component найдите и выберите компонент Sphere (Basic Shape) и добавьте его к MyPreviewMesh-BP ➔ Назовите его, к примеру, PreviewMesh
  • 30. Давайте создадим новый материал для нашего preview mesh ➔ В папке Blueprints folder кликните правой кнопкой мыши и создайте новый Basic Asset > Material ➔ Назовите его MyPreview-MAT
  • 31. Установите базовый материал ➔ Измените Blend Mode на > Translucent ➔ Измените Shading Model на > Unlit
  • 32. Создайте Emissive Color (излучающий цвет) ➔ Создайте Vector3 ➔ Измените цвет на 1,1,1 белый (white) ➔ Конвертируйте его в Параметр под названием BaseColor ➔ Соедините его с инпутом А функции умножения (Multiply) ➔ Добавьте Parameter Node и назовите её GlowPower ➔ Соедините её с инпутом B функции умножения (Multiply) ➔ Соедините функцию умножения с каналом Emissive Color в материале
  • 33. Настройка прозрачности (Opacity) ➔ Соедините Power node с каналом Opacity в материале ➔ Подключите Fresnel Node в Base (Power Node) ➔ Создайте функцию Scalar Parameter с названием Fresnel Power и присоедините её к Exponent в Fresnel Node ➔ Сохраните и примените материал (Save and apply the material)
  • 34. Давайте создадим новый материал инстанс для нашего preview mesh ➔ Найдите в контент браузере MyPreview-MAT. Кликните по нему ПКМ и выберите Create Material Instance
  • 35. Давайте создадим новый материал инстанс для нашего preview mesh ➔ Выбрав MyPreview-Mat_Inst вы можете изменить ряд параметров.
  • 36. Назначьте новый Material Instance к вашему preview mesh ➔ Выберите Сферу (Sphere Mesh component) ➔ Назначьте Material Instance к материалу to the Material в слот Element 0 кликнув на стрелочку (assign arrow)
  • 37. Теперь вернитесь в MyVRPlayerController, пришло время спавнить (spawn) вашу preview sphere ➔ Для начала, мы можем полностью скопировать первую часть нашего MyGlide linetrace Blueprint
  • 38. Давайте подключим Tick event, чтобы запустить line trace ➔ Создайте Event Tick и подключите его ко входу в lineTrace
  • 39. Теперь заспавним (Spawn) Preview Mesh Blueprint ➔ Кликните правой кнопкой мыши и создайте Event BeginPlay ➔ Протяните из него и создайте SpawnActor of Class ➔ В выпадающем списке Класса (Class dropdown), найдите ваш MyPreviewMesh-BP
  • 40. Добавьте к SpawnActor новый трансформ (New Transform) ➔ Соедините Trace End из Break Hit Result с Spawn Transform в функции SpawnActor ➔ Не переживайте если создастся новая функция (Сonvert) для того, чтобы учесть преобразование Vector в Transform
  • 41. Преобразуйте (Promote) значение ReturnValue (SpawnActor) ➔ Преобразуйте (Promote) значение RetunValue в SpawnActor в Переменную и назовите её MyPreviewSphere ➔ Это добавит ссылку на неё в вашем списке переменных (Variables List)
  • 42. Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её столкновении с поверхностью ➔ Кликните на + Function key для создания новой функции ➔ Назовите её SphereColor-F
  • 43. Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её столкновении с поверхностью ➔ Добавьте ссылку MyPreviewSphere ➔ Потяните из MyPreviewSphere и начните набирать “dynamic” для создания DynamicMaterialInstance
  • 44. Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её столкновении с поверхностью ➔ Назначьте MyPreview- MAT_Instance в Source Material
  • 45. Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её столкновении с поверхностью ➔ Потяните из ReturnValue и создайте SetVectorParameterValue
  • 46. Теперь давайте создадим Функцию, которая будет изменять цвет Сферы при её столкновении с поверхностью ➔ В Parameter Name впишите BaseColor ➔ Создайте (Promote to Variable) новую переменную NewColor ➔ Compile and Save
  • 47. Теперь давайте закончим работу с Preview Graph ➔ Создайте Branch Node, потянув из execution pin LineTrace ➔ Соедините Blocking Hit из BreakHitResult с Condition ➔ Из аутпута True вызовите SphereColor-F Function и установите цвет NewColor в синий с помощью Set NewColor Node ➔ Сделайте тоже самое для False, установив жёлтый цвет
  • 48. Теперь давайте закончим работу с Preview Graph ➔ Создайте Branch Node, потянув из execution pin LineTrace ➔ Соедините Blocking Hit из BreakHitResult с Condition ➔ Из аутпута True вызовите SphereColor-F Function и установите цвет NewColor в синий с помощью Set NewColor Node ➔ Сделайте тоже самое для False, установив жёлтый цвет
  • 49. Теперь давайте закончим работу с Preview Graph ➔ Создайте новую переменную SurfaceNormal из Location в BreakHitResult при помощи Promote to Variable
  • 50. Теперь давайте закончим работу с Preview Graph ➔ Перетяните назначение (Set) новой переменной в конец выполнения True (после назначения синего цвета)
  • 51. Теперь давайте закончим работу с Preview Graph ➔ Создайте новую переменную TraceEnd из Trace End в BreakHitResult при помощи Promote to Variable ➔ Как и в прошлый раз, перетяните назначение (Set) новой переменной в конец выполнения False (после назначения жёлтого цвета)
  • 52. Теперь давайте закончим работу с Preview Graph ➔ Создайте SetActorLocation потянув из MyPreviewSphere ➔ Соедините Set SurfaceNormal с SetActorLocation и в значение NewLocation передайте SurfaceNormal ➔ Сделайте тоже самое ещё раз для ноды Set TraceEnd
  • 53. А теперь добавим интерактивности нашим механикам
  • 54. Давайте построим interaction graph ➔ Еще раз скопируйте первую часть из графа linetrace и вставьте её ниже
  • 55. Давайте построим interaction graph (всё ещё в MyVRPlayerController) ➔ Создайте InputAction для MyInteraction, который мы создали в разделе инпутов в настройках проекта (Input section of the Project Settings) ➔ Соедините Pressed c инпутом скопированного LineTrace
  • 56. Создаём новый Blueprint Interface ➔ В папке с блупринтами кликните ПКМ и в разделе Blueprints выберите Blueprint Interface ➔ Назовите его MyInteract-BPI
  • 57. Создаём новый Blueprint Interface ➔ Blueprint Interface позволит вам создавать новые Функции ➔ Создайте новую функцию LookingAt ➔ Вы можете добавлять инпуты и аутпуты (Inputs and Outputs), но пока обойдёмся без этого ➔ Compile and Save
  • 58. Возвращаемся к MyVRPlayerController ➔ Для создания функции IsValid со знаком ? Потяните из BreakHitResult > HitActor
  • 59. Возвращаемся к MyVRPlayerController ➔ Чтобы добавить LookingAt потяните из HitActor снова и наберите название вашего Blueprint Interface - MyInteract- BPI ➔ Соедините его с аутпутом ? Is valid, который в свою очередь соединён с LineTrace ➔ Compile and Save
  • 61. Настроим Включение и Выключение вращения лопастей вентилятора с помощью sight based interaction ➔ Если вы переместитесь к той части локации, где находятся вентиляторы, то увидите, что они уже контролируются Блупринтами ➔ Мы можем заменить существующие Блупринты на новые, которые добавят взаимодействие с нашим line trace ➔ Откройте существующий Блупринт, чтобы найти ссылку на тот меш, который используется в данной сцене
  • 62. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Создайте новый Actor Class Blueprint в папке Blueprints ➔ Назовите его MyVRFan-BP ➔ Откройте его для редактирования
  • 63. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Добавьте Static Mesh Component вентилятора в Блупринт
  • 64. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Добавьте Rotating Movement Component в Блупринт
  • 65. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Выбрав Rotating Movement Component, установите новое значение Rotation Rate X, например 450
  • 66. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Теперь отключите AutoActive (снимите галочку) для того, чтобы вентилятор не включался автоматически, а только после выполнения определённых действий игроком
  • 67. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Кликните на кнопку Class Settings в верхней панели для того, чтобы перейти к его настройкам (Class Settings) ➔ В Details Panel, в разделе Interfaces, воспользуйтесь кнопкой Add для назначения MyInteract-BPI Blueprint как вашего нового BP interface ➔ Обязательно Compile and Save после этого, чтобы применить ваш новый BP Interface
  • 68. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Как только мы применили наш новый BP Interface, мы можем кликнуть в нём правой кнопкой мыши и получить доступ к Event LookAt-BPI ➔ Это создаст Событие (Event), которое мы сможем соединить с ToggleActive для активации RotatingMovement нашего вентилятора (Component of the Fan Mesh) ➔ Compile and Save
  • 69. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Убедитесь в том, что на объектах, которые окружают наш вентилятор нет коллизий, чтобы дать возможность взаимодействовать с ним
  • 70. Настроим Включение и Выключение вращения лопастей вентилятора ➔ Для замены Блупринта, выберите Actor в сцене, кликните по нему ПКМ для вызова меню. В появившемся меню выберите Replace Selected Actors with ➔ Убедитесь в том, что в контент браузере выделен необходимый Блупринт ➔ Save All ➔ Теперь MyVRFan-BP размещён в нужном месте и вы можете с ним взаимодействовать. Для этого направьте Preview Sphere на него используя ПКМ
  • 71. 71 VR с помощью Unreal Engine это круто. Ознакомьтесь с UE4 VR learning resouces для получения более исчерпывающей информации. luis.cataldi@epicgames.com