SlideShare una empresa de Scribd logo
1 de 86
Luis Cataldi - Education Evangelist – Epic Games
Начало работы с
Виртуальной
Реальностью (VR) при
помощи Unreal Engine
2
VR при помощи Unreal Engine
используется повсеместно
3
Визуальные эффекты в рекламе: компания Framestore
использовала UE4 для ролика “Экспедиция на Марс”
4
Виртуальные тренировки: NASA построили Международную
космическую станцию в Unreal Engine
5
Архитектурные визуализации в Unreal Engine: VR в проекте The
Fresh House
6
Виртуальные лекции и образование
7
Тизер сюжетного приключения: VR в проекте ILMxLAB's Darth
Vader
И во многом другом!
Как же научиться
использовать всю мощь
Unreal Engine?
Образовательные ресурсы по 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
Образовательные ресурсы по 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
Образовательные ресурсы по 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
**Новый режим Toggle VR Mode в Unreal Engine 4.13
** Все еще
экспериментальный, но
очень крутой.
Unreal Engine 4.13 Release Notes
Unreal Engine 4.12 Release Notes
Unreal Engine 4.11 Release Notes
Unreal Engine 4.10 Release Notes
Unreal Engine 4.9 Release Notes
Unreal Engine 4.8 Release Notes
Unreal Engine 4.7 Release Notes
Анонсы выпуска новых версий Unreal Engine:
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:
Справочник по VR на
Unreal Engine
От Mitchell McCaffrey & Pearson Education Inc.
Ожидается в феврале 2017
Новые образовательные ресурсы по VR на UE4:
Образовательное сообщество 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
Образовательное сообщество 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
Скоро - больше
Улучшенная Поддержка Метаданных
Для разных уровней подготовки
Версия движка
Фильтры/Теги
Чекпоинты
Образовательные ресурсы по VR на Unreal Engine:
Используй на максимум материалов из UE4 Launcher Learn Tab
Обучаемся с помощью Content Examples
Недавние разработки
Новое: Шаблон VR-проекта
Мы добавили новый шаблон проекта под VR для ПК и консолей.
Новое: Шаблон VR-проекта
Шаблон может быть выбран из вкладки Blueprint при создании нового проекта.
Новое: Шаблон VR-проекта
С помощью контроллера движения возможно взаимодействие и манипуляция с
объектами, а также телепортация.
Мы используем эти тест-кейсы из реального мира, чтобы внести наши фреймворки
и новые способы оптимизации в движок
В Epic Games, мы развиваем движок
создавая контент.
Instanced Stereo Rendering
Позволяет использовать single draw call для того чтобы создать картинку для обоих глаз,
экономя время CPU (и некоторое время GPU).
- В настоящий момент работает на PC, а в скором времени будет также доступно для
PS4 и мобильных платформ
- Нужно запускать в настройках проекта
Instanced stereo доступно сейчас для отложенного/deferred (PC) рендеринга и PS4.
- Мы также внедряем поддержку мульти-мониторного расширения для форвард
(мобильные платформы) рендеринга, а также улучшаем поддержку PS4 для более
оптимального использования ресурсов.
Instanced Stereo Rendering
Hidden And Visible Area Mesh
Мы отображаем меши таким образом,
чтобы не захватывать геометрию,
которую не видно, и используем пост-
процессы только там, где это
возможно.
Для отложенного рендеринга, Visible
Area Mesh является серьезной
оптимизацией!
Является особенностью
определённых платформ.
Hidden And Visible Area Mesh
Hidden Area Mask использует меш, чтобы выявить и исключить пиксели, которых не
будет в итоговом изображении.
Hidden And Visible Area Mesh
Visible Area Mask использует меш, чтобы ограничить пост-процессы только видимыми
пикселями.
Camera Refactor
По сравнению с 4.11, мы полностью
переписали систему камеры, чтобы
сделать разработку намного проще!
- Компоненты Камеры (Camera
Components) сейчас двигаются в
точности в зависимости от того, как
двигается реальный VR-шлем (HMD)
- Вы можете прикрепить компоненты
(меши, UI и т.д.) напрямую к камере
(camera component)!
Platform Support:
Поддержка платформ
Начиная с 4.12, существует поддержка следующих
платформ «из коробки»:
• Oculus Rift
• Steam VR (including the HTC Vive)
• PSVR
• OSVR (preview)
• Samsung Gear VR
• Google Daydream
• Leap Motion
Поддержка платформ
Создавая единожды, применяйте вне
зависимости от платформы
Мобильные
устройства
Десктоп / Консоли
Oculus Rift
HTC Vive / Steam VR
PSVR
OSVR
Samsung Gear VR
Google Daydream
Все данные платформы
поддерживают стандартные VR-
интерфейсы UE4, поэтому вы можете
создать свой контент единожды и
использовать его где угодно.
Oculus
Vive PSVR
OSVR
Единая Система Камеры
Система Контроллеров Движения
Оптимизированные способы рендеринга
Оптимизации low-latency
ФОРВАРД РЕНДЕРИНГ ДЛЯ ДЕСКТОПОВ
Уже этой осенью*
Отложенный (deferred) рендеринг в UE4 - полноценный рабочий
инструмент, для эффективного использования которого всё же
потребуются необходимые навыки. Temporal Anti Aliasing (временное
сглаживание) ограничивает то, насколько резкой картинка может быть.
Новый форвард (forward) рендеринг в UE4 будет специализированным
рендерингом, с меньшим количеством фичей, но с более быстрыми
базовыми параметрами. Multi Sampling Anti Aliasing (MSAA) – самое
эффективное решение для сглаживания.
Соображения по дизайну на VR
Одна из самых серьезных проблем
работы с VR – эффект
«Укачивания».
Чем он вызван?
en.wikipedia.org/wiki/Virtual_reality_sickness
Теория сенсорного конфликта утверждает, что
тошнота/укачивание происходит, когда восприятие
собственного движения пользователя основывается на
несовместимых сенсорных импульсах от зрительной
системы, вестибулярной системы и не-вестибулярных
рецепторов, и в особенности тогда, когда данные
импульсы не совпадают с ожиданиями пользователя,
основывающихся на предшествующем опыте.
Пять типичных причин возникновения Тошноты/Укачивания в VR
1. Непоступательные движения
• Не неестественные движения
2. Осознание Вектора
• Когда большая часть того, что видит человек, движется, ему в
действительности кажется, что он сам движется, а окружение
статично
3. Чувство Ускорения
4. Чрезмерное вращение камеры (camera YAW)
5. Наличие статичного кадра (static reference frame)
С помощью этих приёмов в Unreal
Engine МЫ можем улучшить опыт от
VR игр и VR опыта в целом
Вы ОБЯЗАНЫ Следить за Частотой Кадров
Для просмотра текущего фреймрейта введите “stat fps” или “stat unit” (для более
подробной разбивки) в консоли при запуске игры.
VR Instanced Stereo работает «по умолчанию» в UE 4.13
Чтобы включить эту
функцию в версиях до UE
4.13, перейдите в
настройки проекта и
найдите “Instanced Stereo” в
настройках Рендера.
Постоянно проверяйте производительность, чтобы
быть уверенными в том, что вы попадаете в ваши
целевые показатели VR.
Поддерживайте очень упрощенный подход к созданию
контента.
Сводите к минимуму количество сложных шейдеров.
Вместо того, чтобы использовать сложные шейдеры для
деталей поверхностей, лучше добавляйте детали самому мешу.
Обязательно используйте LOD‘ы и aggressive culling для
того, чтобы быть уверенными, что вы попадаете в
намеченные показатели производительности в VR.
Screen Space Reflections (SSR)
SSR будет работать в VR, но может не дать ожидаемого
результата. Вместо этого лучше использовать датчики
отражения (reflection probes).
Проблемы с Normal Mapping
При просмотре Карты Нормалей на объектах в VR, можно
заметить, что они не дают такого же эффекта, как обычно.
Это происходит потому, что Карты Нормалей не учитывают
бинокулярность дисплея или параллакса. Из-за этого Карты
Нормалей выглядят плоскими в VR.
Parallax Mapping
Шейдер Parallax mapping может лучше передавать
глубину информации. Таким образом объекты кажутся
более детализированными.
Parallax map сама себя поправит, чтобы показать вам
правильную информацию о глубине от заданной точки.
* Parallax карты часто выглядят лучше вблизи, в то время
как многие Карты Нормалей будут хорошо выглядеть на
средних дистанциях.
Tessellation Shader Displacement
Tessellation Shader Displacement изменит 3D геометрию в
реальном времени, добавляя детали, которые не
моделируются в объект. Tessellation shaders очень помогают
отображать информации, потому что они создают
недостающие детали, добавляя больше вершин (vertices) и
изменяя их в 3D пространстве.
Запускаем VR Preview:
Тестировать ваш VR set очень просто: выберите “VR Preview” из выпадающего списка кнопки Play.
По умолчанию, отслеживание положения головы будет работать сразу же, без внесения каких-
либо изменений в существующий проект или шаблон.
** Remember in UE 4.13 to try Play from VR Editor, if you have controllers.
GPU Profiling:
Для того, чтобы захватить один кадр с таймингами GPU нажмите Ctrl + Shift + или
введите “profilegpu” в консоли. Эта команда собирает точные тайминги GPU. Вы
обнаружите, что некоторые процессы являются тяжелыми и уменьшают частоту
кадров (Ambient Occlusion является одним из распространенных примеров) при
использовании в VR.
Посмотрите GPU Profiling и Performance and Profiling в разделе документации.
GPU Profiling:
В Unreal Engine 4.13 появился новый экспериментальный Real Time GPU Profiler!
•Что бы его включить, введите r.GPUStatsEnabled 1 в консоли
•Затем введите stat gpu для его запуска
Отключите Тяжёлые Пост-Процессы:
Из-за жестких требований к 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 удалится по ошибке.
Освещение для VR в UE4
• Тусклые огни и цвета могут помочь уменьшить вероятность укачивания/тошноты.
• Не перекрывайте Стационарный/Динамический свет.
• При использовании Динамических Теней – только один shadowing light.
• Пользуйтесь Stat LightRendering, чтобы следить за «стоимостью» освещения.
• Запеченный свет – лучший вариант для VR-окружения.
• Всё время следите за Profile для обеспечения нужной производительности.
Фальшивые тени везде, где только можно!!
Используйте такие читы, как fake blob shadow drop, чтобы имитировать динамические
тени для поддержания оптимального фреймрейта VR-проекта.
Пример Blob shadow. Предоставил Eric Chadwick
Партикл-Эффекты в VR
• VFX, основанный на меше лучше всего подходит для VR-проекта.
• Партиклы, которые направлены на камеру, - не лучшее решение для VR из-за
стереоскопического видения.
• Dither Temporal AA Material Function сделает так, что Opacity masked объекты будут выглядеть,
как Translucent.
• Local Space rotation может выглядеть в VR, как выключенное.
Соображения по VR-Окружению
• Рассматривайте Reflection probes вместо screen space reflections.
• Ещё раз… Texture Blob shadows - дешёвая альтернатива динамическим теням.
• Merge Actor Tool может помочь сократить затраты на отображение Static Mesh без
необходимости выполнения действия вне UE4
Некоторые очень важные вещи,
которые мы все должны знать об
Unreal Engine.
The Unreal Engine
Framework
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameMode, по сути, определяет
игру.
● Он должен содержать такие
вещи, как правила игры и
условия победы.
● Он также содержи важную
информацию о:
○ Pawn
○ PlayerContoller
○ GameState
○ PlayerState
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
Pawn class – это базовый класс всех
Акторов (Actors), которые могут
контролироваться игроком или АИ.
● Pawn представляет собой
физическое местоположение,
вращение и т.д. игрока, или
другого субъекта в игре.
● A Character представляет
собой особый тип Pawn,
который может
передвигаться/ходить.
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
PlayerController является связующим
звеном между Pawn и человеком,
который им играет.
● PlayerController решает, что
делать, а затем выдает команды
на Pawn (например, «идти на
корточках", "прыгнуть").
● Помещение способа ввода или
других функциональных
возможностей в PlayerController
часто бывает необходимо.
● PlayerController хранится на
протяжении всей игры, в то время
как Pawn может быть временным.
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameInstance – это класс,
который сохраняет своё
состояние и переключает уровни,
game modes, pawns и т.д. В то
время как классы типа
GameMode или PlayerController
сбрасываются и данные, которые
в них хранились, – удаляются.
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
PlayerState – это состояние
участника игры – реального
игрока или бота, который
симулирует реального игрока.
АИ, который не является игроком
и просто существует в игре, не
будет содержать PlayerState.
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
GameState содержит состояние
игры, которое может включать в
себя такие вещи, как список
подключенных игроков, счёт,
расположение фигур в
шахматной игре, или список
миссий, которые вы завершили в
игре с открытым миром.
The Unreal Engine Framework
GameInstance
GameMode
Pawn Class
HUD Class
PlayerController
Class
GameState
Class
PlayerState
Class
HUD - это базовый объект для
отображения элементов на
экране (интерфейса). Каждый
контролируемый человеком
персонаж в игре имеет свой
собственный
инстанс HUD класса, который
отрисовывает для него
индивидуальный Viewport.
Character
Object является основным
строительным блоком в Unreal Engine.
Actor – это любой объект, который
можно разместить на уровне.
Pawn – это подкласс (subclass) Actor, который
выполняет роль аватара в игре.
Character – это подкласс (subclass) Pawn,
который предназначен для использования в
качестве игрового персонажа.
Object
Actor
Pawn
CharacterMovementComponent
Pawn
Character
Default Pawn
Wheeled
Vehicle
CapsuleComponent
SkeletalMeshComponent
Etc.
VehicleMovementComponent
SkeletalMeshComponent
PhysicsHandle
Etc.
SpectatorPawn
DefaultPawnMovementComponent
StaticMeshComponent
CollisionComponent, Etc.
Controller
1-to-1 Relationship
Как насчет программирования
интерактивности для VR?
Программирование интерактива в VR с помощью Blueprints
Блупринты в Unreal Engine – это полноценная система визуального скриптования,
основанная на концепции использования node-based интерфейса для создания
взаимодействия внутри Unreal Editor.
Изучаем Блупринты с помощью Content Examples
➔Official Documentation
➔Communication Training - Zak Parrish
➔BP_Compendium.pdf
➔Blueprints Compendium - VOLUME II
➔Network Compendium
➔Blueprints Video Tutorials
Эй!! Нам для VR необходимо
ещё и AUDIO!!
Ambient Sound Actors in VR
Ambient Sound Actor может
использоваться в качестве,
например, ambient looping sounds
и non-looping sounds. Как
правило, звучание Ambient Sound
Actor соответствует реальному
миру, где чем ближе вы к звуку,
тем он громче.
Настройки Звука
Вы можете назначить звуковой
ассет из панели Details, выбрав
ассет из Sound settings drop-down
menu или выделив звуковой ассет
в Content Browser и нажав
соответствующую кнопку.
Настройки Затухания (Attenuation)
Затухание (Attenuation) – это
способность звука становиться
тише, когда игрок отходит от
его источника.
Рекомендуется использовать
Sound Attenuation objects, где
это только возможно.
Stereo Spatialization
3D spatialization теперь доступен для
стерео аудио-ассетов.
Настройка 3D Stereo spread
параметра определяет
дистанцию в игровых юнитах
между левым и правым
каналами и вдоль вектора,
перпендикулярного к вектору
слухового эмиттера (listener-
emitter vector).
Audio Volume
Audio Volumes позволяют
контролировать и применять
различные звуки на вашем уровне, а
также обеспечить путь к созданию
узконаправленных звуковых зон, где
вы можете контролировать то, что
слышно внутри и снаружи Audio
Volume.
В Unreal Engine есть полный современный
набором AI Tools.
В Unreal Engine есть Полный набор
инструментов для работы с анимациями
animation retargeting
86
VR с помощью Unreal Engine это круто.
Ознакомьтесь с UE4 VR learning
resouces для получения более
исчерпывающей информации.
luis.cataldi@epicgames.com

Más contenido relacionado

Destacado

Destacado (6)

On Ramp to Unreal Engine
On Ramp to Unreal EngineOn Ramp to Unreal Engine
On Ramp to Unreal Engine
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4
 
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
 

Similar a White nights intro to vr with unreal engine - luis cataldi-Russian

SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
Alexander Kirillov
 

Similar a White nights intro to vr with unreal engine - luis cataldi-Russian (20)

Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Лекция "Особенности разработки под разные платформы"
Лекция "Особенности разработки под разные платформы"Лекция "Особенности разработки под разные платформы"
Лекция "Особенности разработки под разные платформы"
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
 
Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"Сергей Комлач "Итоги Google I/O: что нас ждет"
Сергей Комлач "Итоги Google I/O: что нас ждет"
 
Виртуальные машины в жизни разработчика
Виртуальные машины в жизни разработчикаВиртуальные машины в жизни разработчика
Виртуальные машины в жизни разработчика
 
Me12 usabiliti-mobile
Me12 usabiliti-mobileMe12 usabiliti-mobile
Me12 usabiliti-mobile
 
Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity AndroidUnity: "Очевидное-невероятное” или хитрости разработки на Unity Android
Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
 
Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
 
quadroс
quadroсquadroс
quadroс
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
 
Преимущества создания кроссплатформенных приложений с использованием Phone ga...
Преимущества создания кроссплатформенных приложений с использованием Phone ga...Преимущества создания кроссплатформенных приложений с использованием Phone ga...
Преимущества создания кроссплатформенных приложений с использованием Phone ga...
 
UniversalApp "убийца" WPF или же это WPF+ ?
UniversalApp "убийца" WPF или же это WPF+ ?UniversalApp "убийца" WPF или же это WPF+ ?
UniversalApp "убийца" WPF или же это WPF+ ?
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 

White nights intro to vr with unreal engine - luis cataldi-Russian

  • 1. Luis Cataldi - Education Evangelist – Epic Games Начало работы с Виртуальной Реальностью (VR) при помощи Unreal Engine
  • 2. 2 VR при помощи Unreal Engine используется повсеместно
  • 3. 3 Визуальные эффекты в рекламе: компания Framestore использовала UE4 для ролика “Экспедиция на Марс”
  • 4. 4 Виртуальные тренировки: NASA построили Международную космическую станцию в Unreal Engine
  • 5. 5 Архитектурные визуализации в Unreal Engine: VR в проекте The Fresh House
  • 7. 7 Тизер сюжетного приключения: VR в проекте ILMxLAB's Darth Vader
  • 8. И во многом другом!
  • 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 ** Все еще экспериментальный, но очень крутой.
  • 14. Unreal Engine 4.13 Release Notes Unreal Engine 4.12 Release Notes Unreal Engine 4.11 Release Notes Unreal Engine 4.10 Release Notes Unreal Engine 4.9 Release Notes Unreal Engine 4.8 Release Notes Unreal Engine 4.7 Release Notes Анонсы выпуска новых версий Unreal Engine:
  • 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
  • 20. Улучшенная Поддержка Метаданных Для разных уровней подготовки Версия движка Фильтры/Теги Чекпоинты Образовательные ресурсы по VR на Unreal Engine:
  • 21. Используй на максимум материалов из UE4 Launcher Learn Tab
  • 24. Новое: Шаблон VR-проекта Мы добавили новый шаблон проекта под VR для ПК и консолей.
  • 25. Новое: Шаблон VR-проекта Шаблон может быть выбран из вкладки Blueprint при создании нового проекта.
  • 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
  • 38. ФОРВАРД РЕНДЕРИНГ ДЛЯ ДЕСКТОПОВ Уже этой осенью*
  • 39. Отложенный (deferred) рендеринг в UE4 - полноценный рабочий инструмент, для эффективного использования которого всё же потребуются необходимые навыки. Temporal Anti Aliasing (временное сглаживание) ограничивает то, насколько резкой картинка может быть. Новый форвард (forward) рендеринг в UE4 будет специализированным рендерингом, с меньшим количеством фичей, но с более быстрыми базовыми параметрами. Multi Sampling Anti Aliasing (MSAA) – самое эффективное решение для сглаживания.
  • 41. Одна из самых серьезных проблем работы с VR – эффект «Укачивания».
  • 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” в настройках Рендера.
  • 48. Постоянно проверяйте производительность, чтобы быть уверенными в том, что вы попадаете в ваши целевые показатели VR.
  • 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
  • 63. Некоторые очень важные вещи, которые мы все должны знать об Unreal Engine.
  • 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
  • 78. Эй!! Нам для VR необходимо ещё и AUDIO!!
  • 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.
  • 84. В Unreal Engine есть полный современный набором AI Tools.
  • 85. В Unreal Engine есть Полный набор инструментов для работы с анимациями animation retargeting
  • 86. 86 VR с помощью Unreal Engine это круто. Ознакомьтесь с UE4 VR learning resouces для получения более исчерпывающей информации. luis.cataldi@epicgames.com