10. Образовательные ресурсы по VR на Unreal
Engine:
Начало работы:
• Oculus Quick Starts
• SteamVR Quick Start
• Google VR Quick Start
• Gear VR Quick Starts
VR-платформы:
• Samsung Gear VR Development
• Google VR Development
• Oculus Rift Development
• SteamVR Development
Статьи по VR:
• VR Cheat Sheets
• VR Best Practices
• Motion Controller Component Setup
• VR Camera Refactor
11. Образовательные ресурсы по VR на Unreal Engine:
Видео:
• 2015 UE4 - VR and Unreal Engine
• Making Bullet Train and Going off the Rails in VR
• VR Bow and Arrow Tutorial w/ Ryan Brucks - Training Livestream
• Training Livestream - Sam and Wes' VR Stream: Cameras, Multiplayer, Tips and Tricks!
• Creating Interactions in VR with Motion Controllers 1-3
• Setting Up VR Motion Controllers
• VR Networking and 3D Menus
• Up and Running with Gear VR
• Developing for VR
• Integrating the Oculus Rift into UE4
Презентации:
• UE4 VR - Niklas Smedberg
• Lessons from Integrating the Oculus Rift into UE4
• Going Off The Rails: The Making of Bullet Train
Ссылки:
• Sam Deiter - 10 VR tips for Unreal Engine
• Tom Looman’s - Getting Started with VR in Unreal Engine 4
12. Образовательные ресурсы по VR для Unreal Engine:
Начало работы с редактором для VR:
• Activating VR Mode
Руководства по редактору для VR:
• Setting Up VR Editor from GitHub
• Navigating the World in VR Mode
• Working with Actors in VR Mode
Справка по редактору для VR:
• VR Editor Controls
• Quick Select Menu
• Radial Menu
• Transforming Actors in VR
• Editor Windows in VR Mode
13. **Новый режим Toggle VR Mode в Unreal Engine 4.13
** Все еще
экспериментальный, но
очень крутой.
15. Mitchell McCaffrey’s - Mitch VR Labs
Introduction to VR
Look Based interaction
Simple Teleportation Mechanic
Introduction to SteamVR
Simple Head IK
Mitch’s UE4 Forum Post
Образовательное Сообщество VR на UE4:
16. Справочник по VR на
Unreal Engine
От Mitchell McCaffrey & Pearson Education Inc.
Ожидается в феврале 2017
Новые образовательные ресурсы по VR на UE4:
17. Образовательное сообщество VR на UE4:
Образовательные каналы на Youtube.com:
• World of Level Design UE4 Fundamentals
• Virtus Education series
• Unreal Engine 4 Beginner Tutorials
• Mathew Wadstein Tutorials
• Leo Gonzales Unreal Basics
• Tesla Dev Tutorials
• UE4 Style Guide
Ресурсы по изучению блюпринтов:
• Communication Training - Zak Parrish
• Blueprints Compendium - VOLUME II
• BP_Compendium.pdf
• Network Compendium
Образовательные каналы на ArchViz:
• Architectural Visualization Tutorials
18. Образовательное сообщество VR на UE4:
Платные онлайн-курсы:
• Learn to Code in C++ by Developing Your First Game
• Complete Introduction to Unreal 4
• Unreal Essential Training - Lynda.com
• Unreal: Learn Lighting - Lynda.com
• 3dmotive - Unreal Engine courses
• Pluralsight - Unreal Engine courses
26. Новое: Шаблон VR-проекта
С помощью контроллера движения возможно взаимодействие и манипуляция с
объектами, а также телепортация.
27. Мы используем эти тест-кейсы из реального мира, чтобы внести наши фреймворки
и новые способы оптимизации в движок
В Epic Games, мы развиваем движок
создавая контент.
28. Instanced Stereo Rendering
Позволяет использовать single draw call для того чтобы создать картинку для обоих глаз,
экономя время CPU (и некоторое время GPU).
- В настоящий момент работает на PC, а в скором времени будет также доступно для
PS4 и мобильных платформ
- Нужно запускать в настройках проекта
29. Instanced stereo доступно сейчас для отложенного/deferred (PC) рендеринга и PS4.
- Мы также внедряем поддержку мульти-мониторного расширения для форвард
(мобильные платформы) рендеринга, а также улучшаем поддержку PS4 для более
оптимального использования ресурсов.
Instanced Stereo Rendering
30. Hidden And Visible Area Mesh
Мы отображаем меши таким образом,
чтобы не захватывать геометрию,
которую не видно, и используем пост-
процессы только там, где это
возможно.
Для отложенного рендеринга, Visible
Area Mesh является серьезной
оптимизацией!
Является особенностью
определённых платформ.
31. Hidden And Visible Area Mesh
Hidden Area Mask использует меш, чтобы выявить и исключить пиксели, которых не
будет в итоговом изображении.
32. Hidden And Visible Area Mesh
Visible Area Mask использует меш, чтобы ограничить пост-процессы только видимыми
пикселями.
33. Camera Refactor
По сравнению с 4.11, мы полностью
переписали систему камеры, чтобы
сделать разработку намного проще!
- Компоненты Камеры (Camera
Components) сейчас двигаются в
точности в зависимости от того, как
двигается реальный VR-шлем (HMD)
- Вы можете прикрепить компоненты
(меши, UI и т.д.) напрямую к камере
(camera component)!
35. Поддержка платформ
Начиная с 4.12, существует поддержка следующих
платформ «из коробки»:
• Oculus Rift
• Steam VR (including the HTC Vive)
• PSVR
• OSVR (preview)
• Samsung Gear VR
• Google Daydream
• Leap Motion
36. Поддержка платформ
Создавая единожды, применяйте вне
зависимости от платформы
Мобильные
устройства
Десктоп / Консоли
Oculus Rift
HTC Vive / Steam VR
PSVR
OSVR
Samsung Gear VR
Google Daydream
37. Все данные платформы
поддерживают стандартные VR-
интерфейсы UE4, поэтому вы можете
создать свой контент единожды и
использовать его где угодно.
Oculus
Vive PSVR
OSVR
Единая Система Камеры
Система Контроллеров Движения
Оптимизированные способы рендеринга
Оптимизации low-latency
39. Отложенный (deferred) рендеринг в UE4 - полноценный рабочий
инструмент, для эффективного использования которого всё же
потребуются необходимые навыки. Temporal Anti Aliasing (временное
сглаживание) ограничивает то, насколько резкой картинка может быть.
Новый форвард (forward) рендеринг в UE4 будет специализированным
рендерингом, с меньшим количеством фичей, но с более быстрыми
базовыми параметрами. Multi Sampling Anti Aliasing (MSAA) – самое
эффективное решение для сглаживания.
43. en.wikipedia.org/wiki/Virtual_reality_sickness
Теория сенсорного конфликта утверждает, что
тошнота/укачивание происходит, когда восприятие
собственного движения пользователя основывается на
несовместимых сенсорных импульсах от зрительной
системы, вестибулярной системы и не-вестибулярных
рецепторов, и в особенности тогда, когда данные
импульсы не совпадают с ожиданиями пользователя,
основывающихся на предшествующем опыте.
44. Пять типичных причин возникновения Тошноты/Укачивания в VR
1. Непоступательные движения
• Не неестественные движения
2. Осознание Вектора
• Когда большая часть того, что видит человек, движется, ему в
действительности кажется, что он сам движется, а окружение
статично
3. Чувство Ускорения
4. Чрезмерное вращение камеры (camera YAW)
5. Наличие статичного кадра (static reference frame)
45. С помощью этих приёмов в Unreal
Engine МЫ можем улучшить опыт от
VR игр и VR опыта в целом
46. Вы ОБЯЗАНЫ Следить за Частотой Кадров
Для просмотра текущего фреймрейта введите “stat fps” или “stat unit” (для более
подробной разбивки) в консоли при запуске игры.
47. VR Instanced Stereo работает «по умолчанию» в UE 4.13
Чтобы включить эту
функцию в версиях до UE
4.13, перейдите в
настройки проекта и
найдите “Instanced Stereo” в
настройках Рендера.
49. Поддерживайте очень упрощенный подход к созданию
контента.
Сводите к минимуму количество сложных шейдеров.
Вместо того, чтобы использовать сложные шейдеры для
деталей поверхностей, лучше добавляйте детали самому мешу.
50. Обязательно используйте LOD‘ы и aggressive culling для
того, чтобы быть уверенными, что вы попадаете в
намеченные показатели производительности в VR.
51. Screen Space Reflections (SSR)
SSR будет работать в VR, но может не дать ожидаемого
результата. Вместо этого лучше использовать датчики
отражения (reflection probes).
52. Проблемы с Normal Mapping
При просмотре Карты Нормалей на объектах в VR, можно
заметить, что они не дают такого же эффекта, как обычно.
Это происходит потому, что Карты Нормалей не учитывают
бинокулярность дисплея или параллакса. Из-за этого Карты
Нормалей выглядят плоскими в VR.
53. Parallax Mapping
Шейдер Parallax mapping может лучше передавать
глубину информации. Таким образом объекты кажутся
более детализированными.
Parallax map сама себя поправит, чтобы показать вам
правильную информацию о глубине от заданной точки.
* Parallax карты часто выглядят лучше вблизи, в то время
как многие Карты Нормалей будут хорошо выглядеть на
средних дистанциях.
54. Tessellation Shader Displacement
Tessellation Shader Displacement изменит 3D геометрию в
реальном времени, добавляя детали, которые не
моделируются в объект. Tessellation shaders очень помогают
отображать информации, потому что они создают
недостающие детали, добавляя больше вершин (vertices) и
изменяя их в 3D пространстве.
55. Запускаем VR Preview:
Тестировать ваш VR set очень просто: выберите “VR Preview” из выпадающего списка кнопки Play.
По умолчанию, отслеживание положения головы будет работать сразу же, без внесения каких-
либо изменений в существующий проект или шаблон.
** Remember in UE 4.13 to try Play from VR Editor, if you have controllers.
56. GPU Profiling:
Для того, чтобы захватить один кадр с таймингами GPU нажмите Ctrl + Shift + или
введите “profilegpu” в консоли. Эта команда собирает точные тайминги GPU. Вы
обнаружите, что некоторые процессы являются тяжелыми и уменьшают частоту
кадров (Ambient Occlusion является одним из распространенных примеров) при
использовании в VR.
Посмотрите GPU Profiling и Performance and Profiling в разделе документации.
57. GPU Profiling:
В Unreal Engine 4.13 появился новый экспериментальный Real Time GPU Profiler!
•Что бы его включить, введите r.GPUStatsEnabled 1 в консоли
•Затем введите stat gpu для его запуска
58. Отключите Тяжёлые Пост-Процессы:
Из-за жестких требований к VR многие из дополнительных функций пост-обработки, которые обычно
используются, должны быть отключены. Для этого, сначала вы можете рассмотреть возможность отключить
тяжелые пост-процессы в настройках проекта в первую очередь, или используйте следующие атрибуты.
• Добавьте Post Process(PP) volume на ваш уровень, если там ещё нет ни одного.
• Выберите PP volume and включите опцию Unbound чтобы добавить эту настройку ко всему уровню
• Пройдитесь по всем настройкам в Post Process Volume и отключите все ненужные настройки PP. Для этого сначала
включите конкретную настройку, измените значение с того, что было установлено по умолчанию (обычно 1.0), на 0.
• В первую очередь нужно отключить наиболее тяжёлые для производительности в VR фичи, такие как Lens Flares, Screen
Space reflections, Screen Space Ambient Occlusion, а также другие влияющие на производительность фичи.
• В то время как некоторые из функций отключаются настройками в файлах .INI, это гарантирует, что производительность
не будет затронута, если .INI удалится по ошибке.
59. Освещение для VR в UE4
• Тусклые огни и цвета могут помочь уменьшить вероятность укачивания/тошноты.
• Не перекрывайте Стационарный/Динамический свет.
• При использовании Динамических Теней – только один shadowing light.
• Пользуйтесь Stat LightRendering, чтобы следить за «стоимостью» освещения.
• Запеченный свет – лучший вариант для VR-окружения.
• Всё время следите за Profile для обеспечения нужной производительности.
60. Фальшивые тени везде, где только можно!!
Используйте такие читы, как fake blob shadow drop, чтобы имитировать динамические
тени для поддержания оптимального фреймрейта VR-проекта.
Пример Blob shadow. Предоставил Eric Chadwick
61. Партикл-Эффекты в VR
• VFX, основанный на меше лучше всего подходит для VR-проекта.
• Партиклы, которые направлены на камеру, - не лучшее решение для VR из-за
стереоскопического видения.
• Dither Temporal AA Material Function сделает так, что Opacity masked объекты будут выглядеть,
как Translucent.
• Local Space rotation может выглядеть в VR, как выключенное.
62. Соображения по VR-Окружению
• Рассматривайте Reflection probes вместо screen space reflections.
• Ещё раз… Texture Blob shadows - дешёвая альтернатива динамическим теням.
• Merge Actor Tool может помочь сократить затраты на отображение Static Mesh без
необходимости выполнения действия вне UE4
65. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
66. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameMode, по сути, определяет
игру.
● Он должен содержать такие
вещи, как правила игры и
условия победы.
● Он также содержи важную
информацию о:
○ Pawn
○ PlayerContoller
○ GameState
○ PlayerState
67. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
Pawn class – это базовый класс всех
Акторов (Actors), которые могут
контролироваться игроком или АИ.
● Pawn представляет собой
физическое местоположение,
вращение и т.д. игрока, или
другого субъекта в игре.
● A Character представляет
собой особый тип Pawn,
который может
передвигаться/ходить.
68. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
PlayerController является связующим
звеном между Pawn и человеком,
который им играет.
● PlayerController решает, что
делать, а затем выдает команды
на Pawn (например, «идти на
корточках", "прыгнуть").
● Помещение способа ввода или
других функциональных
возможностей в PlayerController
часто бывает необходимо.
● PlayerController хранится на
протяжении всей игры, в то время
как Pawn может быть временным.
69. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameInstance – это класс,
который сохраняет своё
состояние и переключает уровни,
game modes, pawns и т.д. В то
время как классы типа
GameMode или PlayerController
сбрасываются и данные, которые
в них хранились, – удаляются.
70. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
PlayerState – это состояние
участника игры – реального
игрока или бота, который
симулирует реального игрока.
АИ, который не является игроком
и просто существует в игре, не
будет содержать PlayerState.
71. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameState содержит состояние
игры, которое может включать в
себя такие вещи, как список
подключенных игроков, счёт,
расположение фигур в
шахматной игре, или список
миссий, которые вы завершили в
игре с открытым миром.
72. The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
HUD - это базовый объект для
отображения элементов на
экране (интерфейса). Каждый
контролируемый человеком
персонаж в игре имеет свой
собственный
инстанс HUD класса, который
отрисовывает для него
индивидуальный Viewport.
73. Character
Object является основным
строительным блоком в Unreal Engine.
Actor – это любой объект, который
можно разместить на уровне.
Pawn – это подкласс (subclass) Actor, который
выполняет роль аватара в игре.
Character – это подкласс (subclass) Pawn,
который предназначен для использования в
качестве игрового персонажа.
Object
Actor
Pawn
76. Программирование интерактива в VR с помощью Blueprints
Блупринты в Unreal Engine – это полноценная система визуального скриптования,
основанная на концепции использования node-based интерфейса для создания
взаимодействия внутри Unreal Editor.
77. Изучаем Блупринты с помощью Content Examples
➔Official Documentation
➔Communication Training - Zak Parrish
➔BP_Compendium.pdf
➔Blueprints Compendium - VOLUME II
➔Network Compendium
➔Blueprints Video Tutorials
79. Ambient Sound Actors in VR
Ambient Sound Actor может
использоваться в качестве,
например, ambient looping sounds
и non-looping sounds. Как
правило, звучание Ambient Sound
Actor соответствует реальному
миру, где чем ближе вы к звуку,
тем он громче.
80. Настройки Звука
Вы можете назначить звуковой
ассет из панели Details, выбрав
ассет из Sound settings drop-down
menu или выделив звуковой ассет
в Content Browser и нажав
соответствующую кнопку.
81. Настройки Затухания (Attenuation)
Затухание (Attenuation) – это
способность звука становиться
тише, когда игрок отходит от
его источника.
Рекомендуется использовать
Sound Attenuation objects, где
это только возможно.
82. Stereo Spatialization
3D spatialization теперь доступен для
стерео аудио-ассетов.
Настройка 3D Stereo spread
параметра определяет
дистанцию в игровых юнитах
между левым и правым
каналами и вдоль вектора,
перпендикулярного к вектору
слухового эмиттера (listener-
emitter vector).
83. Audio Volume
Audio Volumes позволяют
контролировать и применять
различные звуки на вашем уровне, а
также обеспечить путь к созданию
узконаправленных звуковых зон, где
вы можете контролировать то, что
слышно внутри и снаружи Audio
Volume.
85. В Unreal Engine есть Полный набор
инструментов для работы с анимациями
animation retargeting
86. 86
VR с помощью Unreal Engine это круто.
Ознакомьтесь с UE4 VR learning
resouces для получения более
исчерпывающей информации.
luis.cataldi@epicgames.com