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